--- /dev/null
+/result*
+/versions_log
--- /dev/null
+The MIT License (MIT)
+
+Copyright (c) 2011-2019 Ismaël Bouya http://www.normalesup.org/~bouya/
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+
+Feel like tipping/donating? https://www.immae.eu/licenses_and_tipping
--- /dev/null
+Link this directory to ~/.config/nixpkgs
--- /dev/null
+..
\ No newline at end of file
--- /dev/null
+builtins.attrValues (import ./nixRoot/overlays)
--- /dev/null
+{ pkgs ? import <nixpkgs> {} }:
+let
+ pkgs_ = pkgs;
+ mypkgs = import ./pkgs { pkgs = pkgs_; };
+in
+{
+ lib = import ./libs.nix { pkgs = pkgs_; };
+ modules = import ./modules;
+ overlays = import ./overlays;
+ pkgs = mypkgs;
+} // mypkgs
--- /dev/null
+#!/bin/bash
+
+usage() {
+ echo "$0 file.json"
+ echo "$0 [-n|--name name] [-b|--branch branch_or_rev] [-f|--file out_file] [-h|--help] (-u|--url) url"
+ exit
+}
+
+branch="master"
+while [[ $# -gt 0 ]]; do
+ a="$1"
+ shift
+ case "$a" in
+ *.json)
+ file=$a
+ content=$(cat $a)
+ name="$(echo "$content" | jq -r ".meta.name")"
+ url="$(echo "$content" | jq -r ".meta.url")"
+ branch="$(echo "$content" | jq -r ".meta.branch")"
+ ;;
+ -n|--name)
+ name=$1
+ shift
+ ;;
+ -u|--url)
+ url=$1
+ shift
+ ;;
+ -b|--branch)
+ branch=$1
+ shift
+ ;;
+ -f|--file)
+ file=$1
+ shift
+ ;;
+ -h|--help)
+ usage
+ ;;
+ esac
+done
+if [ -z "$url" ]; then
+ usage
+fi
+if [ -z "$name" ]; then
+ name=$(echo "$url" | cut -d"/" -f5)
+fi
+if [ -z "$file" ]; then
+ file=$name.json
+fi
+
+# function fetch_ledger () {
+# pushd $HOME/projets/ledger >/dev/null 2>/dev/null
+# git fetch origin
+# tag="$(git describe origin/next | sed -e "s/^v//")"
+# rev="$(git show-ref -s refs/remotes/origin/next)"
+# sha="$(nix-prefetch-url --unpack file://<(git archive --format=tar.gz HEAD) 2>/dev/null)"
+# popd >/dev/null 2>/dev/null
+# }
+
+# awk_describe='BEGIN {
+# FS = "[ /^]+"
+# while ("git ls-remote " ARGV[1] "| sort -Vk2" | getline) {
+# if (!sha)
+# sha = substr($0, 1, 7)
+# tag = $3
+# }
+# while ("curl -s " ARGV[1] "/releases/tag/" tag | getline)
+# if ($3 ~ "commits")
+# com = $2
+# printf com ? "%s-%s-g%s\n" : "%s\n", tag, com, sha
+# }'
+
+function get_ref () {
+ case "$1" in
+ refs/*)
+ echo "$1"
+ ;;
+ *)
+ echo "refs/heads/$1"
+ ;;
+ esac
+}
+
+function get_name () {
+ branch="$1"
+ rev="$2"
+ minirev=${rev:0:7}
+
+ case "$branch" in
+ refs/tags/*)
+ b="${branch#refs/tags/}"
+ echo "${b//\//-}"
+ ;;
+ refs/heads/*)
+ b=${branch#refs/heads/}
+ echo "$minirev-${b//\//-}"
+ ;;
+ refs/*)
+ b=${branch#refs/}
+ echo "$minirev-${b//\//-}"
+ ;;
+ *)
+ echo "$minirev-${branch//\//-}"
+ ;;
+ esac
+}
+
+function fetch_github () {
+ rev="$(git ls-remote --refs $url $(get_ref $branch) | head -n1 | cut -f1)"
+ sha="$(nix-prefetch-url --unpack $url/archive/$rev.tar.gz)"
+ # Différent du git-describe et github-spécifique
+ #tag=$(echo "$awk_describe" | awk -f - $url | sed -e "s/^v//")
+ tag=$(get_name $branch $rev)
+}
+
+function fetch_other () {
+ rev="$(git ls-remote --refs $url $(get_ref $branch) | head -n1 | cut -f1)"
+ sha="$(nix-prefetch-git --url $url --rev $(get_ref $branch) | jq -r '.sha256')"
+ tag=$(get_name $branch $rev)
+}
+
+case "$url" in
+ https://*github.com/*)
+ fetch_github 2>/dev/null
+ owner=$(echo "$url" | cut -d"/" -f4)
+ repo=$(echo "$url" | cut -d"/" -f5)
+
+ F='{
+ "tag": $tag,
+ "meta": {
+ "name": $name,
+ "url": $url,
+ "branch": $branch
+ },
+ "github": {
+ "owner": $owner,
+ "repo": $repo,
+ "rev": $rev,
+ "sha256": $sha,
+ "fetchSubmodules": true
+ }
+ }'
+ ;;
+ *)
+ fetch_other 2>/dev/null
+ F='{
+ "tag": $tag,
+ "meta": {
+ "name": $name,
+ "url": $url,
+ "branch": $branch
+ },
+ "git": {
+ "url": $url,
+ "rev": $rev,
+ "sha256": $sha,
+ "fetchSubmodules": true
+ }
+ }'
+ ;;
+esac
+
+jq -n \
+ --arg name "$name" \
+ --arg owner "$owner" \
+ --arg repo "$repo" \
+ --arg tag "$tag" \
+ --arg rev "$rev" \
+ --arg url "$url" \
+ --arg branch "$branch" \
+ --arg sha "$sha" \
+ "$F" > $file
--- /dev/null
+# This file originates from node2nix
+
+{stdenv, nodejs, python2, utillinux, libtool, runCommand, writeTextFile}:
+
+let
+ 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
+ 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}:
+ stdenv.lib.optionalString (dependencies != [])
+ (stdenv.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:
+ ''
+ 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 -print0 | xargs -0 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 ..
+ ${stdenv.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"}
+
+ ${stdenv.lib.optionalString (dependencies != [])
+ ''
+ if [ -d node_modules ]
+ then
+ cd node_modules
+ ${stdenv.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 ..
+ ${stdenv.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.
+ }
+
+ packageObj["_resolved"] = dependency.version; // Set the resolved version to the version identifier. This prevents NPM from cloning Git repositories.
+ 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(packageLock.lockfileVersion !== 1) {
+ process.stderr.write("Sorry, I only understand lock file version 1!\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));
+ '';
+ };
+
+ # Builds and composes an NPM package including all its dependencies
+ buildNodePackage =
+ { name
+ , packageName
+ , version
+ , dependencies ? []
+ , buildInputs ? []
+ , production ? true
+ , npmFlags ? ""
+ , dontNpmInstall ? false
+ , bypassCache ? false
+ , preRebuild ? ""
+ , dontStrip ? true
+ , unpackPhase ? "true"
+ , buildPhase ? "true"
+ , ... }@args:
+
+ let
+ forceOfflineFlag = if bypassCache then "--offline" else "--registry http://www.example.com";
+ extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" "dontStrip" "dontNpmInstall" "preRebuild" "unpackPhase" "buildPhase" ];
+ in
+ stdenv.mkDerivation ({
+ name = "node-${name}-${version}";
+ buildInputs = [ tarWrapper python nodejs ]
+ ++ stdenv.lib.optional (stdenv.isLinux) utillinux
+ ++ stdenv.lib.optional (stdenv.isDarwin) libtool
+ ++ buildInputs;
+
+ 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
+
+ # 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
+
+ ${stdenv.lib.optionalString bypassCache ''
+ if [ ! -f package-lock.json ]
+ then
+ echo "No package-lock.json file found, reconstructing..."
+ node ${reconstructPackageLock}
+ fi
+
+ node ${addIntegrityFieldsScript}
+ ''}
+
+ npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${stdenv.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} ${stdenv.lib.optionalString production "--production"} install
+ fi
+
+ # 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 development shell
+ buildNodeShell =
+ { name
+ , packageName
+ , version
+ , src
+ , dependencies ? []
+ , buildInputs ? []
+ , production ? true
+ , npmFlags ? ""
+ , dontNpmInstall ? false
+ , bypassCache ? false
+ , dontStrip ? true
+ , unpackPhase ? "true"
+ , buildPhase ? "true"
+ , ... }@args:
+
+ let
+ forceOfflineFlag = if bypassCache then "--offline" else "--registry http://www.example.com";
+
+ extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" ];
+
+ nodeDependencies = stdenv.mkDerivation ({
+ name = "node-dependencies-${name}-${version}";
+
+ buildInputs = [ tarWrapper python nodejs ]
+ ++ stdenv.lib.optional (stdenv.isLinux) utillinux
+ ++ stdenv.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
+ ${stdenv.lib.optionalString bypassCache ''
+ if [ -f ${src}/package-lock.json ]
+ then
+ cp ${src}/package-lock.json .
+ fi
+ ''}
+
+ # Pinpoint the versions of all dependencies to the ones that are actually being used
+ echo "pinpointing versions of dependencies..."
+ cd ..
+ ${stdenv.lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
+
+ source $pinpointDependenciesScriptPath
+ cd ${packageName}
+
+ # Patch the shebangs of the bundled modules to prevent them from
+ # calling executables outside the Nix store as much as possible
+ patchShebangs .
+
+ export HOME=$PWD
+
+ ${stdenv.lib.optionalString bypassCache ''
+ if [ ! -f package-lock.json ]
+ then
+ echo "No package-lock.json file found, reconstructing..."
+ node ${reconstructPackageLock}
+ fi
+
+ node ${addIntegrityFieldsScript}
+ ''}
+
+ npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${stdenv.lib.optionalString production "--production"} rebuild
+
+ ${stdenv.lib.optionalString (!dontNpmInstall) ''
+ # 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} ${stdenv.lib.optionalString production "--production"} install
+ ''}
+
+ cd ..
+ ${stdenv.lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
+
+ mv ${packageName} lib
+ ln -s $out/lib/node_modules/.bin $out/bin
+ '';
+ } // extraArgs);
+ in
+ stdenv.mkDerivation {
+ name = "node-shell-${name}-${version}";
+
+ buildInputs = [ python nodejs ] ++ stdenv.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 = stdenv.lib.optionalString (dependencies != []) ''
+ export NODE_PATH=$nodeDependencies/lib/node_modules
+ '';
+ };
+in
+{
+ buildNodeSourceDist = stdenv.lib.makeOverridable buildNodeSourceDist;
+ buildNodePackage = stdenv.lib.makeOverridable buildNodePackage;
+ buildNodeShell = stdenv.lib.makeOverridable buildNodeShell;
+}
--- /dev/null
+{ pkgs }:
+with pkgs;
+rec {
+ yarn2nixPackage = let
+ src = builtins.fetchGit {
+ url = "git://github.com/moretea/yarn2nix.git";
+ ref = "master";
+ rev = "780e33a07fd821e09ab5b05223ddb4ca15ac663f";
+ };
+ in
+ (callPackage src {}) // { inherit src; };
+
+ nodeEnv = import ./lib/node-env.nix;
+
+ fetchedGithub = path:
+ let
+ json = lib.importJSON path;
+ in rec {
+ version = json.tag;
+ name = "${json.meta.name}-${version}";
+ src = fetchFromGitHub json.github;
+ };
+
+ fetchedGit = path:
+ let
+ json = lib.importJSON path;
+ in rec {
+ version = json.tag;
+ name = "${json.meta.name}-${version}";
+ src = fetchgit json.git;
+ };
+
+ fetchedGitPrivate = path:
+ let
+ json = lib.importJSON path;
+ in rec {
+ version = json.tag;
+ name = "${json.meta.name}-${version}";
+ src = fetchgitPrivate json.git;
+ };
+
+ wrap = { paths ? [], vars ? {}, file ? null, script ? null, name ? "wrap" }:
+ assert file != null || script != null ||
+ abort "wrap needs 'file' or 'script' argument";
+ with rec {
+ set = n: v: "--set ${pkgs.lib.escapeShellArg n} " +
+ "${pkgs.lib.escapeShellArg v}";
+ args = (map (p: "--prefix PATH : ${p}/bin") paths) ++
+ (builtins.attrValues (pkgs.lib.mapAttrs set vars));
+ };
+ runCommand name
+ {
+ f = if file == null then writeScript name script else file;
+ buildInputs = [ makeWrapper ];
+ }
+ ''
+ makeWrapper "$f" "$out" ${toString args}
+ '';
+
+ # This adds header colors to the builds, but it rebuilds the whole
+ # world from scratch, so only use it to debug!
+ # add it as postHook in derivations
+ immaePostHook = ''
+ header() {
+ echo -ne "\033[1;36m"
+ echo -n "$1"
+ echo -e "\033[0m"
+ }
+
+ echoCmd() {
+ printf "\033[1;34m%s:\033[0m" "$1"
+ shift
+ printf ' %q' "$@"
+ echo
+ }
+ '';
+
+} // (if builtins.pathExists ./lib/private then import ./lib/private else {})
--- /dev/null
+{
+ myids = ./myids.nix;
+ secrets = ./secrets.nix;
+
+ webstats = ./webapps/webstats;
+ diaspora = ./webapps/diaspora.nix;
+ etherpad-lite = ./webapps/etherpad-lite.nix;
+ mastodon = ./webapps/mastodon.nix;
+ mediagoblin = ./webapps/mediagoblin.nix;
+ peertube = ./webapps/peertube.nix;
+
+ websites = ./websites;
+} // (if builtins.pathExists ./private then import ./private else {})
--- /dev/null
+{ ... }:
+{
+ # Check that there is no clash with nixos/modules/misc/ids.nix
+ config = {
+ ids.uids = {
+ peertube = 394;
+ redis = 395;
+ nullmailer = 396;
+ mediagoblin = 397;
+ diaspora = 398;
+ mastodon = 399;
+ };
+ ids.gids = {
+ peertube = 394;
+ redis = 395;
+ nullmailer = 396;
+ mediagoblin = 397;
+ diaspora = 398;
+ mastodon = 399;
+ };
+ };
+}
--- /dev/null
+from buildbot.plugins import util, steps, schedulers
+from buildbot_buildslist import BuildsList
+
+__all__ = [
+ "force_scheduler", "deploy_scheduler", "hook_scheduler",
+ "clean_branch", "package_and_upload", "SlackStatusPush",
+ "XMPPStatusPush"
+ ]
+
+# Small helpers"
+@util.renderer
+def clean_branch(props):
+ if props.hasProperty("branch") and len(props["branch"]) > 0:
+ return props["branch"].replace("/", "_")
+ else:
+ return "HEAD"
+
+def package_and_upload(package, package_dest, package_url):
+ return [
+ steps.ShellCommand(name="build package",
+ logEnviron=False, haltOnFailure=True, workdir="source",
+ command=["git", "archive", "HEAD", "-o", package]),
+
+ steps.FileUpload(name="upload package", workersrc=package,
+ workdir="source", masterdest=package_dest,
+ url=package_url, mode=0o644),
+
+ steps.ShellCommand(name="cleanup package", logEnviron=False,
+ haltOnFailure=True, workdir="source", alwaysRun=True,
+ command=["rm", "-f", package]),
+ ]
+
+# Schedulers
+def force_scheduler(name, builders):
+ return schedulers.ForceScheduler(name=name,
+ label="Force build", buttonName="Force build",
+ reason=util.StringParameter(name="reason", label="Reason", default="Force build"),
+ codebases=[
+ util.CodebaseParameter("",
+ branch=util.StringParameter(
+ name="branch", label="Git reference (tag, branch)", required=True),
+ revision=util.FixedParameter(name="revision", default=""),
+ repository=util.FixedParameter(name="repository", default=""),
+ project=util.FixedParameter(name="project", default=""),
+ ),
+ ],
+ username=util.FixedParameter(name="username", default="Web button"),
+ builderNames=builders)
+
+def deploy_scheduler(name, builders):
+ return schedulers.ForceScheduler(name=name,
+ builderNames=builders,
+ label="Deploy built package", buttonName="Deploy",
+ username=util.FixedParameter(name="username", default="Web button"),
+ codebases=[
+ util.CodebaseParameter(codebase="",
+ branch=util.FixedParameter(name="branch", default=""),
+ revision=util.FixedParameter(name="revision", default=""),
+ repository=util.FixedParameter(name="repository", default=""),
+ project=util.FixedParameter(name="project", default=""))],
+ reason=util.FixedParameter(name="reason", default="Deploy"),
+ properties=[
+ util.ChoiceStringParameter(label="Environment",
+ name="environment", default="integration",
+ choices=["integration", "production"]),
+ BuildsList(label="Build to deploy", name="build"),
+ ]
+ )
+
+def hook_scheduler(project, timer=10):
+ return schedulers.AnyBranchScheduler(
+ change_filter=util.ChangeFilter(category="hooks", project=project),
+ name=project, treeStableTimer=timer, builderNames=["{}_build".format(project)])
+
+# Slack/XMPP status push
+from buildbot.reporters.http import HttpStatusPushBase
+from twisted.internet import defer
+from twisted.python import log
+from buildbot.util import httpclientservice
+from buildbot.reporters import utils
+from buildbot.process import results
+from twisted.words.protocols.jabber.jid import JID
+from wokkel import client, xmppim
+from functools import partial
+
+class SlackStatusPush(HttpStatusPushBase):
+ name = "SlackStatusPush"
+
+ @defer.inlineCallbacks
+ def reconfigService(self, serverUrl, **kwargs):
+ yield HttpStatusPushBase.reconfigService(self, **kwargs)
+ self._http = yield httpclientservice.HTTPClientService.getService(
+ self.master, serverUrl)
+
+ @defer.inlineCallbacks
+ def send(self, build):
+ yield utils.getDetailsForBuild(self.master, build, wantProperties=True)
+ response = yield self._http.post("", json=self.format(build))
+ if response.code != 200:
+ log.msg("%s: unable to upload status: %s" %
+ (response.code, response.content))
+
+ def format(self, build):
+ colors = [
+ "#36A64F", # success
+ "#F1E903", # warnings
+ "#DA0505", # failure
+ "#FFFFFF", # skipped
+ "#000000", # exception
+ "#FFFFFF", # retry
+ "#D02CA9", # cancelled
+ ]
+
+ if "environment" in build["properties"]:
+ msg = "{} environment".format(build["properties"]["environment"][0])
+ if "build" in build["properties"]:
+ msg = "of archive {} in ".format(build["properties"]["build"][0]) + msg
+ elif len(build["buildset"]["sourcestamps"][0]["branch"]) > 0:
+ msg = "revision {}".format(build["buildset"]["sourcestamps"][0]["branch"])
+ else:
+ msg = "build"
+
+ if build["complete"]:
+ timedelta = int((build["complete_at"] - build["started_at"]).total_seconds())
+ hours, rest = divmod(timedelta, 3600)
+ minutes, seconds = divmod(rest, 60)
+ if hours > 0:
+ duration = "{}h {}min {}s".format(hours, minutes, seconds)
+ elif minutes > 0:
+ duration = "{}min {}s".format(minutes, seconds)
+ else:
+ duration = "{}s".format(seconds)
+
+ text = "Build <{}|{}> of {}'s {} was {} in {}.".format(
+ build["url"], build["buildid"],
+ build["builder"]["name"],
+ msg,
+ results.Results[build["results"]],
+ duration,
+ )
+ fields = [
+ {
+ "title": "Build",
+ "value": "<{}|{}>".format(build["url"], build["buildid"]),
+ "short": True,
+ },
+ {
+ "title": "Project",
+ "value": build["builder"]["name"],
+ "short": True,
+ },
+ {
+ "title": "Build status",
+ "value": results.Results[build["results"]],
+ "short": True,
+ },
+ {
+ "title": "Build duration",
+ "value": duration,
+ "short": True,
+ },
+ ]
+ if "environment" in build["properties"]:
+ fields.append({
+ "title": "Environment",
+ "value": build["properties"]["environment"][0],
+ "short": True,
+ })
+ if "build" in build["properties"]:
+ fields.append({
+ "title": "Archive",
+ "value": build["properties"]["build"][0],
+ "short": True,
+ })
+ attachments = [{
+ "fallback": "",
+ "color": colors[build["results"]],
+ "fields": fields
+ }]
+ else:
+ text = "Build <{}|{}> of {}'s {} started.".format(
+ build["url"], build["buildid"],
+ build["builder"]["name"],
+ msg,
+ )
+ attachments = []
+
+ return {
+ "username": "Buildbot",
+ "icon_url": "http://docs.buildbot.net/current/_static/icon.png",
+ "text": text,
+ "attachments": attachments,
+ }
+
+class XMPPStatusPush(HttpStatusPushBase):
+ name = "XMPPStatusPush"
+
+ @defer.inlineCallbacks
+ def reconfigService(self, password, recipients, **kwargs):
+ yield HttpStatusPushBase.reconfigService(self, **kwargs)
+ self.password = password
+ self.recipients = recipients
+
+ @defer.inlineCallbacks
+ def send(self, build):
+ yield utils.getDetailsForBuild(self.master, build, wantProperties=True)
+ body = self.format(build)
+ factory = client.DeferredClientFactory(JID("notify_bot@immae.fr/buildbot"), self.password)
+ d = client.clientCreator(factory)
+ def send_message(recipient, stream):
+ message = xmppim.Message(recipient=JID(recipient), body=body)
+ message.stanzaType = 'chat'
+ stream.send(message.toElement())
+ # To allow chaining
+ return stream
+ for recipient in self.recipients:
+ d.addCallback(partial(send_message, recipient))
+ d.addCallback(lambda _: factory.streamManager.xmlstream.sendFooter())
+ d.addErrback(log.err)
+
+ def format(self, build):
+ if "environment" in build["properties"]:
+ msg = "{} environment".format(build["properties"]["environment"][0])
+ if "build" in build["properties"]:
+ msg = "of archive {} in ".format(build["properties"]["build"][0]) + msg
+ elif len(build["buildset"]["sourcestamps"][0]["branch"]) > 0:
+ msg = "revision {}".format(build["buildset"]["sourcestamps"][0]["branch"])
+ else:
+ msg = "build"
+
+ if build["complete"]:
+ timedelta = int((build["complete_at"] - build["started_at"]).total_seconds())
+ hours, rest = divmod(timedelta, 3600)
+ minutes, seconds = divmod(rest, 60)
+ if hours > 0:
+ duration = "{}h {}min {}s".format(hours, minutes, seconds)
+ elif minutes > 0:
+ duration = "{}min {}s".format(minutes, seconds)
+ else:
+ duration = "{}s".format(seconds)
+
+ text = "Build {} ( {} ) of {}'s {} was {} in {}.".format(
+ build["buildid"], build["url"],
+ build["builder"]["name"],
+ msg,
+ results.Results[build["results"]],
+ duration,
+ )
+ else:
+ text = "Build {} ( {} ) of {}'s {} started.".format(
+ build["buildid"], build["url"],
+ build["builder"]["name"],
+ msg,
+ )
+
+ return text
--- /dev/null
+# -*- python -*-
+# ex: set filetype=python:
+
+from buildbot.plugins import secrets, util, webhooks
+from buildbot.util import bytes2unicode
+import re
+import os
+from buildbot_config import E, configure
+import json
+
+class CustomBase(webhooks.base):
+ def getChanges(self, request):
+ try:
+ content = request.content.read()
+ args = json.loads(bytes2unicode(content))
+ except Exception as e:
+ raise ValueError("Error loading JSON: " + str(e))
+
+ args.setdefault("comments", "")
+ args.setdefault("repository", "")
+ args.setdefault("author", args.get("who"))
+
+ return ([args], None)
+
+userInfoProvider = util.LdapUserInfo(
+ uri=E.LDAP_URL,
+ bindUser=E.LDAP_ADMIN_USER,
+ bindPw=open(E.SECRETS_FILE + "/ldap", "r").read().rstrip(),
+ accountBase=E.LDAP_BASE,
+ accountPattern=E.LDAP_PATTERN,
+ accountFullName='cn',
+ accountEmail='mail',
+ avatarData="jpegPhoto",
+ groupBase=E.LDAP_BASE,
+ groupName="cn",
+ groupMemberPattern=E.LDAP_GROUP_PATTERN,
+ )
+
+c = BuildmasterConfig = {
+ "title": E.TITLE,
+ "titleURL": E.TITLE_URL,
+ "db": {
+ "db_url": "sqlite:///state.sqlite"
+ },
+ "protocols": { "pb": { "port": E.PB_SOCKET } },
+ "workers": [],
+ "change_source": [],
+ "schedulers": [],
+ "builders": [],
+ "services": [],
+ "secretsProviders": [
+ secrets.SecretInAFile(E.SECRETS_FILE),
+ ],
+ "www": {
+ "change_hook_dialects": { "base": { "custom_class": CustomBase } },
+ "plugins": {
+ "waterfall_view": {},
+ "console_view": {},
+ "grid_view": {},
+ "buildslist": {},
+ },
+ "auth": util.RemoteUserAuth(
+ header=b"X-Remote-User",
+ userInfoProvider=userInfoProvider,
+ headerRegex=re.compile(br"(?P<username>[^ @]+)")),
+ }
+ }
+
+configure(c)
--- /dev/null
+{ lib, pkgs, config, myconfig, ... }:
+let
+ varDir = "/var/lib/buildbot";
+ buildbot_common = pkgs.python3Packages.buildPythonPackage rec {
+ name = "buildbot_common";
+ src = ./common;
+ format = "other";
+ installPhase = ''
+ mkdir -p $out/${pkgs.python3.pythonForBuild.sitePackages}
+ cp -a $src $out/${pkgs.python3.pythonForBuild.sitePackages}/buildbot_common
+ '';
+ };
+ buildbot = pkgs.python3Packages.buildbot-full;
+in
+{
+ options = {
+ myServices.buildbot.enable = lib.mkOption {
+ type = lib.types.bool;
+ default = false;
+ description = ''
+ Whether to enable buildbot.
+ '';
+ };
+ };
+
+ config = lib.mkIf config.myServices.buildbot.enable {
+ ids.uids.buildbot = myconfig.env.buildbot.user.uid;
+ ids.gids.buildbot = myconfig.env.buildbot.user.gid;
+
+ users.groups.buildbot.gid = config.ids.gids.buildbot;
+ users.users.buildbot = {
+ name = "buildbot";
+ uid = config.ids.uids.buildbot;
+ group = "buildbot";
+ description = "Buildbot user";
+ home = varDir;
+ extraGroups = [ "keys" ];
+ };
+
+ services.websites.tools.vhostConfs.git.extraConfig = lib.attrsets.mapAttrsToList (k: project: ''
+ RedirectMatch permanent "^/buildbot/${project.name}$" "/buildbot/${project.name}/"
+ RewriteEngine On
+ RewriteRule ^/buildbot/${project.name}/ws(.*)$ unix:///run/buildbot/${project.name}.sock|ws://git.immae.eu/ws$1 [P,NE,QSA,L]
+ ProxyPass /buildbot/${project.name}/ unix:///run/buildbot/${project.name}.sock|http://${project.name}-git.immae.eu/
+ ProxyPassReverse /buildbot/${project.name}/ unix:///run/buildbot/${project.name}.sock|http://${project.name}-git.immae.eu/
+ <Location /buildbot/${project.name}/>
+ Use LDAPConnect
+ Require ldap-group cn=users,ou=${project.name},cn=buildbot,ou=services,dc=immae,dc=eu
+
+ SetEnvIf X-Url-Scheme https HTTPS=1
+ ProxyPreserveHost On
+ </Location>
+ <Location /buildbot/${project.name}/change_hook/base>
+ <RequireAny>
+ Require local
+ Require ldap-group cn=users,ou=${project.name},cn=buildbot,ou=services,dc=immae,dc=eu
+ Include /var/secrets/buildbot/${project.name}/webhook-httpd-include
+ </RequireAny>
+ </Location>
+ '') myconfig.env.buildbot.projects;
+
+ system.activationScripts = lib.attrsets.mapAttrs' (k: project: lib.attrsets.nameValuePair "buildbot-${project.name}" {
+ deps = [ "users" "wrappers" ];
+ text = project.activationScript;
+ }) myconfig.env.buildbot.projects;
+
+ secrets.keys = (
+ lib.lists.flatten (
+ lib.attrsets.mapAttrsToList (k: project:
+ lib.attrsets.mapAttrsToList (k: v:
+ {
+ permissions = "0600";
+ user = "buildbot";
+ group = "buildbot";
+ text = v;
+ dest = "buildbot/${project.name}/${k}";
+ }
+ ) project.secrets
+ ++ [
+ {
+ permissions = "0600";
+ user = "wwwrun";
+ group = "wwwrun";
+ text = lib.optionalString (lib.attrsets.hasAttr "webhookTokens" project) ''
+ Require expr "req('Access-Key') in { ${builtins.concatStringsSep ", " (map (x: "'${x}'") project.webhookTokens)} }"
+ '';
+ dest = "buildbot/${project.name}/webhook-httpd-include";
+ }
+ ]
+ ) myconfig.env.buildbot.projects
+ )
+ ) ++ [
+ {
+ permissions = "0600";
+ user = "buildbot";
+ group = "buildbot";
+ text = myconfig.env.buildbot.ldap.password;
+ dest = "buildbot/ldap";
+ }
+ {
+ permissions = "0600";
+ user = "buildbot";
+ group = "buildbot";
+ text = builtins.readFile "${myconfig.privateFiles}/buildbot_ssh_key";
+ dest = "buildbot/ssh_key";
+ }
+ ];
+
+ systemd.services = lib.attrsets.mapAttrs' (k: project: lib.attrsets.nameValuePair "buildbot-${project.name}" {
+ description = "Buildbot Continuous Integration Server ${project.name}.";
+ after = [ "network-online.target" ];
+ wantedBy = [ "multi-user.target" ];
+ path = project.packages pkgs ++ (project.pythonPackages buildbot.pythonModule pkgs);
+ preStart = let
+ master-cfg = "${buildbot_common}/${pkgs.python3.pythonForBuild.sitePackages}/buildbot_common/master.cfg";
+ tac_file = pkgs.writeText "buildbot.tac" ''
+ import os
+
+ from twisted.application import service
+ from buildbot.master import BuildMaster
+
+ basedir = '${varDir}/${project.name}'
+ rotateLength = 10000000
+ maxRotatedFiles = 10
+ configfile = '${master-cfg}'
+
+ # Default umask for server
+ umask = None
+
+ # if this is a relocatable tac file, get the directory containing the TAC
+ if basedir == '.':
+ import os
+ basedir = os.path.abspath(os.path.dirname(__file__))
+
+ # note: this line is matched against to check that this is a buildmaster
+ # directory; do not edit it.
+ application = service.Application('buildmaster')
+ from twisted.python.logfile import LogFile
+ from twisted.python.log import ILogObserver, FileLogObserver
+ logfile = LogFile.fromFullPath(os.path.join(basedir, "twistd.log"), rotateLength=rotateLength,
+ maxRotatedFiles=maxRotatedFiles)
+ application.setComponent(ILogObserver, FileLogObserver(logfile).emit)
+
+ m = BuildMaster(basedir, configfile, umask)
+ m.setServiceParent(application)
+ m.log_rotation.rotateLength = rotateLength
+ m.log_rotation.maxRotatedFiles = maxRotatedFiles
+ '';
+ in ''
+ if [ ! -f ${varDir}/${project.name}/buildbot.tac ]; then
+ ${buildbot}/bin/buildbot create-master -c "${master-cfg}" "${varDir}/${project.name}"
+ rm -f ${varDir}/${project.name}/master.cfg.sample
+ rm -f ${varDir}/${project.name}/buildbot.tac
+ fi
+ ln -sf ${tac_file} ${varDir}/${project.name}/buildbot.tac
+ # different buildbots may be trying that simultaneously, add the || true to avoid complaining in case of race
+ install -Dm600 -o buildbot -g buildbot -T /var/secrets/buildbot/ssh_key ${varDir}/buildbot_key || true
+ buildbot_secrets=${varDir}/${project.name}/secrets
+ install -m 0700 -o buildbot -g buildbot -d $buildbot_secrets
+ install -Dm600 -o buildbot -g buildbot -T /var/secrets/buildbot/ldap $buildbot_secrets/ldap
+ ${builtins.concatStringsSep "\n" (lib.attrsets.mapAttrsToList
+ (k: v: "install -Dm600 -o buildbot -g buildbot -T /var/secrets/buildbot/${project.name}/${k} $buildbot_secrets/${k}") project.secrets
+ )}
+ '';
+ environment = let
+ project_env = lib.attrsets.mapAttrs' (k: v: lib.attrsets.nameValuePair "BUILDBOT_${k}" v) project.environment;
+ buildbot_config = pkgs.python3Packages.buildPythonPackage (rec {
+ name = "buildbot_config-${project.name}";
+ src = ./projects + "/${project.name}";
+ format = "other";
+ installPhase = ''
+ mkdir -p $out/${pkgs.python3.pythonForBuild.sitePackages}
+ cp -a $src $out/${pkgs.python3.pythonForBuild.sitePackages}/buildbot_config
+ '';
+ });
+ HOME = "${varDir}/${project.name}";
+ PYTHONPATH = "${buildbot.pythonModule.withPackages (self: project.pythonPackages self pkgs ++ [
+ pkgs.python3Packages.wokkel
+ pkgs.python3Packages.treq pkgs.python3Packages.ldap3 buildbot
+ pkgs.python3Packages.buildbot-worker
+ buildbot_common buildbot_config
+ ])}/${buildbot.pythonModule.sitePackages}${if project.pythonPathHome then ":${varDir}/${project.name}/.local/${pkgs.python3.pythonForBuild.sitePackages}" else ""}";
+ in project_env // { inherit PYTHONPATH HOME; };
+
+ serviceConfig = {
+ Type = "forking";
+ User = "buildbot";
+ Group = "buildbot";
+ RuntimeDirectory = "buildbot";
+ RuntimeDirectoryPreserve = "yes";
+ StateDirectory = "buildbot";
+ SupplementaryGroups = "keys";
+ WorkingDirectory = "${varDir}/${project.name}";
+ ExecStart = "${buildbot}/bin/buildbot start";
+ };
+ }) myconfig.env.buildbot.projects;
+ };
+}
--- /dev/null
+from buildbot.plugins import *
+from buildbot_common.build_helpers import *
+import os
+from buildbot.util import bytes2unicode
+import json
+
+__all__ = [ "configure", "E" ]
+
+class E():
+ PROJECT = "caldance"
+ BUILDBOT_URL = "https://git.immae.eu/buildbot/{}/".format(PROJECT)
+ SOCKET = "unix:/run/buildbot/{}.sock".format(PROJECT)
+ PB_SOCKET = "unix:address=/run/buildbot/{}_pb.sock".format(PROJECT)
+ RELEASE_PATH = "/var/lib/ftp/release.immae.eu/{}".format(PROJECT)
+ RELEASE_URL = "https://release.immae.eu/{}".format(PROJECT)
+ GIT_URL = "gitolite@git.immae.eu:perso/simon_descarpentries/www.cal-dance.com"
+ SSH_KEY_PATH = "/var/lib/buildbot/buildbot_key"
+ SSH_HOST_KEY = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIFbhFTl2A2RJn5L51yxJM4XfCS2ZaiSX/jo9jFSdghF"
+ LDAP_HOST = "ldap.immae.eu"
+ LDAP_DN = "cn=buildbot,ou=services,dc=immae,dc=eu"
+ LDAP_ROLES_BASE = "ou=roles,ou=hosts,dc=immae,dc=eu"
+ XMPP_RECIPIENTS = os.environ["BUILDBOT_XMPP_RECIPIENTS"].split(" ")
+
+ PUPPET_HOST = {
+ "integration": "root@caldance.immae.eu",
+ }
+
+ # master.cfg
+ SECRETS_FILE = os.getcwd() + "/secrets"
+ LDAP_URL = "ldaps://ldap.immae.eu:636"
+ LDAP_ADMIN_USER = "cn=buildbot,ou=services,dc=immae,dc=eu"
+ LDAP_BASE = "dc=immae,dc=eu"
+ LDAP_PATTERN = "(uid=%(username)s)"
+ LDAP_GROUP_PATTERN = "(&(memberOf=cn=groups,ou=caldance,cn=buildbot,ou=services,dc=immae,dc=eu)(member=%(dn)s))"
+ TITLE_URL = "https://caldance.immae.eu"
+ TITLE = "Caldance"
+
+class CustomBase(webhooks.base):
+ def getChanges(self, request):
+ try:
+ content = request.content.read()
+ args = json.loads(bytes2unicode(content))
+ except Exception as e:
+ raise ValueError("Error loading JSON: " + str(e))
+
+ args.setdefault("comments", "")
+ args.setdefault("repository", "")
+ args.setdefault("author", args.get("who", "unknown"))
+
+ if args["category"] == "deploy_webhook":
+ args = {
+ "category": "deploy_webhook",
+ "comments": "",
+ "repository": "",
+ "author": "webhook",
+ "project": "Caldance",
+ "properties": {
+ "environment": args.get("environment", "integration"),
+ "build": "caldance_{}.tar.gz".format(args.get("build", "master"))
+ }
+ }
+
+ return ([args], None)
+
+def deploy_hook_scheduler(project, timer=1):
+ return schedulers.AnyBranchScheduler(
+ change_filter=util.ChangeFilter(category="deploy_webhook", project=project),
+ name="{}_deploy".format(project), treeStableTimer=timer, builderNames=["{}_deploy".format(project)])
+
+def configure(c):
+ c["buildbotURL"] = E.BUILDBOT_URL
+ c["www"]["port"] = E.SOCKET
+
+ c["www"]["change_hook_dialects"]["base"] = {
+ "custom_class": CustomBase
+ }
+ c['workers'].append(worker.LocalWorker("generic-worker"))
+ c['workers'].append(worker.LocalWorker("deploy-worker"))
+
+ c['schedulers'].append(hook_scheduler("Caldance", timer=1))
+ c['schedulers'].append(force_scheduler("force_caldance", ["Caldance_build"]))
+ c['schedulers'].append(deploy_scheduler("deploy_caldance", ["Caldance_deploy"]))
+ c['schedulers'].append(deploy_hook_scheduler("Caldance", timer=1))
+
+ c['builders'].append(factory("caldance"))
+
+ c['builders'].append(deploy_factory("caldance"))
+
+ c['services'].append(SlackStatusPush(
+ name="slack_status_caldance",
+ builders=["Caldance_build", "Caldance_deploy"],
+ serverUrl=open(E.SECRETS_FILE + "/slack_webhook", "r").read().rstrip()))
+ c['services'].append(XMPPStatusPush(
+ name="xmpp_status_caldance",
+ builders=["Caldance_build", "Caldance_deploy"],
+ recipients=E.XMPP_RECIPIENTS,
+ password=open(E.SECRETS_FILE + "/notify_xmpp_password", "r").read().rstrip()))
+
+def factory(project, ignore_fails=False):
+ release_file = "{1}/{0}_%(kw:clean_branch)s.tar.gz"
+
+ package = util.Interpolate("{0}_%(kw:clean_branch)s.tar.gz".format(project), clean_branch=clean_branch)
+ package_dest = util.Interpolate(release_file.format(project, E.RELEASE_PATH), clean_branch=clean_branch)
+ package_url = util.Interpolate(release_file.format(project, E.RELEASE_URL), clean_branch=clean_branch)
+
+ factory = util.BuildFactory()
+ factory.addStep(steps.Git(logEnviron=False, repourl=E.GIT_URL,
+ sshPrivateKey=open(E.SSH_KEY_PATH).read().rstrip(),
+ sshHostKey=E.SSH_HOST_KEY, mode="full", method="copy"))
+ factory.addSteps(package_and_upload(package, package_dest, package_url))
+
+ return util.BuilderConfig(
+ name="{}_build".format(project.capitalize()),
+ workernames=["generic-worker"], factory=factory)
+
+def compute_build_infos(project):
+ @util.renderer
+ def compute(props):
+ import re, hashlib
+ build_file = props.getProperty("build")
+ package_dest = "{1}/{0}".format(build_file, E.RELEASE_PATH)
+ version = re.match(r"{0}_(.*).tar.gz".format(project), build_file).group(1)
+ with open(package_dest, "rb") as f:
+ sha = hashlib.sha256(f.read()).hexdigest()
+ return {
+ "build_version": version,
+ "build_hash": sha,
+ }
+ return compute
+
+@util.renderer
+def puppet_host(props):
+ environment = props["environment"] if props.hasProperty("environment") else "integration"
+ return E.PUPPET_HOST.get(environment, "host.invalid")
+
+def deploy_factory(project):
+ package_dest = util.Interpolate("{0}/%(prop:build)s".format(E.RELEASE_PATH))
+
+ factory = util.BuildFactory()
+ factory.addStep(steps.MasterShellCommand(command=["test", "-f", package_dest]))
+ factory.addStep(steps.SetProperties(properties=compute_build_infos(project)))
+ factory.addStep(LdapPush(environment=util.Property("environment"),
+ project=project, build_version=util.Property("build_version"),
+ build_hash=util.Property("build_hash"), ldap_password=util.Secret("ldap")))
+ factory.addStep(steps.MasterShellCommand(command=[
+ "ssh", "-o", "UserKnownHostsFile=/dev/null", "-o", "StrictHostKeyChecking=no", "-o", "CheckHostIP=no", "-i", E.SSH_KEY_PATH, puppet_host]))
+ return util.BuilderConfig(name="{}_deploy".format(project.capitalize()), workernames=["deploy-worker"], factory=factory)
+
+from twisted.internet import defer
+from buildbot.process.buildstep import FAILURE
+from buildbot.process.buildstep import SUCCESS
+from buildbot.process.buildstep import BuildStep
+
+class LdapPush(BuildStep):
+ name = "LdapPush"
+ renderables = ["environment", "project", "build_version", "build_hash", "ldap_password"]
+
+ def __init__(self, **kwargs):
+ self.environment = kwargs.pop("environment")
+ self.project = kwargs.pop("project")
+ self.build_version = kwargs.pop("build_version")
+ self.build_hash = kwargs.pop("build_hash")
+ self.ldap_password = kwargs.pop("ldap_password")
+ self.ldap_host = kwargs.pop("ldap_host", E.LDAP_HOST)
+ super().__init__(**kwargs)
+
+ def run(self):
+ import json
+ from ldap3 import Reader, Writer, Server, Connection, ObjectDef
+ server = Server(self.ldap_host)
+ conn = Connection(server,
+ user=E.LDAP_DN,
+ password=self.ldap_password)
+ conn.bind()
+ obj = ObjectDef("immaePuppetClass", conn)
+ r = Reader(conn, obj,
+ "cn=caldance.{},{}".format(self.environment, E.LDAP_ROLES_BASE))
+ r.search()
+ if len(r) > 0:
+ w = Writer.from_cursor(r)
+ for value in w[0].immaePuppetJson.values:
+ config = json.loads(value)
+ if "role::caldance::{}_version".format(self.project) in config:
+ config["role::caldance::{}_version".format(self.project)] = self.build_version
+ config["role::caldance::{}_sha256".format(self.project)] = self.build_hash
+ w[0].immaePuppetJson -= value
+ w[0].immaePuppetJson += json.dumps(config, indent=" ")
+ w.commit()
+ return defer.succeed(SUCCESS)
+ return defer.succeed(FAILURE)
--- /dev/null
+from buildbot.plugins import *
+from buildbot_common.build_helpers import *
+import os
+
+__all__ = [ "configure", "E" ]
+
+class E():
+ PROJECT = "cryptoportfolio"
+ BUILDBOT_URL = "https://git.immae.eu/buildbot/{}/".format(PROJECT)
+ SOCKET = "unix:/run/buildbot/{}.sock".format(PROJECT)
+ PB_SOCKET = "unix:address=/run/buildbot/{}_pb.sock".format(PROJECT)
+ RELEASE_PATH = "/var/lib/ftp/release.immae.eu/{}".format(PROJECT)
+ RELEASE_URL = "https://release.immae.eu/{}".format(PROJECT)
+ GIT_URL = "https://git.immae.eu/perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/{0}.git"
+ SSH_KEY_PATH = "/var/lib/buildbot/buildbot_key"
+ LDAP_HOST = "ldap.immae.eu"
+ LDAP_DN = "cn=buildbot,ou=services,dc=immae,dc=eu"
+ LDAP_ROLES_BASE = "ou=roles,ou=hosts,dc=immae,dc=eu"
+
+ PUPPET_HOST = {
+ "production": "root@cryptoportfolio.immae.eu",
+ "integration": "root@cryptoportfolio-dev.immae.eu"
+ }
+
+ # master.cfg
+ SECRETS_FILE = os.getcwd() + "/secrets"
+ LDAP_URL = "ldaps://ldap.immae.eu:636"
+ LDAP_ADMIN_USER = "cn=buildbot,ou=services,dc=immae,dc=eu"
+ LDAP_BASE = "dc=immae,dc=eu"
+ LDAP_PATTERN = "(uid=%(username)s)"
+ LDAP_GROUP_PATTERN = "(&(memberOf=cn=groups,ou=cryptoportfolio,cn=buildbot,ou=services,dc=immae,dc=eu)(member=%(dn)s))"
+ TITLE_URL = "https://git.immae.eu"
+ TITLE = "Cryptoportfolio"
+
+# eval .. dans .zshrc_local
+# mkdir -p $BUILD/go
+# export GOPATH=$BUILD/go
+# go get -u github.com/golang/dep/cmd/dep
+# export PATH=$PATH:$BUILD/go/bin
+# go get git.immae.eu/Cryptoportfolio/Front.git
+# cd $BUILD/go/src/git.immae.eu/Cryptoportfolio/Front.git
+# git checkout dev
+# dep ensure
+def configure(c):
+ c["buildbotURL"] = E.BUILDBOT_URL
+ c["www"]["port"] = E.SOCKET
+
+ c['workers'].append(worker.LocalWorker("generic-worker"))
+ c['workers'].append(worker.LocalWorker("deploy-worker"))
+
+ c['schedulers'].append(hook_scheduler("Trader"))
+ c['schedulers'].append(hook_scheduler("Front"))
+ c['schedulers'].append(force_scheduler(
+ "force_cryptoportfolio", ["Trader_build", "Front_build"]))
+ c['schedulers'].append(deploy_scheduler("deploy_cryptoportfolio",
+ ["Trader_deploy", "Front_deploy"]))
+
+ c['builders'].append(factory("trader"))
+ c['builders'].append(factory("front", ignore_fails=True))
+
+ c['builders'].append(deploy_factory("trader"))
+ c['builders'].append(deploy_factory("front"))
+
+ c['services'].append(SlackStatusPush(
+ name="slack_status_cryptoportfolio",
+ builders=["Front_build", "Trader_build", "Front_deploy", "Trader_deploy"],
+ serverUrl=open(E.SECRETS_FILE + "/slack_webhook", "r").read().rstrip()))
+
+def factory(project, ignore_fails=False):
+ release_file = "{1}/{0}/{0}_%(kw:clean_branch)s.tar.gz"
+
+ url = E.GIT_URL.format(project.capitalize())
+
+ package = util.Interpolate("{0}_%(kw:clean_branch)s.tar.gz".format(project), clean_branch=clean_branch)
+ package_dest = util.Interpolate(release_file.format(project, E.RELEASE_PATH), clean_branch=clean_branch)
+ package_url = util.Interpolate(release_file.format(project, E.RELEASE_URL), clean_branch=clean_branch)
+
+ factory = util.BuildFactory()
+ factory.addStep(steps.Git(logEnviron=False, repourl=url,
+ mode="full", method="copy"))
+ factory.addStep(steps.ShellCommand(name="make install",
+ logEnviron=False, haltOnFailure=(not ignore_fails),
+ warnOnFailure=ignore_fails, flunkOnFailure=(not ignore_fails),
+ command=["make", "install"]))
+ factory.addStep(steps.ShellCommand(name="make test",
+ logEnviron=False, haltOnFailure=(not ignore_fails),
+ warnOnFailure=ignore_fails, flunkOnFailure=(not ignore_fails),
+ command=["make", "test"]))
+ factory.addSteps(package_and_upload(package, package_dest, package_url))
+
+ return util.BuilderConfig(
+ name="{}_build".format(project.capitalize()),
+ workernames=["generic-worker"], factory=factory)
+
+def compute_build_infos(project):
+ @util.renderer
+ def compute(props):
+ import re, hashlib
+ build_file = props.getProperty("build")
+ package_dest = "{2}/{0}/{1}".format(project, build_file, E.RELEASE_PATH)
+ version = re.match(r"{0}_(.*).tar.gz".format(project), build_file).group(1)
+ with open(package_dest, "rb") as f:
+ sha = hashlib.sha256(f.read()).hexdigest()
+ return {
+ "build_version": version,
+ "build_hash": sha,
+ }
+ return compute
+
+@util.renderer
+def puppet_host(props):
+ environment = props["environment"] if props.hasProperty("environment") else "integration"
+ return E.PUPPET_HOST.get(environment, "host.invalid")
+
+def deploy_factory(project):
+ package_dest = util.Interpolate("{1}/{0}/%(prop:build)s".format(project, E.RELEASE_PATH))
+
+ factory = util.BuildFactory()
+ factory.addStep(steps.MasterShellCommand(command=["test", "-f", package_dest]))
+ factory.addStep(steps.SetProperties(properties=compute_build_infos(project)))
+ factory.addStep(LdapPush(environment=util.Property("environment"),
+ project=project, build_version=util.Property("build_version"),
+ build_hash=util.Property("build_hash"), ldap_password=util.Secret("ldap")))
+ factory.addStep(steps.MasterShellCommand(command=[
+ "ssh", "-o", "UserKnownHostsFile=/dev/null", "-o", "StrictHostKeyChecking=no", "-o", "CheckHostIP=no", "-i", E.SSH_KEY_PATH, puppet_host]))
+ return util.BuilderConfig(name="{}_deploy".format(project.capitalize()), workernames=["deploy-worker"], factory=factory)
+
+from twisted.internet import defer
+from buildbot.process.buildstep import FAILURE
+from buildbot.process.buildstep import SUCCESS
+from buildbot.process.buildstep import BuildStep
+
+class LdapPush(BuildStep):
+ name = "LdapPush"
+ renderables = ["environment", "project", "build_version", "build_hash", "ldap_password"]
+
+ def __init__(self, **kwargs):
+ self.environment = kwargs.pop("environment")
+ self.project = kwargs.pop("project")
+ self.build_version = kwargs.pop("build_version")
+ self.build_hash = kwargs.pop("build_hash")
+ self.ldap_password = kwargs.pop("ldap_password")
+ self.ldap_host = kwargs.pop("ldap_host", E.LDAP_HOST)
+ super().__init__(**kwargs)
+
+ def run(self):
+ import json
+ from ldap3 import Reader, Writer, Server, Connection, ObjectDef
+ server = Server(self.ldap_host)
+ conn = Connection(server,
+ user=E.LDAP_DN,
+ password=self.ldap_password)
+ conn.bind()
+ obj = ObjectDef("immaePuppetClass", conn)
+ r = Reader(conn, obj,
+ "cn=cryptoportfolio.{},{}".format(self.environment, E.LDAP_ROLES_BASE))
+ r.search()
+ if len(r) > 0:
+ w = Writer.from_cursor(r)
+ for value in w[0].immaePuppetJson.values:
+ config = json.loads(value)
+ if "role::cryptoportfolio::{}_version".format(self.project) in config:
+ config["role::cryptoportfolio::{}_version".format(self.project)] = self.build_version
+ config["role::cryptoportfolio::{}_sha256".format(self.project)] = self.build_hash
+ w[0].immaePuppetJson -= value
+ w[0].immaePuppetJson += json.dumps(config, indent=" ")
+ w.commit()
+ return defer.succeed(SUCCESS)
+ return defer.succeed(FAILURE)
--- /dev/null
+from buildbot.plugins import *
+from buildbot_common.build_helpers import *
+import os
+from buildbot.util import bytes2unicode
+import json
+
+__all__ = [ "configure", "E" ]
+
+class E():
+ PROJECT = "test"
+ BUILDBOT_URL = "https://git.immae.eu/buildbot/{}/".format(PROJECT)
+ SOCKET = "unix:/run/buildbot/{}.sock".format(PROJECT)
+ PB_SOCKET = "unix:address=/run/buildbot/{}_pb.sock".format(PROJECT)
+ RELEASE_PATH = "/var/lib/ftp/release.immae.eu/{}".format(PROJECT)
+ RELEASE_URL = "https://release.immae.eu/{}".format(PROJECT)
+ GIT_URL = "https://git.immae.eu/perso/Immae/TestProject.git"
+ SSH_KEY_PATH = "/var/lib/buildbot/buildbot_key"
+ PUPPET_HOST = "root@backup-1.v.immae.eu"
+ LDAP_HOST = "ldap.immae.eu"
+ LDAP_DN = "cn=buildbot,ou=services,dc=immae,dc=eu"
+ LDAP_ROLES_BASE = "ou=roles,ou=hosts,dc=immae,dc=eu"
+ XMPP_RECIPIENTS = os.environ["BUILDBOT_XMPP_RECIPIENTS"].split(" ")
+
+ # master.cfg
+ SECRETS_FILE = os.getcwd() + "/secrets"
+ LDAP_URL = "ldaps://ldap.immae.eu:636"
+ LDAP_ADMIN_USER = "cn=buildbot,ou=services,dc=immae,dc=eu"
+ LDAP_BASE = "dc=immae,dc=eu"
+ LDAP_PATTERN = "(uid=%(username)s)"
+ LDAP_GROUP_PATTERN = "(&(memberOf=cn=groups,ou=test,cn=buildbot,ou=services,dc=immae,dc=eu)(member=%(dn)s))"
+ TITLE_URL = "https://git.immae.eu/?p=perso/Immae/TestProject.git;a=summary"
+ TITLE = "Test project"
+
+class CustomBase(webhooks.base):
+ def getChanges(self, request):
+ try:
+ content = request.content.read()
+ args = json.loads(bytes2unicode(content))
+ except Exception as e:
+ raise ValueError("Error loading JSON: " + str(e))
+
+ args.setdefault("comments", "")
+ args.setdefault("repository", "")
+ args.setdefault("author", args.get("who", "unknown"))
+
+ if args["category"] == "deploy_webhook":
+ args = {
+ "category": "deploy_webhook",
+ "comments": "",
+ "repository": "",
+ "author": "unknown",
+ "project": "TestProject",
+ "properties": {
+ "environment": args.get("environment", "integration"),
+ "build": "test_{}.tar.gz".format(args.get("branch", "master"))
+ }
+ }
+
+ return ([args], None)
+
+def deploy_hook_scheduler(project, timer=1):
+ return schedulers.AnyBranchScheduler(
+ change_filter=util.ChangeFilter(category="deploy_webhook", project=project),
+ name="{}_deploy".format(project), treeStableTimer=timer, builderNames=["{}_deploy".format(project)])
+
+def configure(c):
+ c["buildbotURL"] = E.BUILDBOT_URL
+ c["www"]["port"] = E.SOCKET
+
+ c["www"]["change_hook_dialects"]["base"] = {
+ "custom_class": CustomBase
+ }
+ c['workers'].append(worker.LocalWorker("generic-worker-test"))
+ c['workers'].append(worker.LocalWorker("deploy-worker-test"))
+
+ c['schedulers'].append(hook_scheduler("TestProject", timer=1))
+ c['schedulers'].append(force_scheduler("force_test", ["TestProject_build"]))
+ c['schedulers'].append(deploy_scheduler("deploy_test", ["TestProject_deploy"]))
+ c['schedulers'].append(deploy_hook_scheduler("TestProject", timer=1))
+
+ c['builders'].append(factory())
+ c['builders'].append(deploy_factory())
+
+ c['services'].append(SlackStatusPush(
+ name="slack_status_test_project",
+ builders=["TestProject_build", "TestProject_deploy"],
+ serverUrl=open(E.SECRETS_FILE + "/slack_webhook", "r").read().rstrip()))
+ c['services'].append(XMPPStatusPush(
+ name="xmpp_status_test_project",
+ builders=["TestProject_build", "TestProject_deploy"],
+ recipients=E.XMPP_RECIPIENTS,
+ password=open(E.SECRETS_FILE + "/notify_xmpp_password", "r").read().rstrip()))
+
+def factory():
+ package = util.Interpolate("test_%(kw:clean_branch)s.tar.gz", clean_branch=clean_branch)
+ package_dest = util.Interpolate("{}/test_%(kw:clean_branch)s.tar.gz".format(E.RELEASE_PATH), clean_branch=clean_branch)
+ package_url = util.Interpolate("{}/test_%(kw:clean_branch)s.tar.gz".format(E.RELEASE_URL), clean_branch=clean_branch)
+
+ factory = util.BuildFactory()
+ factory.addStep(steps.Git(logEnviron=False,
+ repourl=E.GIT_URL, mode="full", method="copy"))
+ factory.addStep(steps.ShellCommand(name="env",
+ logEnviron=False, command=["env"]))
+ factory.addStep(steps.ShellCommand(name="pwd",
+ logEnviron=False, command=["pwd"]))
+ factory.addStep(steps.ShellCommand(name="true",
+ logEnviron=False, command=["true"]))
+ factory.addStep(steps.ShellCommand(name="echo",
+ logEnviron=False, command=["echo", package]))
+ factory.addSteps(package_and_upload(package, package_dest, package_url))
+
+ return util.BuilderConfig(name="TestProject_build", workernames=["generic-worker-test"], factory=factory)
+
+
+def compute_build_infos():
+ @util.renderer
+ def compute(props):
+ import re, hashlib
+ build_file = props.getProperty("build")
+ package_dest = "{}/{}".format(E.RELEASE_PATH, build_file)
+ version = re.match(r"{0}_(.*).tar.gz".format("test"), build_file).group(1)
+ with open(package_dest, "rb") as f:
+ sha = hashlib.sha256(f.read()).hexdigest()
+ return {
+ "build_version": version,
+ "build_hash": sha,
+ }
+ return compute
+
+@util.renderer
+def puppet_host(props):
+ return E.PUPPET_HOST
+
+def deploy_factory():
+ package_dest = util.Interpolate("{}/%(prop:build)s".format(E.RELEASE_PATH))
+
+ factory = util.BuildFactory()
+ factory.addStep(steps.MasterShellCommand(command=["test", "-f", package_dest]))
+ factory.addStep(steps.SetProperties(properties=compute_build_infos()))
+ factory.addStep(LdapPush(environment=util.Property("environment"),
+ build_version=util.Property("build_version"),
+ build_hash=util.Property("build_hash"),
+ ldap_password=util.Secret("ldap")))
+ factory.addStep(steps.MasterShellCommand(command=[
+ "ssh", "-o", "UserKnownHostsFile=/dev/null", "-o", "StrictHostKeyChecking=no", "-o", "CheckHostIP=no", "-i", E.SSH_KEY_PATH, puppet_host]))
+ return util.BuilderConfig(name="TestProject_deploy", workernames=["deploy-worker-test"], factory=factory)
+
+from twisted.internet import defer
+from buildbot.process.buildstep import FAILURE
+from buildbot.process.buildstep import SUCCESS
+from buildbot.process.buildstep import BuildStep
+
+class LdapPush(BuildStep):
+ name = "LdapPush"
+ renderables = ["environment", "build_version", "build_hash", "ldap_password"]
+
+ def __init__(self, **kwargs):
+ self.environment = kwargs.pop("environment")
+ self.build_version = kwargs.pop("build_version")
+ self.build_hash = kwargs.pop("build_hash")
+ self.ldap_password = kwargs.pop("ldap_password")
+ self.ldap_host = kwargs.pop("ldap_host", E.LDAP_HOST)
+ super().__init__(**kwargs)
+
+ def run(self):
+ import json
+ from ldap3 import Reader, Writer, Server, Connection, ObjectDef
+ server = Server(self.ldap_host)
+ conn = Connection(server,
+ user=E.LDAP_DN,
+ password=self.ldap_password)
+ conn.bind()
+ obj = ObjectDef("immaePuppetClass", conn)
+ r = Reader(conn, obj,
+ "cn=test.{},{}".format(self.environment, E.LDAP_ROLES_BASE))
+ r.search()
+ if len(r) > 0:
+ w = Writer.from_cursor(r)
+ for value in w[0].immaePuppetJson.values:
+ config = json.loads(value)
+ if "test_version" in config:
+ config["test_version"] = self.build_version
+ config["test_sha256"] = self.build_hash
+ w[0].immaePuppetJson -= value
+ w[0].immaePuppetJson += json.dumps(config, indent=" ")
+ w.commit()
+ return defer.succeed(SUCCESS)
+ return defer.succeed(FAILURE)
--- /dev/null
+{ lib, pkgs, config, ... }:
+{
+ options.services.myCertificates = {
+ certConfig = lib.mkOption {
+ default = {
+ webroot = "${config.security.acme.directory}/acme-challenge";
+ email = "ismael@bouya.org";
+ postRun = ''
+ systemctl reload httpdTools.service httpdInte.service httpdProd.service
+ '';
+ plugins = [ "cert.pem" "chain.pem" "fullchain.pem" "full.pem" "key.pem" "account_key.json" ];
+ };
+ description = "Default configuration for certificates";
+ };
+ };
+
+ config = {
+ services.websitesCerts = config.services.myCertificates.certConfig;
+ myServices.databasesCerts = config.services.myCertificates.certConfig;
+ myServices.ircCerts = config.services.myCertificates.certConfig;
+
+ security.acme.preliminarySelfsigned = true;
+
+ security.acme.certs = {
+ "eldiron" = config.services.myCertificates.certConfig // {
+ domain = "eldiron.immae.eu";
+ };
+ };
+
+ systemd.services = lib.attrsets.mapAttrs' (k: v:
+ lib.attrsets.nameValuePair "acme-selfsigned-${k}" (lib.mkBefore { script =
+ (lib.optionalString (builtins.elem "cert.pem" v.plugins) ''
+ cp $workdir/server.crt ${config.security.acme.directory}/${k}/cert.pem
+ chown '${v.user}:${v.group}' ${config.security.acme.directory}/${k}/cert.pem
+ chmod ${if v.allowKeysForGroup then "750" else "700"} ${config.security.acme.directory}/${k}/cert.pem
+ '') +
+ (lib.optionalString (builtins.elem "chain.pem" v.plugins) ''
+ cp $workdir/ca.crt ${config.security.acme.directory}/${k}/chain.pem
+ chown '${v.user}:${v.group}' ${config.security.acme.directory}/${k}/chain.pem
+ chmod ${if v.allowKeysForGroup then "750" else "700"} ${config.security.acme.directory}/${k}/chain.pem
+ '')
+ ; })
+ ) config.security.acme.certs // {
+ httpdProd.after = [ "acme-selfsigned-certificates.target" ];
+ httpdProd.wants = [ "acme-selfsigned-certificates.target" ];
+ httpdTools.after = [ "acme-selfsigned-certificates.target" ];
+ httpdTools.wants = [ "acme-selfsigned-certificates.target" ];
+ httpdInte.after = [ "acme-selfsigned-certificates.target" ];
+ httpdInte.wants = [ "acme-selfsigned-certificates.target" ];
+ };
+ };
+}
--- /dev/null
+{ lib, config, myconfig, ... }:
+let
+ cfg = config.myServices.databases;
+in
+{
+ options.myServices = {
+ databases.enable = lib.mkEnableOption "my databases service";
+ databasesCerts = lib.mkOption {
+ description = "Default databases configurations for certificates as accepted by acme";
+ };
+ };
+
+ config.nixpkgs.overlays = lib.mkIf cfg.enable [ (self: super: {
+ postgresql = self.postgresql_11_custom;
+ }) ];
+
+ config.myServices.databases = lib.mkIf cfg.enable {
+ mariadb = {
+ enable = true;
+ ldapConfig = {
+ inherit (myconfig.env.ldap) host base;
+ inherit (myconfig.env.databases.mysql.pam) dn filter password;
+ };
+ credentials.root = myconfig.env.databases.mysql.systemUsers.root;
+ };
+
+ openldap = {
+ accessFile = "${myconfig.privateFiles}/ldap.conf";
+ baseDn = myconfig.env.ldap.base;
+ rootDn = myconfig.env.ldap.root_dn;
+ rootPw = myconfig.env.ldap.root_pw;
+ enable = true;
+ };
+
+ postgresql = {
+ ldapConfig = {
+ inherit (myconfig.env.ldap) host base;
+ inherit (myconfig.env.databases.postgresql.pam) dn filter password;
+ };
+ replicationLdapConfig = {
+ inherit (myconfig.env.ldap) host base password;
+ dn = myconfig.env.ldap.host_dn;
+ };
+ authorizedHosts = {
+ immaeEu = [{
+ ip4 = [
+ myconfig.env.servers.immaeEu.ips.main.ip4
+ myconfig.env.servers.immaeEu.ips.alt.ip4
+ ];
+ }];
+ };
+ replicationHosts = {
+ backup-1 = {
+ ip4 = [myconfig.env.servers.backup-1.ips.main.ip4];
+ ip6 = myconfig.env.servers.backup-1.ips.main.ip6;
+ };
+ };
+ enable = true;
+ };
+
+ redis.enable = true;
+ };
+}
--- /dev/null
+{ lib, pkgs, config, ... }:
+let
+ cfg = config.myServices.databases.mariadb;
+in {
+ options.myServices.databases = {
+ mariadb = {
+ enable = lib.mkOption {
+ default = cfg.enable;
+ example = true;
+ description = "Whether to enable mariadb database";
+ type = lib.types.bool;
+ };
+ package = lib.mkOption {
+ type = lib.types.package;
+ default = pkgs.mariadb;
+ description = ''
+ Mariadb package to use.
+ '';
+ };
+ credentials = lib.mkOption {
+ default = {};
+ description = "Credentials";
+ type = lib.types.attrsOf lib.types.str;
+ };
+ ldapConfig = lib.mkOption {
+ description = "LDAP configuration to allow PAM identification via LDAP";
+ type = lib.types.submodule {
+ options = {
+ host = lib.mkOption { type = lib.types.str; };
+ base = lib.mkOption { type = lib.types.str; };
+ dn = lib.mkOption { type = lib.types.str; };
+ password = lib.mkOption { type = lib.types.str; };
+ filter = lib.mkOption { type = lib.types.str; };
+ };
+ };
+ };
+ dataDir = lib.mkOption {
+ type = lib.types.path;
+ default = "/var/lib/mysql";
+ description = ''
+ The directory where Mariadb stores its data.
+ '';
+ };
+ # Output variables
+ socketsDir = lib.mkOption {
+ type = lib.types.path;
+ default = "/run/mysqld";
+ description = ''
+ The directory where Mariadb puts sockets.
+ '';
+ };
+ sockets = lib.mkOption {
+ type = lib.types.attrsOf lib.types.path;
+ default = {
+ mysqld = "${cfg.socketsDir}/mysqld.sock";
+ };
+ readOnly = true;
+ description = ''
+ Mariadb sockets
+ '';
+ };
+ };
+ };
+
+ config = lib.mkIf cfg.enable {
+ networking.firewall.allowedTCPPorts = [ 3306 ];
+
+ # for adminer, ssl is implemented with mysqli only, which is
+ # currently disabled because it’s not compatible with pam.
+ # Thus we need to generate two users for each 'remote': one remote
+ # with SSL, and one localhost without SSL.
+ # User identified by LDAP:
+ # CREATE USER foo@% IDENTIFIED VIA pam USING 'mysql' REQUIRE SSL;
+ # CREATE USER foo@localhost IDENTIFIED VIA pam USING 'mysql';
+ services.mysql = {
+ enable = true;
+ package = cfg.package;
+ dataDir = cfg.dataDir;
+ extraOptions = ''
+ ssl_ca = ${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt
+ ssl_key = ${config.security.acme.directory}/mysql/key.pem
+ ssl_cert = ${config.security.acme.directory}/mysql/fullchain.pem
+ '';
+ };
+
+ users.users.mysql.extraGroups = [ "keys" ];
+ security.acme.certs."mysql" = config.myServices.databasesCerts // {
+ user = "mysql";
+ group = "mysql";
+ plugins = [ "fullchain.pem" "key.pem" "account_key.json" ];
+ domain = "db-1.immae.eu";
+ postRun = ''
+ systemctl restart mysql.service
+ '';
+ };
+
+ secrets.keys = [
+ {
+ dest = "mysql/mysqldump";
+ permissions = "0400";
+ user = "root";
+ group = "root";
+ text = ''
+ [mysqldump]
+ user = root
+ password = ${cfg.credentials.root}
+ '';
+ }
+ {
+ dest = "mysql/pam";
+ permissions = "0400";
+ user = "mysql";
+ group = "mysql";
+ text = with cfg.ldapConfig; ''
+ host ${host}
+ base ${base}
+ binddn ${dn}
+ bindpw ${password}
+ pam_filter ${filter}
+ ssl start_tls
+ '';
+ }
+ ];
+
+ services.cron = {
+ enable = true;
+ systemCronJobs = [
+ ''
+ 30 1,13 * * * root ${cfg.package}/bin/mysqldump --defaults-file=${config.secrets.location}/mysql/mysqldump --all-databases > ${cfg.dataDir}/backup.sql
+ ''
+ ];
+ };
+
+ security.pam.services = let
+ pam_ldap = "${pkgs.pam_ldap}/lib/security/pam_ldap.so";
+ in [
+ {
+ name = "mysql";
+ text = ''
+ # https://mariadb.com/kb/en/mariadb/pam-authentication-plugin/
+ auth required ${pam_ldap} config=${config.secrets.location}/mysql/pam
+ account required ${pam_ldap} config=${config.secrets.location}/mysql/pam
+ '';
+ }
+ ];
+
+ };
+}
+
--- /dev/null
+{ lib, pkgs, config, ... }:
+let
+ cfg = config.myServices.databases.openldap;
+ ldapConfig = let
+ kerberosSchema = pkgs.fetchurl {
+ url = "https://raw.githubusercontent.com/krb5/krb5/master/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema";
+ sha256 = "17fnkkf6s3lznsl7wp6914pqsc78d038rh38l638big8z608ksww";
+ };
+ puppetSchema = pkgs.fetchurl {
+ url = "https://raw.githubusercontent.com/puppetlabs/puppet/master/ext/ldap/puppet.schema";
+ sha256 = "11bjf5zfvqlim7p9vddcafs0wiq3v8ys77x8h6fbp9c6bdfh0awh";
+ };
+ in ''
+ include ${pkgs.openldap}/etc/schema/core.schema
+ include ${pkgs.openldap}/etc/schema/cosine.schema
+ include ${pkgs.openldap}/etc/schema/inetorgperson.schema
+ include ${pkgs.openldap}/etc/schema/nis.schema
+ include ${puppetSchema}
+ include ${kerberosSchema}
+ include ${./immae.schema}
+
+ pidfile ${cfg.pids.pid}
+ argsfile ${cfg.pids.args}
+
+ moduleload back_hdb
+ backend hdb
+
+ moduleload memberof
+ database hdb
+ suffix "${cfg.baseDn}"
+ rootdn "${cfg.rootDn}"
+ include ${config.secrets.location}/ldap/password
+ directory ${cfg.dataDir}
+ overlay memberof
+
+ TLSCertificateFile ${config.security.acme.directory}/ldap/cert.pem
+ TLSCertificateKeyFile ${config.security.acme.directory}/ldap/key.pem
+ TLSCACertificateFile ${config.security.acme.directory}/ldap/fullchain.pem
+ TLSCACertificatePath ${pkgs.cacert.unbundled}/etc/ssl/certs/
+ #This makes openldap crash
+ #TLSCipherSuite DEFAULT
+
+ sasl-host kerberos.immae.eu
+ include ${config.secrets.location}/ldap/access
+ '';
+in
+{
+ options.myServices.databases = {
+ openldap = {
+ enable = lib.mkOption {
+ default = cfg.enable;
+ example = true;
+ description = "Whether to enable ldap";
+ type = lib.types.bool;
+ };
+ baseDn = lib.mkOption {
+ type = lib.types.str;
+ description = ''
+ Base DN for LDAP
+ '';
+ };
+ rootDn = lib.mkOption {
+ type = lib.types.str;
+ description = ''
+ Root DN
+ '';
+ };
+ rootPw = lib.mkOption {
+ type = lib.types.str;
+ description = ''
+ Root (Hashed) password
+ '';
+ };
+ accessFile = lib.mkOption {
+ type = lib.types.path;
+ description = ''
+ The file path that defines the access
+ '';
+ };
+ dataDir = lib.mkOption {
+ type = lib.types.path;
+ default = "/var/lib/openldap";
+ description = ''
+ The directory where Openldap stores its data.
+ '';
+ };
+ socketsDir = lib.mkOption {
+ type = lib.types.path;
+ default = "/run/slapd";
+ description = ''
+ The directory where Openldap puts sockets and pid files.
+ '';
+ };
+ # Output variables
+ pids = lib.mkOption {
+ type = lib.types.attrsOf lib.types.path;
+ default = {
+ pid = "${cfg.socketsDir}/slapd.pid";
+ args = "${cfg.socketsDir}/slapd.args";
+ };
+ readOnly = true;
+ description = ''
+ Slapd pid files
+ '';
+ };
+ };
+ };
+
+ config = lib.mkIf cfg.enable {
+ secrets.keys = [
+ {
+ dest = "ldap/password";
+ permissions = "0400";
+ user = "openldap";
+ group = "openldap";
+ text = "rootpw ${cfg.rootPw}";
+ }
+ {
+ dest = "ldap/access";
+ permissions = "0400";
+ user = "openldap";
+ group = "openldap";
+ text = builtins.readFile "${cfg.accessFile}";
+ }
+ ];
+ users.users.openldap.extraGroups = [ "keys" ];
+ networking.firewall.allowedTCPPorts = [ 636 389 ];
+
+ services.cron = {
+ systemCronJobs = [
+ ''
+ 35 1,13 * * * root ${pkgs.openldap}/bin/slapcat -v -b "dc=immae,dc=eu" -f ${pkgs.writeText "slapd.conf" ldapConfig} -l ${cfg.dataDir}/backup.ldif | ${pkgs.gnugrep}/bin/grep -v "^# id=[0-9a-f]*$"
+ ''
+ ];
+ };
+
+ security.acme.certs."ldap" = config.myServices.databasesCerts // {
+ user = "openldap";
+ group = "openldap";
+ plugins = [ "fullchain.pem" "key.pem" "cert.pem" "account_key.json" ];
+ domain = "ldap.immae.eu";
+ postRun = ''
+ systemctl restart openldap.service
+ '';
+ };
+
+ services.openldap = {
+ enable = true;
+ dataDir = cfg.dataDir;
+ urlList = [ "ldap://" "ldaps://" ];
+ extraConfig = ldapConfig;
+ };
+ };
+}
--- /dev/null
+# vim: set filetype=slapd:
+objectIdentifier Immaeroot 1.3.6.1.4.1.50071
+
+objectIdentifier Immae Immaeroot:2
+objectIdentifier ImmaeattributeType Immae:3
+objectIdentifier ImmaeobjectClass Immae:4
+
+# TT-RSS
+attributetype ( ImmaeattributeType:1 NAME 'immaeTtrssLogin'
+ DESC 'login for TTRSS'
+ EQUALITY caseIgnoreMatch
+ SUBSTR caseIgnoreSubstringsMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} )
+
+objectclass ( ImmaeobjectClass:1 NAME 'immaeTtrssClass'
+ DESC 'Expansion of the existing object classes for ttrss'
+ SUP top AUXILIARY
+ MUST ( immaeTtrssLogin ) )
+
+# FTP
+attributetype ( ImmaeattributeType:2 NAME 'immaeFtpDirectory'
+ DESC 'home directory for ftp'
+ EQUALITY caseExactIA5Match
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+attributetype ( ImmaeattributeType:3 NAME 'immaeFtpUid'
+ DESC 'user id for ftp'
+ EQUALITY integerMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 )
+
+attributetype ( ImmaeattributeType:4 NAME 'immaeFtpGid'
+ DESC 'group id for ftp'
+ EQUALITY integerMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 )
+
+objectclass ( ImmaeobjectClass:2 NAME 'immaeFtpClass'
+ DESC 'Expansion of the existing object classes for ftp'
+ SUP top AUXILIARY
+ MUST ( immaeFtpDirectory $ immaeFtpGid $ immaeFtpUid ) )
+
+
+# SSH keys
+attributetype ( ImmaeattributeType:5 NAME 'immaeSshKey'
+ DESC 'OpenSSH Public key'
+ EQUALITY octetStringMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 )
+
+objectClass ( ImmaeobjectClass:3 NAME 'immaeSshClass'
+ DESC 'OpenSSH class'
+ SUP top AUXILIARY
+ MAy ( immaeSSHKey ) )
+
+# Specific access
+attributetype (ImmaeattributeType:6 NAME 'immaeAccessDn'
+ EQUALITY distinguishedNameMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )
+
+attributetype (ImmaeattributeType:17 NAME 'immaeAccessWriteDn'
+ EQUALITY distinguishedNameMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )
+
+attributetype (ImmaeattributeType:18 NAME 'immaeAccessReadSubtree'
+ EQUALITY distinguishedNameMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )
+
+objectClass ( ImmaeobjectClass:4 NAME 'immaeAccessClass'
+ DESC 'Access class'
+ SUP top AUXILIARY
+ MAY ( immaeAccessDn $ immaeAccessWriteDn $ immaeAccessReadSubtree ) )
+
+# Xmpp uid
+attributetype ( ImmaeattributeType:7 NAME 'immaeXmppUid'
+ DESC 'user part for Xmpp'
+ EQUALITY caseIgnoreMatch
+ SUBSTR caseIgnoreSubstringsMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} )
+
+objectclass ( ImmaeobjectClass:5 NAME 'immaeXmppClass'
+ DESC 'Expansion of the existing object classes for XMPP'
+ SUP top AUXILIARY
+ MUST ( immaeXmppUid ) )
+
+# Postfix accounts
+attributetype ( ImmaeattributeType:8 NAME 'immaePostfixAddress'
+ DESC 'the dovecot address to match as username'
+ EQUALITY caseIgnoreIA5Match
+ SUBSTR caseIgnoreIA5SubstringsMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} )
+
+attributetype ( ImmaeattributeType:9 NAME 'immaePostfixHome'
+ DESC 'the postfix home directory'
+ EQUALITY caseExactIA5Match
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+
+attributetype ( ImmaeattributeType:10 NAME 'immaePostfixMail'
+ DESC 'the dovecot mail location'
+ EQUALITY caseExactIA5Match
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+
+attributetype ( ImmaeattributeType:11 NAME 'immaePostfixUid'
+ DESC 'the dovecot uid'
+ EQUALITY caseExactIA5Match
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+
+attributetype ( ImmaeattributeType:12 NAME 'immaePostfixGid'
+ DESC 'the dovecot gid'
+ EQUALITY caseExactIA5Match
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
+
+objectclass ( ImmaeobjectClass:6 NAME 'immaePostfixClass'
+ DESC 'Expansion of the existing object classes for Postfix'
+ SUP top AUXILIARY
+ MUST ( immaePostfixAddress $ immaePostfixHome $
+ immaePostfixMail $ immaePostfixUid $ immaePostfixGid )
+ )
+
+# Tinc informations
+# Domaine = une classe a part ou une partie du dn ?
+# attributetype ( ImmaeattributeType:13 NAME 'immaeTincIpSegment'
+# DESC 'the internal ip segment in tinc'
+# EQUALITY caseIgnoreIA5Match
+# SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} )
+#
+# attributetype ( ImmaeattributeType:14 NAME 'immaeTincSubdomain'
+# DESC 'the host subdomain'
+# EQUALITY caseIgnoreIA5Match
+# SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} )
+#
+# attributetype ( ImmaeattributeType:15 NAME 'immaeTincHostname'
+# DESC 'the host name'
+# EQUALITY caseIgnoreIA5Match
+# SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} )
+#
+# objectclass ( ImmaeobjectClass:7 NAME 'immaeTincHostClass'
+# DESC 'Expansion of the existing object classes for Tinc'
+# SUP top AUXILIARY
+# MUST ( immaeTincInternalIp $ immaeTincSubdomain $
+# immaeTincHostname )
+# )
+
+attributetype (ImmaeattributeType:16 NAME 'immaePuppetJson'
+ DESC 'Puppet hiera json'
+ EQUALITY octetStringMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 )
+
+objectclass ( ImmaeobjectClass:8 NAME 'immaePuppetClass'
+ DESC 'Expansion of the existing object classes for Puppet'
+ SUP top AUXILIARY
+ MUST ( immaePuppetJson )
+ )
+
+attributetype (ImmaeattributeType:19 NAME 'immaeTaskId'
+ DESC 'Taskwarrior server Org:Name:Key'
+ EQUALITY caseIgnoreMatch
+ SUBSTR caseIgnoreSubstringsMatch
+ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} )
+
+objectclass ( ImmaeobjectClass:9 NAME 'immaeTaskClass'
+ DESC 'Expansion of the existing object classes for Task'
+ SUP top AUXILIARY
+ MUST ( immaeTaskId )
+ )
+
+# Last:
+# attributetype (ImmaeattributeType:19 NAME 'immaeTaskId'
+# objectclass ( ImmaeobjectClass:9 NAME 'immaeTaskClass'
+
--- /dev/null
+{ lib, pkgs, config, ... }:
+let
+ cfg = config.myServices.databases.postgresql;
+in {
+ options.myServices.databases = {
+ postgresql = {
+ enable = lib.mkOption {
+ default = cfg.enable;
+ example = true;
+ description = "Whether to enable postgresql database";
+ type = lib.types.bool;
+ };
+ package = lib.mkOption {
+ type = lib.types.package;
+ default = pkgs.postgresql;
+ description = ''
+ Postgresql package to use.
+ '';
+ };
+ ldapConfig = lib.mkOption {
+ description = "LDAP configuration to allow PAM identification via LDAP";
+ type = lib.types.submodule {
+ options = {
+ host = lib.mkOption { type = lib.types.str; };
+ base = lib.mkOption { type = lib.types.str; };
+ dn = lib.mkOption { type = lib.types.str; };
+ password = lib.mkOption { type = lib.types.str; };
+ filter = lib.mkOption { type = lib.types.str; };
+ };
+ };
+ };
+ replicationLdapConfig = lib.mkOption {
+ description = "LDAP configuration to allow replication";
+ type = lib.types.submodule {
+ options = {
+ host = lib.mkOption { type = lib.types.str; };
+ base = lib.mkOption { type = lib.types.str; };
+ dn = lib.mkOption { type = lib.types.str; };
+ password = lib.mkOption { type = lib.types.str; };
+ };
+ };
+ };
+ authorizedHosts = lib.mkOption {
+ default = {};
+ description = "Hosts to allow connections from";
+ type = lib.types.attrsOf (lib.types.listOf (lib.types.submodule {
+ options = {
+ method = lib.mkOption {
+ default = "md5";
+ type = lib.types.str;
+ };
+ username = lib.mkOption {
+ default = "all";
+ type = lib.types.str;
+ };
+ database = lib.mkOption {
+ default = "all";
+ type = lib.types.str;
+ };
+ ip4 = lib.mkOption {
+ default = [];
+ type = lib.types.listOf lib.types.str;
+ };
+ ip6 = lib.mkOption {
+ default = [];
+ type = lib.types.listOf lib.types.str;
+ };
+ };
+ }));
+ };
+ replicationHosts = lib.mkOption {
+ default = {};
+ description = "Hosts to allow replication from";
+ type = lib.types.attrsOf (lib.types.submodule {
+ options = {
+ ip4 = lib.mkOption {
+ type = lib.types.listOf lib.types.str;
+ };
+ ip6 = lib.mkOption {
+ type = lib.types.listOf lib.types.str;
+ };
+ };
+ });
+ };
+ # Output variables
+ socketsDir = lib.mkOption {
+ type = lib.types.path;
+ default = "/run/postgresql";
+ description = ''
+ The directory where Postgresql puts sockets.
+ '';
+ readOnly = true;
+ };
+ systemdRuntimeDirectory = lib.mkOption {
+ type = lib.types.str;
+ # Use ReadWritePaths= instead if socketsDir is outside of /run
+ default = assert lib.strings.hasPrefix "/run/" cfg.socketsDir;
+ lib.strings.removePrefix "/run/" cfg.socketsDir;
+ description = ''
+ Adjusted Postgresql sockets directory for systemd
+ '';
+ readOnly = true;
+ };
+ };
+ };
+
+ config = lib.mkIf cfg.enable {
+ networking.firewall.allowedTCPPorts = [ 5432 ];
+
+ security.acme.certs."postgresql" = config.myServices.databasesCerts // {
+ user = "postgres";
+ group = "postgres";
+ plugins = [ "fullchain.pem" "key.pem" "account_key.json" ];
+ domain = "db-1.immae.eu";
+ postRun = ''
+ systemctl reload postgresql.service
+ '';
+ };
+
+ systemd.services.postgresql.serviceConfig = {
+ SupplementaryGroups = "keys";
+ RuntimeDirectory = cfg.systemdRuntimeDirectory;
+ };
+ services.postgresql = {
+ enable = true;
+ package = cfg.package;
+ enableTCPIP = true;
+ extraConfig = ''
+ max_connections = 100
+ wal_level = logical
+ shared_buffers = 512MB
+ work_mem = 10MB
+ max_wal_size = 1GB
+ min_wal_size = 80MB
+ log_timezone = 'Europe/Paris'
+ datestyle = 'iso, mdy'
+ timezone = 'Europe/Paris'
+ lc_messages = 'en_US.UTF-8'
+ lc_monetary = 'en_US.UTF-8'
+ lc_numeric = 'en_US.UTF-8'
+ lc_time = 'en_US.UTF-8'
+ default_text_search_config = 'pg_catalog.english'
+ ssl = on
+ ssl_cert_file = '${config.security.acme.directory}/postgresql/fullchain.pem'
+ ssl_key_file = '${config.security.acme.directory}/postgresql/key.pem'
+ '';
+ authentication = let
+ hosts = builtins.concatStringsSep "\n" (
+ lib.lists.flatten (lib.mapAttrsToList (k: vs: map (v:
+ map (ip6: "hostssl ${v.database} ${v.username} ${ip6}/128 ${v.method}") v.ip6
+ ++ map (ip4: "hostssl ${v.database} ${v.username} ${ip4}/32 ${v.method}") v.ip4
+ ) vs) cfg.authorizedHosts
+ ));
+ replication = builtins.concatStringsSep "\n" (
+ lib.lists.flatten (lib.mapAttrsToList (k: v:
+ map (ip6: "hostssl replication ${k} ${ip6}/128 pam pamservice=postgresql_replication") v.ip6
+ ++ map (ip4: "hostssl replication ${k} ${ip4}/32 pam pamservice=postgresql_replication") v.ip4
+ ) cfg.replicationHosts
+ ));
+ in ''
+ local all postgres ident
+ local all all md5
+ ${hosts}
+ hostssl all all all pam
+ ${replication}
+ '';
+ };
+
+ secrets.keys = [
+ {
+ dest = "postgresql/pam";
+ permissions = "0400";
+ group = "postgres";
+ user = "postgres";
+ text = with cfg.ldapConfig; ''
+ host ${host}
+ base ${base}
+ binddn ${dn}
+ bindpw ${password}
+ pam_filter ${filter}
+ ssl start_tls
+ '';
+ }
+ {
+ dest = "postgresql/pam_replication";
+ permissions = "0400";
+ group = "postgres";
+ user = "postgres";
+ text = with cfg.replicationLdapConfig; ''
+ host ${host}
+ base ${base}
+ binddn ${dn}
+ bindpw ${password}
+ pam_login_attribute cn
+ ssl start_tls
+ '';
+ }
+ ];
+
+ security.pam.services = let
+ pam_ldap = "${pkgs.pam_ldap}/lib/security/pam_ldap.so";
+ in [
+ {
+ name = "postgresql";
+ text = ''
+ auth required ${pam_ldap} config=${config.secrets.location}/postgresql/pam
+ account required ${pam_ldap} config=${config.secrets.location}/postgresql/pam
+ '';
+ }
+ {
+ name = "postgresql_replication";
+ text = ''
+ auth required ${pam_ldap} config=${config.secrets.location}/postgresql/pam_replication
+ account required ${pam_ldap} config=${config.secrets.location}/postgresql/pam_replication
+ '';
+ }
+ ];
+ };
+}
+
--- /dev/null
+{ lib, config, ... }:
+let
+ cfg = config.myServices.databases.redis;
+in {
+ options.myServices.databases.redis = {
+ enable = lib.mkOption {
+ default = cfg.enable;
+ example = true;
+ description = "Whether to enable redis database";
+ type = lib.types.bool;
+ };
+ socketsDir = lib.mkOption {
+ type = lib.types.path;
+ default = "/run/redis";
+ description = ''
+ The directory where Redis puts sockets.
+ '';
+ };
+ # Output variables
+ systemdRuntimeDirectory = lib.mkOption {
+ type = lib.types.str;
+ # Use ReadWritePaths= instead if socketsDir is outside of /run
+ default = assert lib.strings.hasPrefix "/run/" cfg.socketsDir;
+ lib.strings.removePrefix "/run/" cfg.socketsDir;
+ description = ''
+ Adjusted redis sockets directory for systemd
+ '';
+ readOnly = true;
+ };
+ sockets = lib.mkOption {
+ type = lib.types.attrsOf lib.types.path;
+ default = {
+ redis = "${cfg.socketsDir}/redis.sock";
+ };
+ readOnly = true;
+ description = ''
+ Redis sockets
+ '';
+ };
+ };
+
+ config = lib.mkIf cfg.enable {
+ users.users.redis.uid = config.ids.uids.redis;
+ users.groups.redis.gid = config.ids.gids.redis;
+ services.redis = rec {
+ enable = true;
+ bind = "127.0.0.1";
+ unixSocket = cfg.sockets.redis;
+ extraConfig = ''
+ unixsocketperm 777
+ maxclients 1024
+ '';
+ };
+ systemd.services.redis.serviceConfig.RuntimeDirectory = cfg.systemdRuntimeDirectory;
+ };
+}
+
--- /dev/null
+let
+set = {
+ # adatped from nixpkgs/nixos/modules/services/web-servers/apache-httpd/default.nix
+ httpdInte = import ../websites/httpd-service-builder.nix { httpdName = "Inte"; withUsers = false; };
+ httpdProd = import ../websites/httpd-service-builder.nix { httpdName = "Prod"; withUsers = false; };
+ httpdTools = import ../websites/httpd-service-builder.nix { httpdName = "Tools"; withUsers = true; };
+
+ databases = ./databases;
+ mariadb = ./databases/mariadb.nix;
+ openldap = ./databases/openldap;
+ postgresql = ./databases/postgresql.nix;
+ redis = ./databases/redis.nix;
+
+ websites = ./websites;
+ atenInte = ./websites/aten/integration.nix;
+ atenProd = ./websites/aten/production.nix;
+ capitainesProd = ./websites/capitaines/production.nix;
+ chloeInte = ./websites/chloe/integration.nix;
+ chloeProd = ./websites/chloe/production.nix;
+ connexionswingInte = ./websites/connexionswing/integration.nix;
+ connexionswingProd = ./websites/connexionswing/production.nix;
+ denisejeromeProd = ./websites/denisejerome/production.nix;
+ emiliaProd = ./websites/emilia/production.nix;
+ florianApp = ./websites/florian/app.nix;
+ florianInte = ./websites/florian/integration.nix;
+ florianProd = ./websites/florian/production.nix;
+ immaeProd = ./websites/immae/production.nix;
+ immaeRelease = ./websites/immae/release.nix;
+ immaeTemp = ./websites/immae/temp.nix;
+ leilaProd = ./websites/leila/production.nix;
+ ludivinecassalInte = ./websites/ludivinecassal/integration.nix;
+ ludivinecassalProd = ./websites/ludivinecassal/production.nix;
+ nassimeProd = ./websites/nassime/production.nix;
+ naturaloutilProd = ./websites/naturaloutil/production.nix;
+ papaSurveillance = ./websites/papa/surveillance.nix;
+ piedsjalouxInte = ./websites/piedsjaloux/integration.nix;
+ piedsjalouxProd = ./websites/piedsjaloux/production.nix;
+
+ cloudTool = ./websites/tools/cloud;
+ davTool = ./websites/tools/dav;
+ dbTool = ./websites/tools/db;
+ diasporaTool = ./websites/tools/diaspora;
+ etherTool = ./websites/tools/ether;
+ gitTool = ./websites/tools/git;
+ mastodonTool = ./websites/tools/mastodon;
+ mgoblinTool = ./websites/tools/mgoblin;
+ peertubeTool = ./websites/tools/peertube;
+ toolsTool = ./websites/tools/tools;
+
+ buildbot = ./buildbot;
+ certificates = ./certificates.nix;
+ gitolite = ./gitolite;
+ irc = ./irc.nix;
+ pub = ./pub;
+ tasks = ./tasks;
+ dns = ./dns.nix;
+ ftp = ./ftp.nix;
+ mail = ./mail.nix;
+ mpd = ./mpd.nix;
+ ssh = ./ssh;
+
+ system = ./system.nix;
+};
+in
+builtins.listToAttrs (map (attr: { name = "priv${attr}"; value = set.${attr}; }) (builtins.attrNames set))
--- /dev/null
+{ lib, pkgs, config, myconfig, ... }:
+{
+ config = let
+ cfg = config.services.bind;
+ configFile = pkgs.writeText "named.conf" ''
+ include "/etc/bind/rndc.key";
+ controls {
+ inet 127.0.0.1 allow {localhost;} keys {"rndc-key";};
+ };
+
+ acl cachenetworks { ${lib.concatMapStrings (entry: " ${entry}; ") cfg.cacheNetworks} };
+ acl badnetworks { ${lib.concatMapStrings (entry: " ${entry}; ") cfg.blockedNetworks} };
+
+ options {
+ listen-on { ${lib.concatMapStrings (entry: " ${entry}; ") cfg.listenOn} };
+ listen-on-v6 { ${lib.concatMapStrings (entry: " ${entry}; ") cfg.listenOnIpv6} };
+ allow-query { cachenetworks; };
+ blackhole { badnetworks; };
+ forward first;
+ forwarders { ${lib.concatMapStrings (entry: " ${entry}; ") cfg.forwarders} };
+ directory "/var/run/named";
+ pid-file "/var/run/named/named.pid";
+ ${cfg.extraOptions}
+ };
+
+ ${cfg.extraConfig}
+
+ ${ lib.concatMapStrings
+ ({ name, file, master ? true, extra ? "", slaves ? [], masters ? [] }:
+ ''
+ zone "${name}" {
+ type ${if master then "master" else "slave"};
+ file "${file}";
+ ${ if lib.lists.length slaves > 0 then
+ ''
+ allow-transfer {
+ ${lib.concatMapStrings (ip: "${ip};\n") slaves}
+ };
+ '' else ""}
+ ${ if lib.lists.length masters > 0 then
+ ''
+ masters {
+ ${lib.concatMapStrings (ip: "${ip};\n") masters}
+ };
+ '' else ""}
+ allow-query { any; };
+ ${extra}
+ };
+ '')
+ cfg.zones }
+ '';
+ in
+ {
+ networking.firewall.allowedUDPPorts = [ 53 ];
+ networking.firewall.allowedTCPPorts = [ 53 ];
+ services.bind = {
+ enable = true;
+ cacheNetworks = ["any"];
+ configFile = configFile;
+ extraOptions = ''
+ allow-recursion { 127.0.0.1; };
+ allow-transfer { none; };
+
+ notify-source ${myconfig.env.servers.eldiron.ips.main.ip4};
+ notify-source-v6 ${lib.head myconfig.env.servers.eldiron.ips.main.ip6};
+ version none;
+ hostname none;
+ server-id none;
+ '';
+ zones = with myconfig.env.dns;
+ assert (builtins.substring ((builtins.stringLength soa.email)-1) 1 soa.email) != ".";
+ assert (builtins.substring ((builtins.stringLength soa.primary)-1) 1 soa.primary) != ".";
+ (map (conf: {
+ name = conf.name;
+ master = false;
+ file = "/var/run/named/${conf.name}.zone";
+ masters = if lib.attrsets.hasAttr "masters" conf
+ then lib.lists.flatten (map (n: lib.attrsets.attrValues ns.${n}) conf.masters)
+ else [];
+ }) slaveZones)
+ ++ (map (conf: {
+ name = conf.name;
+ master = true;
+ extra = if lib.attrsets.hasAttr "extra" conf then conf.extra else "";
+ slaves = if lib.attrsets.hasAttr "slaves" conf
+ then lib.lists.flatten (map (n: lib.attrsets.attrValues ns.${n}) conf.slaves)
+ else [];
+ file = pkgs.writeText "${conf.name}.zone" ''
+ $TTL 10800
+ @ IN SOA ${soa.primary}. ${builtins.replaceStrings ["@"] ["."] soa.email}. ${soa.serial} ${soa.refresh} ${soa.retry} ${soa.expire} ${soa.ttl}
+
+ ${lib.concatStringsSep "\n" (map (x: "@ IN NS ${x}.") (lib.concatMap (n: lib.attrsets.mapAttrsToList (k: v: k) ns.${n}) conf.ns))}
+
+ ${conf.entries}
+
+ ${if lib.attrsets.hasAttr "withEmail" conf && lib.lists.length conf.withEmail > 0 then ''
+ mail IN A ${myconfig.env.servers.immaeEu.ips.main.ip4}
+ mx-1 IN A ${myconfig.env.servers.eldiron.ips.main.ip4}
+ ${builtins.concatStringsSep "\n" (map (i: "mail IN AAAA ${i}") myconfig.env.servers.immaeEu.ips.main.ip6)}
+ ${builtins.concatStringsSep "\n" (map (i: "mx-1 IN AAAA ${i}") myconfig.env.servers.eldiron.ips.main.ip6)}
+ ${lib.concatStringsSep "\n\n" (map (e:
+ let
+ n = if e.domain == "" then "@" else "${e.domain} ";
+ suffix = if e.domain == "" then "" else ".${e.domain}";
+ in
+ ''
+ ; ------------------ mail: ${n} ---------------------------
+ ${if e.receive then "${n} IN MX 10 mail.${conf.name}." else ""}
+ ;${if e.receive then "${n} IN MX 50 mx-1.${conf.name}." else ""}
+
+ ; Mail sender authentications
+ ${n} IN TXT "v=spf1 mx ~all"
+ _dmarc${suffix} IN TXT "v=DMARC1; p=none; adkim=r; aspf=r; fo=1; rua=mailto:postmaster+rua@immae.eu; ruf=mailto:postmaster+ruf@immae.eu;"
+ ${if e.send then ''
+ immae_eu._domainkey${suffix} IN TXT ( "v=DKIM1; k=rsa; s=email; "
+ "p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzl3vLd8W5YAuumC5+ZT9OV7/14Pmh5JYtwyqKI3cfe9NnAqInt3xO4bZ7oqIxRKWN4SD39vm7O/QOvFdBt00ENOOzdP90s5gKw6eIP/4+vPTh0IWltAsmu9B2agzdtWUE7t2xFKIzEn8l9niRE2QYbVaqZv4sub98vY55fIgFoHtjkmNC7325S8fjDJGp6OPbyhAs6Xl5/adjF"
+ "0ko4Y2p6RaxLQfjlS0bxmK4Qg6C14pIXHtzVeqOuWrwApqt5+AULSn97iUtqV/IJlEEjC6DUR44t3C/G0G/k46iFclCqRRi0hdPrOHCtZDbtMubnTN9eaUiNpkXh1WnCflHwtjQwIDAQAB" )
+ '' else ""}
+ '') conf.withEmail)}
+ '' + (if conf.name == "immae.eu" then ''
+ ; ----------------- Accept DMARC reports -------------------
+ ${lib.concatStringsSep "\n" (
+ lib.flatten (
+ map (z: map (e: "${e.domain}${if builtins.stringLength e.domain > 0 then "." else ""}${z.name}._report._dmarc IN TXT \"v=DMARC1;\"") (z.withEmail or [])) masterZones
+ )
+ )}
+ '' else "") else ""}
+ '';
+ }) masterZones);
+ };
+ };
+}
--- /dev/null
+{ lib, pkgs, config, myconfig, ... }:
+{
+ options = {
+ services.pure-ftpd.enable = lib.mkOption {
+ type = lib.types.bool;
+ default = false;
+ description = ''
+ Whether to enable pure-ftpd.
+ '';
+ };
+ };
+
+ config = lib.mkIf config.services.pure-ftpd.enable {
+ security.acme.certs."ftp" = config.services.myCertificates.certConfig // {
+ domain = "eldiron.immae.eu";
+ postRun = ''
+ systemctl restart pure-ftpd.service
+ '';
+ extraDomains = { "ftp.immae.eu" = null; };
+ };
+
+ networking = {
+ firewall = {
+ allowedTCPPorts = [ 21 ];
+ allowedTCPPortRanges = [ { from = 40000; to = 50000; } ];
+ };
+ };
+
+ users.users = [
+ {
+ name = "ftp";
+ uid = config.ids.uids.ftp; # 8
+ group = "ftp";
+ description = "Anonymous FTP user";
+ home = "/homeless-shelter";
+ extraGroups = [ "keys" ];
+ }
+ ];
+
+ users.groups.ftp.gid = config.ids.gids.ftp;
+
+ system.activationScripts.pure-ftpd = ''
+ install -m 0755 -o ftp -g ftp -d /var/lib/ftp
+ '';
+
+ secrets.keys = [{
+ dest = "pure-ftpd-ldap";
+ permissions = "0400";
+ user = "ftp";
+ group = "ftp";
+ text = ''
+ LDAPServer ${myconfig.env.ftp.ldap.host}
+ LDAPPort 389
+ LDAPUseTLS True
+ LDAPBaseDN ${myconfig.env.ftp.ldap.base}
+ LDAPBindDN ${myconfig.env.ftp.ldap.dn}
+ LDAPBindPW ${myconfig.env.ftp.ldap.password}
+ LDAPDefaultUID 500
+ LDAPForceDefaultUID False
+ LDAPDefaultGID 100
+ LDAPForceDefaultGID False
+ LDAPFilter ${myconfig.env.ftp.ldap.filter}
+
+ LDAPAuthMethod BIND
+
+ # Pas de possibilite de donner l'Uid/Gid !
+ # Compile dans pure-ftpd directement avec immaeFtpUid / immaeFtpGid
+ LDAPHomeDir immaeFtpDirectory
+ '';
+ }];
+
+ systemd.services.pure-ftpd = let
+ configFile = pkgs.writeText "pure-ftpd.conf" ''
+ PassivePortRange 40000 50000
+ ChrootEveryone yes
+ CreateHomeDir yes
+ BrokenClientsCompatibility yes
+ MaxClientsNumber 50
+ Daemonize yes
+ MaxClientsPerIP 8
+ VerboseLog no
+ DisplayDotFiles yes
+ AnonymousOnly no
+ NoAnonymous no
+ SyslogFacility ftp
+ DontResolve yes
+ MaxIdleTime 15
+ LDAPConfigFile /var/secrets/pure-ftpd-ldap
+ LimitRecursion 10000 8
+ AnonymousCanCreateDirs no
+ MaxLoad 4
+ AntiWarez yes
+ Umask 133:022
+ # ftp
+ MinUID 8
+ AllowUserFXP no
+ AllowAnonymousFXP no
+ ProhibitDotFilesWrite no
+ ProhibitDotFilesRead no
+ AutoRename no
+ AnonymousCantUpload no
+ MaxDiskUsage 99
+ CustomerProof yes
+ TLS 1
+ CertFile ${config.security.acme.directory}/ftp/full.pem
+ '';
+ in {
+ description = "Pure-FTPd server";
+ wantedBy = [ "multi-user.target" ];
+ after = [ "network.target" ];
+
+ serviceConfig.ExecStart = "${pkgs.pure-ftpd}/bin/pure-ftpd ${configFile}";
+ serviceConfig.Type = "forking";
+ serviceConfig.PIDFile = "/run/pure-ftpd.pid";
+ };
+ };
+
+}
--- /dev/null
+{ lib, pkgs, config, myconfig, ... }:
+let
+ cfg = config.myServices.gitolite;
+in {
+ options.myServices.gitolite = {
+ enable = lib.mkEnableOption "my gitolite service";
+ gitoliteDir = lib.mkOption {
+ type = lib.types.string;
+ default = "/var/lib/gitolite";
+ };
+ };
+
+ config = lib.mkIf cfg.enable {
+ networking.firewall.allowedTCPPorts = [ 9418 ];
+
+ services.gitDaemon = {
+ enable = true;
+ user = "gitolite";
+ group = "gitolite";
+ basePath = "${cfg.gitoliteDir}/repositories";
+ };
+
+ system.activationScripts.gitolite = let
+ gitolite_ldap_groups = pkgs.mylibs.wrap {
+ name = "gitolite_ldap_groups.sh";
+ file = ./gitolite_ldap_groups.sh;
+ vars = {
+ LDAP_PASS = myconfig.env.tools.gitolite.ldap.password;
+ };
+ paths = [ pkgs.openldap pkgs.stdenv.shellPackage pkgs.gnugrep pkgs.coreutils ];
+ };
+ in {
+ deps = [ "users" ];
+ text = ''
+ if [ -d ${cfg.gitoliteDir} ]; then
+ ln -sf ${gitolite_ldap_groups} ${cfg.gitoliteDir}/gitolite_ldap_groups.sh
+ chmod g+rx ${cfg.gitoliteDir}
+ fi
+ if [ -f ${cfg.gitoliteDir}/projects.list ]; then
+ chmod g+r ${cfg.gitoliteDir}/projects.list
+ fi
+ '';
+ };
+
+ users.users.wwwrun.extraGroups = [ "gitolite" ];
+
+ users.users.gitolite.packages = let
+ python-packages = python-packages: with python-packages; [
+ simplejson
+ urllib3
+ sleekxmpp
+ ];
+ in
+ [
+ (pkgs.python3.withPackages python-packages)
+ ];
+ # Installation: https://git.immae.eu/mantisbt/view.php?id=93
+ services.gitolite = {
+ enable = true;
+ adminPubkey = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDXqRbiHw7QoHADNIEuo4nUT9fSOIEBMdJZH0bkQAxXyJFyCM1IMz0pxsHV0wu9tdkkr36bPEUj2aV5bkYLBN6nxcV2Y49X8bjOSCPfx3n6Own1h+NeZVBj4ZByrFmqCbTxUJIZ2bZKcWOFncML39VmWdsVhNjg0X4NBBehqXRIKr2gt3E/ESAxTYJFm0BnU0baciw9cN0bsRGqvFgf5h2P48CIAfwhVcGmPQnnAwabnosYQzRWxR0OygH5Kd8mePh6FheIRIigfXsDO8f/jdxwut8buvNIf3m5EBr3tUbTsvM+eV3M5vKGt7sk8T64DVtepTSdOOWtp+47ktsnHOMh immae@immae.eu";
+ };
+ };
+}
--- /dev/null
+#!/usr/bin/env bash
+
+uid_param="$1"
+ldap_host="ldap.immae.eu"
+ldap_binddn="cn=gitolite,ou=services,dc=immae,dc=eu"
+ldap_bindpw="$LDAP_PASS"
+ldap_searchbase="dc=immae,dc=eu"
+ldap_scope="subtree"
+
+ldap_options="-h ${ldap_host} -ZZ -x -D ${ldap_binddn} -w ${ldap_bindpw} -b ${ldap_searchbase} -s ${ldap_scope}"
+
+ldap_filter="(&(memberOf=cn=groups,cn=gitolite,ou=services,dc=immae,dc=eu)(|(member=uid=${uid_param},ou=users,dc=immae,dc=eu)(member=uid=${uid_param},ou=group_users,dc=immae,dc=eu)))"
+ldap_result=$(ldapsearch ${ldap_options} -LLL "${ldap_filter}" cn | grep 'cn:' | cut -d' ' -f2)
+
+echo "$ldap_result"
--- /dev/null
+{ lib, pkgs, config, ... }:
+let
+ cfg = config.myServices.irc;
+in
+{
+ options.myServices = {
+ ircCerts = lib.mkOption {
+ description = "Default ircconfigurations for certificates as accepted by acme";
+ };
+ irc.enable = lib.mkOption {
+ type = lib.types.bool;
+ default = false;
+ description = ''
+ Whether to enable irc stuff.
+ '';
+ };
+ };
+
+ config = lib.mkIf cfg.enable {
+ security.acme.certs."irc" = config.myServices.ircCerts // {
+ domain = "irc.immae.eu";
+ postRun = ''
+ systemctl restart stunnel.service
+ '';
+ };
+
+ networking.firewall.allowedTCPPorts = [ 6697 ];
+ services.bitlbee = with pkgs; {
+ enable = true;
+ authMode = "Registered";
+ libpurple_plugins = [
+ purple-hangouts
+ purple-matrix
+ ];
+ plugins = [
+ bitlbee-mastodon
+ bitlbee-facebook
+ bitlbee-discord
+ bitlbee-steam
+ ];
+ };
+
+ services.stunnel = {
+ enable = true;
+ servers = {
+ bitlbee = {
+ accept = 6697;
+ connect = 6667;
+ cert = "${config.security.acme.directory}/irc/full.pem";
+ };
+ };
+ };
+ };
+}
--- /dev/null
+{ lib, pkgs, config, myconfig, ... }:
+{
+ config.users.users.nullmailer.uid = config.ids.uids.nullmailer;
+ config.users.groups.nullmailer.gid = config.ids.gids.nullmailer;
+
+ config.services.nullmailer = {
+ enable = true;
+ config = {
+ me = myconfig.env.mail.host;
+ remotes = "${myconfig.env.mail.relay} smtp";
+ };
+ };
+}
--- /dev/null
+{ lib, pkgs, config, myconfig, ... }:
+{
+ config = {
+ secrets.keys = [
+ {
+ dest = "mpd";
+ permissions = "0400";
+ text = myconfig.env.mpd.password;
+ }
+ {
+ dest = "mpd-config";
+ permissions = "0400";
+ user = "mpd";
+ group = "mpd";
+ text = ''
+ password "${myconfig.env.mpd.password}@read,add,control,admin"
+ '';
+ }
+ ];
+ networking.firewall.allowedTCPPorts = [ 6600 ];
+ users.users.mpd.extraGroups = [ "wwwrun" "keys" ];
+ systemd.services.mpd.serviceConfig.RuntimeDirectory = "mpd";
+ services.mpd = {
+ enable = true;
+ network.listenAddress = "any";
+ musicDirectory = myconfig.env.mpd.folder;
+ extraConfig = ''
+ include "/var/secrets/mpd-config"
+ audio_output {
+ type "null"
+ name "No Output"
+ mixer_type "none"
+ }
+ audio_output {
+ type "httpd"
+ name "OGG"
+ encoder "vorbis"
+ bind_to_address "/run/mpd/ogg.sock"
+ quality "5.0"
+ format "44100:16:1"
+ }
+ audio_output {
+ type "httpd"
+ name "MP3"
+ encoder "lame"
+ bind_to_address "/run/mpd/mp3.sock"
+ quality "5.0"
+ format "44100:16:1"
+ }
+
+
+ '';
+ };
+ };
+}
+
--- /dev/null
+{ lib, pkgs, config, myconfig, ... }:
+{
+ options = {
+ myServices.pub.enable = lib.mkOption {
+ type = lib.types.bool;
+ default = false;
+ description = ''
+ Whether to enable pub user.
+ '';
+ };
+ };
+
+ config = lib.mkIf config.myServices.pub.enable {
+ users.users.pub = let
+ restrict = pkgs.runCommand "restrict" {
+ file = ./restrict;
+ buildInputs = [ pkgs.makeWrapper ];
+ } ''
+ mkdir -p $out/bin
+ cp $file $out/bin/restrict
+ chmod a+x $out/bin/restrict
+ patchShebangs $out/bin/restrict
+ wrapProgram $out/bin/restrict \
+ --prefix PATH : ${lib.makeBinPath [ pkgs.bubblewrap pkgs.rrsync ]} \
+ --set TMUX_RESTRICT ${./tmux.restrict.conf}
+ '';
+ purple-hangouts = pkgs.purple-hangouts.overrideAttrs(old: {
+ installPhase = ''
+ install -Dm755 -t $out/lib/purple-2/ libhangouts.so
+ for size in 16 22 24 48; do
+ install -TDm644 hangouts$size.png $out/share/pixmaps/pidgin/protocols/$size/hangouts.png
+ done
+ '';
+ });
+ in {
+ createHome = true;
+ description = "Restricted shell user";
+ home = "/var/lib/pub";
+ uid = myconfig.env.users.pub.uid;
+ useDefaultShell = true;
+ packages = [
+ restrict
+ pkgs.tmux
+ (pkgs.pidgin.override { plugins = [
+ pkgs.purple-plugin-pack purple-hangouts
+ pkgs.purple-discord pkgs.purple-facebook
+ pkgs.telegram-purple
+ ]; })
+ ];
+ };
+ };
+}
--- /dev/null
+#!/usr/bin/env bash
+user="$1"
+rootuser="$HOME/$user/"
+mkdir -p $rootuser
+
+orig="$SSH_ORIGINAL_COMMAND"
+if [ -z "$orig" ]; then
+ orig="/bin/bash -l"
+fi
+if [ "${orig:0:7}" = "command" ]; then
+ orig="${orig:8}"
+fi
+
+case "$orig" in
+rsync*)
+ rrsync $HOME/$user/
+ ;;
+*)
+ nix_store_paths() {
+ nix-store -q -R \
+ /run/current-system/sw \
+ /etc/profiles/per-user/pub \
+ /etc/ssl/certs/ca-bundle.crt \
+ | while read i; do
+ printf '%s--ro-bind\0'$i'\0'$i'\0' ''
+ done
+ }
+
+ set -euo pipefail
+ (exec -c bwrap --ro-bind /usr /usr \
+ --args 10 \
+ --dir /tmp \
+ --dir /var \
+ --symlink ../tmp var/tmp \
+ --proc /proc \
+ --dev /dev \
+ --ro-bind /etc/resolv.conf /etc/resolv.conf \
+ --ro-bind /etc/zoneinfo /etc/zoneinfo \
+ --ro-bind /etc/ssl /etc/ssl \
+ --ro-bind /etc/static/ssl/certs /etc/static/ssl/certs \
+ --ro-bind /run/current-system/sw/lib/locale/locale-archive /etc/locale-archive \
+ --ro-bind /run/current-system/sw/bin /bin \
+ --ro-bind /etc/profiles/per-user/pub/bin /bin-pub \
+ --bind /var/lib/pub/$user /var/lib/pub \
+ --dir /var/lib/commons \
+ --ro-bind $TMUX_RESTRICT /var/lib/commons/tmux.restrict.conf \
+ --chdir /var/lib/pub \
+ --unshare-all \
+ --share-net \
+ --dir /run/user/$(id -u) \
+ --setenv TERM "$TERM" \
+ --setenv LOCALE_ARCHIVE "/etc/locale-archive" \
+ --setenv XDG_RUNTIME_DIR "/run/user/`id -u`" \
+ --setenv PS1 "$user@pub $ " \
+ --setenv PATH "/bin:/bin-pub" \
+ --setenv HOME "/var/lib/pub" \
+ --file 11 /etc/passwd \
+ --file 12 /etc/group \
+ -- $orig) \
+ 10< <(nix_store_paths) \
+ 11< <(getent passwd $UID 65534) \
+ 12< <(getent group $(id -g) 65534)
+ ;;
+esac
--- /dev/null
+# Pour les nostalgiques de screen
+# comme les raccourcis ne sont pas les mêmes, j'évite
+set -g prefix C-a
+unbind-key C-b
+
+unbind-key -a
+bind-key -n C-h list-keys
+bind-key C-d detach
+bind-key & confirm-before -p "kill-window #W? (y/n)" kill-window
+
+# même hack que sur screen lorsqu'on veut profiter du scroll du terminal
+# (xterm ...)
+set -g terminal-overrides 'xterm*:smcup@:rmcup@'
+
+#Pour les ctrl+arrow
+set-option -g xterm-keys on
+
+# c'est un minimum (defaut 2000)
+set-option -g history-limit 10000
+
+# lorsque j'ai encore un tmux ailleurs seule
+# sa fenetre active réduit la taille de ma fenetre locale
+setw -g aggressive-resize on
+
+# Pour etre alerté sur un changement dans une autre fenêtre
+setw -g monitor-activity on
+#set -g visual-activity on
+#set -g visual-bell on
+
+set -g base-index 1
+
+# repercuter le contenu de la fenetre dans la barre de titre
+# reference des string : man tmux (status-left)
+set -g set-titles on
+set -g set-titles-string '#H #W #T' # host window command
+
+#Dans les valeurs par defaut deja, avec le ssh-agent
+set -g update-environment "DISPLAY SSH_ASKPASS SSH_AUTH_SOCK SSH_AGENT_PID SSH_CONNECTION WINDOWID XAUTHORITY PATH"
+
+set -g status off
+set -g status-left ''
+set -g status-right ''
+
--- /dev/null
+{ lib, pkgs, config, myconfig, ... }:
+{
+ config = {
+ networking.firewall.allowedTCPPorts = [ 22 ];
+
+ services.openssh.extraConfig = ''
+ AuthorizedKeysCommand /etc/ssh/ldap_authorized_keys
+ AuthorizedKeysCommandUser nobody
+ '';
+
+ secrets.keys = [{
+ dest = "ssh-ldap";
+ user = "nobody";
+ group = "nogroup";
+ permissions = "0400";
+ text = myconfig.env.sshd.ldap.password;
+ }];
+ system.activationScripts.sshd = {
+ deps = [ "secrets" ];
+ text = ''
+ install -Dm400 -o nobody -g nogroup -T /var/secrets/ssh-ldap /etc/ssh/ldap_password
+ '';
+ };
+ # ssh is strict about parent directory having correct rights, don't
+ # move it in the nix store.
+ environment.etc."ssh/ldap_authorized_keys" = let
+ ldap_authorized_keys =
+ pkgs.mylibs.wrap {
+ name = "ldap_authorized_keys";
+ file = ./ldap_authorized_keys.sh;
+ paths = [ pkgs.which pkgs.gitolite pkgs.openldap pkgs.stdenv.shellPackage pkgs.gnugrep pkgs.gnused pkgs.coreutils ];
+ };
+ in {
+ enable = true;
+ mode = "0755";
+ user = "root";
+ source = ldap_authorized_keys;
+ };
+ };
+}
--- /dev/null
+#!/usr/bin/env bash
+
+LDAPSEARCH=ldapsearch
+KEY="immaeSshKey"
+LDAP_BIND="cn=ssh,ou=services,dc=immae,dc=eu"
+LDAP_PASS=$(cat /etc/ssh/ldap_password)
+LDAP_HOST="ldap.immae.eu"
+LDAP_MEMBER="cn=users,cn=ssh,ou=services,dc=immae,dc=eu"
+LDAP_GITOLITE_MEMBER="cn=users,cn=gitolite,ou=services,dc=immae,dc=eu"
+LDAP_PUB_RESTRICT_MEMBER="cn=restrict,cn=pub,ou=services,dc=immae,dc=eu"
+LDAP_PUB_FORWARD_MEMBER="cn=forward,cn=pub,ou=services,dc=immae,dc=eu"
+LDAP_BASE="dc=immae,dc=eu"
+GITOLITE_SHELL=$(which gitolite-shell)
+ECHO=$(which echo)
+
+suitable_for() {
+ type_for="$1"
+ key="$2"
+
+ if [[ $key != *$'\n'* ]] && [[ $key == ssh-* ]]; then
+ echo "$key"
+ else
+ key_type=$(cut -d " " -f 1 <<< "$key")
+
+ if grep -q "\b-$type_for\b" <<< "$key_type"; then
+ echo ""
+ elif grep -q "\b$type_for\b" <<< "$key_type"; then
+ echo $(sed -e "s/^[^ ]* //g" <<< "$key")
+ else
+ echo ""
+ fi
+ fi
+}
+
+clean_key_line() {
+ type_for="$1"
+ line="$2"
+
+ if [[ "$line" == $KEY::* ]]; then
+ # base64 keys should't happen, unless wrong copy-pasting
+ key=""
+ else
+ key=$(sed -e "s/^$KEY: *//" -e "s/ *$//" <<< "$line")
+ fi
+
+ suitable_for "$type_for" "$key"
+}
+
+ldap_search() {
+ $LDAPSEARCH -h $LDAP_HOST -ZZ -b $LDAP_BASE -D $LDAP_BIND -w "$LDAP_PASS" -x -o ldif-wrap=no -LLL "$@"
+}
+
+ldap_keys() {
+ user=$1;
+ if [[ $user == gitolite ]]; then
+ ldap_search '(&(memberOf='$LDAP_GITOLITE_MEMBER')('$KEY'=*))' $KEY | \
+ while read line ;
+ do
+ if [ ! -z "$line" ]; then
+ if [[ $line == dn* ]]; then
+ user=$(sed -n 's/.*uid=\([^,]*\).*/\1/p' <<< "$line")
+ if [ -n "$user" ]; then
+ if [[ $user == "immae" ]] || [[ $user == "denise" ]]; then
+ # Capitalize first letter (backward compatibility)
+ user=$(sed -r 's/^([a-z])/\U\1/' <<< "$user")
+ fi
+ else
+ # Service fake user
+ user=$(sed -n 's/.*cn=\([^,]*\).*/\1/p' <<< "$line")
+ fi
+ elif [[ $line == $KEY* ]]; then
+ key=$(clean_key_line git "$line")
+ if [ ! -z "$key" ]; then
+ if [[ $key != *$'\n'* ]] && [[ $key == ssh-* ]]; then
+ echo -n 'command="'$GITOLITE_SHELL' '$user'",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty '
+ echo $key
+ fi
+ fi
+ fi
+ fi
+ done
+ exit 0
+ elif [[ $user == pub ]]; then
+ ldap_search '(&(memberOf='$LDAP_PUB_RESTRICT_MEMBER')('$KEY'=*))' $KEY | \
+ while read line ;
+ do
+ if [ ! -z "$line" ]; then
+ if [[ $line == dn* ]]; then
+ echo ""
+ user=$(sed -n 's/.*uid=\([^,]*\).*/\1/p' <<< "$line")
+ echo "# $user"
+ elif [[ $line == $KEY* ]]; then
+ key=$(clean_key_line pub "$line")
+ key_forward=$(clean_key_line forward "$line")
+ if [ ! -z "$key" ]; then
+ if [[ $key != *$'\n'* ]] && [[ $key == ssh-* ]]; then
+ echo -n 'command="/etc/profiles/per-user/pub/bin/restrict '$user'" '
+ echo $key
+ fi
+ elif [ ! -z "$key_forward" ]; then
+ if [[ $key_forward != *$'\n'* ]] && [[ $key_forward == ssh-* ]]; then
+ echo "# forward only"
+ echo -n 'no-pty,no-X11-forwarding,command="'$ECHO' forward only" '
+ echo $key_forward
+ fi
+ fi
+ fi
+ fi
+ done
+
+ echo ""
+ ldap_search '(&(memberOf='$LDAP_PUB_FORWARD_MEMBER')('$KEY'=*))' $KEY | \
+ while read line ;
+ do
+ if [ ! -z "$line" ]; then
+ if [[ $line == dn* ]]; then
+ echo ""
+ user=$(sed -n 's/.*uid=\([^,]*\).*/\1/p' <<< "$line")
+ echo "# $user"
+ elif [[ $line == $KEY* ]]; then
+ key=$(clean_key_line forward "$line")
+ if [ ! -z "$key" ]; then
+ if [[ $key != *$'\n'* ]] && [[ $key == ssh-* ]]; then
+ echo -n 'no-pty,no-X11-forwarding,command="'$ECHO' forward only" '
+ echo $key
+ fi
+ fi
+ fi
+ fi
+ done
+ exit 0
+ else
+ ldap_search '(&(memberOf='$LDAP_MEMBER')('$KEY'=*)(uid='$user'))' $KEY | \
+ while read line ;
+ do
+ if [ ! -z "$line" ]; then
+ if [[ $line == dn* ]]; then
+ user=$(sed -n 's/.*uid=\([^,]*\).*/\1/p' <<< "$line")
+ elif [[ $line == $KEY* ]]; then
+ key=$(clean_key_line ssh "$line")
+ if [ ! -z "$key" ]; then
+ if [[ $key != *$'\n'* ]] && [[ $key == ssh-* ]]; then
+ echo $key
+ fi
+ fi
+ fi
+ fi
+ done
+ fi
+}
+
+ldap_keys $@
--- /dev/null
+{ pkgs, privateFiles, ... }:
+{
+ config = {
+ nixpkgs.overlays = builtins.attrValues (import ../../overlays);
+ _module.args = {
+ pkgsNext = import <nixpkgsNext> {};
+ pkgsPrevious = import <nixpkgsPrevious> {};
+ myconfig = {
+ inherit privateFiles;
+ env = import "${privateFiles}/environment.nix";
+ };
+ };
+
+ services.journald.extraConfig = ''
+ MaxLevelStore="warning"
+ MaxRetentionSec="1year"
+ '';
+
+ users.users.root.packages = [
+ pkgs.telnet
+ pkgs.htop
+ pkgs.iftop
+ ];
+
+ environment.systemPackages = [
+ pkgs.vim
+ ];
+
+ };
+}
--- /dev/null
+{ privateFiles }:
+{ config, pkgs, myconfig, ... }:
+{
+ boot.kernelPackages = pkgs.linuxPackages_latest;
+ _module.args.privateFiles = privateFiles;
+
+ networking = {
+ firewall.enable = true;
+ # 176.9.151.89 declared in nixops -> infra / tools
+ interfaces."eth0".ipv4.addresses = pkgs.lib.attrsets.mapAttrsToList
+ (n: ips: { address = ips.ip4; prefixLength = 32; })
+ (pkgs.lib.attrsets.filterAttrs (n: v: n != "main") myconfig.env.servers.eldiron.ips);
+ interfaces."eth0".ipv6.addresses = pkgs.lib.flatten (pkgs.lib.attrsets.mapAttrsToList
+ (n: ips: map (ip: { address = ip; prefixLength = (if n == "main" && ip == pkgs.lib.head ips.ip6 then 64 else 128); }) (ips.ip6 or []))
+ myconfig.env.servers.eldiron.ips);
+ };
+
+ imports = builtins.attrValues (import ../..);
+
+ myServices.buildbot.enable = true;
+ myServices.databases.enable = true;
+ myServices.gitolite.enable = true;
+ myServices.irc.enable = true;
+ myServices.pub.enable = true;
+ myServices.tasks.enable = true;
+ services.pure-ftpd.enable = true;
+
+ deployment = {
+ targetEnv = "hetzner";
+ hetzner = {
+ robotUser = myconfig.env.hetzner.user;
+ robotPass = myconfig.env.hetzner.pass;
+ mainIPv4 = myconfig.env.servers.eldiron.ips.main.ip4;
+ partitions = ''
+ clearpart --all --initlabel --drives=sda,sdb
+
+ part swap1 --recommended --label=swap1 --fstype=swap --ondisk=sda
+ part swap2 --recommended --label=swap2 --fstype=swap --ondisk=sdb
+
+ part raid.1 --grow --ondisk=sda
+ part raid.2 --grow --ondisk=sdb
+
+ raid / --level=1 --device=md0 --fstype=ext4 --label=root raid.1 raid.2
+ '';
+ };
+ };
+
+ services.cron = {
+ enable = true;
+ systemCronJobs = [
+ ''
+ # The star after /var/lib/* avoids deleting all folders in case of problem
+ 0 3,9,15,21 * * * root rsync -e "ssh -i /root/.ssh/id_charon_vpn" -aAXvz --delete --numeric-ids --super --rsync-path="sudo rsync" /var/lib/* immae@immae.eu: > /dev/null
+ ''
+ ];
+ };
+
+ # This value determines the NixOS release with which your system is
+ # to be compatible, in order to avoid breaking some software such as
+ # database servers. You should change this only after NixOS release
+ # notes say you should.
+ system.stateVersion = "18.09"; # Did you read the comment?
+}
--- /dev/null
+{ lib, pkgs, config, myconfig, ... }:
+let
+ cfg = config.myServices.tasks;
+ server_vardir = config.services.taskserver.dataDir;
+ fqdn = "task.immae.eu";
+ user = config.services.taskserver.user;
+ env = myconfig.env.tools.task;
+ group = config.services.taskserver.group;
+ taskserver-user-certs = pkgs.runCommand "taskserver-user-certs" {} ''
+ mkdir -p $out/bin
+ cat > $out/bin/taskserver-user-certs <<"EOF"
+ #!/usr/bin/env bash
+
+ user=$1
+
+ silent_certtool() {
+ if ! output="$("${pkgs.gnutls.bin}/bin/certtool" "$@" 2>&1)"; then
+ echo "GNUTLS certtool invocation failed with output:" >&2
+ echo "$output" >&2
+ fi
+ }
+
+ silent_certtool -p \
+ --bits 4096 \
+ --outfile "${server_vardir}/userkeys/$user.key.pem"
+ ${pkgs.gnused}/bin/sed -i -n -e '/^-----BEGIN RSA PRIVATE KEY-----$/,$p' "${server_vardir}/userkeys/$user.key.pem"
+
+ silent_certtool -c \
+ --template "${pkgs.writeText "taskserver-ca.template" ''
+ tls_www_client
+ encryption_key
+ signing_key
+ expiration_days = 3650
+ ''}" \
+ --load-ca-certificate "${server_vardir}/keys/ca.cert" \
+ --load-ca-privkey "${server_vardir}/keys/ca.key" \
+ --load-privkey "${server_vardir}/userkeys/$user.key.pem" \
+ --outfile "${server_vardir}/userkeys/$user.cert.pem"
+ EOF
+ chmod a+x $out/bin/taskserver-user-certs
+ patchShebangs $out/bin/taskserver-user-certs
+ '';
+ taskwarrior-web = pkgs.webapps.taskwarrior-web;
+ socketsDir = "/run/taskwarrior-web";
+ varDir = "/var/lib/taskwarrior-web";
+ taskwebPages = let
+ uidPages = lib.attrsets.zipAttrs (
+ lib.lists.flatten
+ (lib.attrsets.mapAttrsToList (k: c: map (v: { "${v}" = k; }) c.uid) env.taskwarrior-web)
+ );
+ pages = lib.attrsets.mapAttrs (uid: items:
+ if lib.lists.length items == 1 then
+ ''
+ <html>
+ <head>
+ <meta http-equiv="refresh" content="0; url=/taskweb/${lib.lists.head items}/" />
+ </head>
+ <body></body>
+ </html>
+ ''
+ else
+ ''
+ <html>
+ <head>
+ <title>To-do list disponibles</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
+ </head>
+ <body>
+ <ul>
+ ${builtins.concatStringsSep "\n" (map (item: "<li><a href='/taskweb/${item}'>${item}</a></li>") items)}
+ </ul>
+ </body>
+ </html>
+ ''
+ ) uidPages;
+ in
+ pkgs.runCommand "taskwerver-pages" {} ''
+ mkdir -p $out/
+ ${builtins.concatStringsSep "\n" (lib.attrsets.mapAttrsToList (k: v: "cp ${pkgs.writeText k v} $out/${k}.html") pages)}
+ echo "Please login" > $out/index.html
+ '';
+in {
+ options.myServices.tasks = {
+ enable = lib.mkEnableOption "my tasks service";
+ };
+
+ config = lib.mkIf cfg.enable {
+ secrets.keys = [{
+ dest = "webapps/tools-taskwarrior-web";
+ user = "wwwrun";
+ group = "wwwrun";
+ permissions = "0400";
+ text = ''
+ SetEnv TASKD_HOST "${fqdn}:${toString config.services.taskserver.listenPort}"
+ SetEnv TASKD_VARDIR "${server_vardir}"
+ SetEnv TASKD_LDAP_HOST "ldaps://${env.ldap.host}"
+ SetEnv TASKD_LDAP_DN "${env.ldap.dn}"
+ SetEnv TASKD_LDAP_PASSWORD "${env.ldap.password}"
+ SetEnv TASKD_LDAP_BASE "${env.ldap.base}"
+ SetEnv TASKD_LDAP_FILTER "${env.ldap.search}"
+ '';
+ }];
+ services.websites.tools.modules = [ "proxy_fcgi" "sed" ];
+ services.websites.tools.vhostConfs.task = {
+ certName = "eldiron";
+ addToCerts = true;
+ hosts = [ "task.immae.eu" ];
+ root = "/run/current-system/webapps/_task";
+ extraConfig = [ ''
+ <Directory /run/current-system/webapps/_task>
+ DirectoryIndex index.php
+ Use LDAPConnect
+ Require ldap-group cn=users,cn=taskwarrior,ou=services,dc=immae,dc=eu
+ <FilesMatch "\.php$">
+ SetHandler "proxy:unix:/var/run/phpfpm/task.sock|fcgi://localhost"
+ </FilesMatch>
+ Include /var/secrets/webapps/tools-taskwarrior-web
+ </Directory>
+ ''
+ ''
+ <Macro Taskwarrior %{folderName}>
+ ProxyPass "unix://${socketsDir}/%{folderName}.sock|http://localhost-%{folderName}/"
+ ProxyPassReverse "unix://${socketsDir}/%{folderName}.sock|http://localhost-%{folderName}/"
+ ProxyPassReverse http://${fqdn}/
+
+ SetOutputFilter Sed
+ OutputSed "s|/ajax|/taskweb/%{folderName}/ajax|g"
+ OutputSed "s|\([^x]\)/tasks|\1/taskweb/%{folderName}/tasks|g"
+ OutputSed "s|\([^x]\)/projects|\1/taskweb/%{folderName}/projects|g"
+ OutputSed "s|http://${fqdn}/|/taskweb/%{folderName}/|g"
+ OutputSed "s|/img/relax.jpg|/taskweb/%{folderName}/img/relax.jpg|g"
+ </Macro>
+ ''
+ ''
+ Alias /taskweb ${taskwebPages}
+ <Directory "${taskwebPages}">
+ DirectoryIndex index.html
+ Require all granted
+ </Directory>
+
+ RewriteEngine on
+ RewriteRule ^/taskweb$ /taskweb/ [R=301,L]
+ RedirectMatch permanent ^/taskweb/([^/]+)$ /taskweb/$1/
+
+ RewriteCond %{LA-U:REMOTE_USER} !=""
+ RewriteCond ${taskwebPages}/%{LA-U:REMOTE_USER}.html -f
+ RewriteRule ^/taskweb/?$ ${taskwebPages}/%{LA-U:REMOTE_USER}.html [L]
+
+ <Location /taskweb/>
+ Use LDAPConnect
+ Require ldap-group cn=users,cn=taskwarrior,ou=services,dc=immae,dc=eu
+ </Location>
+ ''
+ ] ++ (lib.attrsets.mapAttrsToList (k: v: ''
+ <Location /taskweb/${k}/>
+ ${builtins.concatStringsSep "\n" (map (uid: "Require ldap-attribute uid=${uid}") v.uid)}
+
+ Use Taskwarrior ${k}
+ </Location>
+ '') env.taskwarrior-web);
+ };
+ services.phpfpm.poolConfigs = {
+ tasks = ''
+ listen = /var/run/phpfpm/task.sock
+ user = ${user}
+ group = ${group}
+ listen.owner = wwwrun
+ listen.group = wwwrun
+ pm = dynamic
+ pm.max_children = 60
+ pm.start_servers = 2
+ pm.min_spare_servers = 1
+ pm.max_spare_servers = 10
+
+ ; Needed to avoid clashes in browser cookies (same domain)
+ env[PATH] = "/etc/profiles/per-user/${user}/bin"
+ php_value[session.name] = TaskPHPSESSID
+ php_admin_value[open_basedir] = "${./www}:/tmp:${server_vardir}:/etc/profiles/per-user/${user}/bin/"
+ '';
+ };
+
+ myServices.websites.webappDirs._task = ./www;
+
+ security.acme.certs."task" = config.services.myCertificates.certConfig // {
+ inherit user group;
+ plugins = [ "fullchain.pem" "key.pem" "cert.pem" "account_key.json" ];
+ domain = fqdn;
+ postRun = ''
+ systemctl restart taskserver.service
+ '';
+ };
+
+ users.users.${user}.packages = [ taskserver-user-certs ];
+
+ system.activationScripts.taskserver = {
+ deps = [ "users" ];
+ text = ''
+ install -m 0750 -o ${user} -g ${group} -d ${server_vardir}
+ install -m 0750 -o ${user} -g ${group} -d ${server_vardir}/userkeys
+ install -m 0750 -o ${user} -g ${group} -d ${server_vardir}/keys
+
+ if [ ! -e "${server_vardir}/keys/ca.key" ]; then
+ silent_certtool() {
+ if ! output="$("${pkgs.gnutls.bin}/bin/certtool" "$@" 2>&1)"; then
+ echo "GNUTLS certtool invocation failed with output:" >&2
+ echo "$output" >&2
+ fi
+ }
+
+ silent_certtool -p \
+ --bits 4096 \
+ --outfile "${server_vardir}/keys/ca.key"
+
+ silent_certtool -s \
+ --template "${pkgs.writeText "taskserver-ca.template" ''
+ cn = ${fqdn}
+ expiration_days = -1
+ cert_signing_key
+ ca
+ ''}" \
+ --load-privkey "${server_vardir}/keys/ca.key" \
+ --outfile "${server_vardir}/keys/ca.cert"
+
+ chown :${group} "${server_vardir}/keys/ca.key"
+ chmod g+r "${server_vardir}/keys/ca.key"
+ fi
+ '';
+ };
+
+ services.taskserver = {
+ enable = true;
+ allowedClientIDs = [ "^task [2-9]" "^Mirakel [1-9]" ];
+ inherit fqdn;
+ listenHost = "::";
+ pki.manual.ca.cert = "${server_vardir}/keys/ca.cert";
+ pki.manual.server.cert = "${config.security.acme.directory}/task/fullchain.pem";
+ pki.manual.server.crl = "${config.security.acme.directory}/task/invalid.crl";
+ pki.manual.server.key = "${config.security.acme.directory}/task/key.pem";
+ requestLimit = 104857600;
+ };
+
+ system.activationScripts.taskwarrior-web = {
+ deps = [ "users" ];
+ text = ''
+ if [ ! -f ${server_vardir}/userkeys/taskwarrior-web.cert.pem ]; then
+ ${taskserver-user-certs}/bin/taskserver-user-certs taskwarrior-web
+ chown taskd:taskd ${server_vardir}/userkeys/taskwarrior-web.cert.pem ${server_vardir}/userkeys/taskwarrior-web.key.pem
+ fi
+ '';
+ };
+
+ systemd.services = (lib.attrsets.mapAttrs' (name: userConfig:
+ let
+ credentials = "${userConfig.org}/${name}/${userConfig.key}";
+ dateFormat = userConfig.date;
+ taskrc = pkgs.writeText "taskrc" ''
+ data.location=${varDir}/${name}
+ taskd.certificate=${server_vardir}/userkeys/taskwarrior-web.cert.pem
+ taskd.key=${server_vardir}/userkeys/taskwarrior-web.key.pem
+ # IdenTrust DST Root CA X3
+ # obtained here: https://letsencrypt.org/fr/certificates/
+ taskd.ca=${pkgs.writeText "ca.cert" ''
+ -----BEGIN CERTIFICATE-----
+ MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/
+ MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT
+ DkRTVCBSb290IENBIFgzMB4XDTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVow
+ PzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMRcwFQYDVQQD
+ Ew5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
+ AN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmTrE4O
+ rz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEq
+ OLl5CjH9UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9b
+ xiqKqy69cK3FCxolkHRyxXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw
+ 7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40dutolucbY38EVAjqr2m7xPi71XAicPNaD
+ aeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV
+ HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQMA0GCSqG
+ SIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69
+ ikugdB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXr
+ AvHRAosZy5Q6XkjEGB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZz
+ R8srzJmwN0jP41ZL9c8PDHIyh8bwRLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5
+ JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubSfZGL+T0yjWW06XyxV3bqxbYo
+ Ob8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ
+ -----END CERTIFICATE-----''}
+ taskd.server=${fqdn}:${toString config.services.taskserver.listenPort}
+ taskd.credentials=${credentials}
+ dateformat=${dateFormat}
+ '';
+ in lib.attrsets.nameValuePair "taskwarrior-web-${name}" {
+ description = "Taskwarrior webapp for ${name}";
+ wantedBy = [ "multi-user.target" ];
+ after = [ "network.target" ];
+ path = [ pkgs.taskwarrior ];
+
+ environment.TASKRC = taskrc;
+ environment.BUNDLE_PATH = "${taskwarrior-web.gems}/${taskwarrior-web.gems.ruby.gemPath}";
+ environment.BUNDLE_GEMFILE = "${taskwarrior-web.gems.confFiles}/Gemfile";
+ environment.LC_ALL = "fr_FR.UTF-8";
+
+ script = ''
+ exec ${taskwarrior-web.gems}/${taskwarrior-web.gems.ruby.gemPath}/bin/bundle exec thin start -R config.ru -S ${socketsDir}/${name}.sock
+ '';
+
+ serviceConfig = {
+ User = user;
+ PrivateTmp = true;
+ Restart = "always";
+ TimeoutSec = 60;
+ Type = "simple";
+ WorkingDirectory = taskwarrior-web;
+ StateDirectoryMode = 0750;
+ StateDirectory = assert lib.strings.hasPrefix "/var/lib/" varDir;
+ (lib.strings.removePrefix "/var/lib/" varDir + "/${name}");
+ RuntimeDirectoryPreserve = "yes";
+ RuntimeDirectory = assert lib.strings.hasPrefix "/run/" socketsDir;
+ lib.strings.removePrefix "/run/" socketsDir;
+ };
+
+ unitConfig.RequiresMountsFor = varDir;
+ }) env.taskwarrior-web) // {
+ taskserver-ca.postStart = ''
+ chown :${group} "${server_vardir}/keys/ca.key"
+ chmod g+r "${server_vardir}/keys/ca.key"
+ '';
+ };
+
+ };
+}
--- /dev/null
+<?php
+if (!isset($_SERVER["REMOTE_USER"])) {
+ die("please login");
+}
+$ldap_user = $_SERVER["REMOTE_USER"];
+$ldap_host = getenv("TASKD_LDAP_HOST");
+$ldap_dn = getenv('TASKD_LDAP_DN');
+$ldap_password = getenv('TASKD_LDAP_PASSWORD');
+$ldap_base = getenv('TASKD_LDAP_BASE');
+$ldap_filter = getenv('TASKD_LDAP_FILTER');
+$host = getenv('TASKD_HOST');
+$vardir = getenv('TASKD_VARDIR');
+
+$connect = ldap_connect($ldap_host);
+ldap_set_option($connect, LDAP_OPT_PROTOCOL_VERSION, 3);
+if (!$connect || !ldap_bind($connect, $ldap_dn, $ldap_password)) {
+ die("impossible to connect to LDAP");
+}
+
+$search_query = str_replace('%login%', ldap_escape($ldap_user), $ldap_filter);
+
+$search = ldap_search($connect, $ldap_base, $search_query);
+$info = ldap_get_entries($connect, $search);
+
+if (ldap_count_entries($connect, $search) != 1) {
+ die("Impossible to find user in LDAP");
+}
+
+$entries = [];
+foreach($info[0]["immaetaskid"] as $key => $value) {
+ if ($key !== "count") {
+ $entries[] = explode(":", $value);
+ }
+}
+
+if (isset($_GET["file"])) {
+ $basecert = $vardir . "/userkeys/" . $ldap_user;
+ if (!file_exists($basecert . ".cert.pem")) {
+ exec("taskserver-user-certs $ldap_user");
+ }
+ $certificate = file_get_contents($basecert . ".cert.pem");
+ $cert_key = file_get_contents($basecert . ".key.pem");
+
+ // IdenTrust DST Root CA X3
+ // obtained here: https://letsencrypt.org/fr/certificates/
+ $server_cert = "-----BEGIN CERTIFICATE-----
+MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/
+MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT
+DkRTVCBSb290IENBIFgzMB4XDTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVow
+PzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMRcwFQYDVQQD
+Ew5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
+AN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmTrE4O
+rz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEq
+OLl5CjH9UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9b
+xiqKqy69cK3FCxolkHRyxXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw
+7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40dutolucbY38EVAjqr2m7xPi71XAicPNaD
+aeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV
+HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQMA0GCSqG
+SIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69
+ikugdB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXr
+AvHRAosZy5Q6XkjEGB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZz
+R8srzJmwN0jP41ZL9c8PDHIyh8bwRLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5
+JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubSfZGL+T0yjWW06XyxV3bqxbYo
+Ob8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ
+-----END CERTIFICATE-----";
+
+ $file = $_GET["file"];
+ switch($file) {
+ case "ca.cert.pem":
+ $content = $server_cert;
+ $name = "ca.cert.pem";
+ $type = "application/x-x509-ca-cert";
+ break;
+ case "cert.pem":
+ $content = $certificate;
+ $name = $ldap_user . ".cert.pem";
+ $type = "application/x-x509-ca-cert";
+ break;
+ case "key.pem":
+ $content = $cert_key;
+ $name = $ldap_user . ".key.pem";
+ $type = "application/x-x509-ca-cert";
+ break;
+ case "mirakel";
+ foreach ($entries as $entry) {
+ list($org, $user, $key) = $entry;
+ if ($key == $_GET["key"]) { break; }
+ }
+ $name = $user . ".mirakel";
+ $type = "text/plain";
+ $content = "username: $user
+org: $org
+user key: $key
+server: $host
+client.cert:
+$certificate
+Client.key:
+$cert_key
+ca.cert:
+$server_cert
+";
+ break;
+ default:
+ die("invalid file name");
+ break;
+ }
+
+ header("Content-Type: $type");
+ header('Content-Disposition: attachment; filename="' . $name . '"');
+ header('Content-Transfer-Encoding: binary');
+ header('Accept-Ranges: bytes');
+ header('Cache-Control: private');
+ header('Pragma: private');
+ echo $content;
+ exit;
+}
+?>
+<html>
+<header>
+ <title>Taskwarrior configuration</title>
+</header>
+<body>
+<ul>
+ <li><a href="?file=ca.cert.pem">ca.cert.pem</a></li>
+ <li><a href="?file=cert.pem"><?php echo $ldap_user; ?>.cert.pem</a></li>
+ <li><a href="?file=key.pem"><?php echo $ldap_user; ?>.key.pem</a></li>
+</ul>
+For command line interface, download the files, put them near your Taskwarrior
+configuration files, and add that to your Taskwarrior configuration:
+<pre>
+taskd.certificate=/path/to/<?php echo $ldap_user; ?>.cert.pem
+taskd.key=/path/to/<?php echo $ldap_user; ?>.key.pem
+taskd.server=<?php echo $host ."\n"; ?>
+<?php if (count($entries) > 1) {
+ echo "# Chose one of them\n";
+ foreach($entries as $entry) {
+ list($org, $user, $key) = $entry;
+ echo "# taskd.credentials=$org/$user/$key\n";
+ }
+} else { ?>
+taskd.credentials=<?php echo $entries[0][0]; ?>/<?php echo $entries[0][1]; ?>/<?php echo $entries[0][2]; ?>
+<?php } ?>
+taskd.ca=/path/to/ca.cert.pem
+</pre>
+For Mirakel, download and import the file:
+<ul>
+<?php
+foreach ($entries as $entry) {
+ list($org, $user, $key) = $entry;
+ echo '<li><a href="?file=mirakel&key='.$key.'">' . $user . '.mirakel</a></li>';
+}
+?>
+</ul>
+For Android Taskwarrior app, see instructions <a href="https://bitbucket.org/kvorobyev/taskwarriorandroid/wiki/Configuration">here</a>.
+</body>
+</html>
+
--- /dev/null
+{ apacheUser, apacheGroup, aten, lib, config }: rec {
+ app = aten.override { inherit (config) environment; };
+ phpFpm = rec {
+ preStart = ''
+ if [ ! -f "${app.varDir}/currentWebappDir" -o \
+ ! -f "${app.varDir}/currentKey" -o \
+ "${app}" != "$(cat ${app.varDir}/currentWebappDir 2>/dev/null)" ] \
+ || ! sha512sum -c --status ${app.varDir}/currentKey; then
+ pushd ${app} > /dev/null
+ /run/wrappers/bin/sudo -u ${apacheUser} APP_ENV=${app.environment} ./bin/console --env=${app.environment} cache:clear --no-warmup
+ popd > /dev/null
+ echo -n "${app}" > ${app.varDir}/currentWebappDir
+ sha512sum /var/secrets/webapps/${app.environment}-aten > ${app.varDir}/currentKey
+ fi
+ '';
+ serviceDeps = [ "postgresql.service" ];
+ socket = "/var/run/phpfpm/aten-${app.environment}.sock";
+ pool = ''
+ listen = ${socket}
+ user = ${apacheUser}
+ group = ${apacheGroup}
+ listen.owner = ${apacheUser}
+ listen.group = ${apacheGroup}
+ php_admin_value[upload_max_filesize] = 20M
+ php_admin_value[post_max_size] = 20M
+ ;php_admin_flag[log_errors] = on
+ php_admin_value[open_basedir] = "${app}:${app.varDir}:/tmp"
+ php_admin_value[session.save_path] = "${app.varDir}/phpSessions"
+ ${if app.environment == "dev" then ''
+ pm = ondemand
+ pm.max_children = 5
+ pm.process_idle_timeout = 60
+ env[SYMFONY_DEBUG_MODE] = "yes"
+ '' else ''
+ pm = dynamic
+ pm.max_children = 20
+ pm.start_servers = 2
+ pm.min_spare_servers = 1
+ pm.max_spare_servers = 3
+ ''}'';
+ };
+ keys = [{
+ dest = "webapps/${app.environment}-aten";
+ user = apacheUser;
+ group = apacheGroup;
+ permissions = "0400";
+ text = ''
+ SetEnv APP_ENV "${app.environment}"
+ SetEnv APP_SECRET "${config.secret}"
+ SetEnv DATABASE_URL "${config.psql_url}"
+ '';
+ }];
+ apache = rec {
+ modules = [ "proxy_fcgi" ];
+ webappName = "aten_${app.environment}";
+ root = "/run/current-system/webapps/${webappName}";
+ vhostConf = ''
+ <FilesMatch "\.php$">
+ SetHandler "proxy:unix:${phpFpm.socket}|fcgi://localhost"
+ </FilesMatch>
+
+ Include /var/secrets/webapps/${app.environment}-aten
+
+ ${if app.environment == "dev" then ''
+ <Location />
+ Use LDAPConnect
+ Require ldap-group cn=dev.aten.pro,cn=httpd,ou=services,dc=immae,dc=eu
+ ErrorDocument 401 "<html><meta http-equiv=\"refresh\" content=\"0;url=https://aten.pro\"></html>"
+ </Location>
+
+ <Location /backend>
+ Use LDAPConnect
+ Require ldap-group cn=dev.aten.pro,cn=httpd,ou=services,dc=immae,dc=eu
+ ErrorDocument 401 "<html><meta http-equiv=\"refresh\" content=\"0;url=https://aten.pro\"></html>"
+ </Location>
+ '' else ''
+ Use Stats aten.pro
+
+ <Location /backend>
+ Use LDAPConnect
+ Require ldap-group cn=aten.pro,cn=httpd,ou=services,dc=immae,dc=eu
+ ErrorDocument 401 "<html><meta http-equiv=\"refresh\" content=\"0;url=https://aten.pro\"></html>"
+ </Location>
+ ''}
+
+ <Directory ${root}>
+ Options Indexes FollowSymLinks MultiViews Includes
+ AllowOverride All
+ Require all granted
+ DirectoryIndex index.php
+ FallbackResource /index.php
+ </Directory>
+ '';
+ };
+ activationScript = {
+ deps = [ "wrappers" ];
+ text = ''
+ install -m 0755 -o ${apacheUser} -g ${apacheGroup} -d ${app.varDir}
+ install -m 0750 -o ${apacheUser} -g ${apacheGroup} -d ${app.varDir}/phpSessions
+ '';
+ };
+}
--- /dev/null
+{ lib, pkgs, config, myconfig, ... }:
+let
+ aten = pkgs.callPackage ./builder.nix {
+ inherit (pkgs.webapps) aten;
+ config = myconfig.env.websites.aten.integration;
+ apacheUser = config.services.httpd.Inte.user;
+ apacheGroup = config.services.httpd.Inte.group;
+ };
+
+ cfg = config.myServices.websites.aten.integration;
+in {
+ options.myServices.websites.aten.integration.enable = lib.mkEnableOption "enable Aten's website in integration";
+
+ config = lib.mkIf cfg.enable {
+ secrets.keys = aten.keys;
+ systemd.services.phpfpm-aten_dev.preStart = lib.mkAfter aten.phpFpm.preStart;
+ systemd.services.phpfpm-aten_dev.after = lib.mkAfter aten.phpFpm.serviceDeps;
+ systemd.services.phpfpm-aten_dev.wants = aten.phpFpm.serviceDeps;
+ services.phpfpm.poolConfigs.aten_dev = aten.phpFpm.pool;
+ system.activationScripts.aten_dev = aten.activationScript;
+ myServices.websites.webappDirs."${aten.apache.webappName}" = aten.app.webRoot;
+ services.websites.integration.modules = aten.apache.modules;
+ services.websites.integration.vhostConfs.aten = {
+ certName = "eldiron";
+ addToCerts = true;
+ hosts = [ "dev.aten.pro" ];
+ root = aten.apache.root;
+ extraConfig = [ aten.apache.vhostConf ];
+ };
+ };
+}
+
--- /dev/null
+{ lib, pkgs, config, myconfig, ... }:
+let
+ aten = pkgs.callPackage ./builder.nix {
+ inherit (pkgs.webapps) aten;
+ config = myconfig.env.websites.aten.production;
+ apacheUser = config.services.httpd.Prod.user;
+ apacheGroup = config.services.httpd.Prod.group;
+ };
+
+ cfg = config.myServices.websites.aten.production;
+in {
+ options.myServices.websites.aten.production.enable = lib.mkEnableOption "enable Aten's website in production";
+
+ config = lib.mkIf cfg.enable {
+ secrets.keys = aten.keys;
+ services.webstats.sites = [ { name = "aten.pro"; } ];
+
+ systemd.services.phpfpm-aten_prod.preStart = lib.mkAfter aten.phpFpm.preStart;
+ systemd.services.phpfpm-aten_prod.after = lib.mkAfter aten.phpFpm.serviceDeps;
+ systemd.services.phpfpm-aten_prod.wants = aten.phpFpm.serviceDeps;
+ services.phpfpm.poolConfigs.aten_prod = aten.phpFpm.pool;
+ system.activationScripts.aten_prod = aten.activationScript;
+ myServices.websites.webappDirs."${aten.apache.webappName}" = aten.app.webRoot;
+ services.websites.production.modules = aten.apache.modules;
+ services.websites.production.vhostConfs.aten = {
+ certName = "aten";
+ certMainHost = "aten.pro";
+ hosts = [ "aten.pro" "www.aten.pro" ];
+ root = aten.apache.root;
+ extraConfig = [ aten.apache.vhostConf ];
+ };
+ };
+}
+
--- /dev/null
+<!DOCTYPE html>
+<html lang='en'>
+ <head>
+ <meta content='text/html; charset=UTF-8' http-equiv='Content-Type'>
+ <title>This instance is now closed - Mastodon</title>
+ <style>
+ body {
+ text-align: center;
+ background: #282c37;
+ font-family: sans-serif;
+ }
+ img {
+ max-width: 470px;
+ width: 100%;
+ }
+ h1 {
+ font-size: 20px;
+ font-weight: 400;
+ color: #9baec8;
+ }
+ </style>
+ </head>
+ <body>
+ <div>
+ <img alt='Mastodon' src='/oops.png'>
+ <h1>Sorry, this instance is closed now.</h1>
+ </div>
+ </body>
+</html>
--- /dev/null
+{ lib, pkgs, config, myconfig, ... }:
+let
+ cfg = config.myServices.websites.capitaines.production;
+ env = myconfig.env.websites.capitaines;
+ webappName = "capitaines_mastodon";
+ root = "/run/current-system/webapps/${webappName}";
+ siteDir = ./mastodon_static;
+in {
+ options.myServices.websites.capitaines.production.enable = lib.mkEnableOption "enable Capitaines's website";
+
+ config = lib.mkIf cfg.enable {
+ myServices.websites.webappDirs."${webappName}" = siteDir;
+
+ services.websites.production.vhostConfs.capitaines_mastodon = {
+ certName = "capitaines";
+ certMainHost = "mastodon.capitaines.fr";
+ hosts = [ "mastodon.capitaines.fr" ];
+ root = root;
+ extraConfig = [
+ ''
+ ErrorDocument 404 /index.html
+ <Directory ${root}>
+ DirectoryIndex index.html
+ Options Indexes FollowSymLinks MultiViews Includes
+ Require all granted
+ </Directory>
+ ''
+ ];
+ };
+
+ services.websites.production.vhostConfs.capitaines = {
+ certName = "capitaines";
+ addToCerts = true;
+ hosts = [ "capitaines.fr" ];
+ root = "/run/current-system/webapps/_www";
+ extraConfig = [ ''
+ <Directory /run/current-system/webapps/_www>
+ DirectoryIndex index.htm
+ Require all granted
+ </Directory>
+ '' ];
+ };
+ };
+}
--- /dev/null
+{ apacheUser, apacheGroup, chloe, config }:
+rec {
+ app = chloe.override { inherit (config) environment; };
+ phpFpm = rec {
+ serviceDeps = [ "mysql.service" ];
+ socket = "/var/run/phpfpm/chloe-${app.environment}.sock";
+ pool = ''
+ user = ${apacheUser}
+ group = ${apacheGroup}
+ listen.owner = ${apacheUser}
+ listen.group = ${apacheGroup}
+ php_admin_value[upload_max_filesize] = 20M
+ php_admin_value[post_max_size] = 20M
+ ;php_admin_flag[log_errors] = on
+ php_admin_value[open_basedir] = "${app.spipConfig}:${configDir}:${app}:${app.varDir}:/tmp"
+ php_admin_value[session.save_path] = "${app.varDir}/phpSessions"
+ ${if app.environment == "dev" then ''
+ pm = ondemand
+ pm.max_children = 5
+ pm.process_idle_timeout = 60
+ '' else ''
+ pm = dynamic
+ pm.max_children = 20
+ pm.start_servers = 2
+ pm.min_spare_servers = 1
+ pm.max_spare_servers = 3
+ ''}'';
+ };
+ keys = [{
+ dest = "webapps/${app.environment}-chloe";
+ user = apacheUser;
+ group = apacheGroup;
+ permissions = "0400";
+ text = ''
+ SetEnv SPIP_CONFIG_DIR "${configDir}"
+ SetEnv SPIP_VAR_DIR "${app.varDir}"
+ SetEnv SPIP_SITE "chloe-${app.environment}"
+ SetEnv SPIP_LDAP_BASE "dc=immae,dc=eu"
+ SetEnv SPIP_LDAP_HOST "ldaps://ldap.immae.eu"
+ SetEnv SPIP_LDAP_SEARCH_DN "${config.ldap.dn}"
+ SetEnv SPIP_LDAP_SEARCH_PW "${config.ldap.password}"
+ SetEnv SPIP_LDAP_SEARCH "${config.ldap.search}"
+ SetEnv SPIP_MYSQL_HOST "${config.mysql.host}"
+ SetEnv SPIP_MYSQL_PORT "${config.mysql.port}"
+ SetEnv SPIP_MYSQL_DB "${config.mysql.name}"
+ SetEnv SPIP_MYSQL_USER "${config.mysql.user}"
+ SetEnv SPIP_MYSQL_PASSWORD "${config.mysql.password}"
+ '';
+ }];
+ apache = rec {
+ modules = [ "proxy_fcgi" ];
+ webappName = "chloe_${app.environment}";
+ root = "/run/current-system/webapps/${webappName}";
+ vhostConf = ''
+ Include /var/secrets/webapps/${app.environment}-chloe
+
+ RewriteEngine On
+ ${if app.environment == "prod" then ''
+ RewriteRule ^/news.rss /spip.php?page=backend&id_rubrique=1
+ '' else ""}
+
+ <FilesMatch "\.php$">
+ SetHandler "proxy:unix:${phpFpm.socket}|fcgi://localhost"
+ </FilesMatch>
+
+ <Directory ${root}>
+ DirectoryIndex index.php index.htm index.html
+ Options -Indexes +FollowSymLinks +MultiViews +Includes
+ Include ${root}/htaccess.txt
+
+ AllowOverride AuthConfig FileInfo Limit
+ Require all granted
+ </Directory>
+
+ <DirectoryMatch "${root}/squelettes">
+ Require all denied
+ </DirectoryMatch>
+
+ <FilesMatch "(.htaccess|rewrite-rules|.gitignore)$">
+ Require all denied
+ </FilesMatch>
+
+ ${if app.environment == "dev" then ''
+ <Location />
+ Use LDAPConnect
+ Require ldap-group cn=chloe.immae.eu,cn=httpd,ou=services,dc=immae,dc=eu
+ ErrorDocument 401 "<html><meta http-equiv=\"refresh\" content=\"0;url=https://osteopathe-cc.fr\"></html>"
+ </Location>
+ '' else ''
+ Use Stats osteopathe-cc.fr
+ ''}
+ '';
+ };
+ activationScript = {
+ deps = [ "wrappers" ];
+ text = ''
+ install -m 0755 -o ${apacheUser} -g ${apacheGroup} -d ${app.varDir} ${app.varDir}/IMG ${app.varDir}/tmp ${app.varDir}/local
+ install -m 0750 -o ${apacheUser} -g ${apacheGroup} -d ${app.varDir}/phpSessions
+ '';
+ };
+ configDir = ./config;
+}
--- /dev/null
+<?php
+if (!defined("_ECRIRE_INC_VERSION")) return;
+if (!defined('_SPIP_CHMOD')) define('_SPIP_CHMOD', 0777);
+?>
\ No newline at end of file
--- /dev/null
+<?php
+if (!defined("_ECRIRE_INC_VERSION")) return;
+define('_MYSQL_SET_SQL_MODE',true);
+$GLOBALS['spip_connect_version'] = 0.7;
+spip_connect_db(
+ getenv("SPIP_MYSQL_HOST"),
+ getenv("SPIP_MYSQL_PORT"),
+ getenv("SPIP_MYSQL_USER"),
+ getenv("SPIP_MYSQL_PASSWORD"),
+ getenv("SPIP_MYSQL_DB"),
+ 'mysql',
+ 'spip',
+ 'ldap.php'
+);
+?>
--- /dev/null
+<?php
+if (!defined("_ECRIRE_INC_VERSION")) return;
+$GLOBALS['ldap_base'] = getenv("SPIP_LDAP_BASE");
+$GLOBALS['ldap_link'] = @ldap_connect(getenv("SPIP_LDAP_HOST"));
+@ldap_set_option($GLOBALS['ldap_link'],LDAP_OPT_PROTOCOL_VERSION,'3');
+@ldap_bind($GLOBALS['ldap_link'],getenv("SPIP_LDAP_SEARCH_DN"), getenv("SPIP_LDAP_SEARCH_PW"));
+$GLOBALS['ldap_champs'] = array('login' => array('sAMAccountName','uid','login','userid','cn','sn'),'nom' => 'cn','email' => 'mail','bio' => 'description',);
+$GLOBALS['ldap_search'] = getenv("SPIP_LDAP_SEARCH");
+?>
--- /dev/null
+{ lib, pkgs, config, myconfig, ... }:
+let
+ chloe = pkgs.callPackage ./builder.nix {
+ inherit (pkgs.webapps) chloe;
+ config = myconfig.env.websites.chloe.integration;
+ apacheUser = config.services.httpd.Inte.user;
+ apacheGroup = config.services.httpd.Inte.group;
+ };
+
+ cfg = config.myServices.websites.chloe.integration;
+in {
+ options.myServices.websites.chloe.integration.enable = lib.mkEnableOption "enable Chloe's website in integration";
+
+ config = lib.mkIf cfg.enable {
+ secrets.keys = chloe.keys;
+ systemd.services.phpfpm-chloe_dev.after = lib.mkAfter chloe.phpFpm.serviceDeps;
+ systemd.services.phpfpm-chloe_dev.wants = chloe.phpFpm.serviceDeps;
+ services.phpfpm.pools.chloe_dev = {
+ listen = chloe.phpFpm.socket;
+ extraConfig = chloe.phpFpm.pool;
+ phpOptions = config.services.phpfpm.phpOptions + ''
+ extension=${pkgs.php}/lib/php/extensions/mysqli.so
+ '';
+ };
+ system.activationScripts.chloe_dev = chloe.activationScript;
+ myServices.websites.webappDirs."${chloe.apache.webappName}" = chloe.app.webRoot;
+ services.websites.integration.modules = chloe.apache.modules;
+ services.websites.integration.vhostConfs.chloe = {
+ certName = "eldiron";
+ addToCerts = true;
+ hosts = ["chloe.immae.eu" ];
+ root = chloe.apache.root;
+ extraConfig = [ chloe.apache.vhostConf ];
+ };
+ };
+}
--- /dev/null
+{ lib, pkgs, config, myconfig, ... }:
+let
+ chloe = pkgs.callPackage ./builder.nix {
+ inherit (pkgs.webapps) chloe;
+ config = myconfig.env.websites.chloe.production;
+ apacheUser = config.services.httpd.Prod.user;
+ apacheGroup = config.services.httpd.Prod.group;
+ };
+
+ cfg = config.myServices.websites.chloe.production;
+in {
+ options.myServices.websites.chloe.production.enable = lib.mkEnableOption "enable Chloe's website in production";
+
+ config = lib.mkIf cfg.enable {
+ secrets.keys = chloe.keys;
+ services.webstats.sites = [ { name = "osteopathe-cc.fr"; } ];
+
+ systemd.services.phpfpm-chloe_prod.after = lib.mkAfter chloe.phpFpm.serviceDeps;
+ systemd.services.phpfpm-chloe_prod.wants = chloe.phpFpm.serviceDeps;
+ services.phpfpm.pools.chloe_prod = {
+ listen = chloe.phpFpm.socket;
+ extraConfig = chloe.phpFpm.pool;
+ phpOptions = config.services.phpfpm.phpOptions + ''
+ extension=${pkgs.php}/lib/php/extensions/mysqli.so
+ '';
+ };
+ system.activationScripts.chloe_prod = chloe.activationScript;
+ myServices.websites.webappDirs."${chloe.apache.webappName}" = chloe.app.webRoot;
+ services.websites.production.modules = chloe.apache.modules;
+ services.websites.production.vhostConfs.chloe = {
+ certName = "chloe";
+ certMainHost = "osteopathe-cc.fr";
+ hosts = ["osteopathe-cc.fr" "www.osteopathe-cc.fr" ];
+ root = chloe.apache.root;
+ extraConfig = [ chloe.apache.vhostConf ];
+ };
+ };
+}
--- /dev/null
+{}:
+rec {
+ phpFpm = {
+ socket = "/var/run/phpfpm/adminer.sock";
+ };
+ apache = rec {
+ modules = [ "proxy_fcgi" ];
+ webappName = "_adminer";
+ root = "/run/current-system/webapps/${webappName}";
+ vhostConf = ''
+ Alias /adminer ${root}
+ <Directory ${root}>
+ DirectoryIndex index.php
+ Require all granted
+ <FilesMatch "\.php$">
+ SetHandler "proxy:unix:${phpFpm.socket}|fcgi://localhost"
+ </FilesMatch>
+ </Directory>
+ '';
+ };
+}
--- /dev/null
+{ apacheUser, apacheGroup, connexionswing, pkgs, phpPackages, config }:
+rec {
+ app = connexionswing.override { inherit (config) environment; };
+ keys = [{
+ dest = "webapps/${app.environment}-connexionswing";
+ user = apacheUser;
+ group = apacheGroup;
+ permissions = "0400";
+ text = ''
+ # This file is auto-generated during the composer install
+ parameters:
+ database_host: ${config.mysql.host}
+ database_port: ${config.mysql.port}
+ database_name: ${config.mysql.name}
+ database_user: ${config.mysql.user}
+ database_password: ${config.mysql.password}
+ database_server_version: ${pkgs.mariadb.mysqlVersion}
+ mailer_transport: sendmail
+ mailer_host: null
+ mailer_user: null
+ mailer_password: null
+ subscription_email: ${config.email}
+ allow_robots: true
+ secret: ${config.secret}
+ ${if app.environment == "prod" then ''
+ services:
+ swiftmailer.mailer.default.transport:
+ class: Swift_SendmailTransport
+ arguments: ['/run/wrappers/bin/sendmail -bs']
+ '' else ""}
+ '';
+ }];
+ phpFpm = rec {
+ preStart = ''
+ if [ ! -f "${app.varDir}/currentWebappDir" -o \
+ ! -f "${app.varDir}/currentKey" -o \
+ "${app}" != "$(cat ${app.varDir}/currentWebappDir 2>/dev/null)" ] \
+ || ! sha512sum -c --status ${app.varDir}/currentKey; then
+ pushd ${app} > /dev/null
+ /run/wrappers/bin/sudo -u ${apacheUser} ./bin/console --env=${app.environment} cache:clear --no-warmup
+ popd > /dev/null
+ echo -n "${app}" > ${app.varDir}/currentWebappDir
+ sha512sum /var/secrets/webapps/${app.environment}-connexionswing > ${app.varDir}/currentKey
+ fi
+ '';
+ serviceDeps = [ "mysql.service" ];
+ socket = "/var/run/phpfpm/connexionswing-${app.environment}.sock";
+ phpConfig = ''
+ extension=${phpPackages.imagick}/lib/php/extensions/imagick.so
+ '';
+ pool = ''
+ user = ${apacheUser}
+ group = ${apacheGroup}
+ listen.owner = ${apacheUser}
+ listen.group = ${apacheGroup}
+ php_admin_value[upload_max_filesize] = 20M
+ php_admin_value[post_max_size] = 20M
+ ;php_admin_flag[log_errors] = on
+ php_admin_value[open_basedir] = "/run/wrappers/bin/sendmail:/var/secrets/webapps/${app.environment}-connexionswing:${app}:${app.varDir}:/tmp"
+ php_admin_value[session.save_path] = "${app.varDir}/phpSessions"
+ ${if app.environment == "dev" then ''
+ pm = ondemand
+ pm.max_children = 5
+ pm.process_idle_timeout = 60
+ env[SYMFONY_DEBUG_MODE] = "yes"
+ '' else ''
+ pm = dynamic
+ pm.max_children = 20
+ pm.start_servers = 2
+ pm.min_spare_servers = 1
+ pm.max_spare_servers = 3
+ ''}'';
+ };
+ apache = rec {
+ modules = [ "proxy_fcgi" ];
+ webappName = "connexionswing_${app.environment}";
+ root = "/run/current-system/webapps/${webappName}";
+ vhostConf = ''
+ <FilesMatch "\.php$">
+ SetHandler "proxy:unix:${phpFpm.socket}|fcgi://localhost"
+ </FilesMatch>
+
+ <Directory ${app.varDir}/medias>
+ Options FollowSymLinks
+ AllowOverride None
+ Require all granted
+ </Directory>
+
+ <Directory ${app.varDir}/uploads>
+ Options FollowSymLinks
+ AllowOverride None
+ Require all granted
+ </Directory>
+
+ ${if app.environment == "dev" then ''
+ <Location />
+ Use LDAPConnect
+ Require ldap-group cn=connexionswing.immae.eu,cn=httpd,ou=services,dc=immae,dc=eu
+ ErrorDocument 401 "<html><meta http-equiv=\"refresh\" content=\"0;url=https://connexionswing.com\"></html>"
+ </Location>
+
+ <Directory ${root}>
+ Options Indexes FollowSymLinks MultiViews Includes
+ AllowOverride None
+ Require all granted
+
+ DirectoryIndex app_dev.php
+
+ <IfModule mod_negotiation.c>
+ Options -MultiViews
+ </IfModule>
+
+ <IfModule mod_rewrite.c>
+ RewriteEngine On
+
+ RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
+ RewriteRule ^(.*) - [E=BASE:%1]
+
+ # Maintenance script
+ RewriteCond %{DOCUMENT_ROOT}/maintenance.php -f
+ RewriteCond %{SCRIPT_FILENAME} !maintenance.php
+ RewriteRule ^.*$ %{ENV:BASE}/maintenance.php [R=503,L]
+ ErrorDocument 503 /maintenance.php
+
+ # Sets the HTTP_AUTHORIZATION header removed by Apache
+ RewriteCond %{HTTP:Authorization} .
+ RewriteRule ^ - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
+
+ RewriteCond %{ENV:REDIRECT_STATUS} ^$
+ RewriteRule ^app_dev\.php(?:/(.*)|$) %{ENV:BASE}/$1 [R=301,L]
+
+ # If the requested filename exists, simply serve it.
+ # We only want to let Apache serve files and not directories.
+ RewriteCond %{REQUEST_FILENAME} -f
+ RewriteRule ^ - [L]
+
+ # Rewrite all other queries to the front controller.
+ RewriteRule ^ %{ENV:BASE}/app_dev.php [L]
+ </IfModule>
+
+ </Directory>
+ '' else ''
+ Use Stats connexionswing.com
+
+ <Directory ${root}>
+ Options Indexes FollowSymLinks MultiViews Includes
+ AllowOverride All
+ Require all granted
+ </Directory>
+ ''}
+ '';
+ };
+ activationScript = {
+ deps = [ "wrappers" ];
+ text = ''
+ install -m 0755 -o ${apacheUser} -g ${apacheGroup} -d ${app.varDir} \
+ ${app.varDir}/medias \
+ ${app.varDir}/uploads \
+ ${app.varDir}/var
+ install -m 0750 -o ${apacheUser} -g ${apacheGroup} -d ${app.varDir}/phpSessions
+ '';
+ };
+}
--- /dev/null
+{ lib, pkgs, config, myconfig, ... }:
+let
+ connexionswing = pkgs.callPackage ./builder.nix {
+ inherit (pkgs.webapps) connexionswing;
+ config = myconfig.env.websites.connexionswing.integration;
+ apacheUser = config.services.httpd.Inte.user;
+ apacheGroup = config.services.httpd.Inte.group;
+ };
+
+ cfg = config.myServices.websites.connexionswing.integration;
+in {
+ options.myServices.websites.connexionswing.integration.enable = lib.mkEnableOption "enable Connexionswing's website in integration";
+
+ config = lib.mkIf cfg.enable {
+ secrets.keys = connexionswing.keys;
+ systemd.services.phpfpm-connexionswing_dev.after = lib.mkAfter connexionswing.phpFpm.serviceDeps;
+ systemd.services.phpfpm-connexionswing_dev.wants = connexionswing.phpFpm.serviceDeps;
+ systemd.services.phpfpm-connexionswing_dev.preStart = lib.mkAfter connexionswing.phpFpm.preStart;
+ services.phpfpm.pools.connexionswing_dev = {
+ listen = connexionswing.phpFpm.socket;
+ extraConfig = connexionswing.phpFpm.pool;
+ phpOptions = config.services.phpfpm.phpOptions + connexionswing.phpFpm.phpConfig;
+ };
+ system.activationScripts.connexionswing_dev = connexionswing.activationScript;
+ myServices.websites.webappDirs."${connexionswing.apache.webappName}" = connexionswing.app.webRoot;
+ services.websites.integration.modules = connexionswing.apache.modules;
+ services.websites.integration.vhostConfs.connexionswing = {
+ certName = "eldiron";
+ addToCerts = true;
+ hosts = ["connexionswing.immae.eu" "sandetludo.immae.eu" ];
+ root = connexionswing.apache.root;
+ extraConfig = [ connexionswing.apache.vhostConf ];
+ };
+ };
+}
+
--- /dev/null
+{ lib, pkgs, config, myconfig, ... }:
+let
+ connexionswing = pkgs.callPackage ./builder.nix {
+ inherit (pkgs.webapps) connexionswing;
+ config = myconfig.env.websites.connexionswing.production;
+ apacheUser = config.services.httpd.Prod.user;
+ apacheGroup = config.services.httpd.Prod.group;
+ };
+
+ cfg = config.myServices.websites.connexionswing.production;
+in {
+ options.myServices.websites.connexionswing.production.enable = lib.mkEnableOption "enable Connexionswing's website in production";
+
+ config = lib.mkIf cfg.enable {
+ secrets.keys = connexionswing.keys;
+ services.webstats.sites = [ { name = "connexionswing.com"; } ];
+
+ systemd.services.phpfpm-connexionswing_prod.after = lib.mkAfter connexionswing.phpFpm.serviceDeps;
+ systemd.services.phpfpm-connexionswing_prod.wants = connexionswing.phpFpm.serviceDeps;
+ systemd.services.phpfpm-connexionswing_prod.preStart = lib.mkAfter connexionswing.phpFpm.preStart;
+ services.phpfpm.pools.connexionswing_prod = {
+ listen = connexionswing.phpFpm.socket;
+ extraConfig = connexionswing.phpFpm.pool;
+ phpOptions = config.services.phpfpm.phpOptions + connexionswing.phpFpm.phpConfig;
+ };
+ system.activationScripts.connexionswing_prod = connexionswing.activationScript;
+ myServices.websites.webappDirs."${connexionswing.apache.webappName}" = connexionswing.app.webRoot;
+ services.websites.production.modules = connexionswing.apache.modules;
+ services.websites.production.vhostConfs.connexionswing = {
+ certName = "connexionswing";
+ certMainHost = "connexionswing.com";
+ hosts = ["connexionswing.com" "sandetludo.com" "www.connexionswing.com" "www.sandetludo.com" ];
+ root = connexionswing.apache.root;
+ extraConfig = [ connexionswing.apache.vhostConf ];
+ };
+ };
+}
+
--- /dev/null
+{ lib, pkgs, config, myconfig, ... }:
+let
+ www_root = "/run/current-system/webapps/_www";
+ theme_root = "/run/current-system/webapps/_theme";
+ apacheConfig = {
+ gzip = {
+ modules = [ "deflate" "filter" ];
+ extraConfig = ''
+ AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript
+ '';
+ };
+ macros = {
+ modules = [ "macro" ];
+ };
+ stats = {
+ extraConfig = ''
+ <Macro Stats %{domain}>
+ Alias /webstats ${config.services.webstats.dataDir}/%{domain}
+ <Directory ${config.services.webstats.dataDir}/%{domain}>
+ DirectoryIndex index.html
+ AllowOverride None
+ Require all granted
+ </Directory>
+ <Location /webstats>
+ Use LDAPConnect
+ Require ldap-group cn=%{domain},ou=stats,cn=httpd,ou=services,dc=immae,dc=eu
+ </Location>
+ </Macro>
+ '';
+ };
+ ldap = {
+ modules = [ "ldap" "authnz_ldap" ];
+ extraConfig = ''
+ <IfModule ldap_module>
+ LDAPSharedCacheSize 500000
+ LDAPCacheEntries 1024
+ LDAPCacheTTL 600
+ LDAPOpCacheEntries 1024
+ LDAPOpCacheTTL 600
+ </IfModule>
+
+ Include /var/secrets/apache-ldap
+ '';
+ };
+ global = {
+ extraConfig = (pkgs.webapps.apache-default.override { inherit www_root;}).apacheConfig;
+ };
+ apaxy = {
+ extraConfig = (pkgs.webapps.apache-theme.override { inherit theme_root; }).apacheConfig;
+ };
+ http2 = {
+ modules = [ "http2" ];
+ extraConfig = ''
+ Protocols h2 http/1.1
+ '';
+ };
+ customLog = {
+ extraConfig = ''
+ LogFormat "%v:%p %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combinedVhost
+ '';
+ };
+ };
+ makeModules = lib.lists.flatten (lib.attrsets.mapAttrsToList (n: v: v.modules or []) apacheConfig);
+ makeExtraConfig = (builtins.filter (x: x != null) (lib.attrsets.mapAttrsToList (n: v: v.extraConfig or null) apacheConfig));
+in
+{
+ options.myServices.websites.webappDirs = lib.mkOption {
+ type = lib.types.attrsOf lib.types.path;
+ description = ''
+ Webapp paths to create in /run/current-system/webapps
+ '';
+ default = {};
+ };
+
+ config = {
+ users.users.wwwrun.extraGroups = [ "keys" ];
+ networking.firewall.allowedTCPPorts = [ 80 443 ];
+
+ nixpkgs.overlays = [ (self: super: rec {
+ #openssl = self.openssl_1_1;
+ php = php72;
+ php72 = (super.php72.override {
+ mysql.connector-c = self.mariadb;
+ config.php.mysqlnd = false;
+ config.php.mysqli = false;
+ }).overrideAttrs(old: rec {
+ # Didn't manage to build with mysqli + mysql_config connector
+ configureFlags = old.configureFlags ++ [
+ "--with-mysqli=shared,mysqlnd"
+ ];
+ # preConfigure = (old.preConfigure or "") + ''
+ # export CPPFLAGS="$CPPFLAGS -I${pkgs.mariadb}/include/mysql/server";
+ # sed -i -e 's/#include "mysqli_priv.h"/#include "mysqli_priv.h"\n#include <mysql_version.h>/' \
+ # ext/mysqli/mysqli.c ext/mysqli/mysqli_prop.c
+ # '';
+ });
+ phpPackages = super.php72Packages.override { inherit php; };
+ }) ];
+
+ secrets.keys = [{
+ dest = "apache-ldap";
+ user = "wwwrun";
+ group = "wwwrun";
+ permissions = "0400";
+ text = ''
+ <Macro LDAPConnect>
+ <IfModule authnz_ldap_module>
+ AuthLDAPURL ldap://ldap.immae.eu:389/dc=immae,dc=eu STARTTLS
+ AuthLDAPBindDN cn=httpd,ou=services,dc=immae,dc=eu
+ AuthLDAPBindPassword "${myconfig.env.httpd.ldap.password}"
+ AuthType Basic
+ AuthName "Authentification requise (Acces LDAP)"
+ AuthBasicProvider ldap
+ </IfModule>
+ </Macro>
+ '';
+ }];
+
+ system.activationScripts = {
+ httpd = ''
+ install -d -m 0755 ${config.security.acme.directory}/acme-challenge
+ install -d -m 0750 -o wwwrun -g wwwrun /var/lib/php/sessions
+ '';
+ };
+
+ services.phpfpm = {
+ phpPackage = pkgs.php;
+ phpOptions = ''
+ session.save_path = "/var/lib/php/sessions"
+ post_max_size = 20M
+ ; 15 days (seconds)
+ session.gc_maxlifetime = 1296000
+ ; 30 days (minutes)
+ session.cache_expire = 43200
+ '';
+ extraConfig = ''
+ log_level = notice
+ '';
+ };
+
+ services.websites.production = {
+ enable = true;
+ adminAddr = "httpd@immae.eu";
+ httpdName = "Prod";
+ ips =
+ let ips = myconfig.env.servers.eldiron.ips.production;
+ in [ips.ip4] ++ (ips.ip6 or []);
+ modules = makeModules;
+ extraConfig = makeExtraConfig;
+ fallbackVhost = {
+ certName = "eldiron";
+ hosts = ["eldiron.immae.eu" ];
+ root = www_root;
+ extraConfig = [ "DirectoryIndex index.htm" ];
+ };
+ };
+
+ services.websites.integration = {
+ enable = true;
+ adminAddr = "httpd@immae.eu";
+ httpdName = "Inte";
+ ips =
+ let ips = myconfig.env.servers.eldiron.ips.integration;
+ in [ips.ip4] ++ (ips.ip6 or []);
+ modules = makeModules;
+ extraConfig = makeExtraConfig;
+ fallbackVhost = {
+ certName = "eldiron";
+ hosts = ["eldiron.immae.eu" ];
+ root = www_root;
+ extraConfig = [ "DirectoryIndex index.htm" ];
+ };
+ };
+
+ services.websites.tools = {
+ enable = true;
+ adminAddr = "httpd@immae.eu";
+ httpdName = "Tools";
+ ips =
+ let ips = myconfig.env.servers.eldiron.ips.main;
+ in [ips.ip4] ++ (ips.ip6 or []);
+ modules = makeModules;
+ extraConfig = makeExtraConfig ++
+ [ ''
+ RedirectMatch ^/licen[cs]es?_et_tip(ping)?$ https://www.immae.eu/licences_et_tip.html
+ RedirectMatch ^/licen[cs]es?_and_tip(ping)?$ https://www.immae.eu/licenses_and_tipping.html
+ RedirectMatch ^/licen[cs]es?$ https://www.immae.eu/licenses_and_tipping.html
+ RedirectMatch ^/tip(ping)?$ https://www.immae.eu/licenses_and_tipping.html
+ RedirectMatch ^/(mentions|mentions_legales|legal)$ https://www.immae.eu/mentions.html
+ RedirectMatch ^/CGU$ https://www.immae.eu/CGU
+ ''
+ ];
+ nosslVhost = {
+ enable = true;
+ host = "nossl.immae.eu";
+ };
+ fallbackVhost = {
+ certName = "eldiron";
+ hosts = ["eldiron.immae.eu" ];
+ root = www_root;
+ extraConfig = [ "DirectoryIndex index.htm" ];
+ };
+ };
+
+ system.extraSystemBuilderCmds = lib.mkIf (builtins.length (builtins.attrValues config.myServices.websites.webappDirs) > 0) ''
+ mkdir -p $out/webapps
+ ${builtins.concatStringsSep "\n" (lib.attrsets.mapAttrsToList (name: path: "ln -s ${path} $out/webapps/${name}") config.myServices.websites.webappDirs)}
+ '';
+
+ myServices.websites = {
+ webappDirs = {
+ _www = pkgs.webapps.apache-default.www;
+ _theme = pkgs.webapps.apache-theme.theme;
+ };
+
+ aten.integration.enable = true;
+ aten.production.enable = true;
+
+ capitaines.production.enable = true;
+
+ chloe.integration.enable = true;
+ chloe.production.enable = true;
+
+ connexionswing.integration.enable = true;
+ connexionswing.production.enable = true;
+
+ denisejerome.production.enable = true;
+
+ emilia.production.enable = true;
+
+ florian.app.enable = true;
+ florian.integration.enable = true;
+ florian.production.enable = true;
+
+ immae.production.enable = true;
+ immae.release.enable = true;
+ immae.temp.enable = true;
+
+ leila.production.enable = true;
+
+ ludivinecassal.integration.enable = true;
+ ludivinecassal.production.enable = true;
+
+ nassime.production.enable = true;
+
+ naturaloutil.production.enable = true;
+
+ papa.surveillance.enable = true;
+
+ piedsjaloux.integration.enable = true;
+ piedsjaloux.production.enable = true;
+
+ tools.cloud.enable = true;
+ tools.dav.enable = true;
+ tools.db.enable = true;
+ tools.diaspora.enable = true;
+ tools.etherpad-lite.enable = true;
+ tools.git.enable = true;
+ tools.mastodon.enable = true;
+ tools.mediagoblin.enable = true;
+ tools.peertube.enable = true;
+ tools.tools.enable = true;
+ };
+ };
+}
--- /dev/null
+{ lib, pkgs, config, myconfig, ... }:
+let
+ cfg = config.myServices.websites.denisejerome.production;
+ varDir = "/var/lib/ftp/denisejerome";
+ env = myconfig.env.websites.denisejerome;
+in {
+ options.myServices.websites.denisejerome.production.enable = lib.mkEnableOption "enable Denise Jerome's website";
+
+ config = lib.mkIf cfg.enable {
+ services.webstats.sites = [ { name = "denisejerome.piedsjaloux.fr"; } ];
+
+ services.websites.production.vhostConfs.denisejerome = {
+ certName = "denisejerome";
+ certMainHost = "denisejerome.piedsjaloux.fr";
+ hosts = ["denisejerome.piedsjaloux.fr" ];
+ root = varDir;
+ extraConfig = [
+ ''
+ Use Stats denisejerome.piedsjaloux.fr
+
+ <Directory ${varDir}>
+ DirectoryIndex index.htm index.html
+ Options Indexes FollowSymLinks MultiViews Includes
+ AllowOverride AuthConfig
+ Require all granted
+ </Directory>
+ ''
+ ];
+ };
+ };
+}
--- /dev/null
+<!doctype html>
+<html>
+ <head>
+ <title>Pause</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <style>
+ body {
+ padding-left: 5px;
+ padding-right: 5px;
+ text-align: center;
+ margin: auto;
+ font: 20px Helvetica, sans-serif;
+ color: #333;
+ }
+ h1 {
+ margin: 0px;
+ font-size: 40px;
+ }
+ article {
+ display: block;
+ max-width: 650px;
+ margin: 0 auto;
+ padding-top: 30px;
+ }
+ article + article {
+ border-top: 1px solid lightgrey;
+ }
+ article div {
+ text-align: justify;
+ }
+ a {
+ color: #dc8100;
+ text-decoration: none;
+ }
+ a:hover {
+ color: #333;
+ }
+ </style>
+ </head>
+ <body>
+ <article>
+ <h1>Site web en pause !</h1>
+ <div>
+ <p>Le site et les cours de photographie sont actuellement en pause.</p>
+ </div>
+ </article>
+ </body>
+</html>
--- /dev/null
+{ lib, pkgs, config, myconfig, ... }:
+let
+ cfg = config.myServices.websites.emilia.production;
+ env = myconfig.env.websites.emilia;
+ varDir = "/var/lib/moodle";
+ siteDir = ./moodle;
+ webappName = "emilia_moodle";
+ root = "/run/current-system/webapps/${webappName}";
+ # php_admin_value[upload_max_filesize] = 50000000
+ # php_admin_value[post_max_size] = 50000000
+ configFile = ''
+ <?php // Moodle configuration file
+
+ unset($CFG);
+ global $CFG;
+ $CFG = new stdClass();
+
+ $CFG->dbtype = 'pgsql';
+ $CFG->dblibrary = 'native';
+ $CFG->dbhost = '${env.postgresql.host}';
+ $CFG->dbname = '${env.postgresql.database}';
+ $CFG->dbuser = '${env.postgresql.user}';
+ $CFG->dbpass = '${env.postgresql.password}';
+ $CFG->prefix = 'mdl_';
+ $CFG->dboptions = array (
+ 'dbpersist' => 0,
+ 'dbport' => '${env.postgreesql.port}',
+ 'dbsocket' => '${env.postgresql.password}',
+ );
+
+ $CFG->wwwroot = 'https://www.saison-photo.org';
+ $CFG->dataroot = '${varDir}';
+ $CFG->admin = 'admin';
+
+ $CFG->directorypermissions = 02777;
+
+ require_once(__DIR__ . '/lib/setup.php');
+
+ // There is no php closing tag in this file,
+ // it is intentional because it prevents trailing whitespace problems!
+ '';
+in {
+ options.myServices.websites.emilia.production.enable = lib.mkEnableOption "enable Emilia's website";
+
+ config = lib.mkIf cfg.enable {
+ system.activationScripts.emilia = ''
+ install -m 0755 -o wwwrun -g wwwrun -d ${varDir}
+ '';
+ myServices.websites.webappDirs."${webappName}" = siteDir;
+ services.websites.production.vhostConfs.emilia = {
+ certName = "emilia";
+ certMainHost = "saison-photo.org";
+ hosts = [ "saison-photo.org" "www.saison-photo.org" ];
+ root = root;
+ extraConfig = [
+ ''
+ <Directory ${root}>
+ DirectoryIndex pause.html
+ Options Indexes FollowSymLinks MultiViews Includes
+ Require all granted
+ </Directory>
+ ''
+ ];
+ };
+ };
+}
--- /dev/null
+{ lib, pkgs, config, myconfig, ... }:
+let
+ adminer = pkgs.callPackage ../commons/adminer.nix {};
+
+ tellesflorian = pkgs.callPackage ./builder_app.nix {
+ inherit (pkgs.webapps) tellesflorian;
+ config = myconfig.env.websites.tellesflorian.integration;
+ apacheUser = config.services.httpd.Inte.user;
+ apacheGroup = config.services.httpd.Inte.group;
+ };
+
+ cfg = config.myServices.websites.florian.app;
+in {
+ options.myServices.websites.florian.app.enable = lib.mkEnableOption "enable Florian's app in integration";
+
+ config = lib.mkIf cfg.enable {
+ secrets.keys = tellesflorian.keys;
+ systemd.services.phpfpm-tellesflorian_dev.after = lib.mkAfter tellesflorian.phpFpm.serviceDeps;
+ systemd.services.phpfpm-tellesflorian_dev.wants = tellesflorian.phpFpm.serviceDeps;
+ systemd.services.phpfpm-tellesflorian_dev.preStart = lib.mkAfter tellesflorian.phpFpm.preStart;
+ services.phpfpm.poolConfigs.tellesflorian_dev = tellesflorian.phpFpm.pool;
+ system.activationScripts.tellesflorian_dev = tellesflorian.activationScript;
+ myServices.websites.webappDirs."${tellesflorian.apache.webappName}" = tellesflorian.app.webRoot;
+ services.websites.integration.modules = adminer.apache.modules ++ tellesflorian.apache.modules;
+ services.websites.integration.vhostConfs.tellesflorian = {
+ certName = "eldiron";
+ addToCerts = true;
+ hosts = ["app.tellesflorian.com" ];
+ root = tellesflorian.apache.root;
+ extraConfig = [
+ tellesflorian.apache.vhostConf
+ adminer.apache.vhostConf
+ ];
+ };
+ };
+}
--- /dev/null
+{ apacheUser, apacheGroup, tellesflorian, config }:
+rec {
+ app = tellesflorian.override { inherit (config) environment; };
+ keys = [
+ {
+ dest = "webapps/${app.environment}-tellesflorian-passwords";
+ user = apacheUser;
+ group = apacheGroup;
+ permissions = "0400";
+ text = ''
+ invite:${config.invite_passwords}
+ '';
+ }
+ {
+ dest = "webapps/${app.environment}-tellesflorian";
+ user = apacheUser;
+ group = apacheGroup;
+ permissions = "0400";
+ text = ''
+ # This file is auto-generated during the composer install
+ parameters:
+ database_host: ${config.mysql.host}
+ database_port: ${config.mysql.port}
+ database_name: ${config.mysql.name}
+ database_user: ${config.mysql.user}
+ database_password: ${config.mysql.password}
+ mailer_transport: smtp
+ mailer_host: 127.0.0.1
+ mailer_user: null
+ mailer_password: null
+ secret: ${config.secret}
+ '';
+ }
+ ];
+ phpFpm = rec {
+ preStart = ''
+ if [ ! -f "${app.varDir}/currentWebappDir" -o \
+ ! -f "${app.varDir}/currentKey" -o \
+ "${app}" != "$(cat ${app.varDir}/currentWebappDir 2>/dev/null)" ] \
+ || ! sha512sum -c --status ${app.varDir}/currentKey; then
+ pushd ${app} > /dev/null
+ /run/wrappers/bin/sudo -u wwwrun ./bin/console --env=${app.environment} cache:clear --no-warmup
+ popd > /dev/null
+ echo -n "${app}" > ${app.varDir}/currentWebappDir
+ sha512sum /var/secrets/webapps/${app.environment}-tellesflorian > ${app.varDir}/currentKey
+ fi
+ '';
+ serviceDeps = [ "mysql.service" ];
+ socket = "/var/run/phpfpm/floriantelles-${app.environment}.sock";
+ pool = ''
+ listen = ${socket}
+ user = ${apacheUser}
+ group = ${apacheGroup}
+ listen.owner = ${apacheUser}
+ listen.group = ${apacheGroup}
+ php_admin_value[upload_max_filesize] = 20M
+ php_admin_value[post_max_size] = 20M
+ ;php_admin_flag[log_errors] = on
+ php_admin_value[open_basedir] = "/var/secrets/webapps/${app.environment}-tellesflorian:${app}:${app.varDir}:/tmp"
+ php_admin_value[session.save_path] = "${app.varDir}/phpSessions"
+ ${if app.environment == "dev" then ''
+ pm = ondemand
+ pm.max_children = 5
+ pm.process_idle_timeout = 60
+ env[SYMFONY_DEBUG_MODE] = "yes"
+ '' else ''
+ pm = dynamic
+ pm.max_children = 20
+ pm.start_servers = 2
+ pm.min_spare_servers = 1
+ pm.max_spare_servers = 3
+ ''}'';
+ };
+ apache = rec {
+ modules = [ "proxy_fcgi" ];
+ webappName = "florian_${app.environment}";
+ root = "/run/current-system/webapps/${webappName}";
+ vhostConf = ''
+ <FilesMatch "\.php$">
+ SetHandler "proxy:unix:${phpFpm.socket}|fcgi://localhost"
+ </FilesMatch>
+
+ ${if app.environment == "dev" then ''
+ <Location />
+ AuthBasicProvider file ldap
+ Use LDAPConnect
+ Require ldap-group cn=app.tellesflorian.com,cn=httpd,ou=services,dc=immae,dc=eu
+
+ AuthUserFile "/var/secrets/webapps/${app.environment}-tellesflorian-passwords"
+ Require user "invite"
+
+ ErrorDocument 401 "<html><meta http-equiv=\"refresh\" content=\"0;url=https://tellesflorian.com\"></html>"
+ </Location>
+
+ <Directory ${root}>
+ Options Indexes FollowSymLinks MultiViews Includes
+ AllowOverride None
+ Require all granted
+
+ DirectoryIndex app_dev.php
+
+ <IfModule mod_negotiation.c>
+ Options -MultiViews
+ </IfModule>
+
+ <IfModule mod_rewrite.c>
+ RewriteEngine On
+
+ RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
+ RewriteRule ^(.*) - [E=BASE:%1]
+
+ # Maintenance script
+ RewriteCond %{DOCUMENT_ROOT}/maintenance.php -f
+ RewriteCond %{SCRIPT_FILENAME} !maintenance.php
+ RewriteRule ^.*$ %{ENV:BASE}/maintenance.php [R=503,L]
+ ErrorDocument 503 /maintenance.php
+
+ # Sets the HTTP_AUTHORIZATION header removed by Apache
+ RewriteCond %{HTTP:Authorization} .
+ RewriteRule ^ - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
+
+ RewriteCond %{ENV:REDIRECT_STATUS} ^$
+ RewriteRule ^app_dev\.php(?:/(.*)|$) %{ENV:BASE}/$1 [R=301,L]
+
+ # If the requested filename exists, simply serve it.
+ # We only want to let Apache serve files and not directories.
+ RewriteCond %{REQUEST_FILENAME} -f
+ RewriteRule ^ - [L]
+
+ # Rewrite all other queries to the front controller.
+ RewriteRule ^ %{ENV:BASE}/app_dev.php [L]
+ </IfModule>
+
+ </Directory>
+ '' else ''
+ <Directory ${root}>
+ Options Indexes FollowSymLinks MultiViews Includes
+ AllowOverride All
+ Require all granted
+ </Directory>
+ ''}
+ '';
+ };
+ activationScript = {
+ deps = [ "wrappers" ];
+ text = ''
+ install -m 0755 -o ${apacheUser} -g ${apacheGroup} -d ${app.varDir} \
+ ${app.varDir}/var
+ install -m 0750 -o ${apacheUser} -g ${apacheGroup} -d ${app.varDir}/phpSessions
+ '';
+ };
+}
--- /dev/null
+{ lib, pkgs, config, myconfig, ... }:
+let
+ adminer = pkgs.callPackage ../commons/adminer.nix {};
+ cfg = config.myServices.websites.florian.integration;
+ varDir = "/var/lib/ftp/florian";
+ env = myconfig.env.websites.florian;
+in {
+ options.myServices.websites.florian.integration.enable = lib.mkEnableOption "enable Florian's website integration";
+
+ config = lib.mkIf cfg.enable {
+ security.acme.certs."ftp".extraDomains."florian.immae.eu" = null;
+
+ services.websites.integration.modules = adminer.apache.modules;
+ services.websites.integration.vhostConfs.florian = {
+ certName = "eldiron";
+ addToCerts = true;
+ hosts = [ "florian.immae.eu" ];
+ root = "${varDir}/florian.immae.eu";
+ extraConfig = [
+ adminer.apache.vhostConf
+ ''
+ ServerAdmin ${env.server_admin}
+
+ <Directory ${varDir}/florian.immae.eu>
+ DirectoryIndex index.php index.htm index.html
+ Options Indexes FollowSymLinks MultiViews Includes
+ AllowOverride None
+ Require all granted
+ </Directory>
+ ''
+ ];
+ };
+ };
+}
--- /dev/null
+{ lib, pkgs, config, myconfig, ... }:
+let
+ adminer = pkgs.callPackage ../commons/adminer.nix {};
+ cfg = config.myServices.websites.florian.production;
+ varDir = "/var/lib/ftp/florian";
+ env = myconfig.env.websites.florian;
+in {
+ options.myServices.websites.florian.production.enable = lib.mkEnableOption "enable Florian's website production";
+
+ config = lib.mkIf cfg.enable {
+ security.acme.certs."ftp".extraDomains."tellesflorian.com" = null;
+
+ services.websites.production.modules = adminer.apache.modules;
+ services.websites.production.vhostConfs.florian = {
+ certName = "florian";
+ certMainHost = "tellesflorian.com";
+ hosts = [ "tellesflorian.com" "www.tellesflorian.com" ];
+ root = "${varDir}/tellesflorian.com";
+ extraConfig = [
+ adminer.apache.vhostConf
+ ''
+ ServerAdmin ${env.server_admin}
+
+ <Directory ${varDir}/tellesflorian.com>
+ DirectoryIndex index.php index.htm index.html
+ Options Indexes FollowSymLinks MultiViews Includes
+ AllowOverride None
+ Require all granted
+ </Directory>
+ ''
+ ];
+ };
+ };
+}
--- /dev/null
+{ lib, pkgs, config, myconfig, ... }:
+let
+ cfg = config.myServices.websites.immae.production;
+ varDir = "/var/lib/ftp/immae";
+ env = myconfig.env.websites.immae;
+in {
+ options.myServices.websites.immae.production.enable = lib.mkEnableOption "enable Immae's website";
+
+ config = lib.mkIf cfg.enable {
+ services.webstats.sites = [ { name = "www.immae.eu"; } ];
+
+ services.phpfpm.poolConfigs.immae = ''
+ listen = /run/phpfpm/immae.sock
+ user = wwwrun
+ group = wwwrun
+ listen.owner = wwwrun
+ listen.group = wwwrun
+
+ pm = ondemand
+ pm.max_children = 5
+ pm.process_idle_timeout = 60
+
+ php_admin_value[open_basedir] = "${varDir}:/tmp"
+ '';
+ services.websites.production.modules = [ "proxy_fcgi" ];
+ services.websites.production.vhostConfs.immae = {
+ certName = "eldiron";
+ addToCerts = true;
+ hosts = [ "www.immae.eu" ];
+ root = varDir;
+ extraConfig = [
+ ''
+ Use Stats www.immae.eu
+
+ <FilesMatch "\.php$">
+ SetHandler "proxy:unix:/run/phpfpm/immae.sock|fcgi://localhost"
+ </FilesMatch>
+
+ <Directory ${varDir}>
+ DirectoryIndex index.php index.htm index.html
+ Options Indexes FollowSymLinks MultiViews Includes
+ AllowOverride All
+ Require all granted
+ </Directory>
+
+ <Location /blog_old/>
+ Use LDAPConnect
+ Require ldap-group cn=blog,cn=immae.eu,ou=services,dc=immae,dc=eu
+ </Location>
+ ''
+ ];
+ };
+
+ services.websites.production.vhostConfs.bouya = {
+ certName = "eldiron";
+ addToCerts = true;
+ hosts = [ "bouya.org" "www.bouya.org" ];
+ root = null;
+ extraConfig = [ ''
+ RedirectMatch 301 ^/((?!\.well-known.*$).*)$ https://www.normalesup.org/~bouya/
+ '' ];
+ };
+ };
+}
--- /dev/null
+{ lib, pkgs, config, myconfig, ... }:
+let
+ cfg = config.myServices.websites.immae.release;
+ varDir = "/var/lib/ftp/release.immae.eu";
+ env = myconfig.env.websites.release;
+in {
+ options.myServices.websites.immae.release.enable = lib.mkEnableOption "enable Release' website";
+
+ config = lib.mkIf cfg.enable {
+ services.webstats.sites = [ { name = "release.immae.eu"; } ];
+
+ services.websites.production.vhostConfs.release = {
+ certName = "eldiron";
+ addToCerts = true;
+ hosts = [ "release.immae.eu" ];
+ root = varDir;
+ extraConfig = [
+ ''
+ Use Stats release.immae.eu
+
+ Use Apaxy "${varDir}" "title .duplicity-ignore"
+ <Directory "${varDir}">
+ Use LDAPConnect
+ Options Indexes
+ AllowOverride All
+ Require all granted
+ </Directory>
+
+ <Directory "${varDir}/packages">
+ Use LDAPConnect
+ Options Indexes FollowSymlinks
+ AllowOverride None
+ Require all granted
+ </Directory>
+ ''
+ ];
+ };
+ };
+}
--- /dev/null
+{ lib, pkgs, config, myconfig, ... }:
+let
+ cfg = config.myServices.websites.immae.temp;
+ varDir = "/var/lib/ftp/temp.immae.eu";
+ env = myconfig.env.websites.temp;
+in {
+ options.myServices.websites.immae.temp.enable = lib.mkEnableOption "enable Temp' website";
+
+ config = lib.mkIf cfg.enable {
+ services.websites.production.modules = [ "headers" ];
+ services.websites.production.vhostConfs.temp = {
+ certName = "eldiron";
+ addToCerts = true;
+ hosts = [ "temp.immae.eu" ];
+ root = varDir;
+ extraConfig = [
+ ''
+ Use Apaxy "${varDir}" "title .duplicity-ignore"
+ <FilesMatch ".+">
+ Header set Content-Disposition attachment
+ </FilesMatch>
+ <Directory "${varDir}">
+ Options -Indexes
+ AllowOverride None
+ Require all granted
+ </Directory>
+
+ <DirectoryMatch "${varDir}/(.+)">
+ Options Indexes
+ </DirectoryMatch>
+ ''
+ ];
+ };
+ };
+}
+
--- /dev/null
+{ lib, pkgs, config, ... }:
+let
+ cfg = config.myServices.websites.leila.production;
+ varDir = "/var/lib/ftp/leila";
+in {
+ options.myServices.websites.leila.production.enable = lib.mkEnableOption "enable Leila's website in production";
+
+ config = lib.mkIf cfg.enable {
+ services.phpfpm.poolConfigs.leila = ''
+ listen = /run/phpfpm/leila.sock
+ user = wwwrun
+ group = wwwrun
+ listen.owner = wwwrun
+ listen.group = wwwrun
+
+ pm = ondemand
+ pm.max_children = 5
+ pm.process_idle_timeout = 60
+
+ php_admin_value[open_basedir] = "${varDir}:/tmp"
+ '';
+
+ services.webstats.sites = [
+ { name = "leila.bouya.org"; }
+ { name = "chorale.leila.bouya.org"; }
+ ];
+
+ services.websites.production.modules = [ "proxy_fcgi" ];
+ services.websites.production.vhostConfs.leila_chorale = {
+ certName = "leila";
+ addToCerts = true;
+ hosts = [ "chorale.leila.bouya.org" "chorale-vocanta.fr.nf" "www.chorale-vocanta.fr.nf" ];
+ root = "${varDir}/Chorale";
+ extraConfig = [
+ ''
+ Use Stats chorale.leila.bouya.org
+ <Directory ${varDir}/Chorale>
+ DirectoryIndex index.php index.htm index.html
+ Options Indexes FollowSymLinks MultiViews Includes
+ AllowOverride None
+
+ Use LDAPConnect
+ Require ldap-group cn=chorale.leila.bouya.org,cn=httpd,ou=services,dc=immae,dc=eu
+
+ <FilesMatch "\.php$">
+ SetHandler "proxy:unix:/run/phpfpm/leila.sock|fcgi://localhost"
+ </FilesMatch>
+ </Directory>
+ ''
+ ];
+ };
+ services.websites.production.vhostConfs.leila = {
+ certName = "leila";
+ certMainHost = "leila.bouya.org";
+ hosts = [ "leila.bouya.org" ];
+ root = varDir;
+ extraConfig = [
+ ''
+ Use Stats leila.bouya.org
+ <Directory ${varDir}/Chorale>
+ DirectoryIndex index.htm index.html
+ Options Indexes FollowSymLinks MultiViews Includes
+ AllowOverride None
+
+ Use LDAPConnect
+ Require ldap-group cn=chorale.leila.bouya.org,cn=httpd,ou=services,dc=immae,dc=eu
+
+ <FilesMatch "\.php$">
+ SetHandler "proxy:unix:/run/phpfpm/leila.sock|fcgi://localhost"
+ </FilesMatch>
+ </Directory>
+ <Directory ${varDir}>
+ DirectoryIndex index.htm index.html
+ Options Indexes FollowSymLinks MultiViews Includes
+ AllowOverride None
+ Require all granted
+ </Directory>
+ ''
+ ];
+ };
+ };
+}
--- /dev/null
+{ apacheUser, apacheGroup, config, ludivinecassal, pkgs, ruby, sass, imagemagick }:
+rec {
+ app = ludivinecassal.override { inherit (config) environment; };
+ varDir = "/var/lib/ludivinecassal_${app.environment}";
+ keys = [{
+ dest = "webapps/${app.environment}-ludivinecassal";
+ user = apacheUser;
+ group = apacheGroup;
+ permissions = "0400";
+ text = ''
+ # This file is auto-generated during the composer install
+ parameters:
+ database_host: ${config.mysql.host}
+ database_port: ${config.mysql.port}
+ database_name: ${config.mysql.name}
+ database_user: ${config.mysql.user}
+ database_password: ${config.mysql.password}
+ database_server_version: ${pkgs.mariadb.mysqlVersion}
+ mailer_transport: smtp
+ mailer_host: 127.0.0.1
+ mailer_user: null
+ mailer_password: null
+ secret: ${config.secret}
+ ldap_host: ldap.immae.eu
+ ldap_port: 636
+ ldap_version: 3
+ ldap_ssl: true
+ ldap_tls: false
+ ldap_user_bind: 'uid={username},ou=users,dc=immae,dc=eu'
+ ldap_base_dn: 'dc=immae,dc=eu'
+ ldap_search_dn: '${config.ldap.dn}'
+ ldap_search_password: '${config.ldap.password}'
+ ldap_search_filter: '${config.ldap.search}'
+ leapt_im:
+ binary_path: ${imagemagick}/bin
+ assetic:
+ sass: ${sass}/bin/sass
+ ruby: ${ruby}/bin/ruby
+ '';
+ }];
+ phpFpm = rec {
+ preStart = ''
+ if [ ! -f "${app.varDir}/currentWebappDir" -o \
+ ! -f "${app.varDir}/currentKey" -o \
+ "${app}" != "$(cat ${app.varDir}/currentWebappDir 2>/dev/null)" ] \
+ || ! sha512sum -c --status ${app.varDir}/currentKey; then
+ pushd ${app} > /dev/null
+ /run/wrappers/bin/sudo -u ${apacheUser} ./bin/console --env=${app.environment} cache:clear --no-warmup
+ popd > /dev/null
+ echo -n "${app}" > ${app.varDir}/currentWebappDir
+ sha512sum /var/secrets/webapps/${app.environment}-ludivinecassal > ${app.varDir}/currentKey
+ fi
+ '';
+ serviceDeps = [ "mysql.service" ];
+ socket = "/var/run/phpfpm/ludivinecassal-${app.environment}.sock";
+ pool = ''
+ listen = ${socket}
+ user = ${apacheUser}
+ group = ${apacheGroup}
+ listen.owner = ${apacheUser}
+ listen.group = ${apacheGroup}
+ php_admin_value[upload_max_filesize] = 20M
+ php_admin_value[post_max_size] = 20M
+ ;php_admin_flag[log_errors] = on
+ php_admin_value[open_basedir] = "/var/secrets/webapps/${app.environment}-ludivinecassal:${app}:${app.varDir}:/tmp"
+ php_admin_value[session.save_path] = "${app.varDir}/phpSessions"
+ ${if app.environment == "dev" then ''
+ pm = ondemand
+ pm.max_children = 5
+ pm.process_idle_timeout = 60
+ env[SYMFONY_DEBUG_MODE] = "yes"
+ '' else ''
+ pm = dynamic
+ pm.max_children = 20
+ pm.start_servers = 2
+ pm.min_spare_servers = 1
+ pm.max_spare_servers = 3
+ ''}'';
+ };
+ apache = rec {
+ modules = [ "proxy_fcgi" ];
+ webappName = "ludivine_${app.environment}";
+ root = "/run/current-system/webapps/${webappName}";
+ vhostConf = ''
+ <FilesMatch "\.php$">
+ SetHandler "proxy:unix:${phpFpm.socket}|fcgi://localhost"
+ </FilesMatch>
+
+ ${if app.environment == "dev" then ''
+ <Location />
+ Use LDAPConnect
+ Require ldap-group cn=ludivine.immae.eu,cn=httpd,ou=services,dc=immae,dc=eu
+ ErrorDocument 401 "<html><meta http-equiv=\"refresh\" content=\"0;url=https://ludivinecassal.com\"></html>"
+ </Location>
+
+ <Directory ${root}>
+ Options Indexes FollowSymLinks MultiViews Includes
+ AllowOverride None
+ Require all granted
+
+ DirectoryIndex app_dev.php
+
+ <IfModule mod_negotiation.c>
+ Options -MultiViews
+ </IfModule>
+
+ <IfModule mod_rewrite.c>
+ RewriteEngine On
+
+ RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
+ RewriteRule ^(.*) - [E=BASE:%1]
+
+ # Maintenance script
+ RewriteCond %{DOCUMENT_ROOT}/maintenance.php -f
+ RewriteCond %{SCRIPT_FILENAME} !maintenance.php
+ RewriteRule ^.*$ %{ENV:BASE}/maintenance.php [R=503,L]
+ ErrorDocument 503 /maintenance.php
+
+ # Sets the HTTP_AUTHORIZATION header removed by Apache
+ RewriteCond %{HTTP:Authorization} .
+ RewriteRule ^ - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
+
+ RewriteCond %{ENV:REDIRECT_STATUS} ^$
+ RewriteRule ^app_dev\.php(?:/(.*)|$) %{ENV:BASE}/$1 [R=301,L]
+
+ # If the requested filename exists, simply serve it.
+ # We only want to let Apache serve files and not directories.
+ RewriteCond %{REQUEST_FILENAME} -f
+ RewriteRule ^ - [L]
+
+ # Rewrite all other queries to the front controller.
+ RewriteRule ^ %{ENV:BASE}/app_dev.php [L]
+ </IfModule>
+
+ </Directory>
+ '' else ''
+ Use Stats ludivinecassal.com
+
+ <Directory ${root}>
+ Options Indexes FollowSymLinks MultiViews Includes
+ AllowOverride All
+ Require all granted
+ </Directory>
+ ''}
+ '';
+ };
+ activationScript = {
+ deps = [ "wrappers" ];
+ text = ''
+ install -m 0755 -o ${apacheUser} -g ${apacheGroup} -d ${app.varDir}
+ install -m 0755 -o ${apacheUser} -g ${apacheGroup} -d ${app.varDir}/tmp
+ install -m 0750 -o ${apacheUser} -g ${apacheGroup} -d ${app.varDir}/phpSessions
+ '';
+ };
+}
--- /dev/null
+{ lib, pkgs, config, myconfig, ... }:
+let
+ ludivinecassal = pkgs.callPackage ./builder.nix {
+ inherit (pkgs.webapps) ludivinecassal;
+ config = myconfig.env.websites.ludivinecassal.integration;
+ apacheUser = config.services.httpd.Inte.user;
+ apacheGroup = config.services.httpd.Inte.group;
+ };
+
+ cfg = config.myServices.websites.ludivinecassal.integration;
+in {
+ options.myServices.websites.ludivinecassal.integration.enable = lib.mkEnableOption "enable Ludivine's website in integration";
+
+ config = lib.mkIf cfg.enable {
+ secrets.keys = ludivinecassal.keys;
+
+ systemd.services.phpfpm-ludivinecassal_dev.after = lib.mkAfter ludivinecassal.phpFpm.serviceDeps;
+ systemd.services.phpfpm-ludivinecassal_dev.wants = ludivinecassal.phpFpm.serviceDeps;
+ systemd.services.phpfpm-ludivinecassal_dev.preStart = lib.mkAfter ludivinecassal.phpFpm.preStart;
+ services.phpfpm.poolConfigs.ludivinecassal_dev = ludivinecassal.phpFpm.pool;
+ system.activationScripts.ludivinecassal_dev = ludivinecassal.activationScript;
+ myServices.websites.webappDirs."${ludivinecassal.apache.webappName}" = ludivinecassal.app.webRoot;
+ services.websites.integration.modules = ludivinecassal.apache.modules;
+ services.websites.integration.vhostConfs.ludivine = {
+ certName = "eldiron";
+ addToCerts = true;
+ hosts = [ "ludivine.immae.eu" ];
+ root = ludivinecassal.apache.root;
+ extraConfig = [ ludivinecassal.apache.vhostConf ];
+ };
+ };
+}
--- /dev/null
+{ lib, pkgs, config, myconfig, ... }:
+let
+ ludivinecassal = pkgs.callPackage ./builder.nix {
+ inherit (pkgs.webapps) ludivinecassal;
+ config = myconfig.env.websites.ludivinecassal.production;
+ apacheUser = config.services.httpd.Prod.user;
+ apacheGroup = config.services.httpd.Prod.group;
+ };
+
+ cfg = config.myServices.websites.ludivinecassal.production;
+in {
+ options.myServices.websites.ludivinecassal.production.enable = lib.mkEnableOption "enable Ludivine's website in production";
+
+ config = lib.mkIf cfg.enable {
+ secrets.keys = ludivinecassal.keys;
+ services.webstats.sites = [ { name = "ludivinecassal.com"; } ];
+
+ systemd.services.phpfpm-ludivinecassal_prod.after = lib.mkAfter ludivinecassal.phpFpm.serviceDeps;
+ systemd.services.phpfpm-ludivinecassal_prod.wants = ludivinecassal.phpFpm.serviceDeps;
+ systemd.services.phpfpm-ludivinecassal_prod.preStart = lib.mkAfter ludivinecassal.phpFpm.preStart;
+ services.phpfpm.poolConfigs.ludivinecassal_prod = ludivinecassal.phpFpm.pool;
+ system.activationScripts.ludivinecassal_prod = ludivinecassal.activationScript;
+ myServices.websites.webappDirs."${ludivinecassal.apache.webappName}" = ludivinecassal.app.webRoot;
+ services.websites.production.modules = ludivinecassal.apache.modules;
+ services.websites.production.vhostConfs.ludivine = {
+ certName = "ludivinecassal";
+ certMainHost = "ludivinecassal.com";
+ hosts = ["ludivinecassal.com" "www.ludivinecassal.com" ];
+ root = ludivinecassal.apache.root;
+ extraConfig = [ ludivinecassal.apache.vhostConf ];
+ };
+ };
+}
--- /dev/null
+{ lib, pkgs, config, myconfig, ... }:
+let
+ cfg = config.myServices.websites.nassime.production;
+ varDir = "/var/lib/ftp/nassime";
+ env = myconfig.env.websites.nassime;
+in {
+ options.myServices.websites.nassime.production.enable = lib.mkEnableOption "enable Nassime's website";
+
+ config = lib.mkIf cfg.enable {
+ services.webstats.sites = [ { name = "nassime.bouya.org"; } ];
+
+ security.acme.certs."ftp".extraDomains."nassime.bouya.org" = null;
+
+ services.websites.production.vhostConfs.nassime = {
+ certName = "nassime";
+ certMainHost = "nassime.bouya.org";
+ hosts = ["nassime.bouya.org" ];
+ root = varDir;
+ extraConfig = [
+ ''
+ Use Stats nassime.bouya.org
+ ServerAdmin ${env.server_admin}
+
+ <Directory ${varDir}>
+ DirectoryIndex index.php index.htm index.html
+ Options Indexes FollowSymLinks MultiViews Includes
+ AllowOverride None
+ Require all granted
+ </Directory>
+ ''
+ ];
+ };
+ };
+}
--- /dev/null
+{ lib, pkgs, config, myconfig, ... }:
+let
+ adminer = pkgs.callPackage ../commons/adminer.nix {};
+ cfg = config.myServices.websites.naturaloutil.production;
+ varDir = "/var/lib/ftp/jerome";
+ env = myconfig.env.websites.jerome;
+in {
+ options.myServices.websites.naturaloutil.production.enable = lib.mkEnableOption "enable Naturaloutil's website";
+
+ config = lib.mkIf cfg.enable {
+ services.webstats.sites = [ { name = "naturaloutil.immae.eu"; } ];
+
+ security.acme.certs."ftp".extraDomains."naturaloutil.immae.eu" = null;
+
+ secrets.keys = [{
+ dest = "webapps/prod-naturaloutil";
+ user = "wwwrun";
+ group = "wwwrun";
+ permissions = "0400";
+ text = ''
+ <?php
+ $mysql_user = '${env.mysql.user}' ;
+ $mysql_server = '${env.mysql.host}' ;
+ $mysql_base = '${env.mysql.name}' ;
+ $mysql_password = '${env.mysql.password}' ;
+ //connect to db
+ $db = mysqli_init();
+ ${if env.mysql.host != "localhost" then ''
+ mysqli_options ($db, MYSQLI_OPT_SSL_VERIFY_SERVER_CERT, true);
+ $db->ssl_set(NULL, NULL, "${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt", NULL, NULL);
+ '' else ""}
+ $database = connect_db($db, $mysql_server, $mysql_base, $mysql_user, $mysql_password);
+ ?>
+ '';
+ }];
+ system.activationScripts.naturaloutil = {
+ deps = [ "httpd" ];
+ text = ''
+ install -m 0755 -o wwwrun -g wwwrun -d /var/lib/php/sessions/naturaloutil
+ '';
+ };
+ systemd.services.phpfpm-jerome.after = lib.mkAfter [ "mysql.service" ];
+ systemd.services.phpfpm-jerome.wants = [ "mysql.service" ];
+ services.phpfpm.pools.jerome = {
+ listen = "/run/phpfpm/naturaloutil.sock";
+ extraConfig = ''
+ user = wwwrun
+ group = wwwrun
+ listen.owner = wwwrun
+ listen.group = wwwrun
+
+ pm = ondemand
+ pm.max_children = 5
+ pm.process_idle_timeout = 60
+
+ env[BDD_CONNECT] = "/var/secrets/webapps/prod-naturaloutil"
+ php_admin_value[open_basedir] = "/var/lib/php/sessions/naturaloutil:/var/secrets/webapps/prod-naturaloutil:${varDir}:/tmp"
+ php_admin_value[session.save_path] = "/var/lib/php/sessions/naturaloutil"
+ '';
+ phpOptions = config.services.phpfpm.phpOptions + ''
+ extension=${pkgs.php}/lib/php/extensions/mysqli.so
+ '';
+ };
+ services.websites.production.modules = adminer.apache.modules ++ [ "proxy_fcgi" ];
+ services.websites.production.vhostConfs.naturaloutil = {
+ certName = "naturaloutil";
+ certMainHost = "naturaloutil.immae.eu";
+ hosts = ["naturaloutil.immae.eu" ];
+ root = varDir;
+ extraConfig = [
+ adminer.apache.vhostConf
+ ''
+ Use Stats naturaloutil.immae.eu
+ ServerAdmin ${env.server_admin}
+ ErrorLog "${varDir}/logs/error_log"
+ CustomLog "${varDir}/logs/access_log" combined
+
+ <FilesMatch "\.php$">
+ SetHandler "proxy:unix:/run/phpfpm/naturaloutil.sock|fcgi://localhost"
+ </FilesMatch>
+
+ <Directory ${varDir}/logs>
+ AllowOverride None
+ Require all denied
+ </Directory>
+ <Directory ${varDir}>
+ DirectoryIndex index.php index.htm index.html
+ Options Indexes FollowSymLinks MultiViews Includes
+ AllowOverride None
+ Require all granted
+ </Directory>
+ ''
+ ];
+ };
+ };
+}
--- /dev/null
+{ lib, pkgs, config, myconfig, ... }:
+let
+ cfg = config.myServices.websites.papa.surveillance;
+ varDir = "/var/lib/ftp/papa";
+in {
+ options.myServices.websites.papa.surveillance.enable = lib.mkEnableOption "enable Papa surveillance's website";
+
+ config = lib.mkIf cfg.enable {
+ security.acme.certs."ftp".extraDomains."surveillance.maison.bbc.bouya.org" = null;
+
+ services.cron = {
+ systemCronJobs = let
+ script = pkgs.writeScript "cleanup-papa" ''
+ #!${pkgs.stdenv.shell}
+ d=$(date -d "7 days ago" +%Y%m%d)
+ for i in /var/lib/ftp/papa/*/20[0-9][0-9][0-9][0-9][0-9][0-9]; do
+ if [ "$d" -gt $(basename $i) ]; then
+ rm -rf "$i"
+ fi
+ done
+ '';
+ in
+ [
+ ''
+ 0 6 * * * wwwrun ${script}
+ ''
+ ];
+ };
+
+ services.websites.production.vhostConfs.papa = {
+ certName = "papa";
+ certMainHost = "surveillance.maison.bbc.bouya.org";
+ hosts = [ "surveillance.maison.bbc.bouya.org" ];
+ root = varDir;
+ extraConfig = [
+ ''
+ Use Apaxy "${varDir}" "title .duplicity-ignore"
+ <Directory ${varDir}>
+ Use LDAPConnect
+ Options Indexes
+ AllowOverride None
+ Require ldap-group cn=surveillance.maison.bbc.bouya.org,cn=httpd,ou=services,dc=immae,dc=eu
+ </Directory>
+ ''
+ ];
+ };
+ };
+}
+
--- /dev/null
+{ apacheUser, apacheGroup, piedsjaloux, config, pkgs, lib, texlive, imagemagick }:
+rec {
+ app = piedsjaloux.override { inherit (config) environment; };
+ varDir = "/var/lib/piedsjaloux_${app.environment}";
+ keys = [{
+ dest = "webapps/${app.environment}-piedsjaloux";
+ user = apacheUser;
+ group = apacheGroup;
+ permissions = "0400";
+ text = ''
+ # This file is auto-generated during the composer install
+ parameters:
+ database_host: ${config.mysql.host}
+ database_port: ${config.mysql.port}
+ database_name: ${config.mysql.name}
+ database_user: ${config.mysql.user}
+ database_password: ${config.mysql.password}
+ database_server_version: ${pkgs.mariadb.mysqlVersion}
+ mailer_transport: smtp
+ mailer_host: 127.0.0.1
+ mailer_user: null
+ mailer_password: null
+ secret: ${config.secret}
+ pdflatex: "${texlive.combine { inherit (texlive) attachfile preprint scheme-small; }}/bin/pdflatex"
+ leapt_im:
+ binary_path: ${imagemagick}/bin
+ '';
+ }];
+ phpFpm = rec {
+ preStart = ''
+ if [ ! -f "${app.varDir}/currentWebappDir" -o \
+ ! -f "${app.varDir}/currentKey" -o \
+ "${app}" != "$(cat ${app.varDir}/currentWebappDir 2>/dev/null)" ] \
+ || ! sha512sum -c --status ${app.varDir}/currentKey; then
+ pushd ${app} > /dev/null
+ /run/wrappers/bin/sudo -u ${apacheUser} ./bin/console --env=${app.environment} cache:clear --no-warmup
+ popd > /dev/null
+ echo -n "${app}" > ${app.varDir}/currentWebappDir
+ sha512sum /var/secrets/webapps/${app.environment}-piedsjaloux > ${app.varDir}/currentKey
+ fi
+ '';
+ serviceDeps = [ "mysql.service" ];
+ socket = "/var/run/phpfpm/piedsjaloux-${app.environment}.sock";
+ pool = ''
+ listen = ${socket}
+ user = ${apacheUser}
+ group = ${apacheGroup}
+ listen.owner = ${apacheUser}
+ listen.group = ${apacheGroup}
+ php_admin_value[upload_max_filesize] = 20M
+ php_admin_value[post_max_size] = 20M
+ ;php_admin_flag[log_errors] = on
+ php_admin_value[open_basedir] = "/var/secrets/webapps/${app.environment}-piedsjaloux:${app}:${app.varDir}:/tmp"
+ php_admin_value[session.save_path] = "${app.varDir}/phpSessions"
+ env[PATH] = ${lib.makeBinPath [ pkgs.apg pkgs.unzip ]}
+ ${if app.environment == "dev" then ''
+ pm = ondemand
+ pm.max_children = 5
+ pm.process_idle_timeout = 60
+ env[SYMFONY_DEBUG_MODE] = "yes"
+ '' else ''
+ pm = dynamic
+ pm.max_children = 20
+ pm.start_servers = 2
+ pm.min_spare_servers = 1
+ pm.max_spare_servers = 3
+ ''}'';
+ };
+ apache = rec {
+ modules = [ "proxy_fcgi" ];
+ webappName = "piedsjaloux_${app.environment}";
+ root = "/run/current-system/webapps/${webappName}";
+ vhostConf = ''
+ <FilesMatch "\.php$">
+ SetHandler "proxy:unix:${phpFpm.socket}|fcgi://localhost"
+ </FilesMatch>
+
+ ${if app.environment == "dev" then ''
+ <Location />
+ Use LDAPConnect
+ Require ldap-group cn=piedsjaloux.immae.eu,cn=httpd,ou=services,dc=immae,dc=eu
+ ErrorDocument 401 "<html><meta http-equiv=\"refresh\" content=\"0;url=https://piedsjaloux.fr\"></html>"
+ </Location>
+
+ <Directory ${root}>
+ Options Indexes FollowSymLinks MultiViews Includes
+ AllowOverride None
+ Require all granted
+
+ DirectoryIndex app_dev.php
+
+ <IfModule mod_negotiation.c>
+ Options -MultiViews
+ </IfModule>
+
+ <IfModule mod_rewrite.c>
+ RewriteEngine On
+
+ RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
+ RewriteRule ^(.*) - [E=BASE:%1]
+
+ # Maintenance script
+ RewriteCond %{DOCUMENT_ROOT}/maintenance.php -f
+ RewriteCond %{SCRIPT_FILENAME} !maintenance.php
+ RewriteRule ^.*$ %{ENV:BASE}/maintenance.php [R=503,L]
+ ErrorDocument 503 /maintenance.php
+
+ # Sets the HTTP_AUTHORIZATION header removed by Apache
+ RewriteCond %{HTTP:Authorization} .
+ RewriteRule ^ - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
+
+ RewriteCond %{ENV:REDIRECT_STATUS} ^$
+ RewriteRule ^app_dev\.php(?:/(.*)|$) %{ENV:BASE}/$1 [R=301,L]
+
+ # If the requested filename exists, simply serve it.
+ # We only want to let Apache serve files and not directories.
+ RewriteCond %{REQUEST_FILENAME} -f
+ RewriteRule ^ - [L]
+
+ # Rewrite all other queries to the front controller.
+ RewriteRule ^ %{ENV:BASE}/app_dev.php [L]
+ </IfModule>
+
+ </Directory>
+ '' else ''
+ Use Stats piedsjaloux.fr
+
+ <Directory ${root}>
+ Options Indexes FollowSymLinks MultiViews Includes
+ AllowOverride All
+ Require all granted
+ </Directory>
+ ''}
+ '';
+ };
+ activationScript = {
+ deps = [ "wrappers" ];
+ text = ''
+ install -m 0755 -o ${apacheUser} -g ${apacheGroup} -d ${app.varDir} \
+ ${app.varDir}/tmp
+ install -m 0750 -o ${apacheUser} -g ${apacheGroup} -d ${app.varDir}/phpSessions
+ '';
+ };
+}
--- /dev/null
+{ lib, pkgs, config, myconfig, ... }:
+let
+ piedsjaloux = pkgs.callPackage ./builder.nix {
+ inherit (pkgs.webapps) piedsjaloux;
+ config = myconfig.env.websites.piedsjaloux.integration;
+ apacheUser = config.services.httpd.Inte.user;
+ apacheGroup = config.services.httpd.Inte.group;
+ };
+
+ cfg = config.myServices.websites.piedsjaloux.integration;
+in {
+ options.myServices.websites.piedsjaloux.integration.enable = lib.mkEnableOption "enable PiedsJaloux's website in integration";
+
+ config = lib.mkIf cfg.enable {
+ secrets.keys = piedsjaloux.keys;
+ systemd.services.phpfpm-piedsjaloux_dev.after = lib.mkAfter piedsjaloux.phpFpm.serviceDeps;
+ systemd.services.phpfpm-piedsjaloux_dev.wants = piedsjaloux.phpFpm.serviceDeps;
+ systemd.services.phpfpm-piedsjaloux_dev.preStart = lib.mkAfter piedsjaloux.phpFpm.preStart;
+ services.phpfpm.poolConfigs.piedsjaloux_dev = piedsjaloux.phpFpm.pool;
+ system.activationScripts.piedsjaloux_dev = piedsjaloux.activationScript;
+ myServices.websites.webappDirs."${piedsjaloux.apache.webappName}" = piedsjaloux.app.webRoot;
+ services.websites.integration.modules = piedsjaloux.apache.modules;
+ services.websites.integration.vhostConfs.piedsjaloux = {
+ certName = "eldiron";
+ addToCerts = true;
+ hosts = [ "piedsjaloux.immae.eu" ];
+ root = piedsjaloux.apache.root;
+ extraConfig = [ piedsjaloux.apache.vhostConf ];
+ };
+ };
+}
+
--- /dev/null
+{ lib, pkgs, config, myconfig, ... }:
+let
+ piedsjaloux = pkgs.callPackage ./builder.nix {
+ inherit (pkgs.webapps) piedsjaloux;
+ config = myconfig.env.websites.piedsjaloux.production;
+ apacheUser = config.services.httpd.Prod.user;
+ apacheGroup = config.services.httpd.Prod.group;
+ };
+
+ cfg = config.myServices.websites.piedsjaloux.production;
+in {
+ options.myServices.websites.piedsjaloux.production.enable = lib.mkEnableOption "enable PiedsJaloux's website in production";
+
+ config = lib.mkIf cfg.enable {
+ secrets.keys = piedsjaloux.keys;
+ services.webstats.sites = [ { name = "piedsjaloux.fr"; } ];
+
+ systemd.services.phpfpm-piedsjaloux_prod.after = lib.mkAfter piedsjaloux.phpFpm.serviceDeps;
+ systemd.services.phpfpm-piedsjaloux_prod.wants = piedsjaloux.phpFpm.serviceDeps;
+ systemd.services.phpfpm-piedsjaloux_prod.preStart = lib.mkAfter piedsjaloux.phpFpm.preStart;
+ services.phpfpm.poolConfigs.piedsjaloux_prod = piedsjaloux.phpFpm.pool;
+ system.activationScripts.piedsjaloux_prod = piedsjaloux.activationScript;
+ myServices.websites.webappDirs."${piedsjaloux.apache.webappName}" = piedsjaloux.app.webRoot;
+ services.websites.production.modules = piedsjaloux.apache.modules;
+ services.websites.production.vhostConfs.piedsjaloux = {
+ certName = "piedsjaloux";
+ certMainHost = "piedsjaloux.fr";
+ hosts = [ "piedsjaloux.fr" "www.piedsjaloux.fr" ];
+ root = piedsjaloux.apache.root;
+ extraConfig = [ piedsjaloux.apache.vhostConf ];
+ };
+ };
+}
+
--- /dev/null
+{ lib, pkgs, config, myconfig, ... }:
+let
+ nextcloud = pkgs.webapps.nextcloud.withApps (builtins.attrValues pkgs.webapps.nextcloud-apps);
+ env = myconfig.env.tools.nextcloud;
+ varDir = "/var/lib/nextcloud";
+ webappName = "tools_nextcloud";
+ apacheRoot = "/run/current-system/webapps/${webappName}";
+ cfg = config.myServices.websites.tools.cloud;
+ phpFpm = rec {
+ basedir = builtins.concatStringsSep ":" (
+ [ nextcloud varDir ]
+ ++ builtins.attrValues pkgs.webapps.nextcloud-apps);
+ socket = "/var/run/phpfpm/nextcloud.sock";
+ phpConfig = ''
+ extension=${pkgs.phpPackages.redis}/lib/php/extensions/redis.so
+ extension=${pkgs.phpPackages.apcu}/lib/php/extensions/apcu.so
+ zend_extension=${pkgs.php}/lib/php/extensions/opcache.so
+ '';
+ pool = ''
+ user = wwwrun
+ group = wwwrun
+ listen.owner = wwwrun
+ listen.group = wwwrun
+ pm = ondemand
+ pm.max_children = 60
+ pm.process_idle_timeout = 60
+
+ php_admin_value[output_buffering] = 0
+ php_admin_value[max_execution_time] = 1800
+ php_admin_value[zend_extension] = "opcache"
+ ;already enabled by default?
+ ;php_value[opcache.enable] = 1
+ php_value[opcache.enable_cli] = 1
+ php_value[opcache.interned_strings_buffer] = 8
+ php_value[opcache.max_accelerated_files] = 10000
+ php_value[opcache.memory_consumption] = 128
+ php_value[opcache.save_comments] = 1
+ php_value[opcache.revalidate_freq] = 1
+ php_admin_value[memory_limit] = 512M
+
+ php_admin_value[open_basedir] = "/run/wrappers/bin/sendmail:${basedir}:/proc/meminfo:/dev/urandom:/proc/self/fd:/tmp"
+ php_admin_value[session.save_path] = "${varDir}/phpSessions"
+ '';
+ };
+in {
+ options.myServices.websites.tools.cloud = {
+ enable = lib.mkEnableOption "enable cloud website";
+ };
+
+ config = lib.mkIf cfg.enable {
+ services.websites.tools.modules = [ "proxy_fcgi" ];
+
+ services.websites.tools.vhostConfs.cloud = {
+ certName = "eldiron";
+ addToCerts = true;
+ hosts = ["cloud.immae.eu" ];
+ root = apacheRoot;
+ extraConfig = [
+ ''
+ SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
+ <Directory ${apacheRoot}>
+ AcceptPathInfo On
+ DirectoryIndex index.php
+ Options FollowSymlinks
+ Require all granted
+ AllowOverride all
+
+ <IfModule mod_headers.c>
+ Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains; preload"
+ </IfModule>
+ <FilesMatch "\.php$">
+ CGIPassAuth on
+ SetHandler "proxy:unix:${phpFpm.socket}|fcgi://localhost"
+ </FilesMatch>
+
+ </Directory>
+ ''
+ ];
+ };
+
+ secrets.keys = [{
+ dest = "webapps/tools-nextcloud";
+ user = "wwwrun";
+ group = "wwwrun";
+ permissions = "0600";
+ text = ''
+ <?php
+ $CONFIG = array (
+ // FIXME: change this value when nextcloud starts getting slow
+ 'instanceid' => '${env.instance_id}1',
+ 'datadirectory' => '/var/lib/nextcloud/',
+ 'passwordsalt' => '${env.password_salt}',
+ 'debug' => false,
+ 'dbtype' => 'pgsql',
+ 'version' => '16.0.0.9',
+ 'dbname' => '${env.postgresql.database}',
+ 'dbhost' => '${env.postgresql.socket}',
+ 'dbtableprefix' => 'oc_',
+ 'dbuser' => '${env.postgresql.user}',
+ 'dbpassword' => '${env.postgresql.password}',
+ 'installed' => true,
+ 'maxZipInputSize' => 0,
+ 'allowZipDownload' => true,
+ 'forcessl' => true,
+ 'theme' => ${"''"},
+ 'maintenance' => false,
+ 'trusted_domains' =>
+ array (
+ 0 => 'cloud.immae.eu',
+ ),
+ 'secret' => '${env.secret}',
+ 'appstoreenabled' => false,
+ 'appstore.experimental.enabled' => true,
+ 'loglevel' => 2,
+ 'trashbin_retention_obligation' => 'auto',
+ 'htaccess.RewriteBase' => '/',
+ 'mail_smtpmode' => 'sendmail',
+ 'mail_smtphost' => '127.0.0.1',
+ 'mail_smtpname' => ''',
+ 'mail_smtppassword' => ''',
+ 'mail_from_address' => 'nextcloud',
+ 'mail_smtpauth' => false,
+ 'mail_domain' => 'tools.immae.eu',
+ 'memcache.local' => '\\OC\\Memcache\\APCu',
+ 'memcache.locking' => '\\OC\\Memcache\\Redis',
+ 'filelocking.enabled' => true,
+ 'redis' =>
+ array (
+ 'host' => '${env.redis.socket}',
+ 'port' => 0,
+ 'dbindex' => ${env.redis.db_index},
+ ),
+ 'overwrite.cli.url' => 'https://cloud.immae.eu',
+ 'ldapIgnoreNamingRules' => false,
+ 'ldapProviderFactory' => '\\OCA\\User_LDAP\\LDAPProviderFactory',
+ 'has_rebuilt_cache' => true,
+ );
+ '';
+ }];
+ users.users.root.packages = let
+ occ = pkgs.writeScriptBin "nextcloud-occ" ''
+ #! ${pkgs.stdenv.shell}
+ cd ${nextcloud}
+ NEXTCLOUD_CONFIG_DIR="${nextcloud}/config" \
+ exec \
+ sudo -u wwwrun ${pkgs.php}/bin/php \
+ -c ${pkgs.php}/etc/php.ini \
+ occ $*
+ '';
+ in [ occ ];
+
+ system.activationScripts.nextcloud = {
+ deps = [ "secrets" ];
+ text = let
+ confs = lib.attrsets.mapAttrs (n: v: pkgs.writeText "${n}.json" (builtins.toJSON v)) nextcloud.otherConfig;
+ in
+ ''
+ install -m 0755 -o wwwrun -g wwwrun -d ${varDir}
+ install -m 0750 -o wwwrun -g wwwrun -d ${varDir}/phpSessions
+ ${builtins.concatStringsSep "\n" (lib.attrsets.mapAttrsToList (n: v:
+ "install -D -m 0644 -o wwwrun -g wwwrun -T ${v} ${varDir}/config/${n}.json"
+ ) confs)}
+ install -D -m 0600 -o wwwrun -g wwwrun -T /var/secrets/webapps/tools-nextcloud ${varDir}/config/config.php
+ '';
+ };
+ # FIXME: add a warning when config.php changes
+ system.extraSystemBuilderCmds = ''
+ mkdir -p $out/webapps
+ ln -s ${nextcloud} $out/webapps/${webappName}
+ '';
+
+ services.phpfpm.pools.nextcloud = {
+ listen = phpFpm.socket;
+ extraConfig = phpFpm.pool;
+ phpOptions = config.services.phpfpm.phpOptions + phpFpm.phpConfig;
+ };
+
+ services.cron = {
+ enable = true;
+ systemCronJobs = [
+ ''
+ LOCALE_ARCHIVE=/run/current-system/sw/lib/locale/locale-archive
+ */15 * * * * wwwrun ${pkgs.php}/bin/php -f ${nextcloud}/cron.php
+ ''
+ ];
+ };
+ };
+}
--- /dev/null
+{ stdenv, fetchurl, gettext, writeText, env, awl, davical }:
+rec {
+ activationScript = {
+ deps = [ "httpd" ];
+ text = ''
+ install -m 0755 -o ${apache.user} -g ${apache.group} -d /var/lib/php/sessions/davical
+ '';
+ };
+ keys = [{
+ dest = "webapps/dav-davical";
+ user = apache.user;
+ group = apache.group;
+ permissions = "0400";
+ text = ''
+ <?php
+ $c->pg_connect[] = "dbname=${env.postgresql.database} user=${env.postgresql.user} host=${env.postgresql.socket} password=${env.postgresql.password}";
+
+ $c->readonly_webdav_collections = false;
+
+ $c->admin_email ='davical@tools.immae.eu';
+
+ $c->restrict_setup_to_admin = true;
+
+ $c->collections_always_exist = false;
+
+ $c->external_refresh = 60;
+
+ $c->enable_scheduling = true;
+
+ $c->iMIP = (object) array("send_email" => true);
+
+ $c->authenticate_hook['optional'] = false;
+ $c->authenticate_hook['call'] = 'LDAP_check';
+ $c->authenticate_hook['config'] = array(
+ 'host' => 'ldap.immae.eu',
+ 'port' => '389',
+ 'startTLS' => 'yes',
+ 'bindDN'=> 'cn=davical,ou=services,dc=immae,dc=eu',
+ 'passDN'=> '${env.ldap.password}',
+ 'protocolVersion' => '3',
+ 'baseDNUsers'=> array('ou=users,dc=immae,dc=eu', 'ou=group_users,dc=immae,dc=eu'),
+ 'filterUsers' => 'memberOf=cn=users,cn=davical,ou=services,dc=immae,dc=eu',
+ 'baseDNGroups' => 'ou=groups,dc=immae,dc=eu',
+ 'filterGroups' => 'memberOf=cn=groups,cn=davical,ou=services,dc=immae,dc=eu',
+ 'mapping_field' => array(
+ "username" => "uid",
+ "fullname" => "cn",
+ "email" => "mail",
+ "modified" => "modifyTimestamp",
+ ),
+ 'format_updated'=> array('Y' => array(0,4),'m' => array(4,2),'d'=> array(6,2),'H' => array(8,2),'M'=>array(10,2),'S' => array(12,2)),
+ /** used to set default value for all users, will be overcharged by ldap if defined also in mapping_field **/
+ // 'default_value' => array("date_format_type" => "E","locale" => "fr_FR"),
+ 'group_mapping_field' => array(
+ "username" => "cn",
+ "updated" => "modifyTimestamp",
+ "fullname" => "givenName",
+ "displayname" => "givenName",
+ "members" => "memberUid",
+ "email" => "mail",
+ ),
+ );
+
+ $c->do_not_sync_from_ldap = array('admin' => true);
+ include('drivers_ldap.php');
+ '';
+ }];
+ webapp = davical.override { davical_config = "/var/secrets/webapps/dav-davical"; };
+ webRoot = "${webapp}/htdocs";
+ apache = rec {
+ user = "wwwrun";
+ group = "wwwrun";
+ modules = [ "proxy_fcgi" ];
+ webappName = "tools_davical";
+ root = "/run/current-system/webapps/${webappName}";
+ vhostConf = ''
+ Alias /davical "${root}"
+ Alias /caldav.php "${root}/caldav.php"
+ <Directory "${root}">
+ DirectoryIndex index.php index.html
+ AcceptPathInfo On
+ AllowOverride None
+ Require all granted
+
+ <FilesMatch "\.php$">
+ CGIPassAuth on
+ SetHandler "proxy:unix:${phpFpm.socket}|fcgi://localhost"
+ </FilesMatch>
+
+ RewriteEngine On
+ <IfModule mod_headers.c>
+ Header unset Access-Control-Allow-Origin
+ Header unset Access-Control-Allow-Methods
+ Header unset Access-Control-Allow-Headers
+ Header unset Access-Control-Allow-Credentials
+ Header unset Access-Control-Expose-Headers
+
+ Header always set Access-Control-Allow-Origin "*"
+ Header always set Access-Control-Allow-Methods "GET,POST,OPTIONS,PROPFIND,PROPPATCH,REPORT,PUT,MOVE,DELETE,LOCK,UNLOCK"
+ Header always set Access-Control-Allow-Headers "User-Agent,Authorization,Content-type,Depth,If-match,If-None-Match,Lock-Token,Timeout,Destination,Overwrite,Prefer,X-client,X-Requested-With"
+ Header always set Access-Control-Allow-Credentials false
+ Header always set Access-Control-Expose-Headers "Etag,Preference-Applied"
+
+ RewriteCond %{HTTP:Access-Control-Request-Method} !^$
+ RewriteCond %{REQUEST_METHOD} OPTIONS
+ RewriteRule ^(.*)$ $1 [R=200,L]
+ </IfModule>
+ </Directory>
+ '';
+ };
+ phpFpm = rec {
+ serviceDeps = [ "postgresql.service" "openldap.service" ];
+ basedir = builtins.concatStringsSep ":" [ webapp "/var/secrets/webapps/dav-davical" awl ];
+ socket = "/var/run/phpfpm/davical.sock";
+ pool = ''
+ listen = ${socket}
+ user = ${apache.user}
+ group = ${apache.group}
+ listen.owner = ${apache.user}
+ listen.group = ${apache.group}
+ pm = dynamic
+ pm.max_children = 60
+ pm.start_servers = 2
+ pm.min_spare_servers = 1
+ pm.max_spare_servers = 10
+
+ ; Needed to avoid clashes in browser cookies (same domain)
+ php_value[session.name] = DavicalPHPSESSID
+ php_admin_value[open_basedir] = "${basedir}:/tmp:/var/lib/php/sessions/davical"
+ php_admin_value[include_path] = "${awl}/inc:${webapp}/inc"
+ php_admin_value[session.save_path] = "/var/lib/php/sessions/davical"
+ php_flag[magic_quotes_gpc] = Off
+ php_flag[register_globals] = Off
+ php_admin_value[error_reporting] = "E_ALL & ~E_NOTICE"
+ php_admin_value[default_charset] = "utf-8"
+ php_flag[magic_quotes_runtime] = Off
+ '';
+ };
+}
--- /dev/null
+{ lib, pkgs, config, myconfig, ... }:
+let
+ infcloud = rec {
+ webappName = "tools_infcloud";
+ root = "/run/current-system/webapps/${webappName}";
+ vhostConf = ''
+ Alias /carddavmate ${root}
+ Alias /caldavzap ${root}
+ Alias /infcloud ${root}
+ <Directory ${root}>
+ AllowOverride All
+ Options FollowSymlinks
+ Require all granted
+ DirectoryIndex index.html
+ </Directory>
+ '';
+ };
+ davical = pkgs.callPackage ./davical.nix {
+ env = myconfig.env.tools.davical;
+ inherit (pkgs.webapps) davical awl;
+ };
+
+ cfg = config.myServices.websites.tools.dav;
+in {
+ options.myServices.websites.tools.dav = {
+ enable = lib.mkEnableOption "enable dav website";
+ };
+
+ config = lib.mkIf cfg.enable {
+ system.activationScripts.davical = davical.activationScript;
+ secrets.keys = davical.keys;
+ services.websites.tools.modules = davical.apache.modules;
+
+ services.websites.tools.vhostConfs.dav = {
+ certName = "eldiron";
+ addToCerts = true;
+ hosts = ["dav.immae.eu" ];
+ root = null;
+ extraConfig = [
+ infcloud.vhostConf
+ davical.apache.vhostConf
+ ];
+ };
+
+ services.phpfpm.poolConfigs = {
+ davical = davical.phpFpm.pool;
+ };
+
+ myServices.websites.webappDirs."${davical.apache.webappName}" = davical.webRoot;
+ myServices.websites.webappDirs."${infcloud.webappName}" = pkgs.webapps.infcloud;
+ };
+}
+
--- /dev/null
+{ lib, pkgs, config, ... }:
+let
+ adminer = pkgs.callPackage ../../commons/adminer.nix {};
+
+ cfg = config.myServices.websites.tools.db;
+in {
+ options.myServices.websites.tools.db = {
+ enable = lib.mkEnableOption "enable database's website";
+ };
+
+ config = lib.mkIf cfg.enable {
+ services.websites.tools.modules = adminer.apache.modules;
+ services.websites.tools.vhostConfs.db-1 = {
+ certName = "eldiron";
+ addToCerts = true;
+ hosts = ["db-1.immae.eu" ];
+ root = null;
+ extraConfig = [ adminer.apache.vhostConf ];
+ };
+ };
+}
--- /dev/null
+{ lib, pkgs, config, myconfig, ... }:
+let
+ env = myconfig.env.tools.diaspora;
+ root = "/run/current-system/webapps/tools_diaspora";
+ cfg = config.myServices.websites.tools.diaspora;
+ dcfg = config.services.diaspora;
+in {
+ options.myServices.websites.tools.diaspora = {
+ enable = lib.mkEnableOption "enable diaspora's website";
+ };
+
+ config = lib.mkIf cfg.enable {
+ users.users.diaspora.extraGroups = [ "keys" ];
+
+ secrets.keys = [
+ {
+ dest = "webapps/diaspora/diaspora.yml";
+ user = "diaspora";
+ group = "diaspora";
+ permissions = "0400";
+ text = ''
+ configuration:
+ environment:
+ url: "https://diaspora.immae.eu/"
+ certificate_authorities: '${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt'
+ redis: '${env.redis_url}'
+ sidekiq:
+ s3:
+ assets:
+ logging:
+ logrotate:
+ debug:
+ server:
+ listen: '${dcfg.sockets.rails}'
+ rails_environment: 'production'
+ chat:
+ server:
+ bosh:
+ log:
+ map:
+ mapbox:
+ privacy:
+ piwik:
+ statistics:
+ camo:
+ settings:
+ enable_registrations: false
+ welcome_message:
+ invitations:
+ open: false
+ paypal_donations:
+ community_spotlight:
+ captcha:
+ enable: false
+ terms:
+ maintenance:
+ remove_old_users:
+ default_metas:
+ csp:
+ services:
+ twitter:
+ tumblr:
+ wordpress:
+ mail:
+ enable: true
+ sender_address: 'diaspora@tools.immae.eu'
+ method: 'sendmail'
+ smtp:
+ sendmail:
+ location: '/run/wrappers/bin/sendmail'
+ admins:
+ account: "ismael"
+ podmin_email: 'diaspora@tools.immae.eu'
+ relay:
+ outbound:
+ inbound:
+ ldap:
+ enable: true
+ host: ldap.immae.eu
+ port: 636
+ only_ldap: true
+ mail_attribute: mail
+ skip_email_confirmation: true
+ use_bind_dn: true
+ bind_dn: "cn=diaspora,ou=services,dc=immae,dc=eu"
+ bind_pw: "${env.ldap.password}"
+ search_base: "dc=immae,dc=eu"
+ search_filter: "(&(memberOf=cn=users,cn=diaspora,ou=services,dc=immae,dc=eu)(uid=%{username}))"
+ production:
+ environment:
+ development:
+ environment:
+ '';
+ }
+ {
+ dest = "webapps/diaspora/database.yml";
+ user = "diaspora";
+ group = "diaspora";
+ permissions = "0400";
+ text = ''
+ postgresql: &postgresql
+ adapter: postgresql
+ host: "${env.postgresql.socket}"
+ port: "${env.postgresql.port}"
+ username: "${env.postgresql.user}"
+ password: "${env.postgresql.password}"
+ encoding: unicode
+ common: &common
+ <<: *postgresql
+ combined: &combined
+ <<: *common
+ development:
+ <<: *combined
+ database: diaspora_development
+ production:
+ <<: *combined
+ database: ${env.postgresql.database}
+ test:
+ <<: *combined
+ database: "diaspora_test"
+ integration1:
+ <<: *combined
+ database: diaspora_integration1
+ integration2:
+ <<: *combined
+ database: diaspora_integration2
+ '';
+ }
+ {
+ dest = "webapps/diaspora/secret_token.rb";
+ user = "diaspora";
+ group = "diaspora";
+ permissions = "0400";
+ text = ''
+ Diaspora::Application.config.secret_key_base = '${env.secret_token}'
+ '';
+ }
+ ];
+
+ services.diaspora = {
+ enable = true;
+ package = pkgs.webapps.diaspora.override { ldap = true; };
+ dataDir = "/var/lib/diaspora_immae";
+ adminEmail = "diaspora@tools.immae.eu";
+ configDir = "/var/secrets/webapps/diaspora";
+ };
+
+ services.websites.tools.modules = [
+ "headers" "proxy" "proxy_http"
+ ];
+ system.extraSystemBuilderCmds = ''
+ mkdir -p $out/webapps
+ ln -s ${dcfg.workdir}/public/ $out/webapps/tools_diaspora
+ '';
+ services.websites.tools.vhostConfs.diaspora = {
+ certName = "eldiron";
+ addToCerts = true;
+ hosts = [ "diaspora.immae.eu" ];
+ root = root;
+ extraConfig = [ ''
+ RewriteEngine On
+ RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
+ RewriteRule ^/(.*)$ unix://${dcfg.sockets.rails}|http://diaspora.immae.eu/%{REQUEST_URI} [P,NE,QSA,L]
+
+ ProxyRequests Off
+ ProxyVia On
+ ProxyPreserveHost On
+ RequestHeader set X_FORWARDED_PROTO https
+
+ <Proxy *>
+ Require all granted
+ </Proxy>
+
+ <Directory ${root}>
+ Require all granted
+ Options -MultiViews
+ </Directory>
+ '' ];
+ };
+ };
+}
--- /dev/null
+{ lib, pkgs, config, myconfig, ... }:
+let
+ env = myconfig.env.tools.etherpad-lite;
+ cfg = config.myServices.websites.tools.etherpad-lite;
+ # Make sure we’re not rebuilding whole libreoffice just because of a
+ # dependency
+ libreoffice = (import <nixpkgs> { overlays = []; }).libreoffice-fresh;
+ ecfg = config.services.etherpad-lite;
+in {
+ options.myServices.websites.tools.etherpad-lite = {
+ enable = lib.mkEnableOption "enable etherpad's website";
+ };
+
+ config = lib.mkIf cfg.enable {
+ secrets.keys = [
+ {
+ dest = "webapps/tools-etherpad-apikey";
+ permissions = "0400";
+ text = env.api_key;
+ }
+ {
+ dest = "webapps/tools-etherpad-sessionkey";
+ permissions = "0400";
+ text = env.session_key;
+ }
+ {
+ dest = "webapps/tools-etherpad";
+ permissions = "0400";
+ text = ''
+ {
+ "title": "Etherpad",
+ "favicon": "favicon.ico",
+
+ "ip": "",
+ "port" : "${ecfg.sockets.node}",
+ "showSettingsInAdminPage" : false,
+ "dbType" : "postgres",
+ "dbSettings" : {
+ "user" : "${env.postgresql.user}",
+ "host" : "${env.postgresql.socket}",
+ "password": "${env.postgresql.password}",
+ "database": "${env.postgresql.database}",
+ "charset" : "utf8mb4"
+ },
+
+ "defaultPadText" : "Welcome to Etherpad!\n\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!\n\nGet involved with Etherpad at http:\/\/etherpad.org\n",
+ "padOptions": {
+ "noColors": false,
+ "showControls": true,
+ "showChat": true,
+ "showLineNumbers": true,
+ "useMonospaceFont": false,
+ "userName": false,
+ "userColor": false,
+ "rtl": false,
+ "alwaysShowChat": false,
+ "chatAndUsers": false,
+ "lang": "en-gb"
+ },
+
+ "suppressErrorsInPadText" : false,
+ "requireSession" : false,
+ "editOnly" : false,
+ "sessionNoPassword" : false,
+ "minify" : true,
+ "maxAge" : 21600,
+ "abiword" : null,
+ "soffice" : "${libreoffice}/bin/soffice",
+ "tidyHtml" : "${pkgs.html-tidy}/bin/tidy",
+ "allowUnknownFileEnds" : true,
+ "requireAuthentication" : false,
+ "requireAuthorization" : false,
+ "trustProxy" : false,
+ "disableIPlogging" : false,
+ "automaticReconnectionTimeout" : 0,
+ "scrollWhenFocusLineIsOutOfViewport": {
+ "percentage": {
+ "editionAboveViewport": 0,
+ "editionBelowViewport": 0
+ },
+ "duration": 0,
+ "scrollWhenCaretIsInTheLastLineOfViewport": false,
+ "percentageToScrollWhenUserPressesArrowUp": 0
+ },
+ "users": {
+ "ldapauth": {
+ "url": "ldaps://${env.ldap.host}",
+ "accountBase": "${env.ldap.base}",
+ "accountPattern": "(&(memberOf=cn=users,cn=etherpad,ou=services,dc=immae,dc=eu)(uid={{username}}))",
+ "displayNameAttribute": "cn",
+ "searchDN": "cn=etherpad,ou=services,dc=immae,dc=eu",
+ "searchPWD": "${env.ldap.password}",
+ "groupSearchBase": "${env.ldap.base}",
+ "groupAttribute": "member",
+ "groupAttributeIsDN": true,
+ "searchScope": "sub",
+ "groupSearch": "(memberOf=cn=groups,cn=etherpad,ou=services,dc=immae,dc=eu)",
+ "anonymousReadonly": false
+ }
+ },
+ "socketTransportProtocols" : ["xhr-polling", "jsonp-polling", "htmlfile"],
+ "loadTest": false,
+ "indentationOnNewLine": false,
+ "toolbar": {
+ "left": [
+ ["bold", "italic", "underline", "strikethrough"],
+ ["orderedlist", "unorderedlist", "indent", "outdent"],
+ ["undo", "redo"],
+ ["clearauthorship"]
+ ],
+ "right": [
+ ["importexport", "timeslider", "savedrevision"],
+ ["settings", "embed"],
+ ["showusers"]
+ ],
+ "timeslider": [
+ ["timeslider_export", "timeslider_returnToPad"]
+ ]
+ },
+ "loglevel": "INFO",
+ "logconfig" : { "appenders": [ { "type": "console" } ] }
+ }
+ '';
+ }
+ ];
+ services.etherpad-lite = {
+ enable = true;
+ modules = builtins.attrValues pkgs.webapps.etherpad-lite-modules;
+ sessionKeyFile = "/var/secrets/webapps/tools-etherpad-sessionkey";
+ apiKeyFile = "/var/secrets/webapps/tools-etherpad-apikey";
+ configFile = "/var/secrets/webapps/tools-etherpad";
+ };
+
+ systemd.services.etherpad-lite.serviceConfig.SupplementaryGroups = "keys";
+
+ services.websites.tools.modules = [
+ "headers" "proxy" "proxy_http" "proxy_wstunnel"
+ ];
+ services.websites.tools.vhostConfs.etherpad-lite = {
+ certName = "eldiron";
+ addToCerts = true;
+ hosts = [ "ether.immae.eu" ];
+ root = null;
+ extraConfig = [ ''
+ Header always set Strict-Transport-Security "max-age=31536000; includeSubdomains;"
+ RequestHeader set X-Forwarded-Proto "https"
+
+ RewriteEngine On
+
+ RewriteMap redirects "txt:${pkgs.writeText "redirects.txt" myconfig.env.tools.etherpad-lite.redirects}"
+ RewriteCond %{QUERY_STRING} "!noredirect"
+ RewriteCond %{REQUEST_URI} "^(.*)$"
+ RewriteCond ''${redirects:$1|Unknown} "!Unknown"
+ RewriteRule "^(.*)$" ''${redirects:$1} [L,NE,R=301,QSD]
+
+ RewriteCond %{REQUEST_URI} ^/socket.io [NC]
+ RewriteCond %{QUERY_STRING} transport=websocket [NC]
+ RewriteRule /(.*) unix://${ecfg.sockets.node}|ws://ether.immae.eu/$1 [P,NE,QSA,L]
+
+ <IfModule mod_proxy.c>
+ ProxyVia On
+ ProxyRequests Off
+ ProxyPreserveHost On
+ ProxyPass / unix://${ecfg.sockets.node}|http://ether.immae.eu/
+ ProxyPassReverse / unix://${ecfg.sockets.node}|http://ether.immae.eu/
+ <Proxy *>
+ Options FollowSymLinks MultiViews
+ AllowOverride None
+ Require all granted
+ </Proxy>
+ </IfModule>
+ '' ];
+ };
+ };
+}
--- /dev/null
+{ lib, pkgs, config, myconfig, ... }:
+let
+ mantisbt = pkgs.callPackage ./mantisbt.nix {
+ inherit (pkgs.webapps) mantisbt_2 mantisbt_2-plugins;
+ env = myconfig.env.tools.mantisbt;
+ };
+ gitweb = pkgs.callPackage ./gitweb.nix {
+ gitoliteDir = config.myServices.gitolite.gitoliteDir;
+ };
+
+ cfg = config.myServices.websites.tools.git;
+in {
+ options.myServices.websites.tools.git = {
+ enable = lib.mkEnableOption "enable git's website";
+ };
+
+ config = lib.mkIf cfg.enable {
+ secrets.keys = mantisbt.keys;
+ services.websites.tools.modules =
+ gitweb.apache.modules ++
+ mantisbt.apache.modules;
+ myServices.websites.webappDirs."${gitweb.apache.webappName}" = gitweb.webRoot;
+ myServices.websites.webappDirs."${mantisbt.apache.webappName}" = mantisbt.webRoot;
+
+ system.activationScripts.mantisbt = mantisbt.activationScript;
+ services.websites.tools.vhostConfs.git = {
+ certName = "eldiron";
+ addToCerts = true;
+ hosts = ["git.immae.eu" ];
+ root = gitweb.apache.root;
+ extraConfig = [
+ gitweb.apache.vhostConf
+ mantisbt.apache.vhostConf
+ ''
+ RewriteEngine on
+ RewriteCond %{REQUEST_URI} ^/releases
+ RewriteRule /releases(.*) https://release.immae.eu$1 [P,L]
+ ''
+ ];
+ };
+ services.phpfpm.poolConfigs = {
+ mantisbt = mantisbt.phpFpm.pool;
+ };
+ };
+}
--- /dev/null
+{ gitweb, writeText, gitolite, git, gitoliteDir, highlight }:
+rec {
+ varDir = gitoliteDir;
+ webRoot = gitweb;
+ config = writeText "gitweb.conf" ''
+ $git_temp = "/tmp";
+
+ # The directories where your projects are. Must not end with a
+ # slash.
+ $projectroot = "${varDir}/repositories";
+
+ $projects_list = "${varDir}/projects.list";
+ $strict_export = "true";
+
+ # Base URLs for links displayed in the web interface.
+ our @git_base_url_list = qw(ssh://gitolite@git.immae.eu https://git.immae.eu);
+
+ $feature{'blame'}{'default'} = [1];
+ $feature{'avatar'}{'default'} = ['gravatar'];
+ $feature{'highlight'}{'default'} = [1];
+
+ @stylesheets = ("gitweb-theme/gitweb.css");
+ $logo = "gitweb-theme/git-logo.png";
+ $favicon = "gitweb-theme/git-favicon.png";
+ $javascript = "gitweb-theme/gitweb.js";
+ $logo_url = "https://git.immae.eu/";
+ $projects_list_group_categories = "true";
+ $projects_list_description_width = 60;
+ $project_list_default_category = "__Others__";
+ $highlight_bin = "${highlight}/bin/highlight";
+ '';
+ apache = rec {
+ user = "wwwrun";
+ group = "wwwrun";
+ modules = [ "cgid" ];
+ webappName = "tools_gitweb";
+ root = "/run/current-system/webapps/${webappName}";
+ vhostConf = ''
+ SetEnv GIT_PROJECT_ROOT ${varDir}/repositories/
+ ScriptAliasMatch \
+ "(?x)^/(.*/(HEAD | \
+ info/refs | \
+ objects/(info/[^/]+ | \
+ [0-9a-f]{2}/[0-9a-f]{38} | \
+ pack/pack-[0-9a-f]{40}\.(pack|idx)) | \
+ git-(upload|receive)-pack))$" \
+ ${git}/libexec/git-core/git-http-backend/$1
+
+ <Directory "${git}/libexec/git-core">
+ Require all granted
+ </Directory>
+ <Directory "${root}">
+ DirectoryIndex gitweb.cgi
+ Require all granted
+ AllowOverride None
+ Options ExecCGI FollowSymLinks
+ <Files gitweb.cgi>
+ SetHandler cgi-script
+ SetEnv GITWEB_CONFIG "${config}"
+ </Files>
+ </Directory>
+ '';
+ };
+}
--- /dev/null
+{ env, mantisbt_2, mantisbt_2-plugins }:
+rec {
+ activationScript = {
+ deps = [ "httpd" ];
+ text = ''
+ install -m 0755 -o ${apache.user} -g ${apache.group} -d /var/lib/php/sessions/mantisbt
+ '';
+ };
+ keys = [{
+ dest = "webapps/tools-mantisbt";
+ user = apache.user;
+ group = apache.group;
+ permissions = "0400";
+ text = ''
+ <?php
+ $g_hostname = '${env.postgresql.socket}';
+ $g_db_username = '${env.postgresql.user}';
+ $g_db_password = '${env.postgresql.password}';
+ $g_database_name = '${env.postgresql.database}';
+ $g_db_type = 'pgsql';
+ $g_crypto_master_salt = '${env.master_salt}';
+ $g_allow_signup = OFF;
+ $g_allow_anonymous_login = ON;
+ $g_anonymous_account = 'anonymous';
+
+ $g_phpMailer_method = PHPMAILER_METHOD_SENDMAIL;
+ $g_smtp_host = 'localhost';
+ $g_smtp_username = ''';
+ $g_smtp_password = ''';
+ $g_webmaster_email = 'mantisbt@tools.immae.eu';
+ $g_from_email = 'mantisbt@tools.immae.eu';
+ $g_return_path_email = 'mantisbt@tools.immae.eu';
+ $g_from_name = 'Mantis Bug Tracker at git.immae.eu';
+ $g_email_receive_own = OFF;
+ # --- LDAP ---
+ $g_login_method = LDAP;
+ $g_ldap_protocol_version = 3;
+ $g_ldap_server = 'ldaps://ldap.immae.eu:636';
+ $g_ldap_root_dn = 'ou=users,dc=immae,dc=eu';
+ $g_ldap_bind_dn = 'cn=mantisbt,ou=services,dc=immae,dc=eu';
+ $g_ldap_bind_passwd = '${env.ldap.password}';
+ $g_use_ldap_email = ON;
+ $g_use_ldap_realname = ON;
+ $g_ldap_uid_field = 'uid';
+ $g_ldap_realname_field = 'cn';
+ $g_ldap_organization = '(memberOf=cn=users,cn=mantisbt,ou=services,dc=immae,dc=eu)';
+ '';
+ }];
+ webRoot = (mantisbt_2.override { mantis_config = "/var/secrets/webapps/tools-mantisbt"; }).withPlugins (builtins.attrValues mantisbt_2-plugins);
+ apache = rec {
+ user = "wwwrun";
+ group = "wwwrun";
+ modules = [ "proxy_fcgi" ];
+ webappName = "tools_mantisbt";
+ root = "/run/current-system/webapps/${webappName}";
+ vhostConf = ''
+ Alias /mantisbt "${root}"
+ <Directory "${root}">
+ DirectoryIndex index.php
+ <FilesMatch "\.php$">
+ SetHandler "proxy:unix:${phpFpm.socket}|fcgi://localhost"
+ </FilesMatch>
+
+ AllowOverride All
+ Options FollowSymlinks
+ Require all granted
+ </Directory>
+ <Directory "${root}/admin">
+ #Reenable during upgrade
+ Require all denied
+ </Directory>
+ '';
+ };
+ phpFpm = rec {
+ serviceDeps = [ "postgresql.service" "openldap.service" ];
+ basedir = builtins.concatStringsSep ":" (
+ [ webRoot "/var/secrets/webapps/tools-mantisbt" ]
+ ++ webRoot.plugins);
+ socket = "/var/run/phpfpm/mantisbt.sock";
+ pool = ''
+ listen = ${socket}
+ user = ${apache.user}
+ group = ${apache.group}
+ listen.owner = ${apache.user}
+ listen.group = ${apache.group}
+ pm = ondemand
+ pm.max_children = 60
+ pm.process_idle_timeout = 60
+
+ php_admin_value[upload_max_filesize] = 5000000
+
+ php_admin_value[open_basedir] = "${basedir}:/tmp:/var/lib/php/sessions/mantisbt"
+ php_admin_value[session.save_path] = "/var/lib/php/sessions/mantisbt"
+ '';
+ };
+}
--- /dev/null
+{ lib, pkgs, config, myconfig, ... }:
+let
+ env = myconfig.env.tools.mastodon;
+ root = "/run/current-system/webapps/tools_mastodon";
+ cfg = config.myServices.websites.tools.mastodon;
+ mcfg = config.services.mastodon;
+in {
+ options.myServices.websites.tools.mastodon = {
+ enable = lib.mkEnableOption "enable mastodon's website";
+ };
+
+ config = lib.mkIf cfg.enable {
+ secrets.keys = [{
+ dest = "webapps/tools-mastodon";
+ user = "mastodon";
+ group = "mastodon";
+ permissions = "0400";
+ text = ''
+ REDIS_HOST=${env.redis.host}
+ REDIS_PORT=${env.redis.port}
+ REDIS_DB=${env.redis.db}
+ DB_HOST=${env.postgresql.socket}
+ DB_USER=${env.postgresql.user}
+ DB_NAME=${env.postgresql.database}
+ DB_PASS=${env.postgresql.password}
+ DB_PORT=${env.postgresql.port}
+
+ LOCAL_DOMAIN=mastodon.immae.eu
+ LOCAL_HTTPS=true
+ ALTERNATE_DOMAINS=immae.eu
+
+ PAPERCLIP_SECRET=${env.paperclip_secret}
+ SECRET_KEY_BASE=${env.secret_key_base}
+ OTP_SECRET=${env.otp_secret}
+
+ VAPID_PRIVATE_KEY=${env.vapid.private}
+ VAPID_PUBLIC_KEY=${env.vapid.public}
+
+ SMTP_DELIVERY_METHOD=sendmail
+ SMTP_FROM_ADDRESS=mastodon@tools.immae.eu
+ SENDMAIL_LOCATION="/run/wrappers/bin/sendmail"
+ PAPERCLIP_ROOT_PATH=${mcfg.dataDir}
+
+ STREAMING_CLUSTER_NUM=1
+
+ RAILS_LOG_LEVEL=warn
+
+ # LDAP authentication (optional)
+ LDAP_ENABLED=true
+ LDAP_HOST=ldap.immae.eu
+ LDAP_PORT=636
+ LDAP_METHOD=simple_tls
+ LDAP_BASE="dc=immae,dc=eu"
+ LDAP_BIND_DN="cn=mastodon,ou=services,dc=immae,dc=eu"
+ LDAP_PASSWORD="${env.ldap.password}"
+ LDAP_UID="uid"
+ LDAP_SEARCH_FILTER="(&(%{uid}=%{email})(memberOf=cn=users,cn=mastodon,ou=services,dc=immae,dc=eu))"
+ '';
+ }];
+ services.mastodon = {
+ enable = true;
+ configFile = "/var/secrets/webapps/tools-mastodon";
+ socketsPrefix = "live_immae";
+ dataDir = "/var/lib/mastodon_immae";
+ };
+
+ services.websites.tools.modules = [
+ "headers" "proxy" "proxy_wstunnel" "proxy_http"
+ ];
+ system.extraSystemBuilderCmds = ''
+ mkdir -p $out/webapps
+ ln -s ${mcfg.workdir}/public/ $out/webapps/tools_mastodon
+ '';
+ services.websites.tools.vhostConfs.mastodon = {
+ certName = "eldiron";
+ addToCerts = true;
+ hosts = ["mastodon.immae.eu" ];
+ root = root;
+ extraConfig = [ ''
+ Header always set Referrer-Policy "strict-origin-when-cross-origin"
+ Header always set Strict-Transport-Security "max-age=31536000"
+
+ <LocationMatch "^/(assets|avatars|emoji|headers|packs|sounds|system)>
+ Header always set Cache-Control "public, max-age=31536000, immutable"
+ Require all granted
+ </LocationMatch>
+
+ ProxyPreserveHost On
+ RequestHeader set X-Forwarded-Proto "https"
+
+ RewriteEngine On
+
+ ProxyPass /500.html !
+ ProxyPass /sw.js !
+ ProxyPass /embed.js !
+ ProxyPass /robots.txt !
+ ProxyPass /manifest.json !
+ ProxyPass /browserconfig.xml !
+ ProxyPass /mask-icon.svg !
+ ProxyPassMatch ^(/.*\.(png|ico|gif)$) !
+ ProxyPassMatch ^/(assets|avatars|emoji|headers|packs|sounds|system|.well-known/acme-challenge) !
+
+ RewriteRule ^/api/v1/streaming/(.+)$ unix://${mcfg.sockets.node}|http://mastodon.immae.eu/api/v1/streaming/$1 [P,NE,QSA,L]
+ RewriteRule ^/api/v1/streaming/$ unix://${mcfg.sockets.node}|ws://mastodon.immae.eu/ [P,NE,QSA,L]
+ ProxyPass / unix://${mcfg.sockets.rails}|http://mastodon.immae.eu/
+ ProxyPassReverse / unix://${mcfg.sockets.rails}|http://mastodon.immae.eu/
+
+ Alias /system ${mcfg.dataDir}
+
+ <Directory ${mcfg.dataDir}>
+ Require all granted
+ Options -MultiViews
+ </Directory>
+
+ <Directory ${root}>
+ Require all granted
+ Options -MultiViews +FollowSymlinks
+ </Directory>
+
+ ErrorDocument 500 /500.html
+ ErrorDocument 501 /500.html
+ ErrorDocument 502 /500.html
+ ErrorDocument 503 /500.html
+ ErrorDocument 504 /500.html
+ '' ];
+ };
+ };
+}
--- /dev/null
+{ lib, pkgs, config, myconfig, ... }:
+let
+ env = myconfig.env.tools.mediagoblin;
+ cfg = config.myServices.websites.tools.mediagoblin;
+ mcfg = config.services.mediagoblin;
+in {
+ options.myServices.websites.tools.mediagoblin = {
+ enable = lib.mkEnableOption "enable mediagoblin's website";
+ };
+
+ config = lib.mkIf cfg.enable {
+ secrets.keys = [{
+ dest = "webapps/tools-mediagoblin";
+ user = "mediagoblin";
+ group = "mediagoblin";
+ permissions = "0400";
+ text = ''
+ [DEFAULT]
+ data_basedir = "${mcfg.dataDir}"
+
+ [mediagoblin]
+ direct_remote_path = /mgoblin_static/
+ email_sender_address = "mediagoblin@tools.immae.eu"
+
+ #sql_engine = sqlite:///%(data_basedir)s/mediagoblin.db
+ sql_engine = ${env.psql_url}
+
+ email_debug_mode = false
+ allow_registration = false
+ allow_reporting = true
+
+ theme = airymodified
+
+ user_privilege_scheme = "uploader,commenter,reporter"
+
+ # We need to redefine them here since we override data_basedir
+ # cf /usr/share/webapps/mediagoblin/mediagoblin/config_spec.ini
+ workbench_path = %(data_basedir)s/media/workbench
+ crypto_path = %(data_basedir)s/crypto
+ theme_install_dir = %(data_basedir)s/themes/
+ theme_linked_assets_dir = %(data_basedir)s/theme_static/
+ plugin_linked_assets_dir = %(data_basedir)s/plugin_static/
+
+ [storage:queuestore]
+ base_dir = %(data_basedir)s/media/queue
+
+ [storage:publicstore]
+ base_dir = %(data_basedir)s/media/public
+ base_url = /mgoblin_media/
+
+ [celery]
+ CELERY_RESULT_DBURI = ${env.redis_url}
+ BROKER_URL = ${env.redis_url}
+ CELERYD_CONCURRENCY = 1
+
+ [plugins]
+ [[mediagoblin.plugins.geolocation]]
+ [[mediagoblin.plugins.ldap]]
+ [[[immae.eu]]]
+ LDAP_SERVER_URI = 'ldaps://ldap.immae.eu:636'
+ LDAP_SEARCH_BASE = 'dc=immae,dc=eu'
+ LDAP_BIND_DN = 'cn=mediagoblin,ou=services,dc=immae,dc=eu'
+ LDAP_BIND_PW = '${env.ldap.password}'
+ LDAP_SEARCH_FILTER = '(&(memberOf=cn=users,cn=mediagoblin,ou=services,dc=immae,dc=eu)(uid={username}))'
+ EMAIL_SEARCH_FIELD = 'mail'
+ [[mediagoblin.plugins.basicsearch]]
+ [[mediagoblin.plugins.piwigo]]
+ [[mediagoblin.plugins.processing_info]]
+ [[mediagoblin.media_types.image]]
+ [[mediagoblin.media_types.video]]
+ '';
+ }];
+
+ users.users.mediagoblin.extraGroups = [ "keys" ];
+
+ services.mediagoblin = {
+ enable = true;
+ plugins = builtins.attrValues pkgs.webapps.mediagoblin-plugins;
+ configFile = "/var/secrets/webapps/tools-mediagoblin";
+ };
+
+ services.websites.tools.modules = [
+ "proxy" "proxy_http"
+ ];
+ users.users.wwwrun.extraGroups = [ "mediagoblin" ];
+ services.websites.tools.vhostConfs.mgoblin = {
+ certName = "eldiron";
+ addToCerts = true;
+ hosts = ["mgoblin.immae.eu" ];
+ root = null;
+ extraConfig = [ ''
+ Alias /mgoblin_media ${mcfg.dataDir}/media/public
+ <Directory ${mcfg.dataDir}/media/public>
+ Options -Indexes +FollowSymLinks +MultiViews +Includes
+ Require all granted
+ </Directory>
+
+ Alias /theme_static ${mcfg.dataDir}/theme_static
+ <Directory ${mcfg.dataDir}/theme_static>
+ Options -Indexes +FollowSymLinks +MultiViews +Includes
+ Require all granted
+ </Directory>
+
+ Alias /plugin_static ${mcfg.dataDir}/plugin_static
+ <Directory ${mcfg.dataDir}/plugin_static>
+ Options -Indexes +FollowSymLinks +MultiViews +Includes
+ Require all granted
+ </Directory>
+
+ ProxyPreserveHost on
+ ProxyVia On
+ ProxyRequests Off
+ ProxyPass /mgoblin_media !
+ ProxyPass /theme_static !
+ ProxyPass /plugin_static !
+ ProxyPassMatch ^/.well-known/acme-challenge !
+ ProxyPass / unix://${mcfg.sockets.paster}|http://mgoblin.immae.eu/
+ ProxyPassReverse / unix://${mcfg.sockets.paster}|http://mgoblin.immae.eu/
+ '' ];
+ };
+ };
+}
--- /dev/null
+{ lib, pkgs, config, myconfig, ... }:
+let
+ env = myconfig.env.tools.peertube;
+ cfg = config.myServices.websites.tools.peertube;
+ pcfg = config.services.peertube;
+in {
+ options.myServices.websites.tools.peertube = {
+ enable = lib.mkEnableOption "enable Peertube's website";
+ };
+
+ config = lib.mkIf cfg.enable {
+ services.peertube = {
+ enable = true;
+ configFile = "/var/secrets/webapps/tools-peertube";
+ package = pkgs.webapps.peertube.override { ldap = true; };
+ };
+ users.users.peertube.extraGroups = [ "keys" ];
+
+ secrets.keys = [{
+ dest = "webapps/tools-peertube";
+ user = "peertube";
+ group = "peertube";
+ permissions = "0640";
+ text = ''
+ listen:
+ hostname: 'localhost'
+ port: ${env.listenPort}
+ webserver:
+ https: true
+ hostname: 'peertube.immae.eu'
+ port: 443
+ trust_proxy:
+ - 'loopback'
+ database:
+ hostname: '${env.postgresql.socket}'
+ port: 5432
+ suffix: '_prod'
+ username: '${env.postgresql.user}'
+ password: '${env.postgresql.password}'
+ pool:
+ max: 5
+ redis:
+ socket: '${env.redis.socket}'
+ auth: null
+ db: ${env.redis.db_index}
+ ldap:
+ enable: true
+ ldap_only: false
+ url: ldaps://${env.ldap.host}/${env.ldap.base}
+ bind_dn: ${env.ldap.dn}
+ bind_password: ${env.ldap.password}
+ base: ${env.ldap.base}
+ mail_entry: "mail"
+ user_filter: "${env.ldap.filter}"
+ smtp:
+ transport: sendmail
+ sendmail: '/run/wrappers/bin/sendmail'
+ hostname: null
+ port: 465 # If you use StartTLS: 587
+ username: null
+ password: null
+ tls: true # If you use StartTLS: false
+ disable_starttls: false
+ ca_file: null # Used for self signed certificates
+ from_address: 'peertube@tools.immae.eu'
+ storage:
+ tmp: '${pcfg.dataDir}/storage/tmp/'
+ avatars: '${pcfg.dataDir}/storage/avatars/'
+ videos: '${pcfg.dataDir}/storage/videos/'
+ redundancy: '${pcfg.dataDir}/storage/videos/'
+ logs: '${pcfg.dataDir}/storage/logs/'
+ previews: '${pcfg.dataDir}/storage/previews/'
+ thumbnails: '${pcfg.dataDir}/storage/thumbnails/'
+ torrents: '${pcfg.dataDir}/storage/torrents/'
+ captions: '${pcfg.dataDir}/storage/captions/'
+ cache: '${pcfg.dataDir}/storage/cache/'
+ log:
+ level: 'info'
+ search:
+ remote_uri:
+ users: true
+ anonymous: false
+ trending:
+ videos:
+ interval_days: 7
+ redundancy:
+ videos:
+ check_interval: '1 hour' # How often you want to check new videos to cache
+ strategies: # Just uncomment strategies you want
+ # Following are saved in local-production.json
+ cache:
+ previews:
+ size: 500 # Max number of previews you want to cache
+ captions:
+ size: 500 # Max number of video captions/subtitles you want to cache
+ admin:
+ email: 'peertube@tools.immae.eu'
+ contact_form:
+ enabled: true
+ signup:
+ enabled: false
+ limit: 10
+ requires_email_verification: false
+ filters:
+ cidr:
+ whitelist: []
+ blacklist: []
+ user:
+ video_quota: -1
+ video_quota_daily: -1
+ transcoding:
+ enabled: false
+ allow_additional_extensions: true
+ threads: 1
+ resolutions:
+ 240p: false
+ 360p: false
+ 480p: true
+ 720p: true
+ 1080p: true
+ hls:
+ enabled: false
+ import:
+ videos:
+ http:
+ enabled: true
+ torrent:
+ enabled: false
+ instance:
+ name: 'Immae’s PeerTube'
+ short_description: 'PeerTube, a federated (ActivityPub) video streaming platform using P2P (BitTorrent) directly in the web browser with WebTorrent and Angular.'
+ description: '''
+ terms: '''
+ default_client_route: '/videos/trending'
+ default_nsfw_policy: 'blur'
+ customizations:
+ javascript: '''
+ css: '''
+ robots: |
+ User-agent: *
+ Disallow:
+ securitytxt:
+ "# If you would like to report a security issue\n# you may report it to:\nContact: https://github.com/Chocobozzz/PeerTube/blob/develop/SECURITY.md\nContact: mailto:"
+ services:
+ # You can provide a reporting endpoint for Content Security Policy violations
+ csp-logger:
+ twitter:
+ username: '@_immae'
+ whitelisted: false
+ '';
+ }];
+
+ services.websites.tools.modules = [
+ "headers" "proxy" "proxy_http" "proxy_wstunnel"
+ ];
+ services.websites.tools.vhostConfs.peertube = {
+ certName = "eldiron";
+ addToCerts = true;
+ hosts = [ "peertube.immae.eu" ];
+ root = null;
+ extraConfig = [ ''
+ RewriteEngine On
+
+ RewriteCond %{REQUEST_URI} ^/socket.io [NC]
+ RewriteCond %{QUERY_STRING} transport=websocket [NC]
+ RewriteRule /(.*) ws://localhost:${env.listenPort}/$1 [P,NE,QSA,L]
+
+ RewriteCond %{REQUEST_URI} ^/tracker/socket [NC]
+ RewriteRule /(.*) ws://localhost:${env.listenPort}/$1 [P,NE,QSA,L]
+
+ ProxyPass / http://localhost:${env.listenPort}/
+ ProxyPassReverse / http://localhost:${env.listenPort}/
+
+ ProxyPreserveHost On
+ RequestHeader set X-Real-IP %{REMOTE_ADDR}s
+ '' ];
+ };
+ };
+}
--- /dev/null
+{ adminer }:
+rec {
+ activationScript = {
+ deps = [ "httpd" ];
+ text = ''
+ install -m 0755 -o ${apache.user} -g ${apache.group} -d /var/lib/php/sessions/adminer
+ install -m 0755 -o ${apache.user} -g ${apache.group} -d /var/lib/php/tmp/adminer
+ '';
+ };
+ webRoot = adminer;
+ phpFpm = rec {
+ socket = "/var/run/phpfpm/adminer.sock";
+ pool = ''
+ listen = ${socket}
+ user = ${apache.user}
+ group = ${apache.group}
+ listen.owner = ${apache.user}
+ listen.group = ${apache.group}
+ pm = ondemand
+ pm.max_children = 5
+ pm.process_idle_timeout = 60
+ ;php_admin_flag[log_errors] = on
+ ; Needed to avoid clashes in browser cookies (same domain)
+ php_value[session.name] = AdminerPHPSESSID
+ php_admin_value[open_basedir] = "${webRoot}:/tmp:/var/lib/php/sessions/adminer:/var/lib/php/tmp/adminer"
+ php_admin_value[session.save_path] = "/var/lib/php/sessions/adminer"
+ php_admin_value[upload_tmp_dir] = "/var/lib/php/tmp/adminer"
+ '';
+ };
+ apache = rec {
+ user = "wwwrun";
+ group = "wwwrun";
+ modules = [ "proxy_fcgi" ];
+ webappName = "_adminer";
+ root = "/run/current-system/webapps/${webappName}";
+ vhostConf = ''
+ Alias /adminer ${root}
+ <Directory ${root}>
+ DirectoryIndex index.php
+ Require all granted
+ <FilesMatch "\.php$">
+ SetHandler "proxy:unix:${phpFpm.socket}|fcgi://localhost"
+ </FilesMatch>
+ </Directory>
+ '';
+ };
+}
--- /dev/null
+{ lib, pkgs, config, myconfig, ... }:
+let
+ adminer = pkgs.callPackage ./adminer.nix {
+ inherit (pkgs.webapps) adminer;
+ };
+ ympd = pkgs.callPackage ./ympd.nix {
+ env = myconfig.env.tools.ympd;
+ };
+ ttrss = pkgs.callPackage ./ttrss.nix {
+ inherit (pkgs.webapps) ttrss ttrss-plugins;
+ env = myconfig.env.tools.ttrss;
+ };
+ roundcubemail = pkgs.callPackage ./roundcubemail.nix {
+ inherit (pkgs.webapps) roundcubemail roundcubemail-plugins roundcubemail-skins;
+ env = myconfig.env.tools.roundcubemail;
+ };
+ rainloop = pkgs.callPackage ./rainloop.nix {};
+ kanboard = pkgs.callPackage ./kanboard.nix {
+ env = myconfig.env.tools.kanboard;
+ };
+ wallabag = pkgs.callPackage ./wallabag.nix {
+ inherit (pkgs.webapps) wallabag;
+ env = myconfig.env.tools.wallabag;
+ };
+ yourls = pkgs.callPackage ./yourls.nix {
+ inherit (pkgs.webapps) yourls yourls-plugins;
+ env = myconfig.env.tools.yourls;
+ };
+ rompr = pkgs.callPackage ./rompr.nix {
+ inherit (pkgs.webapps) rompr;
+ env = myconfig.env.tools.rompr;
+ };
+ shaarli = pkgs.callPackage ./shaarli.nix {
+ env = myconfig.env.tools.shaarli;
+ };
+ dokuwiki = pkgs.callPackage ./dokuwiki.nix {
+ inherit (pkgs.webapps) dokuwiki dokuwiki-plugins;
+ };
+ ldap = pkgs.callPackage ./ldap.nix {
+ inherit (pkgs.webapps) phpldapadmin;
+ env = myconfig.env.tools.phpldapadmin;
+ };
+
+ cfg = config.myServices.websites.tools.tools;
+in {
+ options.myServices.websites.tools.tools = {
+ enable = lib.mkEnableOption "enable tools website";
+ };
+
+ config = lib.mkIf cfg.enable {
+ secrets.keys =
+ kanboard.keys
+ ++ ldap.keys
+ ++ roundcubemail.keys
+ ++ shaarli.keys
+ ++ ttrss.keys
+ ++ wallabag.keys
+ ++ yourls.keys;
+
+ services.websites.integration.modules =
+ rainloop.apache.modules;
+
+ services.websites.tools.modules =
+ [ "proxy_fcgi" ]
+ ++ adminer.apache.modules
+ ++ ympd.apache.modules
+ ++ ttrss.apache.modules
+ ++ roundcubemail.apache.modules
+ ++ wallabag.apache.modules
+ ++ yourls.apache.modules
+ ++ rompr.apache.modules
+ ++ shaarli.apache.modules
+ ++ dokuwiki.apache.modules
+ ++ ldap.apache.modules
+ ++ kanboard.apache.modules;
+
+ services.websites.integration.vhostConfs.devtools = {
+ certName = "eldiron";
+ addToCerts = true;
+ hosts = ["devtools.immae.eu" ];
+ root = "/var/lib/ftp/devtools.immae.eu";
+ extraConfig = [
+ ''
+ <Directory "/var/lib/ftp/devtools.immae.eu">
+ DirectoryIndex index.php index.htm index.html
+ AllowOverride all
+ Require all granted
+ <FilesMatch "\.php$">
+ SetHandler "proxy:unix:/var/run/phpfpm/devtools.sock|fcgi://localhost"
+ </FilesMatch>
+ </Directory>
+ ''
+ rainloop.apache.vhostConf
+ ];
+ };
+
+ services.websites.tools.vhostConfs.tools = {
+ certName = "eldiron";
+ addToCerts = true;
+ hosts = ["tools.immae.eu" ];
+ root = "/var/lib/ftp/tools.immae.eu";
+ extraConfig = [
+ ''
+ <Directory "/var/lib/ftp/tools.immae.eu">
+ DirectoryIndex index.php index.htm index.html
+ AllowOverride all
+ Require all granted
+ <FilesMatch "\.php$">
+ SetHandler "proxy:unix:/var/run/phpfpm/tools.sock|fcgi://localhost"
+ </FilesMatch>
+ </Directory>
+ ''
+ adminer.apache.vhostConf
+ ympd.apache.vhostConf
+ ttrss.apache.vhostConf
+ roundcubemail.apache.vhostConf
+ wallabag.apache.vhostConf
+ yourls.apache.vhostConf
+ rompr.apache.vhostConf
+ shaarli.apache.vhostConf
+ dokuwiki.apache.vhostConf
+ ldap.apache.vhostConf
+ kanboard.apache.vhostConf
+ ];
+ };
+
+ services.websites.tools.vhostConfs.outils = {
+ certName = "eldiron";
+ addToCerts = true;
+ hosts = [ "outils.immae.eu" ];
+ root = null;
+ extraConfig = [
+ ''
+ RedirectMatch 301 ^/mediagoblin(.*)$ https://mgoblin.immae.eu$1
+
+ RedirectMatch 301 ^/ether(.*)$ https://ether.immae.eu$1
+
+ RedirectMatch 301 ^/nextcloud(.*)$ https://cloud.immae.eu$1
+ RedirectMatch 301 ^/owncloud(.*)$ https://cloud.immae.eu$1
+
+ RedirectMatch 301 ^/carddavmate(.*)$ https://dav.immae.eu/infcloud$1
+ RedirectMatch 301 ^/caldavzap(.*)$ https://dav.immae.eu/infcloud$1
+ RedirectMatch 301 ^/caldav.php(.*)$ https://dav.immae.eu/caldav.php$1
+ RedirectMatch 301 ^/davical(.*)$ https://dav.immae.eu/davical$1
+
+ RedirectMatch 301 ^/taskweb(.*)$ https://task.immae.eu/taskweb$1
+
+ RedirectMatch 301 ^/(.*)$ https://tools.immae.eu/$1
+ ''
+ ];
+ };
+
+ systemd.services = {
+ phpfpm-dokuwiki = {
+ after = lib.mkAfter dokuwiki.phpFpm.serviceDeps;
+ wants = dokuwiki.phpFpm.serviceDeps;
+ };
+ phpfpm-kanboard = {
+ after = lib.mkAfter kanboard.phpFpm.serviceDeps;
+ wants = kanboard.phpFpm.serviceDeps;
+ };
+ phpfpm-ldap = {
+ after = lib.mkAfter ldap.phpFpm.serviceDeps;
+ wants = ldap.phpFpm.serviceDeps;
+ };
+ phpfpm-rainloop = {
+ after = lib.mkAfter rainloop.phpFpm.serviceDeps;
+ wants = rainloop.phpFpm.serviceDeps;
+ };
+ phpfpm-roundcubemail = {
+ after = lib.mkAfter roundcubemail.phpFpm.serviceDeps;
+ wants = roundcubemail.phpFpm.serviceDeps;
+ };
+ phpfpm-shaarli = {
+ after = lib.mkAfter shaarli.phpFpm.serviceDeps;
+ wants = shaarli.phpFpm.serviceDeps;
+ };
+ phpfpm-ttrss = {
+ after = lib.mkAfter ttrss.phpFpm.serviceDeps;
+ wants = ttrss.phpFpm.serviceDeps;
+ };
+ phpfpm-wallabag = {
+ after = lib.mkAfter wallabag.phpFpm.serviceDeps;
+ wants = wallabag.phpFpm.serviceDeps;
+ preStart = lib.mkAfter wallabag.phpFpm.preStart;
+ };
+ phpfpm-yourls = {
+ after = lib.mkAfter yourls.phpFpm.serviceDeps;
+ wants = yourls.phpFpm.serviceDeps;
+ };
+ ympd = {
+ description = "Standalone MPD Web GUI written in C";
+ wantedBy = [ "multi-user.target" ];
+ script = ''
+ export MPD_PASSWORD=$(cat /var/secrets/mpd)
+ ${pkgs.ympd}/bin/ympd --host ${ympd.config.host} --port ${toString ympd.config.port} --webport ${ympd.config.webPort} --user nobody
+ '';
+ };
+ tt-rss = {
+ description = "Tiny Tiny RSS feeds update daemon";
+ serviceConfig = {
+ User = "wwwrun";
+ ExecStart = "${pkgs.php}/bin/php ${ttrss.webRoot}/update.php --daemon";
+ StandardOutput = "syslog";
+ StandardError = "syslog";
+ PermissionsStartOnly = true;
+ };
+
+ wantedBy = [ "multi-user.target" ];
+ requires = ["postgresql.service"];
+ after = ["network.target" "postgresql.service"];
+ };
+ };
+
+ services.phpfpm.pools.roundcubemail = {
+ listen = roundcubemail.phpFpm.socket;
+ extraConfig = roundcubemail.phpFpm.pool;
+ phpOptions = config.services.phpfpm.phpOptions + roundcubemail.phpFpm.phpConfig;
+ };
+
+ services.phpfpm.pools.devtools = {
+ listen = "/var/run/phpfpm/devtools.sock";
+ extraConfig = ''
+ user = wwwrun
+ group = wwwrun
+ listen.owner = wwwrun
+ listen.group = wwwrun
+ pm = dynamic
+ pm.max_children = 60
+ pm.start_servers = 2
+ pm.min_spare_servers = 1
+ pm.max_spare_servers = 10
+
+ php_admin_value[open_basedir] = "/run/wrappers/bin/sendmail:/var/lib/ftp/devtools.immae.eu:/tmp"
+ '';
+ phpOptions = config.services.phpfpm.phpOptions + ''
+ extension=${pkgs.phpPackages.redis}/lib/php/extensions/redis.so
+ extension=${pkgs.phpPackages.apcu}/lib/php/extensions/apcu.so
+ zend_extension=${pkgs.php}/lib/php/extensions/opcache.so
+ '';
+ };
+
+ services.phpfpm.poolConfigs = {
+ adminer = adminer.phpFpm.pool;
+ ttrss = ttrss.phpFpm.pool;
+ wallabag = wallabag.phpFpm.pool;
+ yourls = yourls.phpFpm.pool;
+ rompr = rompr.phpFpm.pool;
+ shaarli = shaarli.phpFpm.pool;
+ dokuwiki = dokuwiki.phpFpm.pool;
+ ldap = ldap.phpFpm.pool;
+ rainloop = rainloop.phpFpm.pool;
+ kanboard = kanboard.phpFpm.pool;
+ tools = ''
+ listen = /var/run/phpfpm/tools.sock
+ user = wwwrun
+ group = wwwrun
+ listen.owner = wwwrun
+ listen.group = wwwrun
+ pm = dynamic
+ pm.max_children = 60
+ pm.start_servers = 2
+ pm.min_spare_servers = 1
+ pm.max_spare_servers = 10
+
+ ; Needed to avoid clashes in browser cookies (same domain)
+ php_value[session.name] = ToolsPHPSESSID
+ php_admin_value[open_basedir] = "/run/wrappers/bin/sendmail:/var/lib/ftp/tools.immae.eu:/tmp"
+ '';
+ };
+
+ system.activationScripts = {
+ adminer = adminer.activationScript;
+ ttrss = ttrss.activationScript;
+ roundcubemail = roundcubemail.activationScript;
+ wallabag = wallabag.activationScript;
+ yourls = yourls.activationScript;
+ rompr = rompr.activationScript;
+ shaarli = shaarli.activationScript;
+ dokuwiki = dokuwiki.activationScript;
+ rainloop = rainloop.activationScript;
+ kanboard = kanboard.activationScript;
+ ldap = ldap.activationScript;
+ };
+
+ myServices.websites.webappDirs = {
+ _adminer = adminer.webRoot;
+ "${dokuwiki.apache.webappName}" = dokuwiki.webRoot;
+ "${ldap.apache.webappName}" = "${ldap.webRoot}/htdocs";
+ "${rompr.apache.webappName}" = rompr.webRoot;
+ "${roundcubemail.apache.webappName}" = roundcubemail.webRoot;
+ "${shaarli.apache.webappName}" = shaarli.webRoot;
+ "${ttrss.apache.webappName}" = ttrss.webRoot;
+ "${wallabag.apache.webappName}" = wallabag.webRoot;
+ "${yourls.apache.webappName}" = yourls.webRoot;
+ "${rainloop.apache.webappName}" = rainloop.webRoot;
+ "${kanboard.apache.webappName}" = kanboard.webRoot;
+ };
+
+ };
+}
+
--- /dev/null
+{ lib, stdenv, dokuwiki, dokuwiki-plugins }:
+rec {
+ varDir = "/var/lib/dokuwiki";
+ activationScript = {
+ deps = [ "wrappers" ];
+ text = ''
+ if [ ! -d ${varDir} ]; then
+ install -m 0755 -o ${apache.user} -g ${apache.group} -d ${varDir} \
+ ${varDir}/animals
+ cp -a ${webRoot}/conf.dist ${varDir}/conf
+ cp -a ${webRoot}/data.dist ${varDir}/data
+ cp -a ${webRoot}/
+ chown -R ${apache.user}:${apache.user} ${varDir}/config ${varDir}/data
+ chmod -R 755 ${varDir}/config ${varDir}/data
+ fi
+ install -m 0750 -o ${apache.user} -g ${apache.group} -d ${varDir}/phpSessions
+ '';
+ };
+ webRoot = dokuwiki.withPlugins (builtins.attrValues dokuwiki-plugins);
+ apache = rec {
+ user = "wwwrun";
+ group = "wwwrun";
+ modules = [ "proxy_fcgi" ];
+ webappName = "tools_dokuwiki";
+ root = "/run/current-system/webapps/${webappName}";
+ vhostConf = ''
+ Alias /dokuwiki "${root}"
+ <Directory "${root}">
+ DirectoryIndex index.php
+ <FilesMatch "\.php$">
+ SetHandler "proxy:unix:${phpFpm.socket}|fcgi://localhost"
+ </FilesMatch>
+
+ AllowOverride All
+ Options +FollowSymlinks
+ Require all granted
+ </Directory>
+ '';
+ };
+ phpFpm = rec {
+ serviceDeps = [ "openldap.service" ];
+ basedir = builtins.concatStringsSep ":" (
+ [ webRoot varDir ] ++ webRoot.plugins);
+ socket = "/var/run/phpfpm/dokuwiki.sock";
+ pool = ''
+ listen = ${socket}
+ user = ${apache.user}
+ group = ${apache.group}
+ listen.owner = ${apache.user}
+ listen.group = ${apache.group}
+ pm = ondemand
+ pm.max_children = 60
+ pm.process_idle_timeout = 60
+
+ ; Needed to avoid clashes in browser cookies (same domain)
+ php_value[session.name] = DokuwikiPHPSESSID
+ php_admin_value[open_basedir] = "${basedir}:/tmp"
+ php_admin_value[session.save_path] = "${varDir}/phpSessions"
+ '';
+ };
+}
--- /dev/null
+{ env, kanboard }:
+rec {
+ varDir = "/var/lib/kanboard";
+ activationScript = {
+ deps = [ "wrappers" ];
+ text = ''
+ install -m 0755 -o ${apache.user} -g ${apache.group} -d ${varDir}/data
+ install -m 0750 -o ${apache.user} -g ${apache.group} -d ${varDir}/phpSessions
+ install -TDm644 ${webRoot}/dataold/.htaccess ${varDir}/data/.htaccess
+ install -TDm644 ${webRoot}/dataold/web.config ${varDir}/data/web.config
+ '';
+ };
+ keys = [{
+ dest = "webapps/tools-kanboard";
+ user = apache.user;
+ group = apache.group;
+ permissions = "0400";
+ text = ''
+ <?php
+ define('MAIL_FROM', 'kanboard@tools.immae.eu');
+
+ define('DB_DRIVER', 'postgres');
+ define('DB_USERNAME', '${env.postgresql.user}');
+ define('DB_PASSWORD', '${env.postgresql.password}');
+ define('DB_HOSTNAME', '${env.postgresql.socket}');
+ define('DB_NAME', '${env.postgresql.database}');
+
+ define('DATA_DIR', '${varDir}');
+ define('LDAP_AUTH', true);
+ define('LDAP_SERVER', '${env.ldap.host}');
+ define('LDAP_START_TLS', true);
+
+ define('LDAP_BIND_TYPE', 'proxy');
+ define('LDAP_USERNAME', '${env.ldap.dn}');
+ define('LDAP_PASSWORD', '${env.ldap.password}');
+ define('LDAP_USER_BASE_DN', '${env.ldap.base}');
+ define('LDAP_USER_FILTER', '(&(memberOf=cn=users,cn=kanboard,ou=services,dc=immae,dc=eu)(uid=%s))');
+ define('LDAP_GROUP_ADMIN_DN', 'cn=admins,cn=kanboard,ou=services,dc=immae,dc=eu');
+ ?>
+ '';
+ }];
+ webRoot = kanboard { kanboard_config = "/var/secrets/webapps/tools-kanboard"; };
+ apache = rec {
+ user = "wwwrun";
+ group = "wwwrun";
+ modules = [ "proxy_fcgi" ];
+ webappName = "tools_kanboard";
+ root = "/run/current-system/webapps/${webappName}";
+ vhostConf = ''
+ Alias /kanboard "${root}"
+ <Directory "${root}">
+ DirectoryIndex index.php
+ AllowOverride All
+ Options FollowSymlinks
+ Require all granted
+
+ <FilesMatch "\.php$">
+ SetHandler "proxy:unix:${phpFpm.socket}|fcgi://localhost"
+ </FilesMatch>
+ </Directory>
+ <DirectoryMatch "${root}/data">
+ Require all denied
+ </DirectoryMatch>
+ '';
+ };
+ phpFpm = rec {
+ serviceDeps = [ "postgresql.service" "openldap.service" ];
+ basedir = builtins.concatStringsSep ":" [ webRoot varDir "/var/secrets/webapps/tools-kanboard" ];
+ socket = "/var/run/phpfpm/kanboard.sock";
+ pool = ''
+ listen = ${socket}
+ user = ${apache.user}
+ group = ${apache.group}
+ listen.owner = ${apache.user}
+ listen.group = ${apache.group}
+ pm = ondemand
+ pm.max_children = 60
+ pm.process_idle_timeout = 60
+
+ ; Needed to avoid clashes in browser cookies (same domain)
+ php_value[session.name] = KanboardPHPSESSID
+ php_admin_value[open_basedir] = "${basedir}:/tmp"
+ php_admin_value[session.save_path] = "${varDir}/phpSessions"
+ '';
+ };
+}
--- /dev/null
+{ lib, php, env, writeText, phpldapadmin }:
+rec {
+ activationScript = {
+ deps = [ "httpd" ];
+ text = ''
+ install -m 0755 -o ${apache.user} -g ${apache.group} -d /var/lib/php/sessions/phpldapadmin
+ '';
+ };
+ keys = [{
+ dest = "webapps/tools-ldap";
+ user = apache.user;
+ group = apache.group;
+ permissions = "0400";
+ text = ''
+ <?php
+ $config->custom->appearance['show_clear_password'] = true;
+ $config->custom->appearance['hide_template_warning'] = true;
+ $config->custom->appearance['theme'] = "tango";
+ $config->custom->appearance['minimalMode'] = true;
+
+ $servers = new Datastore();
+
+ $servers->newServer('ldap_pla');
+ $servers->setValue('server','name','Immae’s LDAP');
+ $servers->setValue('server','host','ldaps://${env.ldap.host}');
+ $servers->setValue('login','auth_type','cookie');
+ $servers->setValue('login','bind_id','${env.ldap.dn}');
+ $servers->setValue('login','bind_pass','${env.ldap.password}');
+ $servers->setValue('appearance','password_hash','ssha');
+ $servers->setValue('login','attr','uid');
+ $servers->setValue('login','fallback_dn',true);
+ '';
+ }];
+ webRoot = phpldapadmin.override { config = "/var/secrets/webapps/tools-ldap"; };
+ apache = rec {
+ user = "wwwrun";
+ group = "wwwrun";
+ modules = [ "proxy_fcgi" ];
+ webappName = "tools_ldap";
+ root = "/run/current-system/webapps/${webappName}";
+ vhostConf = ''
+ Alias /ldap "${root}"
+ <Directory "${root}">
+ DirectoryIndex index.php
+ <FilesMatch "\.php$">
+ SetHandler "proxy:unix:${phpFpm.socket}|fcgi://localhost"
+ </FilesMatch>
+
+ AllowOverride None
+ Require all granted
+ </Directory>
+ '';
+ };
+ phpFpm = rec {
+ serviceDeps = [ "openldap.service" ];
+ basedir = builtins.concatStringsSep ":" [ webRoot "/var/secrets/webapps/tools-ldap" ];
+ socket = "/var/run/phpfpm/ldap.sock";
+ pool = ''
+ listen = ${socket}
+ user = ${apache.user}
+ group = ${apache.group}
+ listen.owner = ${apache.user}
+ listen.group = ${apache.group}
+ pm = ondemand
+ pm.max_children = 60
+ pm.process_idle_timeout = 60
+
+ ; Needed to avoid clashes in browser cookies (same domain)
+ php_value[session.name] = LdapPHPSESSID
+ php_admin_value[open_basedir] = "${basedir}:/tmp:/var/lib/php/sessions/phpldapadmin"
+ php_admin_value[session.save_path] = "/var/lib/php/sessions/phpldapadmin"
+ '';
+ };
+}
--- /dev/null
+{ lib, pkgs, writeText, stdenv, fetchurl }:
+rec {
+ varDir = "/var/lib/rainloop";
+ activationScript = {
+ deps = [ "wrappers" ];
+ text = ''
+ install -m 0755 -o ${apache.user} -g ${apache.group} -d ${varDir}
+ install -m 0750 -o ${apache.user} -g ${apache.group} -d ${varDir}/phpSessions
+ install -m 0750 -o ${apache.user} -g ${apache.group} -d ${varDir}/data
+ '';
+ };
+ webRoot = pkgs.rainloop-community.override { dataPath = "${varDir}/data"; };
+ apache = rec {
+ user = "wwwrun";
+ group = "wwwrun";
+ modules = [ "proxy_fcgi" ];
+ webappName = "tools_rainloop";
+ root = "/run/current-system/webapps/${webappName}";
+ vhostConf = ''
+ Alias /rainloop "${root}"
+ <Directory "${root}">
+ DirectoryIndex index.php
+ AllowOverride All
+ Options -FollowSymlinks
+ Require all granted
+
+ <FilesMatch "\.php$">
+ SetHandler "proxy:unix:${phpFpm.socket}|fcgi://localhost"
+ </FilesMatch>
+ </Directory>
+
+ <DirectoryMatch "${root}/data">
+ Require all denied
+ </DirectoryMatch>
+ '';
+ };
+ phpFpm = rec {
+ serviceDeps = [ "postgresql.service" ];
+ basedir = builtins.concatStringsSep ":" [ webRoot varDir ];
+ socket = "/var/run/phpfpm/rainloop.sock";
+ pool = ''
+ listen = ${socket}
+ user = ${apache.user}
+ group = ${apache.group}
+ listen.owner = ${apache.user}
+ listen.group = ${apache.group}
+ pm = ondemand
+ pm.max_children = 60
+ pm.process_idle_timeout = 60
+
+ ; Needed to avoid clashes in browser cookies (same domain)
+ php_value[session.name] = RainloopPHPSESSID
+ php_admin_value[upload_max_filesize] = 200M
+ php_admin_value[post_max_size] = 200M
+ php_admin_value[open_basedir] = "${basedir}:/tmp"
+ php_admin_value[session.save_path] = "${varDir}/phpSessions"
+ '';
+ };
+}
--- /dev/null
+{ lib, env, rompr }:
+rec {
+ varDir = "/var/lib/rompr";
+ activationScript = ''
+ install -m 0755 -o ${apache.user} -g ${apache.group} -d ${varDir} \
+ ${varDir}/prefs ${varDir}/albumart ${varDir}/phpSessions
+ '';
+ webRoot = rompr;
+ apache = rec {
+ user = "wwwrun";
+ group = "wwwrun";
+ modules = [ "headers" "mime" "proxy_fcgi" ];
+ webappName = "tools_rompr";
+ root = "/run/current-system/webapps/${webappName}";
+ vhostConf = ''
+ Alias /rompr ${root}
+
+ <Directory ${root}>
+ Options Indexes FollowSymLinks
+ DirectoryIndex index.php
+ AllowOverride all
+ Require all granted
+ Order allow,deny
+ Allow from all
+ ErrorDocument 404 /rompr/404.php
+ AddType image/x-icon .ico
+
+ <FilesMatch "\.php$">
+ SetHandler "proxy:unix:${phpFpm.socket}|fcgi://localhost"
+ </FilesMatch>
+ </Directory>
+
+ <Directory ${root}/albumart/small>
+ Header Set Cache-Control "max-age=0, no-store"
+ Header Set Cache-Control "no-cache, must-revalidate"
+ </Directory>
+
+ <Directory ${root}/albumart/asdownloaded>
+ Header Set Cache-Control "max-age=0, no-store"
+ Header Set Cache-Control "no-cache, must-revalidate"
+ </Directory>
+
+ <LocationMatch "^/rompr">
+ Use LDAPConnect
+ Require ldap-group cn=users,cn=mpd,ou=services,dc=immae,dc=eu
+ </LocationMatch>
+ '';
+ };
+ phpFpm = rec {
+ basedir = builtins.concatStringsSep ":" [ webRoot varDir ];
+ socket = "/var/run/phpfpm/rompr.sock";
+ pool = ''
+ listen = ${socket}
+ user = ${apache.user}
+ group = ${apache.group}
+ listen.owner = ${apache.user}
+ listen.group = ${apache.group}
+ pm = ondemand
+ pm.max_children = 60
+ pm.process_idle_timeout = 60
+
+ ; Needed to avoid clashes in browser cookies (same domain)
+ php_value[session.name] = RomprPHPSESSID
+ php_admin_value[open_basedir] = "${basedir}:/tmp"
+ php_admin_value[session.save_path] = "${varDir}/phpSessions"
+ php_flag[magic_quotes_gpc] = Off
+ php_flag[track_vars] = On
+ php_flag[register_globals] = Off
+ php_admin_flag[allow_url_fopen] = On
+ php_value[include_path] = ${webRoot}
+ php_admin_value[upload_tmp_dir] = "${varDir}/prefs"
+ php_admin_value[post_max_size] = 32M
+ php_admin_value[upload_max_filesize] = 32M
+ php_admin_value[memory_limit] = 256M
+ '';
+ };
+}
--- /dev/null
+{ env, roundcubemail, roundcubemail-plugins, roundcubemail-skins, phpPackages, apacheHttpd }:
+rec {
+ varDir = "/var/lib/roundcubemail";
+ activationScript = {
+ deps = [ "wrappers" ];
+ text = ''
+ install -m 0755 -o ${apache.user} -g ${apache.group} -d ${varDir} \
+ ${varDir}/cache ${varDir}/logs
+ install -m 0750 -o ${apache.user} -g ${apache.group} -d ${varDir}/phpSessions
+ '';
+ };
+ keys = [{
+ dest = "webapps/tools-roundcube";
+ user = apache.user;
+ group = apache.group;
+ permissions = "0400";
+ text = ''
+ <?php
+ $config['db_dsnw'] = '${env.psql_url}';
+ $config['default_host'] = 'ssl://mail.immae.eu';
+ $config['imap_conn_options'] = array("ssl" => array("verify_peer" => false));
+ $config['smtp_server'] = 'tls://mail.immae.eu';
+ $config['smtp_port'] = '25';
+ $config['managesieve_host'] = 'mail.immae.eu';
+ $config['managesieve_port'] = '4190';
+ $config['managesieve_usetls'] = true;
+ $config['managesieve_conn_options'] = array("ssl" => array("verify_peer" => false));
+
+ $config['imap_cache'] = 'db';
+ $config['messages_cache'] = 'db';
+
+ $config['support_url'] = ''';
+
+ $config['des_key'] = '${env.secret}';
+
+ $config['skin'] = 'elastic';
+ $config['plugins'] = array(
+ 'attachment_reminder',
+ 'emoticons',
+ 'filesystem_attachments',
+ 'hide_blockquote',
+ 'identicon',
+ 'identity_select',
+ 'jqueryui',
+ 'managesieve',
+ 'newmail_notifier',
+ 'vcard_attachments',
+ 'zipdownload',
+
+ 'automatic_addressbook',
+ 'message_highlight',
+ 'carddav',
+ // Ne marche pas ?: 'ident_switch',
+ // Ne marche pas ?: 'thunderbird_labels',
+ );
+
+ $config['language'] = 'fr_FR';
+
+ $config['drafts_mbox'] = 'Mail/Drafts';
+ $config['junk_mbox'] = 'Mail/Spam';
+ $config['sent_mbox'] = 'Mail/sent';
+ $config['trash_mbox'] = ''';
+ $config['default_folders'] = array('INBOX', 'Mail/Drafts', 'Mail/sent', 'Mail/Spam', ''');
+ $config['draft_autosave'] = 60;
+ $config['enable_installer'] = false;
+ $config['log_driver'] = 'file';
+ $config['temp_dir'] = '${varDir}/cache';
+ $config['mime_types'] = '${apacheHttpd}/conf/mime.types';
+ '';
+ }];
+ webRoot = (roundcubemail.override { roundcube_config = "/var/secrets/webapps/tools-roundcube"; }).withPlugins
+ (builtins.attrValues roundcubemail-plugins) (builtins.attrValues roundcubemail-skins);
+ apache = rec {
+ user = "wwwrun";
+ group = "wwwrun";
+ modules = [ "proxy_fcgi" ];
+ webappName = "tools_roundcubemail";
+ root = "/run/current-system/webapps/${webappName}";
+ vhostConf = ''
+ Alias /roundcube "${root}"
+ <Directory "${root}">
+ DirectoryIndex index.php
+ AllowOverride All
+ Options FollowSymlinks
+ Require all granted
+
+ <FilesMatch "\.php$">
+ SetHandler "proxy:unix:${phpFpm.socket}|fcgi://localhost"
+ </FilesMatch>
+ </Directory>
+ '';
+ };
+ phpFpm = rec {
+ serviceDeps = [ "postgresql.service" ];
+ basedir = builtins.concatStringsSep ":" (
+ [ webRoot "/var/secrets/webapps/tools-roundcube" varDir ]
+ ++ webRoot.plugins
+ ++ webRoot.skins);
+ phpConfig = ''
+ date.timezone = 'CET'
+ extension=${phpPackages.imagick}/lib/php/extensions/imagick.so
+ '';
+ socket = "/var/run/phpfpm/roundcubemail.sock";
+ pool = ''
+ user = ${apache.user}
+ group = ${apache.group}
+ listen.owner = ${apache.user}
+ listen.group = ${apache.group}
+ pm = ondemand
+ pm.max_children = 60
+ pm.process_idle_timeout = 60
+
+ ; Needed to avoid clashes in browser cookies (same domain)
+ php_value[session.name] = RoundcubemailPHPSESSID
+ php_admin_value[upload_max_filesize] = 200M
+ php_admin_value[post_max_size] = 200M
+ php_admin_value[open_basedir] = "${basedir}:${apacheHttpd}/conf/mime.types:/tmp"
+ php_admin_value[session.save_path] = "${varDir}/phpSessions"
+ '';
+ };
+}
--- /dev/null
+{ lib, env, stdenv, fetchurl, shaarli }:
+let
+ varDir = "/var/lib/shaarli";
+in rec {
+ activationScript = ''
+ install -m 0755 -o ${apache.user} -g ${apache.group} -d ${varDir} \
+ ${varDir}/cache ${varDir}/pagecache ${varDir}/tmp ${varDir}/data \
+ ${varDir}/phpSessions
+ '';
+ webRoot = shaarli varDir;
+ apache = rec {
+ user = "wwwrun";
+ group = "wwwrun";
+ modules = [ "proxy_fcgi" "rewrite" "env" ];
+ webappName = "tools_shaarli";
+ root = "/run/current-system/webapps/${webappName}";
+ vhostConf = ''
+ Alias /Shaarli "${root}"
+
+ Include /var/secrets/webapps/tools-shaarli
+ <Directory "${root}">
+ DirectoryIndex index.php index.htm index.html
+ Options Indexes FollowSymLinks MultiViews Includes
+ AllowOverride All
+ Require all granted
+ <FilesMatch "\.php$">
+ SetHandler "proxy:unix:${phpFpm.socket}|fcgi://localhost"
+ </FilesMatch>
+ </Directory>
+ '';
+ };
+ keys = [{
+ dest = "webapps/tools-shaarli";
+ user = apache.user;
+ group = apache.group;
+ permissions = "0400";
+ text = ''
+ SetEnv SHAARLI_LDAP_PASSWORD "${env.ldap.password}"
+ SetEnv SHAARLI_LDAP_DN "${env.ldap.dn}"
+ SetEnv SHAARLI_LDAP_HOST "ldaps://${env.ldap.host}"
+ SetEnv SHAARLI_LDAP_BASE "${env.ldap.base}"
+ SetEnv SHAARLI_LDAP_FILTER "${env.ldap.search}"
+ '';
+ }];
+ phpFpm = rec {
+ serviceDeps = [ "openldap.service" ];
+ basedir = builtins.concatStringsSep ":" [ webRoot varDir ];
+ socket = "/var/run/phpfpm/shaarli.sock";
+ pool = ''
+ listen = ${socket}
+ user = ${apache.user}
+ group = ${apache.group}
+ listen.owner = ${apache.user}
+ listen.group = ${apache.group}
+ pm = ondemand
+ pm.max_children = 60
+ pm.process_idle_timeout = 60
+
+ ; Needed to avoid clashes in browser cookies (same domain)
+ php_value[session.name] = ShaarliPHPSESSID
+ php_admin_value[open_basedir] = "${basedir}:/tmp"
+ php_admin_value[session.save_path] = "${varDir}/phpSessions"
+ '';
+ };
+}
--- /dev/null
+{ php, env, ttrss, ttrss-plugins }:
+rec {
+ varDir = "/var/lib/ttrss";
+ activationScript = {
+ deps = [ "wrappers" ];
+ text = ''
+ install -m 0755 -o ${apache.user} -g ${apache.group} -d ${varDir} \
+ ${varDir}/lock ${varDir}/cache ${varDir}/feed-icons
+ install -m 0755 -o ${apache.user} -g ${apache.group} -d ${varDir}/cache/export/ \
+ ${varDir}/cache/feeds/ \
+ ${varDir}/cache/images/ \
+ ${varDir}/cache/js/ \
+ ${varDir}/cache/simplepie/ \
+ ${varDir}/cache/upload/
+ touch ${varDir}/feed-icons/index.html
+ install -m 0750 -o ${apache.user} -g ${apache.group} -d ${varDir}/phpSessions
+ '';
+ };
+ keys = [{
+ dest = "webapps/tools-ttrss";
+ user = apache.user;
+ group = apache.group;
+ permissions = "0400";
+ text = ''
+ <?php
+
+ define('PHP_EXECUTABLE', '${php}/bin/php');
+
+ define('LOCK_DIRECTORY', 'lock');
+ define('CACHE_DIR', 'cache');
+ define('ICONS_DIR', 'feed-icons');
+ define('ICONS_URL', 'feed-icons');
+ define('SELF_URL_PATH', 'https://tools.immae.eu/ttrss/');
+
+ define('MYSQL_CHARSET', 'UTF8');
+
+ define('DB_TYPE', 'pgsql');
+ define('DB_HOST', '${env.postgresql.socket}');
+ define('DB_USER', '${env.postgresql.user}');
+ define('DB_NAME', '${env.postgresql.database}');
+ define('DB_PASS', '${env.postgresql.password}');
+ define('DB_PORT', '${env.postgresql.port}');
+
+ define('AUTH_AUTO_CREATE', true);
+ define('AUTH_AUTO_LOGIN', true);
+
+ define('SINGLE_USER_MODE', false);
+
+ define('SIMPLE_UPDATE_MODE', false);
+ define('CHECK_FOR_UPDATES', true);
+
+ define('FORCE_ARTICLE_PURGE', 0);
+ define('SESSION_COOKIE_LIFETIME', 60*60*24*120);
+ define('ENABLE_GZIP_OUTPUT', false);
+
+ define('PLUGINS', 'auth_ldap, note, instances');
+
+ define('LOG_DESTINATION', ''');
+ define('CONFIG_VERSION', 26);
+
+
+ define('SPHINX_SERVER', 'localhost:9312');
+ define('SPHINX_INDEX', 'ttrss, delta');
+
+ define('ENABLE_REGISTRATION', false);
+ define('REG_NOTIFY_ADDRESS', 'ttrss@tools.immae.eu');
+ define('REG_MAX_USERS', 10);
+
+ define('SMTP_FROM_NAME', 'Tiny Tiny RSS');
+ define('SMTP_FROM_ADDRESS', 'ttrss@tools.immae.eu');
+ define('DIGEST_SUBJECT', '[tt-rss] New headlines for last 24 hours');
+
+ define('LDAP_AUTH_SERVER_URI', 'ldap://ldap.immae.eu:389/');
+ define('LDAP_AUTH_USETLS', TRUE);
+ define('LDAP_AUTH_ALLOW_UNTRUSTED_CERT', TRUE);
+ define('LDAP_AUTH_BASEDN', 'dc=immae,dc=eu');
+ define('LDAP_AUTH_ANONYMOUSBEFOREBIND', FALSE);
+ define('LDAP_AUTH_SEARCHFILTER', '(&(memberOf=cn=users,cn=ttrss,ou=services,dc=immae,dc=eu)(|(cn=???)(uid=???)(&(uid:dn:=???)(ou=ttrss))))');
+
+ define('LDAP_AUTH_BINDDN', 'cn=ttrss,ou=services,dc=immae,dc=eu');
+ define('LDAP_AUTH_BINDPW', '${env.ldap.password}');
+ define('LDAP_AUTH_LOGIN_ATTRIB', 'immaeTtrssLogin');
+
+ define('LDAP_AUTH_LOG_ATTEMPTS', FALSE);
+ define('LDAP_AUTH_DEBUG', FALSE);
+ '';
+ }];
+ webRoot = (ttrss.override { ttrss_config = "/var/secrets/webapps/tools-ttrss"; }).withPlugins (builtins.attrValues ttrss-plugins);
+ apache = rec {
+ user = "wwwrun";
+ group = "wwwrun";
+ modules = [ "proxy_fcgi" ];
+ webappName = "tools_ttrss";
+ root = "/run/current-system/webapps/${webappName}";
+ vhostConf = ''
+ Alias /ttrss "${root}"
+ <Directory "${root}">
+ DirectoryIndex index.php
+ <FilesMatch "\.php$">
+ SetHandler "proxy:unix:${phpFpm.socket}|fcgi://localhost"
+ </FilesMatch>
+
+ AllowOverride All
+ Options FollowSymlinks
+ Require all granted
+ </Directory>
+ '';
+ };
+ phpFpm = rec {
+ serviceDeps = [ "postgresql.service" "openldap.service" ];
+ basedir = builtins.concatStringsSep ":" (
+ [ webRoot "/var/secrets/webapps/tools-ttrss" varDir ]
+ ++ webRoot.plugins);
+ socket = "/var/run/phpfpm/ttrss.sock";
+ pool = ''
+ listen = ${socket}
+ user = ${apache.user}
+ group = ${apache.group}
+ listen.owner = ${apache.user}
+ listen.group = ${apache.group}
+ pm = ondemand
+ pm.max_children = 60
+ pm.process_idle_timeout = 60
+
+ ; Needed to avoid clashes in browser cookies (same domain)
+ php_value[session.name] = TtrssPHPSESSID
+ php_admin_value[open_basedir] = "${basedir}:/tmp"
+ php_admin_value[session.save_path] = "${varDir}/phpSessions"
+ '';
+ };
+}
--- /dev/null
+{ env, wallabag }:
+rec {
+ varDir = "/var/lib/wallabag";
+ keys = [{
+ dest = "webapps/tools-wallabag";
+ user = apache.user;
+ group = apache.group;
+ permissions = "0400";
+ text = ''
+ # This file is auto-generated during the composer install
+ parameters:
+ database_driver: pdo_pgsql
+ database_driver_class: Wallabag\CoreBundle\Doctrine\DBAL\Driver\CustomPostgreSQLDriver
+ database_host: ${env.postgresql.socket}
+ database_port: ${env.postgresql.port}
+ database_name: ${env.postgresql.database}
+ database_user: ${env.postgresql.user}
+ database_password: ${env.postgresql.password}
+ database_path: null
+ database_table_prefix: wallabag_
+ database_socket: null
+ database_charset: utf8
+ domain_name: https://tools.immae.eu/wallabag
+ mailer_transport: sendmail
+ mailer_host: 127.0.0.1
+ mailer_user: null
+ mailer_password: null
+ locale: fr
+ secret: ${env.secret}
+ twofactor_auth: true
+ twofactor_sender: wallabag@tools.immae.eu
+ fosuser_registration: false
+ fosuser_confirmation: true
+ from_email: wallabag@tools.immae.eu
+ rss_limit: 50
+ rabbitmq_host: localhost
+ rabbitmq_port: 5672
+ rabbitmq_user: guest
+ rabbitmq_password: guest
+ rabbitmq_prefetch_count: 10
+ redis_scheme: unix
+ redis_host: null
+ redis_port: null
+ redis_path: ${env.redis.socket}
+ redis_password: null
+ sites_credentials: { }
+ ldap_enabled: true
+ ldap_host: ldap.immae.eu
+ ldap_port: 636
+ ldap_tls: false
+ ldap_ssl: true
+ ldap_bind_requires_dn: true
+ ldap_base: 'dc=immae,dc=eu'
+ ldap_manager_dn: 'cn=wallabag,ou=services,dc=immae,dc=eu'
+ ldap_manager_pw: ${env.ldap.password}
+ ldap_filter: '(&(memberOf=cn=users,cn=wallabag,ou=services,dc=immae,dc=eu))'
+ ldap_admin_filter: '(&(memberOf=cn=admins,cn=wallabag,ou=services,dc=immae,dc=eu)(uid=%s))'
+ ldap_username_attribute: uid
+ ldap_email_attribute: mail
+ ldap_name_attribute: cn
+ ldap_enabled_attribute: null
+ services:
+ swiftmailer.mailer.default.transport:
+ class: Swift_SendmailTransport
+ arguments: ['/run/wrappers/bin/sendmail -bs']
+ '';
+ }];
+ webappDir = wallabag.override { ldap = true; wallabag_config = "/var/secrets/webapps/tools-wallabag"; };
+ activationScript = ''
+ install -m 0755 -o ${apache.user} -g ${apache.group} -d ${varDir} \
+ ${varDir}/var ${varDir}/data/db ${varDir}/assets/images
+ '';
+ webRoot = "${webappDir}/web";
+ # Domain migration: Table wallabag_entry contains whole
+ # https://tools.immae.eu/wallabag domain name in preview_picture
+ apache = rec {
+ user = "wwwrun";
+ group = "wwwrun";
+ modules = [ "proxy_fcgi" ];
+ webappName = "tools_wallabag";
+ root = "/run/current-system/webapps/${webappName}";
+ vhostConf = ''
+ Alias /wallabag "${root}"
+ <Directory "${root}">
+ AllowOverride None
+ Require all granted
+ # For OAuth (apps)
+ CGIPassAuth On
+
+ <FilesMatch "\.php$">
+ SetHandler "proxy:unix:${phpFpm.socket}|fcgi://localhost"
+ </FilesMatch>
+
+ <IfModule mod_rewrite.c>
+ Options -MultiViews
+ RewriteEngine On
+ RewriteCond %{REQUEST_FILENAME} !-f
+ RewriteRule ^(.*)$ app.php [QSA,L]
+ </IfModule>
+ </Directory>
+ <Directory "${root}/bundles">
+ <IfModule mod_rewrite.c>
+ RewriteEngine Off
+ </IfModule>
+ </Directory>
+ <Directory "${varDir}/assets">
+ AllowOverride None
+ Require all granted
+ </Directory>
+ '';
+ };
+ phpFpm = rec {
+ preStart = ''
+ if [ ! -f "${varDir}/currentWebappDir" -o \
+ ! -f "${varDir}/currentKey" -o \
+ "${webappDir}" != "$(cat ${varDir}/currentWebappDir 2>/dev/null)" ] \
+ || ! sha512sum -c --status ${varDir}/currentKey; then
+ pushd ${webappDir} > /dev/null
+ /run/wrappers/bin/sudo -u wwwrun ./bin/console --env=prod cache:clear
+ rm -rf /var/lib/wallabag/var/cache/pro_
+ /run/wrappers/bin/sudo -u wwwrun ./bin/console --env=prod doctrine:migrations:migrate --no-interaction
+ popd > /dev/null
+ echo -n "${webappDir}" > ${varDir}/currentWebappDir
+ sha512sum /var/secrets/webapps/tools-wallabag > ${varDir}/currentKey
+ fi
+ '';
+ serviceDeps = [ "postgresql.service" "openldap.service" ];
+ basedir = builtins.concatStringsSep ":" [ webappDir "/var/secrets/webapps/tools-wallabag" varDir ];
+ socket = "/var/run/phpfpm/wallabag.sock";
+ pool = ''
+ listen = ${socket}
+ user = ${apache.user}
+ group = ${apache.group}
+ listen.owner = ${apache.user}
+ listen.group = ${apache.group}
+ pm = dynamic
+ pm.max_children = 60
+ pm.start_servers = 2
+ pm.min_spare_servers = 1
+ pm.max_spare_servers = 10
+
+ ; Needed to avoid clashes in browser cookies (same domain)
+ php_value[session.name] = WallabagPHPSESSID
+ php_admin_value[open_basedir] = "/run/wrappers/bin/sendmail:${basedir}:/tmp"
+ php_value[max_execution_time] = 300
+ '';
+ };
+}
--- /dev/null
+{ env }:
+let
+ ympd = rec {
+ config = {
+ webPort = "localhost:${env.listenPort}";
+ host = env.mpd.host;
+ port = env.mpd.port;
+ };
+ apache = {
+ modules = [
+ "proxy_wstunnel"
+ ];
+ vhostConf = ''
+ <LocationMatch "^/mpd(?!/music.(mp3|ogg))">
+ Use LDAPConnect
+ Require ldap-group cn=users,cn=mpd,ou=services,dc=immae,dc=eu
+ </LocationMatch>
+
+ RedirectMatch permanent "^/mpd$" "/mpd/"
+ <Location "/mpd/">
+ ProxyPass http://${config.webPort}/
+ ProxyPassReverse http://${config.webPort}/
+ ProxyPreserveHost on
+ </Location>
+ <Location "/mpd/ws">
+ ProxyPass ws://${config.webPort}/ws
+ </Location>
+ <Location "/mpd/music.mp3">
+ ProxyPass unix:///run/mpd/mp3.sock|http://tools.immae.eu/
+ ProxyPassReverse unix:///run/mpd/mp3.sock|http://tools.immae.eu/
+ </Location>
+ <Location "/mpd/music.ogg">
+ ProxyPass unix:///run/mpd/ogg.sock|http://tools.immae.eu/
+ ProxyPassReverse unix:///run/mpd/ogg.sock|http://tools.immae.eu/
+ </Location>
+ '';
+ };
+ };
+in
+ ympd
--- /dev/null
+{ env, yourls, yourls-plugins }:
+rec {
+ activationScript = {
+ deps = [ "httpd" ];
+ text = ''
+ install -m 0755 -o ${apache.user} -g ${apache.group} -d /var/lib/php/sessions/yourls
+ '';
+ };
+ keys = [{
+ dest = "webapps/tools-yourls";
+ user = apache.user;
+ group = apache.group;
+ permissions = "0400";
+ text = ''
+ <?php
+ define( 'YOURLS_DB_USER', '${env.mysql.user}' );
+ define( 'YOURLS_DB_PASS', '${env.mysql.password}' );
+ define( 'YOURLS_DB_NAME', '${env.mysql.database}' );
+ define( 'YOURLS_DB_HOST', '${env.mysql.host}' );
+ define( 'YOURLS_DB_PREFIX', 'yourls_' );
+ define( 'YOURLS_SITE', 'https://tools.immae.eu/url' );
+ define( 'YOURLS_HOURS_OFFSET', 0 );
+ define( 'YOURLS_LANG', ''' );
+ define( 'YOURLS_UNIQUE_URLS', true );
+ define( 'YOURLS_PRIVATE', true );
+ define( 'YOURLS_COOKIEKEY', '${env.cookieKey}' );
+ $yourls_user_passwords = array();
+ define( 'YOURLS_DEBUG', false );
+ define( 'YOURLS_URL_CONVERT', 36 );
+ $yourls_reserved_URL = array();
+ define( 'LDAPAUTH_HOST', 'ldaps://ldap.immae.eu' );
+ define( 'LDAPAUTH_PORT', '636' );
+ define( 'LDAPAUTH_BASE', 'dc=immae,dc=eu' );
+ define( 'LDAPAUTH_SEARCH_USER', 'cn=yourls,ou=services,dc=immae,dc=eu' );
+ define( 'LDAPAUTH_SEARCH_PASS', '${env.ldap.password}' );
+
+ define( 'LDAPAUTH_GROUP_ATTR', 'memberof' );
+ define( 'LDAPAUTH_GROUP_REQ', 'cn=admin,cn=yourls,ou=services,dc=immae,dc=eu');
+
+ define( 'LDAPAUTH_USERCACHE_TYPE', 0);
+ '';
+ }];
+ webRoot = (yourls.override { yourls_config = "/var/secrets/webapps/tools-yourls"; }).withPlugins
+ (builtins.attrValues yourls-plugins);
+ apache = rec {
+ user = "wwwrun";
+ group = "wwwrun";
+ modules = [ "proxy_fcgi" ];
+ webappName = "tools_yourls";
+ root = "/run/current-system/webapps/${webappName}";
+ vhostConf = ''
+ Alias /url "${root}"
+ <Directory "${root}">
+ <FilesMatch "\.php$">
+ SetHandler "proxy:unix:${phpFpm.socket}|fcgi://localhost"
+ </FilesMatch>
+
+ AllowOverride None
+ Require all granted
+ <IfModule mod_rewrite.c>
+ RewriteEngine On
+ RewriteBase /url/
+ RewriteCond %{REQUEST_FILENAME} !-f
+ RewriteCond %{REQUEST_FILENAME} !-d
+ RewriteRule ^.*$ /url/yourls-loader.php [L]
+ </IfModule>
+ DirectoryIndex index.php
+ </Directory>
+ '';
+ };
+ phpFpm = rec {
+ serviceDeps = [ "mysql.service" "openldap.service" ];
+ basedir = builtins.concatStringsSep ":" (
+ [ webRoot "/var/secrets/webapps/tools-yourls" ]
+ ++ webRoot.plugins);
+ socket = "/var/run/phpfpm/yourls.sock";
+ pool = ''
+ listen = ${socket}
+ user = ${apache.user}
+ group = ${apache.group}
+ listen.owner = ${apache.user}
+ listen.group = ${apache.group}
+ pm = ondemand
+ pm.max_children = 60
+ pm.process_idle_timeout = 60
+
+ ; Needed to avoid clashes in browser cookies (same domain)
+ php_value[session.name] = YourlsPHPSESSID
+ php_admin_value[open_basedir] = "${basedir}:/tmp:/var/lib/php/sessions/yourls"
+ php_admin_value[session.save_path] = "/var/lib/php/sessions/yourls"
+ '';
+ };
+}
--- /dev/null
+{ lib, pkgs, config, ... }:
+{
+ options.secrets = {
+ keys = lib.mkOption {
+ type = lib.types.listOf lib.types.unspecified;
+ default = [];
+ description = "Keys to upload to server";
+ };
+ location = lib.mkOption {
+ type = lib.types.path;
+ default = "/var/secrets";
+ description = "Location where to put the keys";
+ };
+ };
+ config = let
+ location = config.secrets.location;
+ keys = config.secrets.keys;
+ empty = pkgs.runCommand "empty" { preferLocalBuild = true; } "mkdir -p $out && touch $out/done";
+ dumpKey = v: ''
+ mkdir -p secrets/$(dirname ${v.dest})
+ echo -n ${lib.strings.escapeShellArg v.text} > secrets/${v.dest}
+ cat >> mods <<EOF
+ ${v.user or "root"} ${v.group or "root"} ${v.permissions or "0600"} secrets/${v.dest}
+ EOF
+ '';
+ secrets = pkgs.runCommand "secrets.tar" {} ''
+ touch mods
+ tar --format=ustar --mtime='1970-01-01' -P --transform="s@${empty}@secrets@" -cf $out ${empty}/done
+ ${builtins.concatStringsSep "\n" (map dumpKey keys)}
+ cat mods | while read u g p k; do
+ tar --format=ustar --mtime='1970-01-01' --owner="$u" --group="$g" --mode="$p" --append -f $out "$k"
+ done
+ '';
+ in lib.mkIf (builtins.length keys > 0) {
+ system.activationScripts.secrets = {
+ deps = [ "users" "wrappers" ];
+ text = ''
+ install -m0750 -o root -g keys -d ${location}
+ if [ -f /run/keys/secrets.tar ]; then
+ if [ ! -f ${location}/currentSecrets ] || ! sha512sum -c --status "${location}/currentSecrets"; then
+ echo "rebuilding secrets"
+ rm -rf ${location}
+ install -m0750 -o root -g keys -d ${location}
+ ${pkgs.gnutar}/bin/tar --strip-components 1 -C ${location} -xf /run/keys/secrets.tar
+ sha512sum /run/keys/secrets.tar > ${location}/currentSecrets
+ find ${location} -type d -exec chown root:keys {} \; -exec chmod o-rx {} \;
+ fi
+ fi
+ '';
+ };
+ deployment.keys."secrets.tar" = {
+ permissions = "0400";
+ # keyFile below is not evaluated at build time by nixops, so the
+ # `secrets` path doesn’t necessarily exist when uploading the
+ # keys, and nixops is unhappy.
+ user = "root${builtins.substring 10000 1 secrets}";
+ group = "root";
+ keyFile = "${secrets}";
+ };
+ };
+}
--- /dev/null
+{ lib, pkgs, config, ... }:
+let
+ name = "diaspora";
+ cfg = config.services.diaspora;
+
+ uid = config.ids.uids.diaspora;
+ gid = config.ids.gids.diaspora;
+in
+{
+ options.services.diaspora = {
+ enable = lib.mkEnableOption "Enable Diaspora’s service";
+ user = lib.mkOption {
+ type = lib.types.str;
+ default = name;
+ description = "User account under which Diaspora runs";
+ };
+ group = lib.mkOption {
+ type = lib.types.str;
+ default = name;
+ description = "Group under which Diaspora runs";
+ };
+ adminEmail = lib.mkOption {
+ type = lib.types.str;
+ example = "admin@example.com";
+ description = "Admin e-mail for Diaspora";
+ };
+ dataDir = lib.mkOption {
+ type = lib.types.path;
+ default = "/var/lib/${name}";
+ description = ''
+ The directory where Diaspora stores its data.
+ '';
+ };
+ socketsDir = lib.mkOption {
+ type = lib.types.path;
+ default = "/run/${name}";
+ description = ''
+ The directory where Diaspora puts runtime files and sockets.
+ '';
+ };
+ configDir = lib.mkOption {
+ type = lib.types.path;
+ description = ''
+ The configuration path for Diaspora.
+ '';
+ };
+ package = lib.mkOption {
+ type = lib.types.package;
+ default = pkgs.webapps.diaspora;
+ description = ''
+ Diaspora package to use.
+ '';
+ };
+ # Output variables
+ systemdStateDirectory = lib.mkOption {
+ type = lib.types.str;
+ # Use ReadWritePaths= instead if varDir is outside of /var/lib
+ default = assert lib.strings.hasPrefix "/var/lib/" cfg.dataDir;
+ lib.strings.removePrefix "/var/lib/" cfg.dataDir;
+ description = ''
+ Adjusted Diaspora data directory for systemd
+ '';
+ readOnly = true;
+ };
+ systemdRuntimeDirectory = lib.mkOption {
+ type = lib.types.str;
+ # Use ReadWritePaths= instead if socketsDir is outside of /run
+ default = assert lib.strings.hasPrefix "/run/" cfg.socketsDir;
+ lib.strings.removePrefix "/run/" cfg.socketsDir;
+ description = ''
+ Adjusted Diaspora sockets directory for systemd
+ '';
+ readOnly = true;
+ };
+ workdir = lib.mkOption {
+ type = lib.types.package;
+ default = cfg.package.override {
+ varDir = cfg.dataDir;
+ podmin_email = cfg.adminEmail;
+ config_dir = cfg.configDir;
+ };
+ description = ''
+ Adjusted diaspora package with overriden values
+ '';
+ readOnly = true;
+ };
+ sockets = lib.mkOption {
+ type = lib.types.attrsOf lib.types.path;
+ default = {
+ rails = "${cfg.socketsDir}/diaspora.sock";
+ eye = "${cfg.socketsDir}/eye.sock";
+ };
+ readOnly = true;
+ description = ''
+ Diaspora sockets
+ '';
+ };
+ pids = lib.mkOption {
+ type = lib.types.attrsOf lib.types.path;
+ default = {
+ eye = "${cfg.socketsDir}/eye.pid";
+ };
+ readOnly = true;
+ description = ''
+ Diaspora pids
+ '';
+ };
+ };
+
+ config = lib.mkIf cfg.enable {
+ users.users = lib.optionalAttrs (cfg.user == name) (lib.singleton {
+ inherit name;
+ inherit uid;
+ group = cfg.group;
+ description = "Diaspora user";
+ home = cfg.dataDir;
+ packages = [ cfg.workdir.gems pkgs.nodejs cfg.workdir.gems.ruby ];
+ useDefaultShell = true;
+ });
+ users.groups = lib.optionalAttrs (cfg.group == name) (lib.singleton {
+ inherit name;
+ inherit gid;
+ });
+
+ systemd.services.diaspora = {
+ description = "Diaspora";
+ wantedBy = [ "multi-user.target" ];
+ after = [
+ "network.target" "redis.service" "postgresql.service"
+ ];
+ wants = [
+ "redis.service" "postgresql.service"
+ ];
+
+ environment.RAILS_ENV = "production";
+ environment.BUNDLE_PATH = "${cfg.workdir.gems}/${cfg.workdir.gems.ruby.gemPath}";
+ environment.BUNDLE_GEMFILE = "${cfg.workdir.gems.confFiles}/Gemfile";
+ environment.EYE_SOCK = cfg.sockets.eye;
+ environment.EYE_PID = cfg.pids.eye;
+
+ path = [ cfg.workdir.gems pkgs.nodejs cfg.workdir.gems.ruby pkgs.curl pkgs.which pkgs.gawk ];
+
+ preStart = ''
+ install -m 0755 -d ${cfg.dataDir}/uploads ${cfg.dataDir}/tmp ${cfg.dataDir}/log
+ install -m 0700 -d ${cfg.dataDir}/tmp/pids
+ if [ ! -f ${cfg.dataDir}/schedule.yml ]; then
+ echo "{}" > ${cfg.dataDir}/schedule.yml
+ fi
+ ./bin/bundle exec rails db:migrate
+ '';
+
+ script = ''
+ exec ${cfg.workdir}/script/server
+ '';
+
+ serviceConfig = {
+ User = cfg.user;
+ PrivateTmp = true;
+ Restart = "always";
+ Type = "simple";
+ WorkingDirectory = cfg.workdir;
+ StateDirectory = cfg.systemdStateDirectory;
+ RuntimeDirectory = cfg.systemdRuntimeDirectory;
+ StandardInput = "null";
+ KillMode = "control-group";
+ };
+
+ unitConfig.RequiresMountsFor = cfg.dataDir;
+ };
+ };
+}
--- /dev/null
+{ lib, pkgs, config, ... }:
+let
+ name = "etherpad-lite";
+ cfg = config.services.etherpad-lite;
+
+ uid = config.ids.uids.etherpad-lite;
+ gid = config.ids.gids.etherpad-lite;
+in
+{
+ options.services.etherpad-lite = {
+ enable = lib.mkEnableOption "Enable Etherpad lite’s service";
+ user = lib.mkOption {
+ type = lib.types.str;
+ default = name;
+ description = "User account under which Etherpad lite runs";
+ };
+ group = lib.mkOption {
+ type = lib.types.str;
+ default = name;
+ description = "Group under which Etherpad lite runs";
+ };
+ dataDir = lib.mkOption {
+ type = lib.types.path;
+ default = "/var/lib/${name}";
+ description = ''
+ The directory where Etherpad lite stores its data.
+ '';
+ };
+ socketsDir = lib.mkOption {
+ type = lib.types.path;
+ default = "/run/${name}";
+ description = ''
+ The directory where Etherpad lite stores its sockets.
+ '';
+ };
+ configFile = lib.mkOption {
+ type = lib.types.path;
+ description = ''
+ The config file path for Etherpad lite.
+ '';
+ };
+ sessionKeyFile = lib.mkOption {
+ type = lib.types.path;
+ description = ''
+ The Session key file path for Etherpad lite.
+ '';
+ };
+ apiKeyFile = lib.mkOption {
+ type = lib.types.path;
+ description = ''
+ The API key file path for Etherpad lite.
+ '';
+ };
+ package = lib.mkOption {
+ type = lib.types.package;
+ default = pkgs.webapps.etherpad-lite;
+ description = ''
+ Etherpad lite package to use.
+ '';
+ };
+ modules = lib.mkOption {
+ type = lib.types.listOf lib.types.package;
+ default = [];
+ description = ''
+ Etherpad lite modules to use.
+ '';
+ };
+ # Output variables
+ workdir = lib.mkOption {
+ type = lib.types.package;
+ default = cfg.package.withModules cfg.modules;
+ description = ''
+ Adjusted Etherpad lite package with plugins
+ '';
+ readOnly = true;
+ };
+ systemdStateDirectory = lib.mkOption {
+ type = lib.types.str;
+ # Use ReadWritePaths= instead if varDir is outside of /var/lib
+ default = assert lib.strings.hasPrefix "/var/lib/" cfg.dataDir;
+ lib.strings.removePrefix "/var/lib/" cfg.dataDir;
+ description = ''
+ Adjusted Etherpad lite data directory for systemd
+ '';
+ readOnly = true;
+ };
+ systemdRuntimeDirectory = lib.mkOption {
+ type = lib.types.str;
+ # Use ReadWritePaths= instead if socketsDir is outside of /run
+ default = assert lib.strings.hasPrefix "/run/" cfg.socketsDir;
+ lib.strings.removePrefix "/run/" cfg.socketsDir;
+ description = ''
+ Adjusted Etherpad lite sockets directory for systemd
+ '';
+ readOnly = true;
+ };
+ sockets = lib.mkOption {
+ type = lib.types.attrsOf lib.types.path;
+ default = {
+ node = "${cfg.socketsDir}/etherpad-lite.sock";
+ };
+ readOnly = true;
+ description = ''
+ Etherpad lite sockets
+ '';
+ };
+ };
+
+ config = lib.mkIf cfg.enable {
+ systemd.services.etherpad-lite = {
+ description = "Etherpad-lite";
+ wantedBy = [ "multi-user.target" ];
+ after = [ "network.target" "postgresql.service" ];
+ wants = [ "postgresql.service" ];
+
+ environment.NODE_ENV = "production";
+ environment.HOME = cfg.workdir;
+
+ path = [ pkgs.nodejs ];
+
+ script = ''
+ exec ${pkgs.nodejs}/bin/node ${cfg.workdir}/src/node/server.js \
+ --sessionkey ${cfg.sessionKeyFile} \
+ --apikey ${cfg.apiKeyFile} \
+ --settings ${cfg.configFile}
+ '';
+
+ postStart = ''
+ while [ ! -S ${cfg.sockets.node} ]; do
+ sleep 0.5
+ done
+ chmod a+w ${cfg.sockets.node}
+ '';
+ serviceConfig = {
+ DynamicUser = true;
+ User = cfg.user;
+ Group = cfg.group;
+ WorkingDirectory = cfg.workdir;
+ PrivateTmp = true;
+ NoNewPrivileges = true;
+ PrivateDevices = true;
+ ProtectHome = true;
+ ProtectControlGroups = true;
+ ProtectKernelModules = true;
+ Restart = "always";
+ Type = "simple";
+ TimeoutSec = 60;
+ RuntimeDirectory = cfg.systemdRuntimeDirectory;
+ StateDirectory= cfg.systemdStateDirectory;
+ ExecStartPre = [
+ "+${pkgs.coreutils}/bin/install -d -m 0755 -o ${cfg.user} -g ${cfg.group} ${cfg.dataDir}/ep_initialized"
+ "+${pkgs.coreutils}/bin/chown -R ${cfg.user}:${cfg.group} ${cfg.dataDir} ${cfg.configFile} ${cfg.sessionKeyFile} ${cfg.apiKeyFile}"
+ ];
+ };
+ };
+
+ };
+}
--- /dev/null
+{ lib, pkgs, config, ... }:
+let
+ name = "mastodon";
+ cfg = config.services.mastodon;
+
+ uid = config.ids.uids.mastodon;
+ gid = config.ids.gids.mastodon;
+in
+{
+ options.services.mastodon = {
+ enable = lib.mkEnableOption "Enable Mastodon’s service";
+ user = lib.mkOption {
+ type = lib.types.str;
+ default = name;
+ description = "User account under which Mastodon runs";
+ };
+ group = lib.mkOption {
+ type = lib.types.str;
+ default = name;
+ description = "Group under which Mastodon runs";
+ };
+ dataDir = lib.mkOption {
+ type = lib.types.path;
+ default = "/var/lib/${name}";
+ description = ''
+ The directory where Mastodon stores its data.
+ '';
+ };
+ socketsPrefix = lib.mkOption {
+ type = lib.types.string;
+ default = "live";
+ description = ''
+ The prefix to use for Mastodon sockets.
+ '';
+ };
+ socketsDir = lib.mkOption {
+ type = lib.types.path;
+ default = "/run/${name}";
+ description = ''
+ The directory where Mastodon puts runtime files and sockets.
+ '';
+ };
+ configFile = lib.mkOption {
+ type = lib.types.path;
+ description = ''
+ The configuration file path for Mastodon.
+ '';
+ };
+ package = lib.mkOption {
+ type = lib.types.package;
+ default = pkgs.webapps.mastodon;
+ description = ''
+ Mastodon package to use.
+ '';
+ };
+ # Output variables
+ workdir = lib.mkOption {
+ type = lib.types.package;
+ default = cfg.package.override { varDir = cfg.dataDir; };
+ description = ''
+ Adjusted mastodon package with overriden varDir
+ '';
+ readOnly = true;
+ };
+ systemdStateDirectory = lib.mkOption {
+ type = lib.types.str;
+ # Use ReadWritePaths= instead if varDir is outside of /var/lib
+ default = assert lib.strings.hasPrefix "/var/lib/" cfg.dataDir;
+ lib.strings.removePrefix "/var/lib/" cfg.dataDir;
+ description = ''
+ Adjusted Mastodon data directory for systemd
+ '';
+ readOnly = true;
+ };
+ systemdRuntimeDirectory = lib.mkOption {
+ type = lib.types.str;
+ # Use ReadWritePaths= instead if socketsDir is outside of /run
+ default = assert lib.strings.hasPrefix "/run/" cfg.socketsDir;
+ lib.strings.removePrefix "/run/" cfg.socketsDir;
+ description = ''
+ Adjusted Mastodon sockets directory for systemd
+ '';
+ readOnly = true;
+ };
+ sockets = lib.mkOption {
+ type = lib.types.attrsOf lib.types.path;
+ default = {
+ node = "${cfg.socketsDir}/${cfg.socketsPrefix}_node.sock";
+ rails = "${cfg.socketsDir}/${cfg.socketsPrefix}_puma.sock";
+ };
+ readOnly = true;
+ description = ''
+ Mastodon sockets
+ '';
+ };
+ };
+
+ config = lib.mkIf cfg.enable {
+ users.users = lib.optionalAttrs (cfg.user == name) (lib.singleton {
+ inherit name;
+ inherit uid;
+ group = cfg.group;
+ description = "Mastodon user";
+ home = cfg.dataDir;
+ useDefaultShell = true;
+ });
+ users.groups = lib.optionalAttrs (cfg.group == name) (lib.singleton {
+ inherit name;
+ inherit gid;
+ });
+
+ systemd.services.mastodon-streaming = {
+ description = "Mastodon Streaming";
+ wantedBy = [ "multi-user.target" ];
+ after = [ "network.target" "mastodon-web.service" ];
+
+ environment.NODE_ENV = "production";
+ environment.SOCKET = cfg.sockets.node;
+
+ path = [ pkgs.nodejs pkgs.bashInteractive ];
+
+ script = ''
+ exec npm run start
+ '';
+
+ postStart = ''
+ while [ ! -S $SOCKET ]; do
+ sleep 0.5
+ done
+ chmod a+w $SOCKET
+ '';
+
+ postStop = ''
+ rm $SOCKET
+ '';
+
+ serviceConfig = {
+ User = cfg.user;
+ EnvironmentFile = cfg.configFile;
+ PrivateTmp = true;
+ Restart = "always";
+ TimeoutSec = 15;
+ Type = "simple";
+ WorkingDirectory = cfg.workdir;
+ StateDirectory = cfg.systemdStateDirectory;
+ RuntimeDirectory = cfg.systemdRuntimeDirectory;
+ RuntimeDirectoryPreserve = "yes";
+ };
+
+ unitConfig.RequiresMountsFor = cfg.dataDir;
+ };
+
+ systemd.services.mastodon-web = {
+ description = "Mastodon Web app";
+ wantedBy = [ "multi-user.target" ];
+ after = [ "network.target" ];
+
+ environment.RAILS_ENV = "production";
+ environment.BUNDLE_PATH = "${cfg.workdir.gems}/${cfg.workdir.gems.ruby.gemPath}";
+ environment.BUNDLE_GEMFILE = "${cfg.workdir.gems.confFiles}/Gemfile";
+ environment.SOCKET = cfg.sockets.rails;
+
+ path = [ cfg.workdir.gems cfg.workdir.gems.ruby pkgs.file ];
+
+ preStart = ''
+ install -m 0755 -d ${cfg.dataDir}/tmp/cache
+ ./bin/bundle exec rails db:migrate
+ '';
+
+ script = ''
+ exec ./bin/bundle exec puma -C config/puma.rb
+ '';
+
+ serviceConfig = {
+ User = cfg.user;
+ EnvironmentFile = cfg.configFile;
+ PrivateTmp = true;
+ Restart = "always";
+ TimeoutSec = 60;
+ Type = "simple";
+ WorkingDirectory = cfg.workdir;
+ StateDirectory = cfg.systemdStateDirectory;
+ RuntimeDirectory = cfg.systemdRuntimeDirectory;
+ RuntimeDirectoryPreserve = "yes";
+ };
+
+ unitConfig.RequiresMountsFor = cfg.dataDir;
+ };
+
+ systemd.services.mastodon-sidekiq = {
+ description = "Mastodon Sidekiq";
+ wantedBy = [ "multi-user.target" ];
+ after = [ "network.target" "mastodon-web.service" ];
+
+ environment.RAILS_ENV="production";
+ environment.BUNDLE_PATH = "${cfg.workdir.gems}/${cfg.workdir.gems.ruby.gemPath}";
+ environment.BUNDLE_GEMFILE = "${cfg.workdir.gems.confFiles}/Gemfile";
+ environment.DB_POOL="5";
+
+ path = [ cfg.workdir.gems cfg.workdir.gems.ruby pkgs.imagemagick pkgs.ffmpeg pkgs.file ];
+
+ script = ''
+ exec ./bin/bundle exec sidekiq -c 5 -q default -q mailers -q pull -q push
+ '';
+
+ serviceConfig = {
+ User = cfg.user;
+ EnvironmentFile = cfg.configFile;
+ PrivateTmp = true;
+ Restart = "always";
+ TimeoutSec = 15;
+ Type = "simple";
+ WorkingDirectory = cfg.workdir;
+ StateDirectory = cfg.systemdStateDirectory;
+ RuntimeDirectory = cfg.systemdRuntimeDirectory;
+ RuntimeDirectoryPreserve = "yes";
+ };
+
+ unitConfig.RequiresMountsFor = cfg.dataDir;
+ };
+
+ };
+}
--- /dev/null
+{ lib, pkgs, config, ... }:
+let
+ name = "mediagoblin";
+ cfg = config.services.mediagoblin;
+
+ uid = config.ids.uids.mediagoblin;
+ gid = config.ids.gids.mediagoblin;
+
+ paste_local = pkgs.writeText "paste_local.ini" ''
+ [DEFAULT]
+ debug = false
+
+ [pipeline:main]
+ pipeline = mediagoblin
+
+ [app:mediagoblin]
+ use = egg:mediagoblin#app
+ config = ${cfg.configFile} ${cfg.workdir}/mediagoblin.ini
+ /mgoblin_static = ${cfg.workdir}/mediagoblin/static
+
+ [loggers]
+ keys = root
+
+ [handlers]
+ keys = console
+
+ [formatters]
+ keys = generic
+
+ [logger_root]
+ level = INFO
+ handlers = console
+
+ [handler_console]
+ class = StreamHandler
+ args = (sys.stderr,)
+ level = NOTSET
+ formatter = generic
+
+ [formatter_generic]
+ format = %(levelname)-7.7s [%(name)s] %(message)s
+
+ [filter:errors]
+ use = egg:mediagoblin#errors
+ debug = false
+
+ [server:main]
+ use = egg:waitress#main
+ unix_socket = ${cfg.sockets.paster}
+ unix_socket_perms = 777
+ url_scheme = https
+ '';
+in
+{
+ options.services.mediagoblin = {
+ enable = lib.mkEnableOption "Enable Mediagoblin’s service";
+ user = lib.mkOption {
+ type = lib.types.str;
+ default = name;
+ description = "User account under which Mediagoblin runs";
+ };
+ group = lib.mkOption {
+ type = lib.types.str;
+ default = name;
+ description = "Group under which Mediagoblin runs";
+ };
+ dataDir = lib.mkOption {
+ type = lib.types.path;
+ default = "/var/lib/${name}";
+ description = ''
+ The directory where Mediagoblin stores its data.
+ '';
+ };
+ socketsDir = lib.mkOption {
+ type = lib.types.path;
+ default = "/run/${name}";
+ description = ''
+ The directory where Mediagoblin puts runtime files and sockets.
+ '';
+ };
+ configFile = lib.mkOption {
+ type = lib.types.path;
+ description = ''
+ The configuration file path for Mediagoblin.
+ '';
+ };
+ package = lib.mkOption {
+ type = lib.types.package;
+ default = pkgs.webapps.mediagoblin;
+ description = ''
+ Mediagoblin package to use.
+ '';
+ };
+ plugins = lib.mkOption {
+ type = lib.types.listOf lib.types.package;
+ default = [];
+ description = ''
+ Mediagoblin plugins to use.
+ '';
+ };
+ # Output variables
+ workdir = lib.mkOption {
+ type = lib.types.package;
+ default = cfg.package.withPlugins cfg.plugins;
+ description = ''
+ Adjusted Mediagoblin package with plugins
+ '';
+ readOnly = true;
+ };
+ systemdStateDirectory = lib.mkOption {
+ type = lib.types.str;
+ # Use ReadWritePaths= instead if varDir is outside of /var/lib
+ default = assert lib.strings.hasPrefix "/var/lib/" cfg.dataDir;
+ lib.strings.removePrefix "/var/lib/" cfg.dataDir;
+ description = ''
+ Adjusted Mediagoblin data directory for systemd
+ '';
+ readOnly = true;
+ };
+ systemdRuntimeDirectory = lib.mkOption {
+ type = lib.types.str;
+ # Use ReadWritePaths= instead if socketsDir is outside of /run
+ default = assert lib.strings.hasPrefix "/run/" cfg.socketsDir;
+ lib.strings.removePrefix "/run/" cfg.socketsDir;
+ description = ''
+ Adjusted Mediagoblin sockets directory for systemd
+ '';
+ readOnly = true;
+ };
+ sockets = lib.mkOption {
+ type = lib.types.attrsOf lib.types.path;
+ default = {
+ paster = "${cfg.socketsDir}/mediagoblin.sock";
+ };
+ readOnly = true;
+ description = ''
+ Mediagoblin sockets
+ '';
+ };
+ pids = lib.mkOption {
+ type = lib.types.attrsOf lib.types.path;
+ default = {
+ paster = "${cfg.socketsDir}/mediagoblin.pid";
+ celery = "${cfg.socketsDir}/mediagoblin-celeryd.pid";
+ };
+ readOnly = true;
+ description = ''
+ Mediagoblin pid files
+ '';
+ };
+ };
+
+ config = lib.mkIf cfg.enable {
+ users.users = lib.optionalAttrs (cfg.user == name) (lib.singleton {
+ inherit name;
+ inherit uid;
+ group = cfg.group;
+ description = "Mediagoblin user";
+ home = cfg.dataDir;
+ useDefaultShell = true;
+ });
+ users.groups = lib.optionalAttrs (cfg.group == name) (lib.singleton {
+ inherit name;
+ inherit gid;
+ });
+
+ systemd.services.mediagoblin-web = {
+ description = "Mediagoblin service";
+ wantedBy = [ "multi-user.target" ];
+ after = [ "network.target" ];
+ wants = [ "postgresql.service" "redis.service" ];
+
+ environment.SCRIPT_NAME = "/mediagoblin/";
+
+ script = ''
+ exec ./bin/paster serve \
+ ${paste_local} \
+ --pid-file=${cfg.pids.paster}
+ '';
+ preStop = ''
+ exec ./bin/paster serve \
+ --pid-file=${cfg.pids.paster} \
+ ${paste_local} stop
+ '';
+ preStart = ''
+ if [ -d ${cfg.dataDir}/plugin_static/ ]; then
+ rm ${cfg.dataDir}/plugin_static/coreplugin_basic_auth
+ ln -sf ${cfg.workdir}/mediagoblin/plugins/basic_auth/static ${cfg.dataDir}/plugin_static/coreplugin_basic_auth
+ fi
+ ./bin/gmg -cf ${cfg.configFile} dbupdate
+ '';
+
+ serviceConfig = {
+ User = cfg.user;
+ PrivateTmp = true;
+ Restart = "always";
+ TimeoutSec = 15;
+ Type = "simple";
+ WorkingDirectory = cfg.workdir;
+ RuntimeDirectory = cfg.systemdRuntimeDirectory;
+ StateDirectory= cfg.systemdStateDirectory;
+ PIDFile = cfg.pids.paster;
+ };
+
+ unitConfig.RequiresMountsFor = cfg.dataDir;
+ };
+
+ systemd.services.mediagoblin-celeryd = {
+ description = "Mediagoblin service";
+ wantedBy = [ "multi-user.target" ];
+ after = [ "network.target" "mediagoblin-web.service" ];
+
+ environment.MEDIAGOBLIN_CONFIG = cfg.configFile;
+ environment.CELERY_CONFIG_MODULE = "mediagoblin.init.celery.from_celery";
+
+ script = ''
+ exec ./bin/celery worker \
+ --logfile=${cfg.dataDir}/celery.log \
+ --loglevel=INFO
+ '';
+
+ serviceConfig = {
+ User = cfg.user;
+ PrivateTmp = true;
+ Restart = "always";
+ TimeoutSec = 60;
+ Type = "simple";
+ WorkingDirectory = cfg.workdir;
+ RuntimeDirectory = cfg.systemdRuntimeDirectory;
+ StateDirectory= cfg.systemdStateDirectory;
+ PIDFile = cfg.pids.celery;
+ };
+
+ unitConfig.RequiresMountsFor = cfg.dataDir;
+ };
+ };
+}
--- /dev/null
+{ lib, pkgs, config, ... }:
+let
+ name = "peertube";
+ cfg = config.services.peertube;
+
+ uid = config.ids.uids.peertube;
+ gid = config.ids.gids.peertube;
+in
+{
+ options.services.peertube = {
+ enable = lib.mkEnableOption "Enable Peertube’s service";
+ user = lib.mkOption {
+ type = lib.types.str;
+ default = name;
+ description = "User account under which Peertube runs";
+ };
+ group = lib.mkOption {
+ type = lib.types.str;
+ default = name;
+ description = "Group under which Peertube runs";
+ };
+ dataDir = lib.mkOption {
+ type = lib.types.path;
+ default = "/var/lib/${name}";
+ description = ''
+ The directory where Peertube stores its data.
+ '';
+ };
+ configFile = lib.mkOption {
+ type = lib.types.path;
+ description = ''
+ The configuration file path for Peertube.
+ '';
+ };
+ package = lib.mkOption {
+ type = lib.types.package;
+ default = pkgs.webapps.peertube;
+ description = ''
+ Peertube package to use.
+ '';
+ };
+ # Output variables
+ systemdStateDirectory = lib.mkOption {
+ type = lib.types.str;
+ # Use ReadWritePaths= instead if varDir is outside of /var/lib
+ default = assert lib.strings.hasPrefix "/var/lib/" cfg.dataDir;
+ lib.strings.removePrefix "/var/lib/" cfg.dataDir;
+ description = ''
+ Adjusted Peertube data directory for systemd
+ '';
+ readOnly = true;
+ };
+ };
+
+ config = lib.mkIf cfg.enable {
+ users.users = lib.optionalAttrs (cfg.user == name) (lib.singleton {
+ inherit name;
+ inherit uid;
+ group = cfg.group;
+ description = "Peertube user";
+ home = cfg.dataDir;
+ useDefaultShell = true;
+ });
+ users.groups = lib.optionalAttrs (cfg.group == name) (lib.singleton {
+ inherit name;
+ inherit gid;
+ });
+
+ systemd.services.peertube = {
+ description = "Peertube";
+ wantedBy = [ "multi-user.target" ];
+ after = [ "network.target" "postgresql.service" ];
+ wants = [ "postgresql.service" ];
+
+ environment.NODE_CONFIG_DIR = "${cfg.dataDir}/config";
+ environment.NODE_ENV = "production";
+ environment.HOME = cfg.package;
+
+ path = [ pkgs.nodejs pkgs.bashInteractive pkgs.ffmpeg pkgs.openssl ];
+
+ script = ''
+ install -m 0750 -d ${cfg.dataDir}/config
+ ln -sf ${cfg.configFile} ${cfg.dataDir}/config/production.yaml
+ exec npm run start
+ '';
+
+ serviceConfig = {
+ User = cfg.user;
+ Group = cfg.group;
+ WorkingDirectory = cfg.package;
+ StateDirectory = cfg.systemdStateDirectory;
+ StateDirectoryMode = 0750;
+ PrivateTmp = true;
+ ProtectHome = true;
+ ProtectControlGroups = true;
+ Restart = "always";
+ Type = "simple";
+ TimeoutSec = 60;
+ };
+
+ unitConfig.RequiresMountsFor = cfg.dataDir;
+ };
+ };
+}
+
--- /dev/null
+{ lib, pkgs, config, ... }:
+let
+ name = "goaccess";
+ cfg = config.services.webstats;
+in {
+ options.services.webstats = {
+ dataDir = lib.mkOption {
+ type = lib.types.path;
+ default = "/var/lib/${name}";
+ description = ''
+ The directory where Goaccess stores its data.
+ '';
+ };
+ sites = lib.mkOption {
+ type = lib.types.listOf (lib.types.submodule {
+ options = {
+ conf = lib.mkOption {
+ type = lib.types.nullOr lib.types.path;
+ default = null;
+ description = ''
+ use custom goaccess configuration file instead of the
+ default one.
+ '';
+ };
+ name = lib.mkOption {
+ type = lib.types.string;
+ description = ''
+ Domain name. Corresponds to the Apache file name and the
+ folder name in which the state will be saved.
+ '';
+ };
+ };
+ });
+ default = [];
+ description = "Sites to generate stats";
+ };
+ };
+
+ config = lib.mkIf (builtins.length cfg.sites > 0) {
+ users.users.root.packages = [
+ pkgs.goaccess
+ ];
+
+ services.cron = {
+ enable = true;
+ systemCronJobs = let
+ stats = domain: conf: let
+ config = if builtins.isNull conf
+ then pkgs.runCommand "goaccess.conf" {
+ dbPath = "${cfg.dataDir}/${domain}";
+ } "substituteAll ${./goaccess.conf} $out"
+ else conf;
+ d = pkgs.writeScriptBin "stats-${domain}" ''
+ #!${pkgs.stdenv.shell}
+ set -e
+ shopt -s nullglob
+ date_regex=$(LC_ALL=C date -d yesterday +'%d\/%b\/%Y')
+ TMPFILE=$(mktemp)
+ trap "rm -f $TMPFILE" EXIT
+
+ mkdir -p ${cfg.dataDir}/${domain}
+ cat /var/log/httpd/access-${domain}.log | sed -n "/\\[$date_regex/ p" > $TMPFILE
+ for i in /var/log/httpd/access-${domain}*.gz; do
+ zcat "$i" | sed -n "/\\[$date_regex/ p" >> $TMPFILE
+ done
+ ${pkgs.goaccess}/bin/goaccess $TMPFILE --no-progress -o ${cfg.dataDir}/${domain}/index.html -p ${config}
+ '';
+ in "${d}/bin/stats-${domain}";
+ allStats = sites: pkgs.writeScript "stats" ''
+ #!${pkgs.stdenv.shell}
+
+ mkdir -p ${cfg.dataDir}
+ ${builtins.concatStringsSep "\n" (map (v: stats v.name v.conf) sites)}
+ '';
+ in
+ [
+ "5 0 * * * root ${allStats cfg.sites}"
+ ];
+ };
+ };
+}
--- /dev/null
+time-format %H:%M:%S
+date-format %d/%b/%Y
+
+#sur immae.eu
+#log-format %v %h %^[%d:%t %^] "%r" %s %b "%R" "%u" $^
+
+log-format VCOMBINED
+#= %v:%^ %h %^[%d:%t %^] "%r" %s %b "%R" "%u"
+
+html-prefs {"theme":"bright","layout":"vertical"}
+
+exclude-ip 188.165.209.148
+exclude-ip 178.33.252.96
+exclude-ip 2001:41d0:2:9c94::1
+exclude-ip 2001:41d0:2:9c94::
+exclude-ip 176.9.151.89
+exclude-ip 2a01:4f8:160:3445::
+exclude-ip 82.255.56.72
+
+no-query-string true
+
+keep-db-files true
+load-from-disk true
+db-path @dbPath@
+
+ignore-panel REFERRERS
+ignore-panel KEYPHRASES
+
+static-file .css
+static-file .js
+static-file .jpg
+static-file .png
+static-file .gif
+static-file .ico
+static-file .jpeg
+static-file .pdf
+static-file .csv
+static-file .mpeg
+static-file .mpg
+static-file .swf
+static-file .woff
+static-file .woff2
+static-file .xls
+static-file .xlsx
+static-file .doc
+static-file .docx
+static-file .ppt
+static-file .pptx
+static-file .txt
+static-file .zip
+static-file .ogg
+static-file .mp3
+static-file .mp4
+static-file .exe
+static-file .iso
+static-file .gz
+static-file .rar
+static-file .svg
+static-file .bmp
+static-file .tar
+static-file .tgz
+static-file .tiff
+static-file .tif
+static-file .ttf
+static-file .flv
+#static-file .less
+#static-file .ac3
+#static-file .avi
+#static-file .bz2
+#static-file .class
+#static-file .cue
+#static-file .dae
+#static-file .dat
+#static-file .dts
+#static-file .ejs
+#static-file .eot
+#static-file .eps
+#static-file .img
+#static-file .jar
+#static-file .map
+#static-file .mid
+#static-file .midi
+#static-file .ogv
+#static-file .webm
+#static-file .mkv
+#static-file .odp
+#static-file .ods
+#static-file .odt
+#static-file .otf
+#static-file .pict
+#static-file .pls
+#static-file .ps
+#static-file .qt
+#static-file .rm
+#static-file .svgz
+#static-file .wav
+#static-file .webp
+
+
--- /dev/null
+{ lib, config, ... }: with lib;
+let
+ cfg = config.services.websites;
+in
+{
+ options.services.websitesCerts = mkOption {
+ description = "Default websites configuration for certificates as accepted by acme";
+ };
+ options.services.websites = with types; mkOption {
+ default = {};
+ description = "Each type of website to enable will target a distinct httpd server";
+ type = attrsOf (submodule {
+ options = {
+ enable = mkEnableOption "Enable websites of this type";
+ adminAddr = mkOption {
+ type = str;
+ description = "Admin e-mail address of the instance";
+ };
+ httpdName = mkOption {
+ type = str;
+ description = "Name of the httpd instance to assign this type to";
+ };
+ ips = mkOption {
+ type = listOf string;
+ default = [];
+ description = "ips to listen to";
+ };
+ modules = mkOption {
+ type = listOf str;
+ default = [];
+ description = "Additional modules to load in Apache";
+ };
+ extraConfig = mkOption {
+ type = listOf lines;
+ default = [];
+ description = "Additional configuration to append to Apache";
+ };
+ nosslVhost = mkOption {
+ description = "A default nossl vhost for captive portals";
+ default = {};
+ type = submodule {
+ options = {
+ enable = mkEnableOption "Add default no-ssl vhost for this instance";
+ host = mkOption {
+ type = string;
+ description = "The hostname to use for this vhost";
+ };
+ root = mkOption {
+ type = path;
+ default = ./nosslVhost;
+ description = "The root folder to serve";
+ };
+ indexFile = mkOption {
+ type = string;
+ default = "index.html";
+ description = "The index file to show.";
+ };
+ };
+ };
+ };
+ fallbackVhost = mkOption {
+ description = "The fallback vhost that will be defined as first vhost in Apache";
+ type = submodule {
+ options = {
+ certName = mkOption { type = string; };
+ hosts = mkOption { type = listOf string; };
+ root = mkOption { type = nullOr path; };
+ extraConfig = mkOption { type = listOf lines; default = []; };
+ };
+ };
+ };
+ vhostConfs = mkOption {
+ default = {};
+ description = "List of vhosts to define for Apache";
+ type = attrsOf (submodule {
+ options = {
+ certName = mkOption { type = string; };
+ addToCerts = mkOption {
+ type = bool;
+ default = false;
+ description = "Use these to certificates. Is ignored (considered true) if certMainHost is not null";
+ };
+ certMainHost = mkOption {
+ type = nullOr string;
+ description = "Use that host as 'main host' for acme certs";
+ default = null;
+ };
+ hosts = mkOption { type = listOf string; };
+ root = mkOption { type = nullOr path; };
+ extraConfig = mkOption { type = listOf lines; default = []; };
+ };
+ });
+ };
+ };
+ });
+ };
+
+ config.services.httpd = let
+ redirectVhost = ips: { # Should go last, catchall http -> https redirect
+ listen = map (ip: { inherit ip; port = 80; }) ips;
+ hostName = "redirectSSL";
+ serverAliases = [ "*" ];
+ enableSSL = false;
+ logFormat = "combinedVhost";
+ documentRoot = "${config.security.acme.directory}/acme-challenge";
+ extraConfig = ''
+ RewriteEngine on
+ RewriteCond "%{REQUEST_URI}" "!^/\.well-known"
+ RewriteRule ^(.+) https://%{HTTP_HOST}$1 [R=301]
+ # To redirect in specific "VirtualHost *:80", do
+ # RedirectMatch 301 ^/((?!\.well-known.*$).*)$ https://host/$1
+ # rather than rewrite
+ '';
+ };
+ nosslVhost = ips: cfg: {
+ listen = map (ip: { inherit ip; port = 80; }) ips;
+ hostName = cfg.host;
+ enableSSL = false;
+ logFormat = "combinedVhost";
+ documentRoot = cfg.root;
+ extraConfig = ''
+ <Directory ${cfg.root}>
+ DirectoryIndex ${cfg.indexFile}
+ AllowOverride None
+ Require all granted
+
+ RewriteEngine on
+ RewriteRule ^/(.+) / [L]
+ </Directory>
+ '';
+ };
+ toVhost = ips: vhostConf: {
+ enableSSL = true;
+ sslServerCert = "${config.security.acme.directory}/${vhostConf.certName}/cert.pem";
+ sslServerKey = "${config.security.acme.directory}/${vhostConf.certName}/key.pem";
+ sslServerChain = "${config.security.acme.directory}/${vhostConf.certName}/chain.pem";
+ logFormat = "combinedVhost";
+ listen = map (ip: { inherit ip; port = 443; }) ips;
+ hostName = builtins.head vhostConf.hosts;
+ serverAliases = builtins.tail vhostConf.hosts or [];
+ documentRoot = vhostConf.root;
+ extraConfig = builtins.concatStringsSep "\n" vhostConf.extraConfig;
+ };
+ in attrsets.mapAttrs' (name: icfg: attrsets.nameValuePair
+ icfg.httpdName (mkIf icfg.enable {
+ enable = true;
+ listen = map (ip: { inherit ip; port = 443; }) icfg.ips;
+ stateDir = "/run/httpd_${name}";
+ logPerVirtualHost = true;
+ multiProcessingModule = "worker";
+ inherit (icfg) adminAddr;
+ logFormat = "combinedVhost";
+ extraModules = lists.unique icfg.modules;
+ extraConfig = builtins.concatStringsSep "\n" icfg.extraConfig;
+ virtualHosts = [ (toVhost icfg.ips icfg.fallbackVhost) ]
+ ++ optionals (icfg.nosslVhost.enable) [ (nosslVhost icfg.ips icfg.nosslVhost) ]
+ ++ (attrsets.mapAttrsToList (n: v: toVhost icfg.ips v) icfg.vhostConfs)
+ ++ [ (redirectVhost icfg.ips) ];
+ })
+ ) cfg;
+
+ config.security.acme.certs = let
+ typesToManage = attrsets.filterAttrs (k: v: v.enable) cfg;
+ flatVhosts = lists.flatten (attrsets.mapAttrsToList (k: v:
+ attrValues v.vhostConfs
+ ) typesToManage);
+ groupedCerts = attrsets.filterAttrs
+ (_: group: builtins.any (v: v.addToCerts || !isNull v.certMainHost) group)
+ (lists.groupBy (v: v.certName) flatVhosts);
+ groupToDomain = group:
+ let
+ nonNull = builtins.filter (v: !isNull v.certMainHost) group;
+ domains = lists.unique (map (v: v.certMainHost) nonNull);
+ in
+ if builtins.length domains == 0
+ then null
+ else assert (builtins.length domains == 1); (elemAt domains 0);
+ extraDomains = group:
+ let
+ mainDomain = groupToDomain group;
+ in
+ lists.remove mainDomain (
+ lists.unique (
+ lists.flatten (map (c: optionals (c.addToCerts || !isNull c.certMainHost) c.hosts) group)
+ )
+ );
+ in attrsets.mapAttrs (k: g:
+ if (!isNull (groupToDomain g))
+ then config.services.websitesCerts // {
+ domain = groupToDomain g;
+ extraDomains = builtins.listToAttrs (
+ map (d: attrsets.nameValuePair d null) (extraDomains g));
+ }
+ else {
+ extraDomains = builtins.listToAttrs (
+ map (d: attrsets.nameValuePair d null) (extraDomains g));
+ }
+ ) groupedCerts;
+}
--- /dev/null
+# to help backporting this builder should stay as close as possible to
+# nixos/modules/services/web-servers/apache-httpd/default.nix
+{ httpdName, withUsers ? true }:
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+
+ mainCfg = config.services.httpd."${httpdName}";
+
+ httpd = mainCfg.package.out;
+
+ version24 = !versionOlder httpd.version "2.4";
+
+ httpdConf = mainCfg.configFile;
+
+ php = mainCfg.phpPackage.override { apacheHttpd = httpd.dev; /* otherwise it only gets .out */ };
+
+ phpMajorVersion = head (splitString "." php.version);
+
+ mod_perl = pkgs.apacheHttpdPackages.mod_perl.override { apacheHttpd = httpd; };
+
+ defaultListen = cfg: if cfg.enableSSL
+ then [{ip = "*"; port = 443;}]
+ else [{ip = "*"; port = 80;}];
+
+ getListen = cfg:
+ let list = (lib.optional (cfg.port != 0) {ip = "*"; port = cfg.port;}) ++ cfg.listen;
+ in if list == []
+ then defaultListen cfg
+ else list;
+
+ listenToString = l: "${l.ip}:${toString l.port}";
+
+ extraModules = attrByPath ["extraModules"] [] mainCfg;
+ extraForeignModules = filter isAttrs extraModules;
+ extraApacheModules = filter isString extraModules;
+
+
+ makeServerInfo = cfg: {
+ # Canonical name must not include a trailing slash.
+ canonicalNames =
+ let defaultPort = (head (defaultListen cfg)).port; in
+ map (port:
+ (if cfg.enableSSL then "https" else "http") + "://" +
+ cfg.hostName +
+ (if port != defaultPort then ":${toString port}" else "")
+ ) (map (x: x.port) (getListen cfg));
+
+ # Admin address: inherit from the main server if not specified for
+ # a virtual host.
+ adminAddr = if cfg.adminAddr != null then cfg.adminAddr else mainCfg.adminAddr;
+
+ vhostConfig = cfg;
+ serverConfig = mainCfg;
+ fullConfig = config; # machine config
+ };
+
+
+ allHosts = [mainCfg] ++ mainCfg.virtualHosts;
+
+
+ callSubservices = serverInfo: defs:
+ let f = svc:
+ let
+ svcFunction =
+ if svc ? function then svc.function
+ # instead of using serviceType="mediawiki"; you can copy mediawiki.nix to any location outside nixpkgs, modify it at will, and use serviceExpression=./mediawiki.nix;
+ else if svc ? serviceExpression then import (toString svc.serviceExpression)
+ else import (toString "${toString ./.}/${if svc ? serviceType then svc.serviceType else svc.serviceName}.nix");
+ config = (evalModules
+ { modules = [ { options = res.options; config = svc.config or svc; } ];
+ check = false;
+ }).config;
+ defaults = {
+ extraConfig = "";
+ extraModules = [];
+ extraModulesPre = [];
+ extraPath = [];
+ extraServerPath = [];
+ globalEnvVars = [];
+ robotsEntries = "";
+ startupScript = "";
+ enablePHP = false;
+ enablePerl = false;
+ phpOptions = "";
+ options = {};
+ documentRoot = null;
+ };
+ res = defaults // svcFunction { inherit config lib pkgs serverInfo php; };
+ in res;
+ in map f defs;
+
+
+ # !!! callSubservices is expensive
+ subservicesFor = cfg: callSubservices (makeServerInfo cfg) cfg.extraSubservices;
+
+ mainSubservices = subservicesFor mainCfg;
+
+ allSubservices = mainSubservices ++ concatMap subservicesFor mainCfg.virtualHosts;
+
+
+ enableSSL = any (vhost: vhost.enableSSL) allHosts;
+
+
+ # Names of modules from ${httpd}/modules that we want to load.
+ apacheModules =
+ [ # HTTP authentication mechanisms: basic and digest.
+ "auth_basic" "auth_digest"
+
+ # Authentication: is the user who he claims to be?
+ "authn_file" "authn_dbm" "authn_anon"
+ (if version24 then "authn_core" else "authn_alias")
+
+ # Authorization: is the user allowed access?
+ "authz_user" "authz_groupfile" "authz_host"
+
+ # Other modules.
+ "ext_filter" "include" "log_config" "env" "mime_magic"
+ "cern_meta" "expires" "headers" "usertrack" /* "unique_id" */ "setenvif"
+ "mime" "dav" "status" "autoindex" "asis" "info" "dav_fs"
+ "vhost_alias" "negotiation" "dir" "imagemap" "actions" "speling"
+ "userdir" "alias" "rewrite" "proxy" "proxy_http"
+ ]
+ ++ optionals version24 [
+ "mpm_${mainCfg.multiProcessingModule}"
+ "authz_core"
+ "unixd"
+ "cache" "cache_disk"
+ "slotmem_shm"
+ "socache_shmcb"
+ # For compatibility with old configurations, the new module mod_access_compat is provided.
+ "access_compat"
+ ]
+ ++ (if mainCfg.multiProcessingModule == "prefork" then [ "cgi" ] else [ "cgid" ])
+ ++ optional enableSSL "ssl"
+ ++ extraApacheModules;
+
+
+ allDenied = if version24 then ''
+ Require all denied
+ '' else ''
+ Order deny,allow
+ Deny from all
+ '';
+
+ allGranted = if version24 then ''
+ Require all granted
+ '' else ''
+ Order allow,deny
+ Allow from all
+ '';
+
+
+ loggingConf = (if mainCfg.logFormat != "none" then ''
+ ErrorLog ${mainCfg.logDir}/error.log
+
+ LogLevel notice
+
+ LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
+ LogFormat "%h %l %u %t \"%r\" %>s %b" common
+ LogFormat "%{Referer}i -> %U" referer
+ LogFormat "%{User-agent}i" agent
+
+ CustomLog ${mainCfg.logDir}/access.log ${mainCfg.logFormat}
+ '' else ''
+ ErrorLog /dev/null
+ '');
+
+
+ browserHacks = ''
+ BrowserMatch "Mozilla/2" nokeepalive
+ BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
+ BrowserMatch "RealPlayer 4\.0" force-response-1.0
+ BrowserMatch "Java/1\.0" force-response-1.0
+ BrowserMatch "JDK/1\.0" force-response-1.0
+ BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
+ BrowserMatch "^WebDrive" redirect-carefully
+ BrowserMatch "^WebDAVFS/1.[012]" redirect-carefully
+ BrowserMatch "^gnome-vfs" redirect-carefully
+ '';
+
+
+ sslConf = ''
+ SSLSessionCache ${if version24 then "shmcb" else "shm"}:${mainCfg.stateDir}/ssl_scache(512000)
+
+ ${if version24 then "Mutex" else "SSLMutex"} posixsem
+
+ SSLRandomSeed startup builtin
+ SSLRandomSeed connect builtin
+
+ SSLProtocol ${mainCfg.sslProtocols}
+ SSLCipherSuite ${mainCfg.sslCiphers}
+ SSLHonorCipherOrder on
+ '';
+
+
+ mimeConf = ''
+ TypesConfig ${httpd}/conf/mime.types
+
+ AddType application/x-x509-ca-cert .crt
+ AddType application/x-pkcs7-crl .crl
+ AddType application/x-httpd-php .php .phtml
+
+ <IfModule mod_mime_magic.c>
+ MIMEMagicFile ${httpd}/conf/magic
+ </IfModule>
+ '';
+
+
+ perServerConf = isMainServer: cfg: let
+
+ serverInfo = makeServerInfo cfg;
+
+ subservices = callSubservices serverInfo cfg.extraSubservices;
+
+ maybeDocumentRoot = fold (svc: acc:
+ if acc == null then svc.documentRoot else assert svc.documentRoot == null; acc
+ ) null ([ cfg ] ++ subservices);
+
+ documentRoot = if maybeDocumentRoot != null then maybeDocumentRoot else
+ pkgs.runCommand "empty" { preferLocalBuild = true; } "mkdir -p $out";
+
+ documentRootConf = ''
+ DocumentRoot "${documentRoot}"
+
+ <Directory "${documentRoot}">
+ Options Indexes FollowSymLinks
+ AllowOverride None
+ ${allGranted}
+ </Directory>
+ '';
+
+ robotsTxt =
+ concatStringsSep "\n" (filter (x: x != "") (
+ # If this is a vhost, the include the entries for the main server as well.
+ (if isMainServer then [] else [mainCfg.robotsEntries] ++ map (svc: svc.robotsEntries) mainSubservices)
+ ++ [cfg.robotsEntries]
+ ++ (map (svc: svc.robotsEntries) subservices)));
+
+ in ''
+ ${concatStringsSep "\n" (map (n: "ServerName ${n}") serverInfo.canonicalNames)}
+
+ ${concatMapStrings (alias: "ServerAlias ${alias}\n") cfg.serverAliases}
+
+ ${if cfg.sslServerCert != null then ''
+ SSLCertificateFile ${cfg.sslServerCert}
+ SSLCertificateKeyFile ${cfg.sslServerKey}
+ ${if cfg.sslServerChain != null then ''
+ SSLCertificateChainFile ${cfg.sslServerChain}
+ '' else ""}
+ '' else ""}
+
+ ${if cfg.enableSSL then ''
+ SSLEngine on
+ '' else if enableSSL then /* i.e., SSL is enabled for some host, but not this one */
+ ''
+ SSLEngine off
+ '' else ""}
+
+ ${if isMainServer || cfg.adminAddr != null then ''
+ ServerAdmin ${cfg.adminAddr}
+ '' else ""}
+
+ ${if !isMainServer && mainCfg.logPerVirtualHost then ''
+ ErrorLog ${mainCfg.logDir}/error-${cfg.hostName}.log
+ CustomLog ${mainCfg.logDir}/access-${cfg.hostName}.log ${cfg.logFormat}
+ '' else ""}
+
+ ${optionalString (robotsTxt != "") ''
+ Alias /robots.txt ${pkgs.writeText "robots.txt" robotsTxt}
+ ''}
+
+ ${if isMainServer || maybeDocumentRoot != null then documentRootConf else ""}
+
+ ${if cfg.enableUserDir then ''
+
+ UserDir public_html
+ UserDir disabled root
+
+ <Directory "/home/*/public_html">
+ AllowOverride FileInfo AuthConfig Limit Indexes
+ Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
+ <Limit GET POST OPTIONS>
+ ${allGranted}
+ </Limit>
+ <LimitExcept GET POST OPTIONS>
+ ${allDenied}
+ </LimitExcept>
+ </Directory>
+
+ '' else ""}
+
+ ${if cfg.globalRedirect != null && cfg.globalRedirect != "" then ''
+ RedirectPermanent / ${cfg.globalRedirect}
+ '' else ""}
+
+ ${
+ let makeFileConf = elem: ''
+ Alias ${elem.urlPath} ${elem.file}
+ '';
+ in concatMapStrings makeFileConf cfg.servedFiles
+ }
+
+ ${
+ let makeDirConf = elem: ''
+ Alias ${elem.urlPath} ${elem.dir}/
+ <Directory ${elem.dir}>
+ Options +Indexes
+ ${allGranted}
+ AllowOverride All
+ </Directory>
+ '';
+ in concatMapStrings makeDirConf cfg.servedDirs
+ }
+
+ ${concatMapStrings (svc: svc.extraConfig) subservices}
+
+ ${cfg.extraConfig}
+ '';
+
+
+ confFile = pkgs.writeText "httpd.conf" ''
+
+ ServerRoot ${httpd}
+
+ ${optionalString version24 ''
+ DefaultRuntimeDir ${mainCfg.stateDir}/runtime
+ ''}
+
+ PidFile ${mainCfg.stateDir}/httpd.pid
+
+ ${optionalString (mainCfg.multiProcessingModule != "prefork") ''
+ # mod_cgid requires this.
+ ScriptSock ${mainCfg.stateDir}/cgisock
+ ''}
+
+ <IfModule prefork.c>
+ MaxClients ${toString mainCfg.maxClients}
+ MaxRequestsPerChild ${toString mainCfg.maxRequestsPerChild}
+ </IfModule>
+
+ ${let
+ listen = concatMap getListen allHosts;
+ toStr = listen: "Listen ${listenToString listen}\n";
+ uniqueListen = uniqList {inputList = map toStr listen;};
+ in concatStrings uniqueListen
+ }
+
+ User ${mainCfg.user}
+ Group ${mainCfg.group}
+
+ ${let
+ load = {name, path}: "LoadModule ${name}_module ${path}\n";
+ allModules =
+ concatMap (svc: svc.extraModulesPre) allSubservices
+ ++ map (name: {inherit name; path = "${httpd}/modules/mod_${name}.so";}) apacheModules
+ ++ optional mainCfg.enableMellon { name = "auth_mellon"; path = "${pkgs.apacheHttpdPackages.mod_auth_mellon}/modules/mod_auth_mellon.so"; }
+ ++ optional enablePHP { name = "php${phpMajorVersion}"; path = "${php}/modules/libphp${phpMajorVersion}.so"; }
+ ++ optional enablePerl { name = "perl"; path = "${mod_perl}/modules/mod_perl.so"; }
+ ++ concatMap (svc: svc.extraModules) allSubservices
+ ++ extraForeignModules;
+ in concatMapStrings load allModules
+ }
+
+ AddHandler type-map var
+
+ <Files ~ "^\.ht">
+ ${allDenied}
+ </Files>
+
+ ${mimeConf}
+ ${loggingConf}
+ ${browserHacks}
+
+ Include ${httpd}/conf/extra/httpd-default.conf
+ Include ${httpd}/conf/extra/httpd-autoindex.conf
+ Include ${httpd}/conf/extra/httpd-multilang-errordoc.conf
+ Include ${httpd}/conf/extra/httpd-languages.conf
+
+ TraceEnable off
+
+ ${if enableSSL then sslConf else ""}
+
+ # Fascist default - deny access to everything.
+ <Directory />
+ Options FollowSymLinks
+ AllowOverride None
+ ${allDenied}
+ </Directory>
+
+ # Generate directives for the main server.
+ ${perServerConf true mainCfg}
+
+ # Always enable virtual hosts; it doesn't seem to hurt.
+ ${let
+ listen = concatMap getListen allHosts;
+ uniqueListen = uniqList {inputList = listen;};
+ directives = concatMapStrings (listen: "NameVirtualHost ${listenToString listen}\n") uniqueListen;
+ in optionalString (!version24) directives
+ }
+
+ ${let
+ makeVirtualHost = vhost: ''
+ <VirtualHost ${concatStringsSep " " (map listenToString (getListen vhost))}>
+ ${perServerConf false vhost}
+ </VirtualHost>
+ '';
+ in concatMapStrings makeVirtualHost mainCfg.virtualHosts
+ }
+ '';
+
+
+ enablePHP = mainCfg.enablePHP || any (svc: svc.enablePHP) allSubservices;
+
+ enablePerl = mainCfg.enablePerl || any (svc: svc.enablePerl) allSubservices;
+
+
+ # Generate the PHP configuration file. Should probably be factored
+ # out into a separate module.
+ phpIni = pkgs.runCommand "php.ini"
+ { options = concatStringsSep "\n"
+ ([ mainCfg.phpOptions ] ++ (map (svc: svc.phpOptions) allSubservices));
+ preferLocalBuild = true;
+ }
+ ''
+ cat ${php}/etc/php.ini > $out
+ echo "$options" >> $out
+ '';
+
+in
+
+
+{
+
+ ###### interface
+
+ options = {
+
+ services.httpd."${httpdName}" = {
+
+ enable = mkOption {
+ type = types.bool;
+ default = false;
+ description = "Whether to enable the Apache HTTP Server.";
+ };
+
+ package = mkOption {
+ type = types.package;
+ default = pkgs.apacheHttpd;
+ defaultText = "pkgs.apacheHttpd";
+ description = ''
+ Overridable attribute of the Apache HTTP Server package to use.
+ '';
+ };
+
+ configFile = mkOption {
+ type = types.path;
+ default = confFile;
+ defaultText = "confFile";
+ example = literalExample ''pkgs.writeText "httpd.conf" "# my custom config file ..."'';
+ description = ''
+ Override the configuration file used by Apache. By default,
+ NixOS generates one automatically.
+ '';
+ };
+
+ extraConfig = mkOption {
+ type = types.lines;
+ default = "";
+ description = ''
+ Cnfiguration lines appended to the generated Apache
+ configuration file. Note that this mechanism may not work
+ when <option>configFile</option> is overridden.
+ '';
+ };
+
+ extraModules = mkOption {
+ type = types.listOf types.unspecified;
+ default = [];
+ example = literalExample ''[ "proxy_connect" { name = "php5"; path = "''${pkgs.php}/modules/libphp5.so"; } ]'';
+ description = ''
+ Additional Apache modules to be used. These can be
+ specified as a string in the case of modules distributed
+ with Apache, or as an attribute set specifying the
+ <varname>name</varname> and <varname>path</varname> of the
+ module.
+ '';
+ };
+
+ logPerVirtualHost = mkOption {
+ type = types.bool;
+ default = false;
+ description = ''
+ If enabled, each virtual host gets its own
+ <filename>access.log</filename> and
+ <filename>error.log</filename>, namely suffixed by the
+ <option>hostName</option> of the virtual host.
+ '';
+ };
+
+ user = mkOption {
+ type = types.str;
+ default = "wwwrun";
+ description = ''
+ User account under which httpd runs. The account is created
+ automatically if it doesn't exist.
+ '';
+ };
+
+ group = mkOption {
+ type = types.str;
+ default = "wwwrun";
+ description = ''
+ Group under which httpd runs. The account is created
+ automatically if it doesn't exist.
+ '';
+ };
+
+ logDir = mkOption {
+ type = types.path;
+ default = "/var/log/httpd";
+ description = ''
+ Directory for Apache's log files. It is created automatically.
+ '';
+ };
+
+ stateDir = mkOption {
+ type = types.path;
+ default = "/run/httpd";
+ description = ''
+ Directory for Apache's transient runtime state (such as PID
+ files). It is created automatically. Note that the default,
+ <filename>/run/httpd</filename>, is deleted at boot time.
+ '';
+ };
+
+ virtualHosts = mkOption {
+ type = types.listOf (types.submodule (
+ { options = import <nixpkgs/nixos/modules/services/web-servers/apache-httpd/per-server-options.nix> {
+ inherit lib;
+ forMainServer = false;
+ };
+ }));
+ default = [];
+ example = [
+ { hostName = "foo";
+ documentRoot = "/data/webroot-foo";
+ }
+ { hostName = "bar";
+ documentRoot = "/data/webroot-bar";
+ }
+ ];
+ description = ''
+ Specification of the virtual hosts served by Apache. Each
+ element should be an attribute set specifying the
+ configuration of the virtual host. The available options
+ are the non-global options permissible for the main host.
+ '';
+ };
+
+ enableMellon = mkOption {
+ type = types.bool;
+ default = false;
+ description = "Whether to enable the mod_auth_mellon module.";
+ };
+
+ enablePHP = mkOption {
+ type = types.bool;
+ default = false;
+ description = "Whether to enable the PHP module.";
+ };
+
+ phpPackage = mkOption {
+ type = types.package;
+ default = pkgs.php;
+ defaultText = "pkgs.php";
+ description = ''
+ Overridable attribute of the PHP package to use.
+ '';
+ };
+
+ enablePerl = mkOption {
+ type = types.bool;
+ default = false;
+ description = "Whether to enable the Perl module (mod_perl).";
+ };
+
+ phpOptions = mkOption {
+ type = types.lines;
+ default = "";
+ example =
+ ''
+ date.timezone = "CET"
+ '';
+ description =
+ "Options appended to the PHP configuration file <filename>php.ini</filename>.";
+ };
+
+ multiProcessingModule = mkOption {
+ type = types.str;
+ default = "prefork";
+ example = "worker";
+ description =
+ ''
+ Multi-processing module to be used by Apache. Available
+ modules are <literal>prefork</literal> (the default;
+ handles each request in a separate child process),
+ <literal>worker</literal> (hybrid approach that starts a
+ number of child processes each running a number of
+ threads) and <literal>event</literal> (a recent variant of
+ <literal>worker</literal> that handles persistent
+ connections more efficiently).
+ '';
+ };
+
+ maxClients = mkOption {
+ type = types.int;
+ default = 150;
+ example = 8;
+ description = "Maximum number of httpd processes (prefork)";
+ };
+
+ maxRequestsPerChild = mkOption {
+ type = types.int;
+ default = 0;
+ example = 500;
+ description =
+ "Maximum number of httpd requests answered per httpd child (prefork), 0 means unlimited";
+ };
+
+ sslCiphers = mkOption {
+ type = types.str;
+ default = "HIGH:!aNULL:!MD5:!EXP";
+ description = "Cipher Suite available for negotiation in SSL proxy handshake.";
+ };
+
+ sslProtocols = mkOption {
+ type = types.str;
+ default = "All -SSLv2 -SSLv3 -TLSv1";
+ example = "All -SSLv2 -SSLv3";
+ description = "Allowed SSL/TLS protocol versions.";
+ };
+ }
+
+ # Include the options shared between the main server and virtual hosts.
+ // (import <nixpkgs/nixos/modules/services/web-servers/apache-httpd/per-server-options.nix> {
+ inherit lib;
+ forMainServer = true;
+ });
+
+ };
+
+
+ ###### implementation
+
+ config = mkIf config.services.httpd."${httpdName}".enable {
+
+ assertions = [ { assertion = mainCfg.enableSSL == true
+ -> mainCfg.sslServerCert != null
+ && mainCfg.sslServerKey != null;
+ message = "SSL is enabled for httpd, but sslServerCert and/or sslServerKey haven't been specified."; }
+ ];
+
+ warnings = map (cfg: ''apache-httpd's port option is deprecated. Use listen = [{/*ip = "*"; */ port = ${toString cfg.port};}]; instead'' ) (lib.filter (cfg: cfg.port != 0) allHosts);
+
+ users.users = optionalAttrs (withUsers && mainCfg.user == "wwwrun") (singleton
+ { name = "wwwrun";
+ group = mainCfg.group;
+ description = "Apache httpd user";
+ uid = config.ids.uids.wwwrun;
+ });
+
+ users.groups = optionalAttrs (withUsers && mainCfg.group == "wwwrun") (singleton
+ { name = "wwwrun";
+ gid = config.ids.gids.wwwrun;
+ });
+
+ environment.systemPackages = [httpd] ++ concatMap (svc: svc.extraPath) allSubservices;
+
+ services.httpd."${httpdName}".phpOptions =
+ ''
+ ; Needed for PHP's mail() function.
+ sendmail_path = sendmail -t -i
+
+ ; Don't advertise PHP
+ expose_php = off
+ '' + optionalString (!isNull config.time.timeZone) ''
+
+ ; Apparently PHP doesn't use $TZ.
+ date.timezone = "${config.time.timeZone}"
+ '';
+
+ systemd.services."httpd${httpdName}" =
+ { description = "Apache HTTPD";
+
+ wantedBy = [ "multi-user.target" ];
+ wants = [ "keys.target" ];
+ after = [ "network.target" "fs.target" "postgresql.service" "keys.target" ];
+
+ path =
+ [ httpd pkgs.coreutils pkgs.gnugrep ]
+ ++ optional enablePHP pkgs.system-sendmail # Needed for PHP's mail() function.
+ ++ concatMap (svc: svc.extraServerPath) allSubservices;
+
+ environment =
+ optionalAttrs enablePHP { PHPRC = phpIni; }
+ // optionalAttrs mainCfg.enableMellon { LD_LIBRARY_PATH = "${pkgs.xmlsec}/lib"; }
+ // (listToAttrs (concatMap (svc: svc.globalEnvVars) allSubservices));
+
+ preStart =
+ ''
+ mkdir -m 0750 -p ${mainCfg.stateDir}
+ [ $(id -u) != 0 ] || chown root.${mainCfg.group} ${mainCfg.stateDir}
+ ${optionalString version24 ''
+ mkdir -m 0750 -p "${mainCfg.stateDir}/runtime"
+ [ $(id -u) != 0 ] || chown root.${mainCfg.group} "${mainCfg.stateDir}/runtime"
+ ''}
+ mkdir -m 0700 -p ${mainCfg.logDir}
+
+ # Get rid of old semaphores. These tend to accumulate across
+ # server restarts, eventually preventing it from restarting
+ # successfully.
+ for i in $(${pkgs.utillinux}/bin/ipcs -s | grep ' ${mainCfg.user} ' | cut -f2 -d ' '); do
+ ${pkgs.utillinux}/bin/ipcrm -s $i
+ done
+
+ # Run the startup hooks for the subservices.
+ for i in ${toString (map (svn: svn.startupScript) allSubservices)}; do
+ echo Running Apache startup hook $i...
+ $i
+ done
+ '';
+
+ serviceConfig.ExecStart = "@${httpd}/bin/httpd httpd -f ${httpdConf}";
+ serviceConfig.ExecStop = "${httpd}/bin/httpd -f ${httpdConf} -k graceful-stop";
+ serviceConfig.ExecReload = "${httpd}/bin/httpd -f ${httpdConf} -k graceful";
+ serviceConfig.Type = "forking";
+ serviceConfig.PIDFile = "${mainCfg.stateDir}/httpd.pid";
+ serviceConfig.Restart = "always";
+ serviceConfig.RestartSec = "5s";
+ };
+
+ };
+}
--- /dev/null
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>No SSL site</title>
+ </head>
+ <body>
+ <h1>No SSL on this site</h1>
+ <p>Use for wifi networks with login page that doesn't work well with
+ https.</p>
+ </body>
+</html>
--- /dev/null
+#!/bin/bash
+
+if [ -z "$NIXOPS_DEPLOYMENT" ]; then
+ # This will automatically upgrade to latest version at each build
+ nixpkgs="https://nixos.org/channels/nixos-19.03/nixexprs.tar.xz"
+else
+ nixpkgs="https://releases.nixos.org/nixos/19.03/nixos-19.03.172530.096e2f137b6/nixexprs.tar.xz"
+fi
+nixpkgsPrevious="$nixpkgs"
+nixpkgsNext="$nixpkgs"
+export NIX_PATH="nixpkgs=$nixpkgs:nixpkgsNext=$nixpkgsNext:nixpkgsPrevious=$nixpkgsPrevious"
--- /dev/null
+setup:
+ ./scripts/setup
+
+ssh-eldiron:
+ ./scripts/nixops_wrap ssh eldiron
+
+info:
+ ./scripts/nixops_wrap list
+ ./scripts/nixops_wrap info
+
+debug:
+ ./scripts/nixops_wrap deploy --build-only --show-trace
+
+dry-run:
+ ./scripts/nixops_wrap deploy --dry-run
+
+build:
+ ./scripts/nixops_wrap deploy --build-only
+
+upload:
+ ./scripts/nixops_wrap deploy --copy-only
+
+deploy:
+ ./scripts/nixops_wrap deploy
+
+reboot:
+ ./scripts/nixops_wrap reboot --include=eldiron
+
+push:
+ ./scripts/push_deployment
+ ./scripts/push_environment
+
+pull:
+ ./scripts/pull_environment
+
+pull-deployment:
+ ./scripts/pull_deployment
+
+profile = $(shell ./scripts/nixops_wrap info | grep "^Nix profile: " | sed -e "s/^Nix profile: //")
+GEN ?= "+3"
+
+list-generations:
+ nix-env -p $(profile) --list-generations
+ ./scripts/nixops_wrap ssh eldiron -- nix-env -p /nix/var/nix/profiles/system --list-generations
+
+delete-generations:
+ nix-env -p $(profile) --delete-generations $(GEN)
+ ./scripts/nixops_wrap ssh eldiron -- nix-env -p /nix/var/nix/profiles/system --delete-generations $(GEN)
+
+cleanup: delete-generations
+ nix-store --gc
+ ./scripts/nixops_wrap ssh eldiron -- nix-store --gc
+
+.PHONY: setup ssh-eldiron info debug dry-run build upload deploy push pull pull-deployment list-generations delete-generations cleanup
--- /dev/null
+with import <nixpkgs> { overlays = builtins.attrValues (import ../overlays); };
+nixops
--- /dev/null
+{ privateFiles ? ./. }:
+{
+ network = {
+ description = "Immae's network";
+ enableRollback = true;
+ };
+
+ eldiron = import ../modules/private/system/eldiron.nix { inherit privateFiles; };
+}
--- /dev/null
+nixops show a deprecation message at each deployment because hetzner
+info is outdated. To fix it:
+
+ cp -a ~/.nixops ~/.nixops.bak
+
+ nixops export --all > all.json
+
+ network=$(cat all.json| jq -r '."cef694f3-081d-11e9-b31f-0242ec186adf".resources.eldiron."hetzner.networkInfo"' | jq -r -c '.networking.interfaces.eth0 = { "ipv4": { "addresses": [ { "address": .networking.interfaces.eth0.ipAddress, "prefixLength": .networking.interfaces.eth0.prefixLength } ] } }')
+
+ cat all.json | jq --arg network "$network" '."cef694f3-081d-11e9-b31f-0242ec186adf".resources.eldiron."hetzner.networkInfo" = $network' > all_new.json
+
+ nixops delete --force -d eldiron
+
+ nixops import < all_new.json
+
+ rm all.json all_new.json
+
+*check that everything works*, then:
+
+ rm -rf ~/.nixops.bak
--- /dev/null
+#!/bin/bash
+
+DeploymentUuid="cef694f3-081d-11e9-b31f-0242ec186adf"
+if [ -z "$NIXOPS_CONFIG_PASS_SUBTREE_PATH" ]; then
+ echo "Please set NIXOPS_CONFIG_PASS_SUBTREE_PATH to the password-store subtree path"
+ exit 1;
+fi
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
+export NIXOPS_STATE="$(dirname $DIR)/state/eldiron.nixops"
+export NIXOPS_DEPLOYMENT="$DeploymentUuid"
+source $(dirname $(dirname $DIR))/nix_path_env
+nixops="$(nix-build --no-out-link "$(dirname $DIR)/custom_nixops.nix")/bin/nixops"
+
+TEMP=$(mktemp -d /tmp/XXXXXX-nixops-files)
+chmod go-rwx $TEMP
+
+# __noChroot: ssh-config-file requires relaxed
+export NIX_PATH="ssh-config-file=$(dirname $DIR)/ssh/config:$NIX_PATH"
+
+
+finish() {
+ rm -rf "$TEMP"
+ $nixops set-args --unset privateFiles
+}
+
+trap finish EXIT
+
+# pass cannot "just" list files in a directory without showing a tree :(
+files=$(pass ls $NIXOPS_CONFIG_PASS_SUBTREE_PATH/Nixops/files | sed -e '1d' -e 's/^.* //')
+
+for file in $files; do
+ pass show "$NIXOPS_CONFIG_PASS_SUBTREE_PATH/Nixops/files/$file" > $TEMP/$file
+done
+$nixops set-args --argstr privateFiles "$TEMP"
+
+$nixops "$@"
--- /dev/null
+#!/bin/bash
+
+DeploymentUuid="cef694f3-081d-11e9-b31f-0242ec186adf"
+if [ -z "$NIXOPS_CONFIG_PASS_SUBTREE_PATH" ]; then
+ echo "Please set NIXOPS_CONFIG_PASS_SUBTREE_PATH to the password-store subtree path"
+ exit 1;
+fi
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
+export NIXOPS_STATE="$(dirname $DIR)/state/eldiron.nixops"
+export NIXOPS_DEPLOYMENT="$DeploymentUuid"
+source $(dirname $(dirname $DIR))/nix_path_env
+nixops="$(nix-build --no-out-link "$(dirname $DIR)/custom_nixops.nix")/bin/nixops"
+
+export NIXOPS_STATE="$(dirname $DIR)/state/eldiron.nixops"
+
+if $nixops info -d $DeploymentUuid 2>/dev/null >/dev/null; then
+ cat <<EOF
+This will remove your current deployment file and recreate it!
+Continue? [y/N]
+EOF
+ read y
+ if [ "$y" = "y" -o "$y" = "Y" ]; then
+ $nixops delete --force -d $DeploymentUuid
+ else
+ echo "Aborting"
+ exit 1
+ fi
+fi
+
+deployment=$(pass show $NIXOPS_CONFIG_PASS_SUBTREE_PATH/Nixops/Deployment)
+
+echo "$deployment" | $nixops import
+
+$nixops modify -d "$DeploymentUuid" "$(dirname $DIR)/eldiron.nix"
--- /dev/null
+#!/bin/bash
+
+if [ -z "$NIXOPS_CONFIG_PASS_SUBTREE_PATH" ]; then
+ echo "Please set NIXOPS_CONFIG_PASS_SUBTREE_PATH to the password-store subtree path"
+ exit 1;
+fi
+
+if [ -z "$NIXOPS_CONFIG_PASS_SUBTREE_REMOTE" ]; then
+ echo "Please set NIXOPS_CONFIG_PASS_SUBTREE_REMOTE to the password-store subtree remote name"
+ exit 1;
+fi
+
+pass git subtree pull --prefix=$NIXOPS_CONFIG_PASS_SUBTREE_PATH $NIXOPS_CONFIG_PASS_SUBTREE_REMOTE master
--- /dev/null
+#!/bin/bash
+
+DeploymentUuid="cef694f3-081d-11e9-b31f-0242ec186adf"
+if [ -z "$NIXOPS_CONFIG_PASS_SUBTREE_PATH" ]; then
+ echo "Please set NIXOPS_CONFIG_PASS_SUBTREE_PATH to the password-store subtree path"
+ exit 1;
+fi
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
+export NIXOPS_STATE="$(dirname $DIR)/state/eldiron.nixops"
+export NIXOPS_DEPLOYMENT="$DeploymentUuid"
+source $(dirname $(dirname $DIR))/nix_path_env
+nixops="$(nix-build --no-out-link "$(dirname $DIR)/custom_nixops.nix")/bin/nixops"
+
+$nixops export | pass insert -m $NIXOPS_CONFIG_PASS_SUBTREE_PATH/Nixops/Deployment
--- /dev/null
+#!/bin/bash
+
+if [ -z "$NIXOPS_CONFIG_PASS_SUBTREE_PATH" ]; then
+ echo "Please set NIXOPS_CONFIG_PASS_SUBTREE_PATH to the password-store subtree path"
+ exit 1;
+fi
+
+if [ -z "$NIXOPS_CONFIG_PASS_SUBTREE_REMOTE" ]; then
+ echo "Please set NIXOPS_CONFIG_PASS_SUBTREE_REMOTE to the password-store subtree remote name"
+ exit 1;
+fi
+
+pass git subtree push --prefix=$NIXOPS_CONFIG_PASS_SUBTREE_PATH $NIXOPS_CONFIG_PASS_SUBTREE_REMOTE master
--- /dev/null
+#!/bin/bash
+
+set -euo pipefail
+
+RemoteRepo="gitolite@git.immae.eu:perso/Immae/Prive/Password_store/Sites"
+DeploymentUuid="cef694f3-081d-11e9-b31f-0242ec186adf"
+
+if ! which nix 2>/dev/null >/dev/null; then
+ cat <<-EOF
+ nix is needed, please install it:
+ > curl https://nixos.org/nix/install | sh
+ (or any other way handled by your distribution)
+ EOF
+ exit 1
+fi
+
+if [ "${NIX_STORE:-/nix/store}" != "/nix/store" ]; then
+ cat <<-EOF
+ Nix store outside of /nix/store is not supported
+ EOF
+ exit 1
+fi
+
+if [ -z "$NIXOPS_CONFIG_PASS_SUBTREE_REMOTE" \
+ -o -z "$NIXOPS_CONFIG_PASS_SUBTREE_PATH" ]; then
+ cat <<-EOF
+ Two environment variables are needed to setup the password store:
+ NIXOPS_CONFIG_PASS_SUBTREE_PATH : path where the subtree will be imported
+ NIXOPS_CONFIG_PASS_SUBTREE_REMOTE : remote name to give to the repository
+ EOF
+ exit 1
+fi
+
+if ! pass $NIXOPS_CONFIG_PASS_SUBTREE_PATH > /dev/null 2>/dev/null; then
+ cat <<-EOF
+ /!\ This will modify your password store to add and import a subtree
+ with the specific passwords files. Choose a path that doesn’t exist
+ yet in your password store.
+ > pass git remote add $NIXOPS_CONFIG_PASS_SUBTREE_REMOTE $RemoteRepo
+ > pass git subtree add --prefix=$NIXOPS_CONFIG_PASS_SUBTREE_PATH $NIXOPS_CONFIG_PASS_SUBTREE_REMOTE master
+ Later, you can use pull_environment and push_environment scripts to
+ update the passwords when needed
+ Continue? [y/N]
+ EOF
+ read y
+ if [ "$y" = "y" -o "$y" = "Y" ]; then
+ pass git remote add $NIXOPS_CONFIG_PASS_SUBTREE_REMOTE $RemoteRepo
+ pass git subtree add --prefix=$NIXOPS_CONFIG_PASS_SUBTREE_PATH $NIXOPS_CONFIG_PASS_SUBTREE_REMOTE master
+ else
+ echo "Aborting"
+ exit 1
+ fi
+fi
+
+# Repull it before using it, just in case
+pass git subtree pull --prefix=$NIXOPS_CONFIG_PASS_SUBTREE_PATH $NIXOPS_CONFIG_PASS_SUBTREE_REMOTE master
+
+gpg_keys=$(pass ls $NIXOPS_CONFIG_PASS_SUBTREE_PATH/Nixops/GPGKeys | sed -e "1d" | cut -d" " -f2)
+for key in $gpg_keys; do
+ content=$(pass show $NIXOPS_CONFIG_PASS_SUBTREE_PATH/Nixops/GPGKeys/$key)
+ fpr=$(echo "$content" | gpg --import-options show-only --import --with-colons | grep -e "^pub" | cut -d':' -f5)
+ gpg --list-key "$fpr" >/dev/null 2>/dev/null && imported=yes || imported=no
+ # /usr/share/doc/gnupg/DETAILS field 2
+ (echo "$content" | gpg --import-options show-only --import --with-colons |
+ grep -E '^pub:' |
+ cut -d':' -f2 |
+ grep -q '[fu]') && signed=yes || signed=no
+ if [ "$signed" = no -o "$imported" = no ] ; then
+ echo "The key for $key needs to be imported and signed (a local signature is enough)"
+ echo "$content" | gpg --import-options show-only --import
+ echo "Continue? [y/N]"
+ read y
+ if [ "$y" = "y" -o "$y" = "Y" ]; then
+ echo "$content" | gpg --import
+ gpg --expert --edit-key "$fpr" lsign quit
+ else
+ echo "Aborting"
+ exit 1
+ fi
+ fi
+done
+
+nix_group=$(stat -c %G /nix/store)
+if [ "$nix_group" = "nixbld" ]; then
+ nix_user="nixbld1"
+else
+ nix_user="$(stat -c %U /nix/store)"
+fi
+
+if [ ! -f /etc/ssh/ssh_rsa_key_nixops ]; then
+ cat <<-EOF
+ The key to access private git repositories (websites hosted by the
+ server) needs to be accessible to nix builders. It will be put in
+ /etc/ssh/ssh_rsa_key_nixops (sudo right is needed for that)
+ > pass show $NIXOPS_CONFIG_PASS_SUBTREE_PATH/Nixops/SshKey | sudo tee /etc/ssh/ssh_rsa_key_nixops > /dev/null
+ > pass show $NIXOPS_CONFIG_PASS_SUBTREE_PATH/Nixops/SshKey.pub | sudo tee /etc/ssh/ssh_rsa_key_nixops.pub > /dev/null
+ > sudo chmod u=r,go-rwx /etc/ssh/ssh_rsa_key_nixops
+ > sudo chown $nix_user:$nix_group /etc/ssh/ssh_rsa_key_nixops /etc/ssh/ssh_rsa_key_nixops.pub
+ Continue? [y/N]
+ EOF
+ read y
+ if [ "$y" = "y" -o "$y" = "Y" ]; then
+ if ! id -u $nix_user 2>/dev/null >/dev/null; then
+ echo "User $nix_user seems inexistant, did you install nix?"
+ exit 1
+ fi
+ mask=$(umask)
+ umask 0777
+ # Don’t forward it directly to tee, it would break ncurse pinentry
+ key=$(pass show $NIXOPS_CONFIG_PASS_SUBTREE_PATH/Nixops/SshKey)
+ echo "$key" | sudo tee /etc/ssh/ssh_rsa_key_nixops > /dev/null
+ sudo chmod u=r,go=- /etc/ssh/ssh_rsa_key_nixops
+ pubkey=$(pass show $NIXOPS_CONFIG_PASS_SUBTREE_PATH/Nixops/SshKey.pub)
+ echo "$pubkey" | sudo tee /etc/ssh/ssh_rsa_key_nixops.pub > /dev/null
+ sudo chmod a=r /etc/ssh/ssh_rsa_key_nixops.pub
+ sudo chown $nix_user:$nix_group /etc/ssh/ssh_rsa_key_nixops /etc/ssh/ssh_rsa_key_nixops.pub
+ umask $mask
+ else
+ echo "Aborting"
+ exit 1
+ fi
+fi
+
+if nix show-config --json | jq -e '.sandbox.value == "true"' >/dev/null; then
+ cat <<-EOF
+ There are some impure derivations in the repo currently (grep __noChroot), please put
+ sandbox = "relaxed"
+ in /etc/nix/nix.conf
+ you may also want to add
+ keep-outputs = true
+ keep-derivations = true
+ to prevent garbage collector from deleting build dependencies (they take a lot of time to build)
+ EOF
+ exit 1
+fi
+
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
+source $(dirname $(dirname $DIR))/nix_path_env
+nixops="$(nix-build --no-out-link "$(dirname $DIR)/custom_nixops.nix")/bin/nixops"
+export NIXOPS_STATE="$(dirname $DIR)/state/eldiron.nixops"
+export NIXOPS_DEPLOYMENT="$DeploymentUuid"
+
+if ! $nixops info 2>/dev/null >/dev/null; then
+ cat <<-EOF
+ Importing deployment file into nixops:
+ Continue? [y/N]
+ EOF
+ read y
+ if [ "$y" = "y" -o "$y" = "Y" ]; then
+ deployment=$(pass show $NIXOPS_CONFIG_PASS_SUBTREE_PATH/Nixops/Deployment)
+ echo "$deployment" | $nixops import
+
+ $nixops modify "$(dirname $DIR)/eldiron.nix"
+ else
+ echo "Aborting"
+ exit 1
+ fi
+fi
+
+cat <<-EOF
+ All set up.
+ Please make sure you’re using scripts/nixops_wrap when deploying
+ EOF
--- /dev/null
+Host git.immae.eu
+IdentityFile /etc/ssh/ssh_rsa_key_nixops
+StrictHostKeyChecking no
+UserKnownHostsFile /dev/null
+CheckHostIP no
--- /dev/null
+diff --git a/bitlbee.h b/bitlbee.h
+index 17ab2979..5858277e 100644
+--- a/bitlbee.h
++++ b/bitlbee.h
+@@ -121,7 +121,7 @@ extern "C" {
+ #define CONTROL_TOPIC "Welcome to the control channel. Type \2help\2 for help information."
+ #define IRCD_INFO PACKAGE " <http://www.bitlbee.org/>"
+
+-#define MAX_NICK_LENGTH 24
++#define MAX_NICK_LENGTH 99
+
+ #define HELP_FILE VARDIR "help.txt"
+ #define CONF_FILE_DEF ETCDIR "bitlbee.conf"
+diff --git a/tests/check_nick.c b/tests/check_nick.c
+index ca5e5111..909fdcc9 100644
+--- a/tests/check_nick.c
++++ b/tests/check_nick.c
+@@ -11,16 +11,16 @@
+ START_TEST(test_nick_strip){
+ int i;
+ const char *get[] = { "test:", "test", "test\n",
+- "thisisaveryveryveryverylongnick",
+- "thisisave:ryveryveryverylongnick",
++ "thisisaveryveryveryveryveryveryverylongnickthisisaveryveryveryveryveryveryverylongnickthisisaveryveryveryveryveryveryverylongnick",
++ "thisis:averyveryveryveryveryveryverylongnickthisisaveryveryveryveryveryveryverylongnickthisisaveryveryveryveryveryveryverylongnick",
+ "t::::est",
+ "test123",
+ "123test",
+ "123",
+ NULL };
+ const char *expected[] = { "test", "test", "test",
+- "thisisaveryveryveryveryl",
+- "thisisaveryveryveryveryl",
++ "thisisaveryveryveryveryveryveryverylongnickthisisaveryveryveryveryveryveryverylongnickthisisaveryve",
++ "thisisaveryveryveryveryveryveryverylongnickthisisaveryveryveryveryveryveryverylongnickthisisaveryve",
+ "test",
+ "test123",
+ "_123test",
+@@ -28,7 +28,7 @@ START_TEST(test_nick_strip){
+ NULL };
+
+ for (i = 0; get[i]; i++) {
+- char copy[60];
++ char copy[260];
+ strcpy(copy, get[i]);
+ nick_strip(NULL, copy);
+ fail_unless(strcmp(copy, expected[i]) == 0,
+@@ -53,7 +53,7 @@ END_TEST
+
+ START_TEST(test_nick_ok_notok)
+ {
+- const char *nicks[] = { "thisisaveryveryveryveryveryveryverylongnick",
++ const char *nicks[] = { "thisisaveryveryveryveryveryveryverylongnickthisisaveryveryveryveryveryveryverylongnickthisisaveryveryveryveryveryveryverylongnick",
+ "\nillegalchar", "", "nick%", "123test", NULL };
+ int i;
+
--- /dev/null
+self: super: {
+ bitlbee = super.bitlbee.overrideAttrs(old: {
+ patches = (old.patches or []) ++ [ ./bitlbee_long_nicks.patch ];
+ });
+}
--- /dev/null
+self: super: {
+ bundix = super.bundix.overrideAttrs (old: {
+ preBuild = (old.preBuild or "") + ''
+ sed -i -e "/case obj/a\ when nil\n nil" lib/bundix/nixer.rb
+ '';
+ });
+}
--- /dev/null
+self: super: rec {
+ mariadb = mariadbPAM;
+ mariadbPAM = super.mariadb.overrideAttrs(old: {
+ cmakeFlags = old.cmakeFlags ++ [ "-DWITH_AUTHENTICATION_PAM=ON" ];
+ buildInputs = old.buildInputs ++ [ self.pam ];
+ }) // (with super.mariadb; {
+ inherit client;
+ servier = super.mariadb;
+ inherit connector-c;
+ inherit galera;
+ });
+}
--- /dev/null
+self: super: rec {
+ postgresql_11_custom = super.postgresql_11.overrideAttrs(old: {
+ # datadir in /var/lib/postgresql is named after psqlSchema
+ passthru = old.passthru // { psqlSchema = "11.0"; };
+ configureFlags = old.configureFlags ++ [ "--with-pam" ];
+ buildInputs = (old.buildInputs or []) ++ [ self.pam ];
+ patches = old.patches ++ [
+ ./postgresql_run_socket_path.patch
+ ];
+ });
+}
--- /dev/null
+diff -Naur postgresql-9.2.0.sockets/src/include/pg_config_manual.h postgresql-9.2.0/src/include/pg_config_manual.h
+--- postgresql-9.2.0.sockets/src/include/pg_config_manual.h 2012-09-06 17:26:17.000000000 -0400
++++ postgresql-9.2.0/src/include/pg_config_manual.h 2012-09-06 18:13:18.183092471 -0400
+@@ -144,7 +144,7 @@
+ * here's where to twiddle it. You can also override this at runtime
+ * with the postmaster's -k switch.
+ */
+-#define DEFAULT_PGSOCKET_DIR "/tmp"
++#define DEFAULT_PGSOCKET_DIR "/run/postgresql"
+
+ /*
+ * The random() function is expected to yield values between 0 and
--- /dev/null
+{
+ mylibs = self: super: { mylibs = import ../libs.nix { pkgs = self; }; };
+ mypkgs = self: super: import ../pkgs { pkgs = self; };
+
+ bitlbee = import ./bitlbee;
+ bundix = import ./bundix;
+ dwm = import ./dwm;
+ elinks = import ./elinks;
+ gitweb = import ./gitweb;
+ goaccess = import ./goaccess;
+ kanboard = import ./kanboard;
+ ldapvi = import ./ldapvi;
+ lesspipe = import ./lesspipe;
+ mysql = import ./databases/mysql;
+ neomutt = import ./neomutt;
+ nixops = import ./nixops;
+ pass = import ./pass;
+ pelican = import ./pelican;
+ postgresql = import ./databases/postgresql;
+ profanity = import ./profanity;
+ sc-im = import ./sc-im;
+ shaarli = import ./shaarli;
+ slrn = import ./slrn;
+ taskwarrior = import ./taskwarrior;
+ vit = import ./vit;
+ weboob = import ./weboob;
+ weechat = import ./weechat;
+ ympd = import ./ympd;
+}
+// import ./python-packages
+// import ./environments
--- /dev/null
+self: super: {
+ dwm = super.dwm.overrideAttrs(old: rec {
+ postPatch = ''
+ cp ${./dwm_config.h} ./config.h
+ '';
+ });
+}
--- /dev/null
+/* See LICENSE file for copyright and license details. */
+
+/* appearance */
+static const unsigned int borderpx = 1; /* border pixel of windows */
+static const unsigned int snap = 32; /* snap pixel */
+static const int showbar = 1; /* 0 means no bar */
+static const int topbar = 1; /* 0 means bottom bar */
+static const char *fonts[] = { "monospace:size=10" };
+static const char dmenufont[] = "monospace:size=10";
+static const char col_gray1[] = "#222222";
+static const char col_gray2[] = "#444444";
+static const char col_gray3[] = "#bbbbbb";
+static const char col_gray4[] = "#eeeeee";
+static const char col_cyan[] = "#005577";
+static const char *colors[][3] = {
+ /* fg bg border */
+ [SchemeNorm] = { col_gray3, col_gray1, col_gray2 },
+ [SchemeSel] = { col_gray4, col_cyan, col_cyan },
+};
+
+/* tagging */
+static const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
+
+static const Rule rules[] = {
+ /* xprop(1):
+ * WM_CLASS(STRING) = instance, class
+ * WM_NAME(STRING) = title
+ */
+ /* class instance title tags mask isfloating monitor */
+ { "Nextcloud", NULL, NULL, 9 << 8, 0, -1 },
+};
+
+/* layout(s) */
+static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */
+static const int nmaster = 1; /* number of clients in master area */
+static const int resizehints = 1; /* 1 means respect size hints in tiled resizals */
+
+static const Layout layouts[] = {
+ /* symbol arrange function */
+ { "[M]", monocle }, /* first entry is default */
+ { "[]=", tile },
+ { "><>", NULL }, /* no layout function means floating behavior */
+};
+
+/* key definitions */
+#define MODKEY Mod1Mask
+#define TAGKEYS(KEY,TAG) \
+ { MODKEY, KEY, view, {.ui = 1 << TAG} }, \
+ { MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \
+ { MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \
+ { MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} },
+
+/* helper for spawning shell commands in the pre dwm-5.0 fashion */
+#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }
+
+/* commands */
+static char dmenumon[2] = "0"; /* component of dmenucmd, manipulated in spawn() */
+static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont, "-nb", col_gray1, "-nf", col_gray3, "-sb", col_cyan, "-sf", col_gray4, NULL };
+static const char *termcmd[] = { "st", NULL };
+
+static Key keys[] = {
+ /* modifier key function argument */
+ { MODKEY, XK_p, spawn, {.v = dmenucmd } },
+ { MODKEY, XK_t, spawn, {.v = termcmd } },
+ { MODKEY, XK_Tab, view, {0} },
+ { MODKEY|ShiftMask, XK_c, killclient, {0} },
+ { MODKEY, XK_j, focusstack, {.i = +1 } },
+ { MODKEY, XK_k, focusstack, {.i = -1 } },
+ { MODKEY, XK_Return, zoom, {0} },
+ TAGKEYS( XK_1, 0)
+ TAGKEYS( XK_2, 1)
+ TAGKEYS( XK_3, 2)
+ TAGKEYS( XK_4, 3)
+ TAGKEYS( XK_5, 4)
+ TAGKEYS( XK_6, 5)
+ TAGKEYS( XK_7, 6)
+ TAGKEYS( XK_8, 7)
+ TAGKEYS( XK_9, 8)
+ { MODKEY|ShiftMask, XK_q, quit, {0} },
+};
+
+/* button definitions */
+/* click can be ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */
+static Button buttons[] = {
+ /* click event mask button function argument */
+ { ClkLtSymbol, 0, Button1, setlayout, {0} },
+ { ClkLtSymbol, 0, Button3, setlayout, {.v = &layouts[2]} },
+ { ClkWinTitle, 0, Button2, zoom, {0} },
+ { ClkStatusText, 0, Button2, spawn, {.v = termcmd } },
+ { ClkClientWin, MODKEY, Button1, movemouse, {0} },
+ { ClkClientWin, MODKEY, Button2, togglefloating, {0} },
+ { ClkClientWin, MODKEY, Button3, resizemouse, {0} },
+ { ClkTagBar, 0, Button1, view, {0} },
+ { ClkTagBar, 0, Button3, toggleview, {0} },
+ { ClkTagBar, MODKEY, Button1, tag, {0} },
+ { ClkTagBar, MODKEY, Button3, toggletag, {0} },
+};
+
--- /dev/null
+self: super: {
+ elinks = super.elinks.overrideAttrs (old:
+ self.mylibs.fetchedGithub ./elinks.json // rec {
+ preConfigure = ''sh autogen.sh'';
+ buildInputs = old.buildInputs ++ (with self; [ gettext automake autoconf ]);
+ configureFlags = [
+ "--disable-smb" "--without-x" "--enable-cgi"
+ "--enable-leds" "--enable-256-colors"
+ "--enable-html-highlight" "--with-zlib"
+ ];
+ patches = [];
+ }
+ );
+}
--- /dev/null
+{
+ "tag": "f86be65-master",
+ "meta": {
+ "name": "elinks",
+ "url": "https://github.com/nabetaro/elinks",
+ "branch": "master"
+ },
+ "github": {
+ "owner": "nabetaro",
+ "repo": "elinks",
+ "rev": "f86be659718c0cd0a67f88b42f07044c23d0d028",
+ "sha256": "1jxb7xgawcjkb3gw4gqyw26g02709wwdbhyczfckh3l4njxhy14m",
+ "fetchSubmodules": true
+ }
+}
--- /dev/null
+{
+ immae-eu = import ./immae-eu.nix;
+}
--- /dev/null
+self: super: with self;
+let
+ # https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/setup.sh
+ # https://github.com/NixOS/nixpkgs/blob/master/doc/languages-frameworks
+ paths = [
+ # archives
+ lzo unzip bzip2 p7zip xz
+ # unrar is unfree
+
+ # backups
+ duply
+
+ # calendar/contacts
+ abook khard khal cadaver vdirsyncer pal
+
+ # computing
+ boinctui
+
+ # cryptocurrencies
+ cardano sia monero
+ xmr-stak
+ solc
+ iota-cli-app
+
+ # debugging
+ rr valgrind netcat-gnu strace
+
+ # documentations
+ unicodeDoc
+
+ # e-mails
+ muttprint mutt-ics
+ notmuch-python2 notmuch-python3 notmuch-vim
+ neomutt mairix notmuch
+ bogofilter fetchmail
+
+ # git
+ vcsh gitRepo gitAndTools.stgit tig
+
+ # graphical tools
+ nextcloud-client firefox
+ dwm dmenu st
+
+ # images
+ feh imagemagick tiv graphicsmagick
+
+ # internet browsing
+ w3m lynx links elinks browsh weboob urlview googler urlwatch
+
+ # less
+ python3Packages.pygments lesspipe highlight sourceHighlight
+
+ # monitoring
+ cnagios mtop pg_activity nagios-cli mtr
+ iftop htop iotop iperf
+ goaccess
+ # nagnu
+
+ # messaging/forums/news
+ flrn slrn
+ telegram-cli telegram-history-dump telegramircd
+ weechat profanity
+ newsboat irssi
+
+ # nix
+ mylibs.yarn2nixPackage.yarn2nix
+ nixops nix-prefetch-scripts nix-generate-from-cpan
+ nix-zsh-completions bundix nodePackages.bower2nix
+ nodePackages.node2nix
+ # (nixos {}).nixos-generate-config
+ # (nixos {}).nixos-install
+ # (nixos {}).nixos-enter
+ # (nixos {}).manual.manpages
+
+ # note taking
+ note terminal-velocity jrnl
+
+ # office
+ sc-im ranger
+ genius bc
+ ledger
+ tmux
+ rtorrent
+ ldapvi
+
+ # password management
+ pass apg pwgen
+
+ # pdf
+ pdftk poppler_utils
+
+ # programming
+ pelican emacs26-nox ctags
+ wdiff
+
+ # security
+ keybase
+
+ # todolist/time management
+ taskwarrior vit timewarrior
+
+ # video/music
+ youtube-dl ncmpc ncmpcpp ffmpeg
+
+ # other tools
+ pgloader s3cmd lftp jq cpulimit libxslt
+ ];
+in
+{
+ myEnvironments.immae-eu = buildEnv {
+ name = "immae-eu-packages";
+ inherit paths;
+ pathsToLink = [ "/bin" "/etc" "/include" "/lib" "/libexec" "/share"];
+ extraOutputsToInstall = [ "bin" "man" "doc" "info" ];
+ };
+}
--- /dev/null
+self: super: {
+ gitweb = super.gitweb.overrideAttrs(old: {
+ installPhase = old.installPhase + ''
+ cp -r ${./theme} $out/gitweb-theme;
+ '';
+ });
+}
--- /dev/null
+/* Reset
+------------------------------------------------------------------------- */
+
+/* Based on http://meyerweb.com/eric/tools/css/reset/ */
+/* v1.0 | 20080212 */
+
+html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p,
+blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em,
+font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b,
+u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table,
+caption, tbody, tfoot, thead, tr, th, td {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ outline: 0;
+ font-size: 100%;
+ vertical-align: baseline;
+ background: transparent;
+}
+
+ol, ul { list-style: none; }
+
+blockquote, q { quotes: none; }
+
+blockquote:before, blockquote:after,
+q:before, q:after {
+ content: '';
+ content: none;
+}
+
+:focus { outline: 0; }
+
+ins { text-decoration: none; }
+
+del { text-decoration: line-through; }
+
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
+
+a { outline: none; }
+
+/* General
+---------------------------------------------------------------------------- */
+
+html {
+ position: relative;
+ min-height: 100%;
+}
+
+body {
+ font: 13px Helvetica,arial,freesans,clean,sans-serif;
+ line-height: 1.4;
+ margin: 0 0 105px;
+ background-color: #fff;
+ color: #000000;
+}
+
+/* Monospaced Fonts */
+.sha1, .mode, .diff_tree .list, .pre, .diff, .patchset {
+ font-family: 'Consolas','Bitstream Vera Sans Mono',monospace;
+}
+
+a:link, a:visited {
+ color: #4183C4;
+ text-decoration: none;
+}
+
+a:hover {
+ text-decoration: underline;
+}
+
+td.list a[href*='tree'], td.list a[href*='blob'] {
+ padding-left: 20px;
+ display: block;
+ float: left;
+ height: 16px;
+ line-height: 16px;
+}
+
+td.list a[href*='tree'] {
+ background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABq0lEQVQ4y8WTu4oUQRSGv+rtGVuxhwVFdFEEE2c3d0HYTEMTn8DEVxADQTDUF9DMwMxQMBMx8AEWzRQ3cBHd9TI91+2urjq/QbczY2IygSep4nD+79yqnCRWsYQVbWVACvDh5ZXdrLe15dwyT1TjT/sxFFeB6i+VA2B6+cb7kAI4Jf0LO087zjlQI8Y5Qvnj0sHug321XoC1bk+K9eHk6+s7wPMUgKAS88eqb4+Jfg2SHs7lZBvX2Nh+2EUCDGSAcMnJsx9f7NxfAGqXyDzRd5EJO/pMPT1gcviGTnYOVIN5pAAE8v7dLrKL8xnglFk4ws9Afko9HpH3b5Gd2mwb/lOBmgrSdYhJugDUCenxM6xv3p4HCsP8F0LxCsUhCkMURihOyM7fg0osASTFEpu9a4LjGIUCqwcoDiEUrX+E4hRUQb20RiokC1j9vckUhygU7X3QZh7NAVKYL7YBeMkRUfjVCotF2XGIwnghtrJpMywB5G0QZj9P1JNujuWJ1AHLQadRrACPkuZ0SSSWpeStWgDK6tHek5vbiOs48n++XQHurcf0rFng//6NvwG+iB9/4duaTgAAAABJRU5ErkJgggo=) center left no-repeat;
+}
+
+td.list a[href*='blob'] {
+ background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAA6ElEQVQoFQXBMW5TQRgGwNnHnoE0QbiCjoIooUmTU3AuS1BwIoTSUdJBigg3GCWOg9/++zHTop078wIAsPMrE4SL5/1aIyMjIyMjz/m0tbFECFdrPeaQQw75mz/5nZH7fN7aWILmauSYfznmmIfss8vIUx7zZWsTTXM5vpWvTk5Wq9VHQP/gtgOLa0Qpw940vAQdaG6thpOhlOkG0AEuAVGmEkAH+G4YSikxXQM6wDsAMRFAB/ihDNNUmN4DOsAbBAEAdICfpmmaAt4COoj2GgCASbIkZh1NAACznhQt2itnFgAAlF3u/gMDtJXPzQxoswAAAABJRU5ErkJgggo=) center left no-repeat;
+}
+
+i {
+ font-style: normal;
+}
+
+td, th {
+ padding: 5px;
+}
+
+.page_nav br {
+ display: none;
+}
+
+/* Page Header
+---------------------------------------------------------------------------- */
+
+.page_header {
+ height: 50px;
+ line-height: 50px;
+ position: relative;
+ padding: 0 27px;
+ margin-bottom: 20px;
+ font-size: 20px;
+ font-family: Helvetica, Arial, Freesans, Clean, sans-serif;
+ background: #FFFFFF; /* old browsers */
+ background: -moz-linear-gradient(top, #FFFFFF 0%, #F5F5F5 100%); /* firefox */
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#FFFFFF), color-stop(100%,#F5F5F5)); /* webkit */
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#FFFFFF', endColorstr='#F5F5F5',GradientType=0 ); /* ie */
+ background: -o-linear-gradient(top, #FFFFFF 0%, #F5F5F5 100%);
+ border-bottom: 1px solid #dfdfdf;
+}
+
+.page_header a:link, .page_header a:visited {
+ color: #4183C4;
+ text-decoration: none;
+ padding: 3px;
+ font-weight: bold;
+}
+
+.page_header a:hover {
+ font-weight: bold;
+ padding: 3px;
+ text-decoration: underline;
+}
+
+.page_header a:first-child {
+ background: transparent;
+}
+
+.page_header img.logo {
+ position: relative;
+ top: 7px;
+ margin-right: 5px;
+}
+
+/* Page Footer
+---------------------------------------------------------------------------- */
+
+.page_footer {
+ position: absolute;
+ left: 0;
+ bottom: 0;
+ width: 100%;
+ height: 80px;
+ line-height: 80px;
+ margin-top: 15px;
+ background: #f1f1f1;
+ border-top: 2px solid #ddd;
+ border-bottom: 1px solid #ddd;
+}
+
+.page_footer_text {
+ color: #666;
+ display: inline;
+ float: left;
+ margin-left: 25px;
+ width: 80%;
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+}
+
+a.rss_logo {
+ float: right;
+ padding: 3px 1px;
+ width: 35px;
+ line-height: 10px;
+ border: 1px solid;
+ border-color: #fcc7a5 #7d3302 #3e1a01 #ff954e;
+ color: #ffffff;
+ background-color: #ff6600;
+ font-weight: bold;
+ font-family: sans-serif;
+ font-size: 80%;
+ text-align: center;
+ text-decoration: none;
+ margin-top: 30px;
+ margin-left: 5px;
+}
+
+a.rss_logo:hover {
+ background-color: #ee5500;
+}
+
+.rss_logo {
+ margin-right: 25px;
+ background: yellow;
+}
+
+.rss_logo:last-child {
+ margin-right: 5px;
+}
+
+/* Index include
+---------------------------------------------------------------------------- */
+
+.index_include {
+ width: 95%;
+ margin: 0 auto 15px;
+ background: -moz-linear-gradient(center top , #FFFFFF 0%, #F5F5F5 100%) repeat scroll 0 0 transparent;
+ border: 1px solid #DFDFDF;
+ padding: 8px;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+/* Elements
+---------------------------------------------------------------------------- */
+
+.project_list,
+.shortlog,
+.tree,
+.commit_search,
+.history {
+ width: 95%;
+ margin: 0 auto 15px auto;
+ border: 1px solid #d8d8d8;
+ -moz-box-shadow: 0 0 3px rgba(0,0,0,0.2);
+ -webkit-box-shadow: 0 0 3px rgba(0,0,0,0.2);
+ box-shadow: 0 0 3px rgba(0,0,0,0.2);
+}
+
+.project_list th,
+.shortlog th,
+.tree th,
+.commit_search th {
+ color: #afafaf;
+ font-weight: normal;
+}
+
+.project_list th {
+ font-weight: bold;
+}
+
+.project_list tr,
+.shortlog tr,
+.tree tr,
+.commit_search tr {
+ background: #eaeaea;
+ height: 2.5em;
+ text-align: left;
+ color: #545454;
+}
+
+.project_list tr.dark, .project_list tr.light,
+.shortlog tr.dark, .shortlog tr.light,
+.tree tr.dark, .tree tr.light,
+.commit_search tr.dark, .commit_search tr.light,
+.history tr.dark, .history tr.light,
+.heads tr.dark, .heads tr.light {
+ background: #F9F9F9; /* old browsers */
+ background: -moz-linear-gradient(top, #F9F9F9 0%, #EFEFEF 100%); /* firefox */
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#F9F9F9), color-stop(100%,#EFEFEF)); /* webkit */
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#F9F9F9', endColorstr='#EFEFEF',GradientType=0 ); /* ie */
+ background: -o-linear-gradient(top, #F9F9F9 0%, #EFEFEF 100%);
+ height: 2.5em;
+ border-bottom: 1px solid #e1e1e1;
+}
+
+th .header {
+ background: transparent;
+ border: 0;
+ padding: 0;
+ font-weight: bold;
+}
+
+.tree {
+ width: 100%;
+ margin: 0;
+}
+
+.projsearch {
+ position: absolute;
+ right: 4%;
+ top: 15px;
+}
+
+.projsearch a {
+ display: none;
+}
+
+.commit_search {
+ background: #eaeaea;
+}
+
+.page_nav,
+.list_head,
+.page_path,
+.search {
+ width: 94%;
+ background: #eaeaea;
+ color: #545454;
+ border: 1px solid #d8d8d8;
+ padding: 5px;
+ margin: 0 auto 15px auto;
+}
+
+.history {
+ background: #eaeaea;
+}
+
+.title {
+ margin: 0 auto 15px auto;
+ padding: 5px;
+ width: 95%;
+}
+
+.readme {
+ background: #eaf2f5;
+ border: 1px solid #bedce7;
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ margin: 0 auto 15px auto;
+ padding: 15px;
+ width: 95%;
+}
+
+.readme h1 {
+ display: block;
+ font-size: 2em;
+ font-weight: bold;
+ margin-bottom: 0.67em;
+ margin-top: 0;
+}
+
+.readme h2 {
+ font-size: 1.5em;
+ font-weight: bold;
+ margin-bottom: 0.83em;
+}
+
+
+.readme h3 {
+ font-size: 1.17em;
+ font-weight: bold;
+ margin-bottom: 1em;
+}
+
+.readme p {
+ margin-bottom: 1em;
+}
+
+.readme ul {
+ list-style: disc;
+ margin-bottom: 1em;
+ margin-left: 1.5em;
+}
+
+.readme ul ul {
+ margin-bottom: 0;
+}
+
+.readme ol {
+ list-style: decimal;
+ margin-bottom: 1em;
+ margin-left: 1.5em;
+}
+
+.readme ol ol {
+ margin-bottom: 0;
+}
+
+.readme pre {
+ font-family: monospace;
+ margin: 1em 0;
+ white-space: pre;
+}
+
+.readme tt, .readme code, .readme kbd, .readme samp {
+ font-family: monospace;
+}
+
+.readme blockquote {
+ margin: 1em;
+}
+
+.projects_list,
+.tags {
+ width: 95%;
+ background: #f0f0f0;
+ color: #545454;
+ border: 1px solid #d8d8d8;
+ padding: 5px;
+ margin: 0 auto 15px auto;
+}
+
+.heads {
+ width: 95%;
+ color: #545454;
+ border: 1px solid #d8d8d8;
+ padding: 5px;
+ margin: 0 auto 15px auto;
+}
+
+.header {
+ width: 94%;
+ margin: 0 auto 15px auto;
+ background: #eaf2f5;
+ border: 1px solid #bedce7;
+ padding: 5px;
+}
+
+.header .age {
+ float: left;
+ color: #000;
+ font-weight: bold;
+ width: 10em;
+}
+
+.title_text {
+ width: 94%;
+ background: #eaf2f5;
+ border: 1px solid #bedce7;
+ padding: 5px;
+ margin: 0 auto 0 auto;
+}
+
+.log_body {
+ width: 94%;
+ background: #eaf2f5;
+ border: 1px solid #bedce7;
+ border-top: 0;
+ padding: 5px;
+ margin: 0 auto 15px auto;
+}
+
+.page_body {
+ line-height: 1.4em;
+ width: 94%;
+ background: #f8f8f8;
+ border: 1px solid #d8d8d8;
+ padding: 5px;
+ margin: 15px auto 15px auto;
+}
+
+.diff_tree {
+ width: 95%;
+ background: #f0f0f0;
+ border: 1px solid #d8d8d8;
+ padding: 5px;
+ margin: 0 auto 15px auto;
+}
+
+.page_body > .list_head {
+ width: 98.5%;
+}
+
+.page_body > .diff_tree {
+ width: 99.5%;
+}
+
+.patch > .header {
+ width: 99%;
+}
+
+.author .avatar,
+.author_date .avatar {
+ position: relative;
+ top: 3px;
+}
+
+.object_header .avatar {
+ border: 1px solid #D8D8D8;
+ float: right;
+}
+
+.object_header td,
+.object_header th {
+ vertical-align: top;
+}
+
+/* Refs
+---------------------------------------------------------------------------- */
+
+span.refs span {
+ color: #707070;
+ display: inline-block;
+ margin: 0;
+ background-color: #eee;
+ border: 1px solid #ccc;
+ border-radius: 3px;
+ height: 18px;
+ padding: 0 6px;
+ text-overflow: ellipsis;
+}
+
+span.refs span.ref {
+ color: #707070;
+ display: inline-block;
+ margin: 0;
+ background-color: #c4c4ff;
+ border: 1px solid #7878ff;
+ border-radius: 3px;
+ height: 18px;
+ padding: 0 6px;
+ text-overflow: ellipsis;
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3gIKFSUnpolg7AAAAHJQTFRFAAAAVVWqZmbMVVXVYGDgbW3td3fuc3PzdHT0cHD1d3f6dHT6dnb7dHT7dnb8dnb8dnb9d3f9dnb+eHj+d3f+eHj+d3f+d3f+d3f+eHj+d3f+eHj+d3f+eHj+d3f+d3f+eHj+d3f+d3f+d3f+eHj/////V9oQhQAAACR0Uk5TAAIEBQcNDhMVGCotNTZAT217i5CgobvExtjZ4eLr7vP09ff7uqQ6cgAAAAFiS0dEJcMByQ8AAABUSURBVBjTpc43AoAwDENRh95bgNBM1f3PyOpslD++RSJ61YgH5M2IbIkn4GocSR1MZVBL4t2n4FgkbaxI8Sqph041WknZCWAIrcmEUbpf3lNe0N9u59YFYHnZ78gAAAAASUVORK5CYII=);
+ background-repeat: no-repeat;
+ padding-left: 18px;
+}
+
+span.refs span.tag {
+ color: #707070;
+ display: inline-block;
+ margin: 0;
+ background-color: #ffffab;
+ border: 1px solid #d9d93b;
+ border-radius: 3px;
+ height: 18px;
+ padding: 0 6px;
+ text-overflow: ellipsis;
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3gIKFSUZZ+h9RwAAAGZQTFRFAAAAtrYkwMBAwMBAx8c4yso11NQ71NQ51dU52Ng71tY519c719c719c62Ng719c719c62Ng72dk62Ng62Ng72Ng72dk62Ng72Ng62dk62dk72dk62Ng62dk72Ng72Ng72dk7////ou/AnQAAACB0Uk5TAAYHCxESLjRCWWlqa4uNkpissbrO19jc3ufs8vf6/f7atAU2AAAAAWJLR0QhxGwNFgAAAF1JREFUGFeNy0cOgCAABVGw94rY5d//lC7omhhn+ZIh5Gf1xPk0Zi5dAABROIQjSU/fsAXhDkCUljAv8jW2wlQpaixpo4Nj+dtatVpjkSJjLNaizRVpvhBCu/4h391jzw1lU12Z7wAAAABJRU5ErkJggg==);
+ background-repeat: no-repeat;
+ padding-left: 18px;
+}
+
+span.refs span.head {
+ color: #707070;
+ display: inline-block;
+ margin: 0;
+ background-color: #c4ffc4;
+ border: 1px solid #78ff78;
+ border-radius: 3px;
+ height: 18px;
+ padding: 0 6px;
+ text-overflow: ellipsis;
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3gIKFSYDsafX/gAAAUpJREFUOMvVkjFLA0EQhd/s7l06MSCihbV/wC5/QBDEIFYWprRIIQQJFqKFQi4kUbBQsFSwtrUQLQULUTBFLCzVIgimCXe7z0q5yIWcqfRVwzDzMTNvgL8mSUqWw3JOtFQJdsIwLDYyjdYgkEmkazl2oVtQWk36nn8AYBYASmFpxmizGtnoqO7Vb+M9KglEkASdpWU872nvVCiPRpuTnz2JIHGyqX3d0kZfR1G0Ht+g/do+FIhOBbLW3n/FNb/28D0puZ+dyL44ur1UoH5yzt2JyIj6UGdDgwrPhYzSagNEszJaeU/lWlylbmnaeGZZICsAppxzi6nt73HK85oQCMknOuarpno+FIjglVjZDXaCS2yDv3rIHlCb88FY0BlUl3hs7ektkhckb5DFWhoz+n12zr7ZPLpYUqLm0oBMn8NUzLhpAgjpWMS/1CcSJ3ykD7Rk1QAAAABJRU5ErkJggg==);
+ background-repeat: no-repeat;
+ padding-left: 18px;
+}
+
+span.refs a {
+ color: #4e4e4e;
+ font: 11px "Bitstream Vera Sans Mono", "DejaVu Sans Mono", Monaco, monospace;
+ line-height: 18px;
+}
+
+/* Diffs
+---------------------------------------------------------------------------- */
+
+div.diff.to_file a.path,
+div.diff.to_file {
+ color: #007000;
+}
+
+div.diff.from_file a.path,
+div.diff.from_file {
+ color: #aa0000;
+}
+
+.patch .header {
+ margin: 0;
+}
+
+.patchset {
+ overflow-x: auto;
+ overflow-y: hidden;
+}
+
+.chunk_header {
+ background: #eaf2f5;
+ color: #999;
+}
+
+.rem {
+ background: #ffdddd;
+}
+.rem .marked {
+ background: #ffaaaa;
+}
+.add {
+ background: #ddffdd;
+}
+.add .marked {
+ background: #7dff7d;
+}
+
+.extended_header {
+ width: 99.5%;
+}
+
+div.chunk_block {
+ overflow: hidden;
+}
+
+div.chunk_block div.old {
+ float: left;
+ width: 50%;
+ overflow: hidden;
+ border-right: 5px solid #EAF2F5;
+}
+
+div.chunk_block.rem,
+div.chunk_block.add {
+ background: transparent;
+}
+
+div.chunk_block div.old .add,
+div.chunk_block div.old .rem {
+ padding-right: 3px;
+}
+
+div.chunk_block div.new .add,
+div.chunk_block div.new .rem {
+ padding-left: 3px;
+}
+
+div.chunk_block div.new {
+ margin-left: 50%;
+ width: 50%;
+ border-left: 5px solid #EAF2F5;
+}
+
+/* Category
+---------------------------------------------------------------------------- */
+
+td.category {
+ background: #E6F1F6; /* old browsers */
+ background: -moz-linear-gradient(top, #C8D8E7 0%, #E6F1F3 100%); /* firefox */
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#C8D8E7), color-stop(100%,#E6F1F3)); /* webkit */
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#C8D8E7', endColorstr='#E6F1F3',GradientType=0 ); /* ie */
+ background: -o-linear-gradient(top, #C8D8E7 0%, #E6F1F3 100%);
+ font-weight: bold;
+ border-bottom: 1px solid #D1D1D1;
+ border-top: 1px solid #D1D1D1;
+}
+
+/* Age
+---------------------------------------------------------------------------- */
+
+/* noage: "No commits" */
+.project_list td.noage {
+ color: #cdcdcd;
+}
+
+/* age2: 60*60*24*2 <= age */
+.project_list td.age2, .blame td.age2 {
+ color: #545454;
+}
+
+/* age1: 60*60*2 <= age < 60*60*24*2 */
+.project_list td.age1 {
+ color: #009900;
+}
+
+/* age0: age < 60*60*2 */
+.project_list td.age0 {
+ color: #009900;
+ font-weight: bold;
+}
+
+/* File status
+---------------------------------------------------------------------------- */
+
+.diff_tree span.file_status.new {
+ color: #008000;
+}
+
+table.diff_tree span.file_status.deleted {
+ color: #c00000;
+}
+
+table.diff_tree span.file_status.moved,
+table.diff_tree span.file_status.mode_chnge {
+ color: #545454;
+}
+
+table.diff_tree span.file_status.copied {
+ color: #70a070;
+}
+
+span.cntrl {
+ border: dashed #aaaaaa;
+ border-width: 1px;
+ padding: 0px 2px 0px 2px;
+ margin: 0px 2px 0px 2px;
+}
+
+span.match {
+ background: #aaffaa;
+ color: #000;
+}
+
+td.error {
+ color: red;
+ background: yellow;
+}
+
+/* blob view */
+
+td.pre, div.pre, div.diff {
+ white-space: pre-wrap;
+}
+
+/* JavaScript-based timezone manipulation */
+
+.popup { /* timezone selection UI */
+ position: absolute;
+ /* "top: 0; right: 0;" would be better, if not for bugs in browsers */
+ top: 0; left: 0;
+ border: 1px solid #d8d8d8;
+ padding: 2px;
+ background-color: #f0f0f0;
+ font-style: normal;
+ color: #545454;
+ cursor: auto;
+}
+
+.close-button { /* close timezone selection UI without selecting */
+ /* float doesn't work within absolutely positioned container,
+ * if width of container is not set explicitly */
+ /* float: right; */
+ position: absolute;
+ top: 0px; right: 0px;
+ border: 1px solid #ffaaaa;
+ margin: 1px 1px 1px 1px;
+ padding-bottom: 2px;
+ width: 12px;
+ height: 10px;
+ font-size: 9px;
+ font-weight: bold;
+ text-align: center;
+ background-color: #ffdddd;
+ cursor: pointer;
+}
+
+/* Style definition generated by highlight 2.4.5, http://www.andre-simon.de/ */
+
+/* Highlighting theme definition: */
+
+.num { color:#6ecf36; }
+.esc { color:#ff00ff; }
+.str { color:#ff00d3; background-color: #edc9ec }
+.dstr { color:#818100; }
+.slc { color:#838183; font-style:italic; }
+.com { color:#838183; font-style:italic; }
+.dir { color:#008200; }
+.sym { color:#000000; }
+.line { color:#555555; }
+.kwa { color:#666666; font-weight:bold; }
+.kwb { color:#6b3099; }
+.kwc { color:#d4663d; }
+.kwd { color:#2928ff; }
+
+/**** Styles supplémentaires *****/
+
+.readme div.toc {
+ float: right;
+ border: 1px solid black;
+ background-color: white;
+}
+.readme div.toc span.toctitle {
+ display: inline-block;
+ width: 100%;
+ text-align: center;
+ font-weight: bold;
+}
+
+.readme table {
+ background-color: white;
+}
+
+.readme table thead tr {
+ background-color: #ccc;
+}
+
+.readme table tbody tr:nth-child(2n) {
+ background-color: #f8f8f8;
+}
+
+.readme table td, .readme table th {
+ border: 1px solid black;
+}
--- /dev/null
+function include(filename, onload) {
+ var head = document.getElementsByTagName('head')[0];
+ var script = document.createElement('script');
+ script.src = filename;
+ script.type = 'text/javascript';
+ script.onload = script.onreadystatechange = function() {
+ if (script.readyState) {
+ if (script.readyState === 'complete' || script.readyState === 'loaded') {
+ script.onreadystatechange = null;
+ onload();
+ }
+ }
+ else {
+ onload();
+ }
+ }
+ head.appendChild(script);
+}
+
+include('static/gitweb.js', function() {});
+include('//code.jquery.com/jquery-3.1.0.min.js', function() {
+ $("div.title").each(function(index, element) {
+ if ($(element).text() === "readme" || $(element).text() === " ") {
+ $(element).hide();
+ }
+ });
+});
--- /dev/null
+self: super: {
+ goaccess = super.goaccess.overrideAttrs(old: rec {
+ name = "goaccess-${version}";
+ version = "1.3";
+ src = self.fetchurl {
+ url = "https://tar.goaccess.io/${name}.tar.gz";
+ sha256 = "16vv3pj7pbraq173wlxa89jjsd279004j4kgzlrsk1dz4if5qxwc";
+ };
+ configureFlags = old.configureFlags ++ [ "--enable-tcb=btree" ];
+ buildInputs = old.buildInputs ++ [ self.tokyocabinet self.bzip2 ];
+ });
+
+}
--- /dev/null
+self: super: {
+ kanboard = { kanboard_config ? "/etc/kanboard/config.php" }:
+ super.kanboard.overrideAttrs(old: rec {
+ name = "kanboard-${version}";
+ version = "1.2.9";
+ src = self.fetchFromGitHub {
+ owner = "kanboard";
+ repo = "kanboard";
+ rev = "c4152316b14936556edf3bcc4d11f16ba31b8ae7";
+ sha256 = "18bn9zhyfc5x28hwcxss7chdq7c8rshc8jxgai65i5l68iwhvjg7";
+ };
+ installPhase = ''
+ cp -a . $out
+ ln -s ${kanboard_config} $out/config.php
+ mv $out/data $out/dataold
+ '';
+ });
+}
--- /dev/null
+self: super: {
+ ldapvi = super.ldapvi.overrideAttrs (old: self.mylibs.fetchedGit ./ldapvi.json);
+}
--- /dev/null
+{
+ "tag": "f1d42ba-master",
+ "meta": {
+ "name": "ldapvi",
+ "url": "http://www.lichteblau.com/git/ldapvi.git",
+ "branch": "master"
+ },
+ "git": {
+ "url": "http://www.lichteblau.com/git/ldapvi.git",
+ "rev": "f1d42bad66cc4623d1ff21fbd5dddbf5009d3e40",
+ "sha256": "0c2h4b1spp9z6a16gy9azf0wyxq397yy7001x1zlvc7c60q11wry",
+ "fetchSubmodules": true
+ }
+}
--- /dev/null
+self: super: {
+ lesspipe = super.lesspipe.overrideAttrs(old: {
+ configureFlags = (old.configureFlags or []) ++ [ "--yes" ];
+ });
+}
--- /dev/null
+self: super: {
+ neomutt = super.neomutt.overrideAttrs (old:
+ {
+ buildInputs = old.buildInputs ++ [ self.gdbm ];
+ configureFlags = old.configureFlags ++ [ "--gdbm" ];
+ }
+ );
+}
--- /dev/null
+self: super: {
+ nixops = super.nixops.overrideAttrs (old: {
+ preConfigure = (old.preConfigure or "") + ''
+ sed -i -e "/'keyFile'/s/'path'/'string'/" nixops/backends/__init__.py
+ '';
+ });
+}
--- /dev/null
+self: super: {
+ pass = (super.pass.withExtensions (exts: [ exts.pass-otp ])).overrideAttrs (old:
+ self.mylibs.fetchedGit ./pass.json // {
+ patches = old.patches ++ [ ./pass-fix-pass-init.patch ];
+ }
+ );
+
+}
--- /dev/null
+From 33e8f1cd0065639a948d7b5ba3f93d43bdf7f3be Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Isma=C3=ABl=20Bouya?= <ismael.bouya@normalesup.org>
+Date: Sun, 11 Nov 2018 19:47:33 +0100
+Subject: [PATCH] Fix pass init for some gpg keys
+
+This fixes the pass init for gpg keys which have their main key as
+encryption key. This may happen for instance with RSA keys and specific
+configuration.
+---
+ src/password-store.sh | 2 +-
+ tests/t0300-reencryption.sh | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/password-store.sh b/src/password-store.sh
+index d89d455..44d122e 100755
+--- a/src/password-store.sh
++++ b/src/password-store.sh
+@@ -124,7 +124,7 @@ reencrypt_path() {
+ IFS=";" eval 'GPG_RECIPIENTS+=( $group )' # http://unix.stackexchange.com/a/92190
+ unset "GPG_RECIPIENTS[$index]"
+ done
+- gpg_keys="$($GPG $PASSWORD_STORE_GPG_OPTS --list-keys --with-colons "${GPG_RECIPIENTS[@]}" | sed -n 's/^sub:[^:]*:[^:]*:[^:]*:\([^:]*\):[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[a-zA-Z]*e[a-zA-Z]*:.*/\1/p' | LC_ALL=C sort -u)"
++ gpg_keys="$($GPG $PASSWORD_STORE_GPG_OPTS --list-keys --with-colons "${GPG_RECIPIENTS[@]}" | sed -n 's/^[ps]ub:[^:]*:[^:]*:[^:]*:\([^:]*\):[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[a-zA-Z]*e[a-zA-Z]*:.*/\1/p' | LC_ALL=C sort -u)"
+ fi
+ current_keys="$(LC_ALL=C $GPG $PASSWORD_STORE_GPG_OPTS -v --no-secmem-warning --no-permission-warning --decrypt --list-only --keyid-format long "$passfile" 2>&1 | sed -n 's/^gpg: public key is \([A-F0-9]\+\)$/\1/p' | LC_ALL=C sort -u)"
+
+diff --git a/tests/t0300-reencryption.sh b/tests/t0300-reencryption.sh
+index 3c88987..57d873f 100755
+--- a/tests/t0300-reencryption.sh
++++ b/tests/t0300-reencryption.sh
+@@ -7,7 +7,7 @@ cd "$(dirname "$0")"
+ INITIAL_PASSWORD="will this password live? a big question indeed..."
+
+ canonicalize_gpg_keys() {
+- $GPG --list-keys --with-colons "$@" | sed -n 's/sub:[^:]*:[^:]*:[^:]*:\([^:]*\):[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[a-zA-Z]*e[a-zA-Z]*:.*/\1/p' | LC_ALL=C sort -u
++ $GPG --list-keys --with-colons "$@" | sed -n 's/[ps]ub:[^:]*:[^:]*:[^:]*:\([^:]*\):[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[a-zA-Z]*e[a-zA-Z]*:.*/\1/p' | LC_ALL=C sort -u
+ }
+ gpg_keys_from_encrypted_file() {
+ $GPG -v --no-secmem-warning --no-permission-warning --decrypt --list-only --keyid-format long "$1" 2>&1 | grep "public key is" | cut -d ' ' -f 5 | LC_ALL=C sort -u
+--
+2.19.1
+
--- /dev/null
+{
+ "tag": "d29a389-master",
+ "meta": {
+ "name": "password-store",
+ "url": "https://git.zx2c4.com/password-store/",
+ "branch": "master"
+ },
+ "git": {
+ "url": "https://git.zx2c4.com/password-store/",
+ "rev": "d29a389a40524c684595f51bb937f66958bc14ea",
+ "sha256": "17g43i0if9nggcq6005iyxxy9my8s15ihc2nzwjgqzhy3svh5xvn",
+ "fetchSubmodules": true
+ }
+}
--- /dev/null
+self: super: {
+ pelican = with self.python3Packages;
+ pelican.overrideAttrs(old: self.mylibs.fetchedGithub ./pelican.json // {
+ propagatedBuildInputs = old.propagatedBuildInputs ++ [ pyyaml ];
+ });
+}
--- /dev/null
+{
+ "tag": "4.0.1",
+ "meta": {
+ "name": "pelican",
+ "url": "https://github.com/getpelican/pelican",
+ "branch": "refs/tags/4.0.1"
+ },
+ "github": {
+ "owner": "getpelican",
+ "repo": "pelican",
+ "rev": "24d6efa9fda4ad45649ddf88c1c596193d589bf8",
+ "sha256": "09fcwnnfln0cl5v0qpxzrllj27znrg6dbhaksxrl0192c3mbyjvl",
+ "fetchSubmodules": true
+ }
+}
--- /dev/null
+self: super: {
+ profanity = (super.profanity.override {
+ notifySupport = true;
+ inherit (self) libnotify gpgme gdk_pixbuf;
+ python = self.python3;
+ }).overrideAttrs (old: rec {
+ configureFlags = old.configureFlags ++ [ "--enable-plugins" ];
+ });
+}
--- /dev/null
+self: super: {
+ pythonOverrides = self.buildPythonOverrides (pyself: pysuper: {
+ buildbot-plugins = pysuper.buildbot-plugins // {
+ buildslist = self.python3PackagesPlus.buildbot-plugins.buildslist;
+ };
+ buildbot-full = pysuper.buildbot-full.withPlugins [ pyself.buildbot-plugins.buildslist ];
+ }) super.pythonOverrides;
+}
--- /dev/null
+let
+ fromMyPythonPackages = name: self: super: {
+ pythonOverrides = self.buildPythonOverrides (pyself: pysuper: {
+ "${name}" = self."${pyself.python.pname}PackagesPlus"."${name}";
+ }) super.pythonOverrides;
+ };
+in
+{
+ # https://github.com/NixOS/nixpkgs/issues/44426
+ # needs to come before all other in alphabetical order (or make use of
+ # lib.mkBefore)
+ __pythonOverlayFix = self: super: let
+ pyNames = [ "python3" "python36" "python37" ];
+ overriddenPython = name: [
+ { inherit name; value = super.${name}.override { packageOverrides = self.pythonOverrides; }; }
+ { name = "${name}Packages"; value = self.recurseIntoAttrs self.${name}.pkgs; }
+ ];
+ overriddenPythons = builtins.concatLists (map overriddenPython pyNames);
+ in {
+ pythonOverrides = pyself: pysuper: {};
+ buildPythonOverrides = newOverrides: currentOverrides: super.lib.composeExtensions newOverrides currentOverrides;
+ } // super.lib.attrsets.listToAttrs overriddenPythons;
+
+
+ apprise = fromMyPythonPackages "apprise";
+ buildbot = import ./buildbot.nix;
+ wokkel = fromMyPythonPackages "wokkel";
+}
--- /dev/null
+self: super: {
+ sc-im = super.sc-im.overrideAttrs (old: {
+ buildPhase = ''
+ cd src
+ sed -i Makefile -e 's@\...name.info@.local/state/$(name)info@'
+ cd ..
+ '' + old.buildPhase;
+ });
+}
--- /dev/null
+self: super: {
+ shaarli = varDir: super.shaarli.overrideAttrs (old: {
+ patchPhase = "";
+ patches = (old.patches or []) ++ [ ./shaarli_ldap.patch ];
+ installPhase = (old.installPhase or "") + ''
+ cp .htaccess $out/
+ ln -sf ${varDir}/{cache,pagecache,tmp,data} $out/
+ '';
+ });
+}
--- /dev/null
+commit bc82ebfd779b8641dadd6787f51639ea9105c3e8
+Author: Ismaël Bouya <ismael.bouya@normalesup.org>
+Date: Sun Feb 3 20:58:18 2019 +0100
+
+ Add ldap connection
+
+diff --git a/.htaccess b/.htaccess
+index 4c00427..5acd708 100644
+--- a/.htaccess
++++ b/.htaccess
+@@ -6,10 +6,23 @@ RewriteEngine On
+ # Prevent accessing subdirectories not managed by SCM
+ RewriteRule ^(.git|doxygen|vendor) - [F]
+
++RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
++RewriteRule ^(.*) - [E=BASE:%1]
++
++RewriteCond %{ENV:REDIRECT_BASE} (.+)
++RewriteRule .* - [E=BASE:%1]
++
+ # Forward the "Authorization" HTTP header
+ RewriteCond %{HTTP:Authorization} ^(.*)
+ RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
+
++RewriteCond %{REQUEST_FILENAME} !-f
++RewriteCond %{REQUEST_FILENAME} !-d
++RewriteRule ^((?!api/)[^/]*)/?(.*)$ $2?%{QUERY_STRING} [E=USERSPACE:$1]
++
++RewriteCond %{ENV:REDIRECT_USERSPACE} (.+)
++RewriteRule .* - [E=USERSPACE:%1]
++
+ # REST API
+ RewriteCond %{REQUEST_FILENAME} !-f
+ RewriteCond %{REQUEST_FILENAME} !-d
+diff --git a/application/ApplicationUtils.php b/application/ApplicationUtils.php
+index 911873a..f21a1ef 100644
+--- a/application/ApplicationUtils.php
++++ b/application/ApplicationUtils.php
+@@ -191,6 +191,9 @@ public static function checkResourcePermissions($conf)
+ $conf->get('resource.page_cache'),
+ $conf->get('resource.raintpl_tmp'),
+ ) as $path) {
++ if (! is_dir($path)) {
++ mkdir($path, 0755, true);
++ }
+ if (! is_readable(realpath($path))) {
+ $errors[] = '"'.$path.'" '. t('directory is not readable');
+ }
+diff --git a/application/config/ConfigManager.php b/application/config/ConfigManager.php
+index 32aaea4..99efc15 100644
+--- a/application/config/ConfigManager.php
++++ b/application/config/ConfigManager.php
+@@ -21,6 +21,11 @@ class ConfigManager
+
+ public static $DEFAULT_PLUGINS = array('qrcode');
+
++ /**
++ * @var string User space.
++ */
++ protected $userSpace;
++
+ /**
+ * @var string Config folder.
+ */
+@@ -41,12 +46,36 @@ class ConfigManager
+ *
+ * @param string $configFile Configuration file path without extension.
+ */
+- public function __construct($configFile = 'data/config')
++ public function __construct($configFile = null, $userSpace = null)
+ {
+- $this->configFile = $configFile;
++ $this->userSpace = $this->findLDAPUser($userSpace);
++ if ($configFile !== null) {
++ $this->configFile = $configFile;
++ } else {
++ $this->configFile = ($this->userSpace === null) ? 'data/config' : 'data/' . $this->userSpace . '/config';
++ }
+ $this->initialize();
+ }
+
++ public function findLDAPUser($login, $password = null) {
++ $connect = ldap_connect(getenv('SHAARLI_LDAP_HOST'));
++ ldap_set_option($connect, LDAP_OPT_PROTOCOL_VERSION, 3);
++ if (!$connect || !ldap_bind($connect, getenv('SHAARLI_LDAP_DN'), getenv('SHAARLI_LDAP_PASSWORD'))) {
++ return false;
++ }
++
++ $search_query = str_replace('%login%', ldap_escape($login), getenv('SHAARLI_LDAP_FILTER'));
++
++ $search = ldap_search($connect, getenv('SHAARLI_LDAP_BASE'), $search_query);
++ $info = ldap_get_entries($connect, $search);
++
++ if (ldap_count_entries($connect, $search) == 1 && (is_null($password) || ldap_bind($connect, $info[0]["dn"], $password))) {
++ return $login;
++ } else {
++ return null;
++ }
++ }
++
+ /**
+ * Reset the ConfigManager instance.
+ */
+@@ -269,6 +298,16 @@ public function getConfigFileExt()
+ return $this->configFile . $this->configIO->getExtension();
+ }
+
++ /**
++ * Get the current userspace.
++ *
++ * @return mixed User space.
++ */
++ public function getUserSpace()
++ {
++ return $this->userSpace;
++ }
++
+ /**
+ * Recursive function which find asked setting in the loaded config.
+ *
+@@ -342,19 +381,31 @@ protected static function removeConfig($settings, &$conf)
+ */
+ protected function setDefaultValues()
+ {
+- $this->setEmpty('resource.data_dir', 'data');
+- $this->setEmpty('resource.config', 'data/config.php');
+- $this->setEmpty('resource.datastore', 'data/datastore.php');
+- $this->setEmpty('resource.ban_file', 'data/ipbans.php');
+- $this->setEmpty('resource.updates', 'data/updates.txt');
+- $this->setEmpty('resource.log', 'data/log.txt');
+- $this->setEmpty('resource.update_check', 'data/lastupdatecheck.txt');
+- $this->setEmpty('resource.history', 'data/history.php');
++ if ($this->userSpace === null) {
++ $data = 'data';
++ $tmp = 'tmp';
++ $cache = 'cache';
++ $pagecache = 'pagecache';
++ } else {
++ $data = 'data/' . ($this->userSpace);
++ $tmp = 'tmp/' . ($this->userSpace);
++ $cache = 'cache/' . ($this->userSpace);
++ $pagecache = 'pagecache/' . ($this->userSpace);
++ }
++
++ $this->setEmpty('resource.data_dir', $data);
++ $this->setEmpty('resource.config', $data . '/config.php');
++ $this->setEmpty('resource.datastore', $data . '/datastore.php');
++ $this->setEmpty('resource.ban_file', $data . '/ipbans.php');
++ $this->setEmpty('resource.updates', $data . '/updates.txt');
++ $this->setEmpty('resource.log', $data . '/log.txt');
++ $this->setEmpty('resource.update_check', $data . '/lastupdatecheck.txt');
++ $this->setEmpty('resource.history', $data . '/history.php');
+ $this->setEmpty('resource.raintpl_tpl', 'tpl/');
+ $this->setEmpty('resource.theme', 'default');
+- $this->setEmpty('resource.raintpl_tmp', 'tmp/');
+- $this->setEmpty('resource.thumbnails_cache', 'cache');
+- $this->setEmpty('resource.page_cache', 'pagecache');
++ $this->setEmpty('resource.raintpl_tmp', $tmp);
++ $this->setEmpty('resource.thumbnails_cache', $cache);
++ $this->setEmpty('resource.page_cache', $pagecache);
+
+ $this->setEmpty('security.ban_after', 4);
+ $this->setEmpty('security.ban_duration', 1800);
+diff --git a/application/security/LoginManager.php b/application/security/LoginManager.php
+index d6784d6..bdfaca7 100644
+--- a/application/security/LoginManager.php
++++ b/application/security/LoginManager.php
+@@ -32,6 +32,9 @@ class LoginManager
+ /** @var string User sign-in token depending on remote IP and credentials */
+ protected $staySignedInToken = '';
+
++ protected $lastErrorReason = '';
++ protected $lastErrorIsBanishable = false;
++
+ /**
+ * Constructor
+ *
+@@ -83,7 +86,7 @@ public function getStaySignedInToken()
+ */
+ public function checkLoginState($cookie, $clientIpId)
+ {
+- if (! $this->configManager->exists('credentials.login')) {
++ if (! $this->configManager->exists('credentials.login') || (isset($_SESSION['username']) && $_SESSION['username'] && $this->configManager->get('credentials.login') !== $_SESSION['username'])) {
+ // Shaarli is not configured yet
+ $this->isLoggedIn = false;
+ return;
+@@ -133,20 +136,40 @@ public function isLoggedIn()
+ */
+ public function checkCredentials($remoteIp, $clientIpId, $login, $password)
+ {
+- $hash = sha1($password . $login . $this->configManager->get('credentials.salt'));
++ $this->lastErrorIsBanishable = false;
++
++ if ($this->configManager->getUserSpace() !== null && $this->configManager->getUserSpace() !== $login) {
++ logm($this->configManager->get('resource.log'),
++ $remoteIp,
++ 'Trying to login to wrong user space');
++ $this->lastErrorReason = 'You’re trying to access the wrong account.';
++ return false;
++ }
+
+- if ($login != $this->configManager->get('credentials.login')
+- || $hash != $this->configManager->get('credentials.hash')
+- ) {
++ logm($this->configManager->get('resource.log'),
++ $remoteIp,
++ 'Trying LDAP connection');
++ $result = $this->configManager->findLDAPUser($login, $password);
++ if ($result === false) {
+ logm(
+ $this->configManager->get('resource.log'),
+ $remoteIp,
+- 'Login failed for user ' . $login
++ 'Impossible to connect to LDAP'
+ );
++ $this->lastErrorReason = 'Server error.';
++ return false;
++ } else if (is_null($result)) {
++ logm(
++ $this->configManager->get('resource.log'),
++ $remoteIp,
++ 'Login failed for user ' . $login
++ );
++ $this->lastErrorIsBanishable = true;
++ $this->lastErrorReason = 'Wrong login/password.';
+ return false;
+ }
+
+- $this->sessionManager->storeLoginInfo($clientIpId);
++ $this->sessionManager->storeLoginInfo($clientIpId, $login);
+ logm(
+ $this->configManager->get('resource.log'),
+ $remoteIp,
+@@ -187,6 +210,10 @@ protected function writeBanFile()
+ */
+ public function handleFailedLogin($server)
+ {
++ if (!$this->lastErrorIsBanishable) {
++ return $this->lastErrorReason ?: 'Error during login.';
++ };
++
+ $ip = $server['REMOTE_ADDR'];
+ $trusted = $this->configManager->get('security.trusted_proxies', []);
+
+@@ -215,6 +242,7 @@ public function handleFailedLogin($server)
+ );
+ }
+ $this->writeBanFile();
++ return $this->lastErrorReason ?: 'Error during login.';
+ }
+
+ /**
+diff --git a/application/security/SessionManager.php b/application/security/SessionManager.php
+index b8b8ab8..5eb4aac 100644
+--- a/application/security/SessionManager.php
++++ b/application/security/SessionManager.php
+@@ -111,10 +111,10 @@ public static function checkId($sessionId)
+ *
+ * @param string $clientIpId Client IP address identifier
+ */
+- public function storeLoginInfo($clientIpId)
++ public function storeLoginInfo($clientIpId, $login = null)
+ {
+ $this->session['ip'] = $clientIpId;
+- $this->session['username'] = $this->conf->get('credentials.login');
++ $this->session['username'] = $login ?: $this->conf->get('credentials.login');
+ $this->extendTimeValidityBy(self::$SHORT_TIMEOUT);
+ }
+
+diff --git a/index.php b/index.php
+index 4b86a3e..85376e8 100644
+--- a/index.php
++++ b/index.php
+@@ -121,7 +121,27 @@
+ $_COOKIE['shaarli'] = session_id();
+ }
+
+-$conf = new ConfigManager();
++$folderBase = getenv("BASE");
++
++if (getenv("USERSPACE")) {
++ if (isset($_GET["do"]) && $_GET["do"] == "login") {
++ header("Location: $folderBase/?do=login");
++ exit;
++ }
++ $userspace = preg_replace("/[^-_A-Za-z0-9]/", '', getenv("USERSPACE"));
++} else if (isset($_SESSION["username"]) && $_SESSION["username"]) {
++ header("Location: " . $folderBase . "/" . $_SESSION["username"] . "?");
++ exit;
++} else if (!isset($_GET["do"]) || $_GET["do"] != "login") {
++ header("Location: $folderBase/?do=login");
++ exit;
++}
++
++if (isset($userspace)) {
++ $conf = new ConfigManager(null, $userspace);
++} else {
++ $conf = new ConfigManager();
++}
+ $sessionManager = new SessionManager($_SESSION, $conf);
+ $loginManager = new LoginManager($GLOBALS, $conf, $sessionManager);
+ $loginManager->generateStaySignedInToken($_SERVER['REMOTE_ADDR']);
+@@ -175,7 +195,7 @@
+ }
+
+ // Display the installation form if no existing config is found
+- install($conf, $sessionManager, $loginManager);
++ install($conf, $sessionManager, $loginManager, $userspace);
+ }
+
+ $loginManager->checkLoginState($_COOKIE, $clientIpId);
+@@ -205,6 +225,7 @@ function isLoggedIn()
+ && $loginManager->checkCredentials($_SERVER['REMOTE_ADDR'], $clientIpId, $_POST['login'], $_POST['password'])
+ ) {
+ $loginManager->handleSuccessfulLogin($_SERVER);
++ $userspace = $_POST['login'];
+
+ $cookiedir = '';
+ if (dirname($_SERVER['SCRIPT_NAME']) != '/') {
+@@ -241,25 +262,25 @@ function isLoggedIn()
+ $uri .= '&'.$param.'='.urlencode($_GET[$param]);
+ }
+ }
+- header('Location: '. $uri);
++ header('Location: '. $userspace . $uri);
+ exit;
+ }
+
+ if (isset($_GET['edit_link'])) {
+- header('Location: ?edit_link='. escape($_GET['edit_link']));
++ header('Location: ' . $userspace . '?edit_link='. escape($_GET['edit_link']));
+ exit;
+ }
+
+ if (isset($_POST['returnurl'])) {
+ // Prevent loops over login screen.
+ if (strpos($_POST['returnurl'], 'do=login') === false) {
+- header('Location: '. generateLocation($_POST['returnurl'], $_SERVER['HTTP_HOST']));
++ header('Location: ' . generateLocation($_POST['returnurl'], $_SERVER['HTTP_HOST']));
+ exit;
+ }
+ }
+- header('Location: ?'); exit;
++ header('Location: '. $userspace . '?'); exit;
+ } else {
+- $loginManager->handleFailedLogin($_SERVER);
++ $errorReason = $loginManager->handleFailedLogin($_SERVER);
+ $redir = '&username='. urlencode($_POST['login']);
+ if (isset($_GET['post'])) {
+ $redir .= '&post=' . urlencode($_GET['post']);
+@@ -270,7 +291,7 @@ function isLoggedIn()
+ }
+ }
+ // Redirect to login screen.
+- echo '<script>alert("'. t("Wrong login/password.") .'");document.location=\'?do=login'.$redir.'\';</script>';
++ echo '<script>alert("'. t($errorReason) .'");document.location=\'?do=login'.$redir.'\';</script>';
+ exit;
+ }
+ }
+@@ -1719,7 +1740,7 @@ function buildLinkList($PAGE, $LINKSDB, $conf, $pluginManager, $loginManager)
+ * @param SessionManager $sessionManager SessionManager instance
+ * @param LoginManager $loginManager LoginManager instance
+ */
+-function install($conf, $sessionManager, $loginManager) {
++function install($conf, $sessionManager, $loginManager, $userspace) {
+ // On free.fr host, make sure the /sessions directory exists, otherwise login will not work.
+ if (endsWith($_SERVER['HTTP_HOST'],'.free.fr') && !is_dir($_SERVER['DOCUMENT_ROOT'].'/sessions')) mkdir($_SERVER['DOCUMENT_ROOT'].'/sessions',0705);
+
+@@ -1755,7 +1776,7 @@ function install($conf, $sessionManager, $loginManager) {
+ }
+
+
+- if (!empty($_POST['setlogin']) && !empty($_POST['setpassword']))
++ if (true)
+ {
+ $tz = 'UTC';
+ if (!empty($_POST['continent']) && !empty($_POST['city'])
+@@ -1764,15 +1785,15 @@ function install($conf, $sessionManager, $loginManager) {
+ $tz = $_POST['continent'].'/'.$_POST['city'];
+ }
+ $conf->set('general.timezone', $tz);
+- $login = $_POST['setlogin'];
+- $conf->set('credentials.login', $login);
++ $conf->set('credentials.login', $userspace);
+ $salt = sha1(uniqid('', true) .'_'. mt_rand());
+ $conf->set('credentials.salt', $salt);
+- $conf->set('credentials.hash', sha1($_POST['setpassword'] . $login . $salt));
++ $hash = sha1(uniqid('', true) .'_'. mt_rand());
++ $conf->set('credentials.hash', $hash);
+ if (!empty($_POST['title'])) {
+ $conf->set('general.title', escape($_POST['title']));
+ } else {
+- $conf->set('general.title', 'Shared links on '.escape(index_url($_SERVER)));
++ $conf->set('general.title', ucwords(str_replace("_", " ", $userspace)));
+ }
+ $conf->set('translation.language', escape($_POST['language']));
+ $conf->set('updates.check_updates', !empty($_POST['updateCheck']));
+@@ -1841,7 +1862,12 @@ function install($conf, $sessionManager, $loginManager) {
+ $app = new \Slim\App($container);
+
+ // REST API routes
+-$app->group('/api/v1', function() {
++if (isset($userspace)) {
++ $mountpoint = '/' . $userspace . '/api/v1';
++} else {
++ $mountpoint = '/api/v1';
++}
++$app->group($mountpoint, function() {
+ $this->get('/info', '\Shaarli\Api\Controllers\Info:getInfo')->setName('getInfo');
+ $this->get('/links', '\Shaarli\Api\Controllers\Links:getLinks')->setName('getLinks');
+ $this->get('/links/{id:[\d]+}', '\Shaarli\Api\Controllers\Links:getLink')->setName('getLink');
+@@ -1860,7 +1886,7 @@ function install($conf, $sessionManager, $loginManager) {
+ $response = $app->run(true);
+ // Hack to make Slim and Shaarli router work together:
+ // If a Slim route isn't found and NOT API call, we call renderPage().
+-if ($response->getStatusCode() == 404 && strpos($_SERVER['REQUEST_URI'], '/api/v1') === false) {
++if ($response->getStatusCode() == 404 && strpos($_SERVER['REQUEST_URI'], $mountpoint) === false) {
+ // We use UTF-8 for proper international characters handling.
+ header('Content-Type: text/html; charset=utf-8');
+ renderPage($conf, $pluginManager, $linkDb, $history, $sessionManager, $loginManager);
--- /dev/null
+self: super: {
+ slrn = super.slrn.overrideAttrs (old: rec {
+ version = "1.0.3a";
+ name = "slrn-${version}";
+ src = self.fetchurl {
+ url = "http://www.jedsoft.org/releases/slrn/slrn-${version}.tar.bz2";
+ sha256 = "1b1d9iikr60w0vq86y9a0l4gjl0jxhdznlrdp3r405i097as9a1v";
+ };
+ configureFlags = old.configureFlags ++ [ "--with-slrnpull" ];
+ });
+}
--- /dev/null
+self: super:
+{
+ taskwarrior = super.taskwarrior.overrideAttrs (old: {
+ postInstall = ''${old.postInstall}
+ mkdir -p "$out/share/vim/vimfiles/ftdetect"
+ mkdir -p "$out/share/vim/vimfiles/syntax"
+ ln -s "../../../../share/doc/task/scripts/vim/ftdetect/task.vim" "$out/share/vim/vimfiles/ftdetect/"
+ ln -s "../../../../share/doc/task/scripts/vim/syntax/taskrc.vim" "$out/share/vim/vimfiles/syntax/"
+ ln -s "../../../../share/doc/task/scripts/vim/syntax/taskdata.vim" "$out/share/vim/vimfiles/syntax/"
+ ln -s "../../../../share/doc/task/scripts/vim/syntax/taskedit.vim" "$out/share/vim/vimfiles/syntax/"
+ '';
+ });
+}
--- /dev/null
+self: super:
+{
+ vit = (super.vit.override { inherit (self) taskwarrior; }).overrideAttrs (old:
+ self.mylibs.fetchedGithub ./vit.json // {
+ buildInputs = old.buildInputs ++ (with self.perlPackages; [ TryTiny TextCharWidth ]);
+ }
+ );
+}
--- /dev/null
+{
+ "tag": "dbacada-1.3",
+ "meta": {
+ "name": "vit",
+ "url": "https://github.com/scottkosty/vit",
+ "branch": "1.3"
+ },
+ "github": {
+ "owner": "scottkosty",
+ "repo": "vit",
+ "rev": "dbacada5867b238fdf35dbf00a3ca0daf7703038",
+ "sha256": "1wlk62cv6dc0dqv8265xcx2l7ydzg40xf6l4qbrf6h5156ncc90l",
+ "fetchSubmodules": true
+ }
+}
--- /dev/null
+self: super: {
+ weboob = (self.pythonPackages.weboob.overridePythonAttrs {
+ setupPyBuildFlags = [ "--no-qt" "--xdg" ];
+ }).overrideAttrs (old: rec {
+ version = "1.5";
+ src = self.fetchurl {
+ url = "https://git.weboob.org/weboob/weboob/-/archive/${version}/${old.pname}-${version}.tar.gz";
+ sha256 = "0l6q5nm5g0zn6gmf809059kddrbds27wgygxsfkqja9blks5vq7z";
+ };
+ postInstall = ''${old.postInstall or ""}
+ mkdir -p $out/share/bash-completion/completions/
+ cp tools/weboob_bash_completion $out/share/bash-completion/completions/weboob
+ '';
+ });
+}
--- /dev/null
+self: super: {
+ weechat = super.weechat.override {
+ configure = { availablePlugins, ... }: {
+ plugins = with self; with availablePlugins; [
+ # Make sure websocket_client is not 0.55.0, it provokes
+ # regular crashes
+ (python.withPackages (ps: with ps; assert websocket_client.version == "0.54.0"; [websocket_client emoji]))
+ perl
+ ruby
+ ];
+ };
+ };
+
+}
--- /dev/null
+self: super: {
+ ympd = super.ympd.overrideAttrs(old: self.mylibs.fetchedGithub ./ympd.json // {
+ patches = (old.patches or []) ++ [ ./ympd-password-env.patch ];
+ });
+}
--- /dev/null
+diff --git a/src/ympd.c b/src/ympd.c
+index 3aed7e6..b3b6fda 100644
+--- a/src/ympd.c
++++ b/src/ympd.c
+@@ -71,6 +71,7 @@ int main(int argc, char **argv)
+ char *run_as_user = NULL;
+ char const *error_msg = NULL;
+ char *webport = "8080";
++ const char *s;
+
+ atexit(bye);
+ #ifdef WITH_DYNAMIC_ASSETS
+@@ -92,6 +93,10 @@ int main(int argc, char **argv)
+ {0, 0, 0, 0 }
+ };
+
++ if ((s = getenv("MPD_PASSWORD")) != NULL) {
++ mpd.password = strdup(s);
++ }
++
+ while((n = getopt_long(argc, argv, "h:p:w:u:vm:",
+ long_options, &option_index)) != -1) {
+ switch (n) {
--- /dev/null
+{
+ "tag": "612f8fc-master",
+ "meta": {
+ "name": "ympd",
+ "url": "https://github.com/notandy/ympd",
+ "branch": "master"
+ },
+ "github": {
+ "owner": "notandy",
+ "repo": "ympd",
+ "rev": "612f8fc0b2c47fc89d403e4a044541c6b2b238c8",
+ "sha256": "01hnj10zl103mrn82vyd42fvq7w5az3jf1qz18889zv67kn73ll9",
+ "fetchSubmodules": true
+ }
+}
--- /dev/null
+{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, bitlbee, glib, lib }:
+stdenv.mkDerivation rec {
+ name = "bitlbee-mastodon-${version}";
+ version = "v1.4.2";
+
+ src = fetchFromGitHub {
+ rev = version;
+ owner = "kensanata";
+ repo = "bitlbee-mastodon";
+ sha256 = "04rakgr1pfsg1vhfwlfbggbzw249j7dmk88xrsnf3n84c5ccdyas";
+ };
+
+ nativeBuildInputs = [ autoreconfHook pkgconfig ];
+ buildInputs = [ bitlbee glib ];
+
+ preConfigure = ''
+ export BITLBEE_PLUGINDIR=$out/lib/bitlbee
+ ./autogen.sh
+ '';
+
+ meta = {
+ description = "Bitlbee plugin for Mastodon";
+
+ homepage = https://github.com/kensanata/bitlbee-mastodon;
+ license = lib.licenses.gpl2Plus;
+ platforms = lib.platforms.linux;
+ };
+}
--- /dev/null
+{ stdenv, fetchurl, expat, openssl, autoconf, ncurses }:
+stdenv.mkDerivation rec {
+ name = "boinctui-${version}";
+ version = "2.5.0";
+ src = fetchurl {
+ url = "http://sourceforge.net/projects/boinctui/files/boinctui_${version}.tar.gz";
+ sha256 = "16zxp8r4z6pllacdacg681y56cg2phnn3pm5gwszbsi93cix2g8p";
+ };
+
+ configureFlags = [ "--without-gnutls" ];
+ preConfigure = ''
+ autoconf
+ '';
+
+ preBuild = ''
+ sed -i -e 's/"HOME"/"XDG_CONFIG_HOME"/' src/cfg.cpp
+ sed -i -e 's@\.boinctui\.cfg@boinctui/boinctui.cfg@' src/mainprog.cpp
+ '';
+ buildInputs = [ expat openssl autoconf ncurses ];
+}
--- /dev/null
+{
+ "tag": "3bd27fb-master",
+ "meta": {
+ "name": "cnagios",
+ "url": "https://github.com/dannywarren/cnagios",
+ "branch": "master"
+ },
+ "github": {
+ "owner": "dannywarren",
+ "repo": "cnagios",
+ "rev": "3bd27fb40e68f61ffd01bea6234b919a667b6fe4",
+ "sha256": "0iy5pmlcz6y3if72nav22xqxniiv1v8ywi0927m6s459hkw5n2rb",
+ "fetchSubmodules": true
+ }
+}
--- /dev/null
+{ stdenv, mylibs, perl, ncurses }:
+stdenv.mkDerivation (mylibs.fetchedGithub ./cnagios.json // {
+ configureFlags = [
+ "--with-etc-dir=/etc/cnagios"
+ "--with-var-dir=/var/lib/naemon"
+ "--with-status-file=/var/lib/naemon/status.dat"
+ "--with-nagios-data=4"
+ ];
+
+ prePatch = ''
+ sed -i -e "s/-lcurses/-lncurses/" Makefile.in
+ '';
+ installPhase = ''
+ install -dm755 $out/share/doc/cnagios
+ install -Dm644 cnagiosrc $out/share/doc/cnagios/
+ install -Dm644 cnagios.help $out/share/doc/cnagios/
+ install -Dm644 cnagios.pl $out/share/doc/cnagios/
+ install -dm755 $out/bin
+ install -Dm755 cnagios $out/bin/
+ '';
+ buildInputs = [ perl ncurses ];
+})
--- /dev/null
+# This file originates from composer2nix
+
+{ stdenv, writeTextFile, fetchurl, php, unzip }:
+
+let
+ composer = stdenv.mkDerivation {
+ name = "composer-1.8.0";
+ src = fetchurl {
+ url = https://github.com/composer/composer/releases/download/1.8.0/composer.phar;
+ sha256 = "19pg9ip2mpyf5cyq34fld7qwl77mshqw3c4nif7sxmpnar6sh089";
+ };
+ buildInputs = [ php ];
+
+ # We must wrap the composer.phar because of the impure shebang.
+ # We cannot use patchShebangs because the executable verifies its own integrity and will detect that somebody has tampered with it.
+
+ buildCommand = ''
+ # Copy phar file
+ mkdir -p $out/share/php
+ cp $src $out/share/php/composer.phar
+ chmod 755 $out/share/php/composer.phar
+
+ # Create wrapper executable
+ mkdir -p $out/bin
+ cat > $out/bin/composer <<EOF
+ #! ${stdenv.shell} -e
+ exec ${php}/bin/php $out/share/php/composer.phar "\$@"
+ EOF
+ chmod +x $out/bin/composer
+ '';
+ meta = {
+ description = "Dependency Manager for PHP";
+ #license = stdenv.licenses.mit;
+ maintainers = [ stdenv.lib.maintainers.sander ];
+ platforms = stdenv.lib.platforms.unix;
+ };
+ };
+
+ buildZipPackage = { name, src }:
+ stdenv.mkDerivation {
+ inherit name src;
+ buildInputs = [ unzip ];
+ buildCommand = ''
+ unzip $src
+ baseDir=$(find . -type d -mindepth 1 -maxdepth 1)
+ cd $baseDir
+ mkdir -p $out
+ mv * $out
+ '';
+ };
+
+ buildPackage =
+ { name
+ , src
+ , packages ? {}
+ , devPackages ? {}
+ , buildInputs ? []
+ , symlinkDependencies ? false
+ , executable ? false
+ , removeComposerArtifacts ? false
+ , postInstall ? ""
+ , preInstall ? ""
+ , noDev ? false
+ , unpackPhase ? "true"
+ , buildPhase ? "true"
+ , doRemoveVendor ? true
+ , ...}@args:
+
+ let
+ reconstructInstalled = writeTextFile {
+ name = "reconstructinstalled.php";
+ executable = true;
+ text = ''
+ #! ${php}/bin/php
+ <?php
+ if(file_exists($argv[1]))
+ {
+ $composerLockStr = file_get_contents($argv[1]);
+
+ if($composerLockStr === false)
+ {
+ fwrite(STDERR, "Cannot open composer.lock contents\n");
+ exit(1);
+ }
+ else
+ {
+ $config = json_decode($composerLockStr, true);
+
+ if(array_key_exists("packages", $config))
+ $allPackages = $config["packages"];
+ else
+ $allPackages = array();
+
+ ${stdenv.lib.optionalString (!noDev) ''
+ if(array_key_exists("packages-dev", $config))
+ $allPackages = array_merge($allPackages, $config["packages-dev"]);
+ ''}
+
+ $packagesStr = json_encode($allPackages, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);
+ print($packagesStr);
+ }
+ }
+ else
+ print("[]");
+ ?>
+ '';
+ };
+
+ constructBin = writeTextFile {
+ name = "constructbin.php";
+ executable = true;
+ text = ''
+ #! ${php}/bin/php
+ <?php
+ $composerJSONStr = file_get_contents($argv[1]);
+
+ if($composerJSONStr === false)
+ {
+ fwrite(STDERR, "Cannot open composer.json contents\n");
+ exit(1);
+ }
+ else
+ {
+ $config = json_decode($composerJSONStr, true);
+
+ if(array_key_exists("bin-dir", $config))
+ $binDir = $config["bin-dir"];
+ else
+ $binDir = "bin";
+
+ if(array_key_exists("bin", $config))
+ {
+ if(!file_exists("vendor/".$binDir))
+ mkdir("vendor/".$binDir);
+
+ foreach($config["bin"] as $bin)
+ symlink("../../".$bin, "vendor/".$binDir."/".basename($bin));
+ }
+ }
+ ?>
+ '';
+ };
+
+ bundleDependencies = dependencies:
+ stdenv.lib.concatMapStrings (dependencyName:
+ let
+ dependency = dependencies.${dependencyName};
+ in
+ ''
+ ${if dependency.targetDir == "" then ''
+ vendorDir="$(dirname ${dependencyName})"
+ mkdir -p "$vendorDir"
+ ${if symlinkDependencies then
+ ''ln -s "${dependency.src}" "$vendorDir/$(basename "${dependencyName}")"''
+ else
+ ''cp -a "${dependency.src}" "$vendorDir/$(basename "${dependencyName}")"''
+ }${if dependency.needsModifyRights or false then "\n" + ''
+ chmod -R u+rwx "$vendorDir/$(basename "${dependencyName}")"
+ '' else ""}
+ '' else ''
+ namespaceDir="${dependencyName}/$(dirname "${dependency.targetDir}")"
+ mkdir -p "$namespaceDir"
+ ${if symlinkDependencies then
+ ''ln -s "${dependency.src}" "$namespaceDir/$(basename "${dependency.targetDir}")"''
+ else
+ ''cp -a "${dependency.src}" "$namespaceDir/$(basename "${dependency.targetDir}")"''
+ }${if dependency.needsModifyRights or false then "\n" + ''
+ chmod -R u+rwx "$namespaceDir/$(basename "${dependency.targetDir}")"
+ '' else ""}
+ ''}
+ '') (builtins.attrNames dependencies);
+
+ extraArgs = removeAttrs args [ "name" "packages" "devPackages" "buildInputs" ];
+ in
+ stdenv.mkDerivation ({
+ name = "composer-${name}";
+ buildInputs = [ php composer ] ++ buildInputs;
+
+ inherit unpackPhase buildPhase;
+
+ installPhase = ''
+ ${if executable then ''
+ mkdir -p $out/share/php
+ cp -a $src $out/share/php/$name
+ chmod -R u+w $out/share/php/$name
+ cd $out/share/php/$name
+ '' else ''
+ cp -a $src $out
+ chmod -R u+w $out
+ cd $out
+ ''}
+
+ # Execute pre install hook
+ runHook preInstall
+
+ # Remove unwanted files
+ rm -f *.nix
+
+ export HOME=$TMPDIR
+
+ ${if doRemoveVendor then ''
+ # Remove the provided vendor folder if it exists
+ rm -Rf vendor
+ '' else ""}
+ # If there is no composer.lock file, compose a dummy file.
+ # Otherwise, composer attempts to download the package.json file from
+ # the registry which we do not want.
+ if [ ! -f composer.lock ]
+ then
+ cat > composer.lock <<EOF
+ {
+ "packages": []
+ }
+ EOF
+ fi
+
+ # Reconstruct the installed.json file from the lock file
+ mkdir -p vendor/composer
+ ${reconstructInstalled} composer.lock > vendor/composer/installed.json
+
+ # Copy or symlink the provided dependencies
+ cd vendor
+ ${bundleDependencies packages}
+ ${stdenv.lib.optionalString (!noDev) (bundleDependencies devPackages)}
+ cd ..
+
+ # Reconstruct autoload scripts
+ # We use the optimize feature because Nix packages cannot change after they have been built
+ # Using the dynamic loader for a Nix package is useless since there is nothing to dynamically reload.
+ composer dump-autoload --optimize ${stdenv.lib.optionalString noDev "--no-dev"}
+
+ # Run the install step as a validation to confirm that everything works out as expected
+ composer install --optimize-autoloader ${stdenv.lib.optionalString noDev "--no-dev"}
+
+ ${stdenv.lib.optionalString executable ''
+ # Reconstruct the bin/ folder if we deploy an executable project
+ ${constructBin} composer.json
+ ln -s $(pwd)/vendor/bin $out/bin
+ ''}
+
+ ${stdenv.lib.optionalString (!symlinkDependencies) ''
+ # Patch the shebangs if possible
+ if [ -d $(pwd)/vendor/bin ]
+ then
+ # Look for all executables in bin/
+ for i in $(pwd)/vendor/bin/*
+ do
+ # Look for their location
+ realFile=$(readlink -f "$i")
+
+ # Restore write permissions
+ chmod u+wx "$(dirname "$realFile")"
+ chmod u+w "$realFile"
+
+ # Patch shebang
+ sed -e "s|#!/usr/bin/php|#!${php}/bin/php|" \
+ -e "s|#!/usr/bin/env php|#!${php}/bin/php|" \
+ "$realFile" > tmp
+ mv tmp "$realFile"
+ chmod u+x "$realFile"
+ done
+ fi
+ ''}
+
+ if [ "$removeComposerArtifacts" = "1" ]
+ then
+ # Remove composer stuff
+ rm -f composer.json composer.lock
+ fi
+
+ # Execute post install hook
+ runHook postInstall
+ '';
+ } // extraArgs);
+in
+{
+ composer = stdenv.lib.makeOverridable composer;
+ buildZipPackage = stdenv.lib.makeOverridable buildZipPackage;
+ buildPackage = stdenv.lib.makeOverridable buildPackage;
+}
--- /dev/null
+{
+ "tag": "0.12.1",
+ "meta": {
+ "name": "daedalus",
+ "url": "https://github.com/input-output-hk/daedalus",
+ "branch": "refs/tags/0.12.1"
+ },
+ "github": {
+ "owner": "input-output-hk",
+ "repo": "daedalus",
+ "rev": "1276852b9a766d9fd4cda10561254f1a8ddd33ed",
+ "sha256": "0jf6ibwf0r4587g1ixq6zvi40kzwy137jgay5136yfbg15xw14k2",
+ "fetchSubmodules": true
+ }
+}
--- /dev/null
+{ stdenv, mylibs }:
+let
+ daedalusSrc = (mylibs.fetchedGithub ./daedalus.json).src;
+ daedalusOrig = (import daedalusSrc {}).daedalus;
+ cfg = stdenv.mkDerivation rec {
+ name = "launcher-config-custom";
+ buildInputs = [ daedalusSrc daedalusOrig.cfg ];
+ src = daedalusOrig.cfg;
+ installPhase = ''
+ cp -a $src $out
+ chmod -R u+w $out
+ cd $out/etc
+ sed -e "/^walletPath/d" -e "/^walletArgs/d" launcher-config.yaml > launcher-config-server-only.yaml
+ '';
+ };
+in
+stdenv.mkDerivation rec {
+ name = "daedalus-custom";
+ src = daedalusOrig;
+ buildInputs = [ cfg daedalusOrig ];
+ installPhase = ''
+ cp -a $src $out
+ chmod -R u+w $out
+ cd $out/bin
+ sed -i -e "s@${builtins.storeDir}/[0-9a-z]*-daedalus-config@${cfg}/etc@" daedalus
+ sed -e "s@${cfg}/etc/launcher-config.yaml@${cfg}/etc/launcher-config-server-only.yaml@" daedalus > daedalus-server-only
+ chmod a+x daedalus-server-only
+ '';
+}
--- /dev/null
+{ stdenv, mylibs, fetchurl, fetchgit, callPackage, nodePackages, nodejs-8_x }:
+let
+ nodeEnv = callPackage mylibs.nodeEnv { nodejs = nodejs-8_x; };
+ # built using node2nix -8 -l package-lock.json
+ # and changing "./." to "src"
+ packageEnv = import ./node-packages.nix {
+ src = stdenv.mkDerivation (mylibs.fetchedGithub ./iota-cli-app.json // {
+ phases = "installPhase";
+ installPhase = ''
+ cp -a $src $out
+ chmod u+w -R $out
+ cd $out
+ sed -i -e "s@host: 'http://localhost',@host: 'https://iri.trytes.eu',@" index.js
+ sed -i -e "s@port: 14265@port: 443@" index.js
+ '';
+ });
+ inherit fetchurl fetchgit nodeEnv;
+ };
+in
+packageEnv.package
--- /dev/null
+{
+ "tag": "d7e2e08-master",
+ "meta": {
+ "name": "iota-cli-app",
+ "url": "https://github.com/iotaledger/cli-app",
+ "branch": "master"
+ },
+ "github": {
+ "owner": "iotaledger",
+ "repo": "cli-app",
+ "rev": "d7e2e0856ae6bd34890fefb4245c07cd467a5032",
+ "sha256": "1n9kczsxdgjv8282nj2grlijvxipiskx0ndn169vz6v1l1hrwc8b",
+ "fetchSubmodules": true
+ }
+}
--- /dev/null
+# This file has been generated by node2nix 1.6.0. Do not edit!
+
+{src, nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}:
+
+let
+ sources = {
+ "acorn-3.3.0" = {
+ name = "acorn";
+ packageName = "acorn";
+ version = "3.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz";
+ sha1 = "45e37fb39e8da3f25baee3ff5369e2bb5f22017a";
+ };
+ };
+ "acorn-5.2.1" = {
+ name = "acorn";
+ packageName = "acorn";
+ version = "5.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/acorn/-/acorn-5.2.1.tgz";
+ sha512 = "jG0u7c4Ly+3QkkW18V+NRDN+4bWHdln30NL1ZL2AvFZZmQe/BfopYCtghCKKVBUSetZ4QKcyA0pY6/4Gw8Pv8w==";
+ };
+ };
+ "acorn-jsx-3.0.1" = {
+ name = "acorn-jsx";
+ packageName = "acorn-jsx";
+ version = "3.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz";
+ sha1 = "afdf9488fb1ecefc8348f6fb22f464e32a58b36b";
+ };
+ };
+ "ajv-4.11.8" = {
+ name = "ajv";
+ packageName = "ajv";
+ version = "4.11.8";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz";
+ sha1 = "82ffb02b29e662ae53bdc20af15947706739c536";
+ };
+ };
+ "ajv-keywords-1.5.1" = {
+ name = "ajv-keywords";
+ packageName = "ajv-keywords";
+ version = "1.5.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.5.1.tgz";
+ sha1 = "314dd0a4b3368fad3dfcdc54ede6171b886daf3c";
+ };
+ };
+ "ansi-escapes-1.4.0" = {
+ name = "ansi-escapes";
+ packageName = "ansi-escapes";
+ version = "1.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz";
+ sha1 = "d3a8a83b319aa67793662b13e761c7911422306e";
+ };
+ };
+ "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-3.0.0" = {
+ name = "ansi-regex";
+ packageName = "ansi-regex";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz";
+ sha1 = "ed0317c322064f79466c02966bddb605ab37d998";
+ };
+ };
+ "ansi-styles-2.2.1" = {
+ name = "ansi-styles";
+ packageName = "ansi-styles";
+ version = "2.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz";
+ sha1 = "b432dd3358b634cf75e1e4664368240533c1ddbe";
+ };
+ };
+ "ansi-styles-3.2.0" = {
+ name = "ansi-styles";
+ packageName = "ansi-styles";
+ version = "3.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz";
+ sha512 = "NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==";
+ };
+ };
+ "argparse-1.0.9" = {
+ name = "argparse";
+ packageName = "argparse";
+ version = "1.0.9";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz";
+ sha1 = "73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86";
+ };
+ };
+ "array-union-1.0.2" = {
+ name = "array-union";
+ packageName = "array-union";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz";
+ sha1 = "9a34410e4f4e3da23dea375be5be70f24778ec39";
+ };
+ };
+ "array-uniq-1.0.3" = {
+ name = "array-uniq";
+ packageName = "array-uniq";
+ version = "1.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz";
+ sha1 = "af6ac877a25cc7f74e058894753858dfdb24fdb6";
+ };
+ };
+ "arrify-1.0.1" = {
+ name = "arrify";
+ packageName = "arrify";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz";
+ sha1 = "898508da2226f380df904728456849c1501a4b0d";
+ };
+ };
+ "async-2.6.0" = {
+ name = "async";
+ packageName = "async";
+ version = "2.6.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/async/-/async-2.6.0.tgz";
+ sha512 = "xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==";
+ };
+ };
+ "babel-code-frame-6.26.0" = {
+ name = "babel-code-frame";
+ packageName = "babel-code-frame";
+ version = "6.26.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz";
+ sha1 = "63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b";
+ };
+ };
+ "babel-polyfill-6.26.0" = {
+ name = "babel-polyfill";
+ packageName = "babel-polyfill";
+ version = "6.26.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz";
+ sha1 = "379937abc67d7895970adc621f284cd966cf2153";
+ };
+ };
+ "babel-runtime-6.26.0" = {
+ name = "babel-runtime";
+ packageName = "babel-runtime";
+ version = "6.26.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz";
+ sha1 = "965c7058668e82b55d7bfe04ff2337bc8b5647fe";
+ };
+ };
+ "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";
+ };
+ };
+ "bignumber.js-4.1.0" = {
+ name = "bignumber.js";
+ packageName = "bignumber.js";
+ version = "4.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/bignumber.js/-/bignumber.js-4.1.0.tgz";
+ sha512 = "eJzYkFYy9L4JzXsbymsFn3p54D+llV27oTQ+ziJG7WFRheJcNZilgVXMG0LoZtlQSKBsJdWtLFqOD0u+U0jZKA==";
+ };
+ };
+ "bluebird-3.5.1" = {
+ name = "bluebird";
+ packageName = "bluebird";
+ version = "3.5.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz";
+ sha512 = "MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==";
+ };
+ };
+ "brace-expansion-1.1.8" = {
+ name = "brace-expansion";
+ packageName = "brace-expansion";
+ version = "1.1.8";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz";
+ sha1 = "c07b211c7c952ec1f8efd51a77ef0d1d3990a292";
+ };
+ };
+ "caller-path-0.1.0" = {
+ name = "caller-path";
+ packageName = "caller-path";
+ version = "0.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz";
+ sha1 = "94085ef63581ecd3daa92444a8fe94e82577751f";
+ };
+ };
+ "callsites-0.2.0" = {
+ name = "callsites";
+ packageName = "callsites";
+ version = "0.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz";
+ sha1 = "afab96262910a7f33c19a5775825c69f34e350ca";
+ };
+ };
+ "chalk-1.1.3" = {
+ name = "chalk";
+ packageName = "chalk";
+ version = "1.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz";
+ sha1 = "a8115c55e4a702fe4d150abd3872822a7e09fc98";
+ };
+ };
+ "chalk-2.3.0" = {
+ name = "chalk";
+ packageName = "chalk";
+ version = "2.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz";
+ sha512 = "Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==";
+ };
+ };
+ "circular-json-0.3.3" = {
+ name = "circular-json";
+ packageName = "circular-json";
+ version = "0.3.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz";
+ sha512 = "UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==";
+ };
+ };
+ "cli-cursor-1.0.2" = {
+ name = "cli-cursor";
+ packageName = "cli-cursor";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz";
+ sha1 = "64da3f7d56a54412e59794bd62dc35295e8f2987";
+ };
+ };
+ "cli-width-1.1.1" = {
+ name = "cli-width";
+ packageName = "cli-width";
+ version = "1.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cli-width/-/cli-width-1.1.1.tgz";
+ sha1 = "a4d293ef67ebb7b88d4a4d42c0ccf00c4d1e366d";
+ };
+ };
+ "cli-width-2.2.0" = {
+ name = "cli-width";
+ packageName = "cli-width";
+ version = "2.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz";
+ sha1 = "ff19ede8a9a5e579324147b0c11f0fbcbabed639";
+ };
+ };
+ "co-4.6.0" = {
+ name = "co";
+ packageName = "co";
+ version = "4.6.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/co/-/co-4.6.0.tgz";
+ sha1 = "6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184";
+ };
+ };
+ "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-convert-1.9.1" = {
+ name = "color-convert";
+ packageName = "color-convert";
+ version = "1.9.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz";
+ sha512 = "mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==";
+ };
+ };
+ "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";
+ };
+ };
+ "colors-1.1.2" = {
+ name = "colors";
+ packageName = "colors";
+ version = "1.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz";
+ sha1 = "168a4701756b6a7f51a12ce0c97bfa28c084ed63";
+ };
+ };
+ "concat-map-0.0.1" = {
+ name = "concat-map";
+ packageName = "concat-map";
+ version = "0.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz";
+ sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b";
+ };
+ };
+ "concat-stream-1.6.0" = {
+ name = "concat-stream";
+ packageName = "concat-stream";
+ version = "1.6.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz";
+ sha1 = "0aac662fd52be78964d5532f694784e70110acf7";
+ };
+ };
+ "core-js-2.5.3" = {
+ name = "core-js";
+ packageName = "core-js";
+ version = "2.5.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz";
+ sha1 = "8acc38345824f16d8365b7c9b4259168e8ed603e";
+ };
+ };
+ "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";
+ };
+ };
+ "crypto-js-3.1.9-1" = {
+ name = "crypto-js";
+ packageName = "crypto-js";
+ version = "3.1.9-1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/crypto-js/-/crypto-js-3.1.9-1.tgz";
+ sha1 = "fda19e761fc077e01ffbfdc6e9fdfc59e8806cd8";
+ };
+ };
+ "d-1.0.0" = {
+ name = "d";
+ packageName = "d";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/d/-/d-1.0.0.tgz";
+ sha1 = "754bb5bfe55451da69a58b94d45f4c5b0462d58f";
+ };
+ };
+ "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==";
+ };
+ };
+ "deep-is-0.1.3" = {
+ name = "deep-is";
+ packageName = "deep-is";
+ version = "0.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz";
+ sha1 = "b369d6fb5dbc13eecf524f91b070feedc357cf34";
+ };
+ };
+ "del-2.2.2" = {
+ name = "del";
+ packageName = "del";
+ version = "2.2.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/del/-/del-2.2.2.tgz";
+ sha1 = "c12c981d067846c84bcaf862cff930d907ffd1a8";
+ };
+ };
+ "doctrine-2.0.2" = {
+ name = "doctrine";
+ packageName = "doctrine";
+ version = "2.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/doctrine/-/doctrine-2.0.2.tgz";
+ sha512 = "y0tm5Pq6ywp3qSTZ1vPgVdAnbDEoeoc5wlOHXoY1c4Wug/a7JvqHIl7BTvwodaHmejWkK/9dSb3sCYfyo/om8A==";
+ };
+ };
+ "encoding-0.1.12" = {
+ name = "encoding";
+ packageName = "encoding";
+ version = "0.1.12";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz";
+ sha1 = "538b66f3ee62cd1ab51ec323829d1f9480c74beb";
+ };
+ };
+ "es5-ext-0.10.37" = {
+ name = "es5-ext";
+ packageName = "es5-ext";
+ version = "0.10.37";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.37.tgz";
+ sha1 = "0ee741d148b80069ba27d020393756af257defc3";
+ };
+ };
+ "es6-iterator-2.0.3" = {
+ name = "es6-iterator";
+ packageName = "es6-iterator";
+ version = "2.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz";
+ sha1 = "a7de889141a05a94b0854403b2d0a0fbfa98f3b7";
+ };
+ };
+ "es6-map-0.1.5" = {
+ name = "es6-map";
+ packageName = "es6-map";
+ version = "0.1.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz";
+ sha1 = "9136e0503dcc06a301690f0bb14ff4e364e949f0";
+ };
+ };
+ "es6-set-0.1.5" = {
+ name = "es6-set";
+ packageName = "es6-set";
+ version = "0.1.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz";
+ sha1 = "d2b3ec5d4d800ced818db538d28974db0a73ccb1";
+ };
+ };
+ "es6-symbol-3.1.1" = {
+ name = "es6-symbol";
+ packageName = "es6-symbol";
+ version = "3.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz";
+ sha1 = "bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77";
+ };
+ };
+ "es6-weak-map-2.0.2" = {
+ name = "es6-weak-map";
+ packageName = "es6-weak-map";
+ version = "2.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz";
+ sha1 = "5e3ab32251ffd1538a1f8e5ffa1357772f92d96f";
+ };
+ };
+ "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";
+ };
+ };
+ "escope-3.6.0" = {
+ name = "escope";
+ packageName = "escope";
+ version = "3.6.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz";
+ sha1 = "e01975e812781a163a6dadfdd80398dc64c889c3";
+ };
+ };
+ "eslint-3.19.0" = {
+ name = "eslint";
+ packageName = "eslint";
+ version = "3.19.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/eslint/-/eslint-3.19.0.tgz";
+ sha1 = "c8fc6201c7f40dd08941b87c085767386a679acc";
+ };
+ };
+ "espree-3.5.2" = {
+ name = "espree";
+ packageName = "espree";
+ version = "3.5.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/espree/-/espree-3.5.2.tgz";
+ sha512 = "sadKeYwaR/aJ3stC2CdvgXu1T16TdYN+qwCpcWbMnGJ8s0zNWemzrvb2GbD4OhmJ/fwpJjudThAlLobGbWZbCQ==";
+ };
+ };
+ "esprima-4.0.0" = {
+ name = "esprima";
+ packageName = "esprima";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz";
+ sha512 = "oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==";
+ };
+ };
+ "esquery-1.0.0" = {
+ name = "esquery";
+ packageName = "esquery";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/esquery/-/esquery-1.0.0.tgz";
+ sha1 = "cfba8b57d7fba93f17298a8a006a04cda13d80fa";
+ };
+ };
+ "esrecurse-4.2.0" = {
+ name = "esrecurse";
+ packageName = "esrecurse";
+ version = "4.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz";
+ sha1 = "fa9568d98d3823f9a41d91e902dcab9ea6e5b163";
+ };
+ };
+ "estraverse-4.2.0" = {
+ name = "estraverse";
+ packageName = "estraverse";
+ version = "4.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz";
+ sha1 = "0dee3fed31fcd469618ce7342099fc1afa0bdb13";
+ };
+ };
+ "esutils-2.0.2" = {
+ name = "esutils";
+ packageName = "esutils";
+ version = "2.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz";
+ sha1 = "0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b";
+ };
+ };
+ "event-emitter-0.3.5" = {
+ name = "event-emitter";
+ packageName = "event-emitter";
+ version = "0.3.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz";
+ sha1 = "df8c69eef1647923c7157b9ce83840610b02cc39";
+ };
+ };
+ "exit-hook-1.1.1" = {
+ name = "exit-hook";
+ packageName = "exit-hook";
+ version = "1.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz";
+ sha1 = "f05ca233b48c05d54fff07765df8507e95c02ff8";
+ };
+ };
+ "fast-levenshtein-2.0.6" = {
+ name = "fast-levenshtein";
+ packageName = "fast-levenshtein";
+ version = "2.0.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz";
+ sha1 = "3d8a5c66883a16a30ca8643e851f19baa7797917";
+ };
+ };
+ "figures-1.7.0" = {
+ name = "figures";
+ packageName = "figures";
+ version = "1.7.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz";
+ sha1 = "cbe1e3affcf1cd44b80cadfed28dc793a9701d2e";
+ };
+ };
+ "file-entry-cache-2.0.0" = {
+ name = "file-entry-cache";
+ packageName = "file-entry-cache";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz";
+ sha1 = "c392990c3e684783d838b8c84a45d8a048458361";
+ };
+ };
+ "flat-cache-1.3.0" = {
+ name = "flat-cache";
+ packageName = "flat-cache";
+ version = "1.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz";
+ sha1 = "d3030b32b38154f4e3b7e9c709f490f7ef97c481";
+ };
+ };
+ "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";
+ };
+ };
+ "generate-function-2.0.0" = {
+ name = "generate-function";
+ packageName = "generate-function";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz";
+ sha1 = "6858fe7c0969b7d4e9093337647ac79f60dfbe74";
+ };
+ };
+ "generate-object-property-1.2.0" = {
+ name = "generate-object-property";
+ packageName = "generate-object-property";
+ version = "1.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz";
+ sha1 = "9c0e1c40308ce804f4783618b937fa88f99d50d0";
+ };
+ };
+ "glob-7.1.2" = {
+ name = "glob";
+ packageName = "glob";
+ version = "7.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz";
+ sha512 = "MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==";
+ };
+ };
+ "globals-9.18.0" = {
+ name = "globals";
+ packageName = "globals";
+ version = "9.18.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz";
+ sha512 = "S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==";
+ };
+ };
+ "globby-5.0.0" = {
+ name = "globby";
+ packageName = "globby";
+ version = "5.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz";
+ sha1 = "ebd84667ca0dbb330b99bcfc68eac2bc54370e0d";
+ };
+ };
+ "graceful-fs-4.1.11" = {
+ name = "graceful-fs";
+ packageName = "graceful-fs";
+ version = "4.1.11";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz";
+ sha1 = "0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658";
+ };
+ };
+ "has-ansi-2.0.0" = {
+ name = "has-ansi";
+ packageName = "has-ansi";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz";
+ sha1 = "34f5049ce1ecdf2b0649af3ef24e45ed35416d91";
+ };
+ };
+ "has-flag-2.0.0" = {
+ name = "has-flag";
+ packageName = "has-flag";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz";
+ sha1 = "e8207af1cc7b30d446cc70b734b5e8be18f88d51";
+ };
+ };
+ "iconv-lite-0.4.19" = {
+ name = "iconv-lite";
+ packageName = "iconv-lite";
+ version = "0.4.19";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz";
+ sha512 = "oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==";
+ };
+ };
+ "ignore-3.3.7" = {
+ name = "ignore";
+ packageName = "ignore";
+ version = "3.3.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ignore/-/ignore-3.3.7.tgz";
+ sha512 = "YGG3ejvBNHRqu0559EOxxNFihD0AjpvHlC/pdGKd3X3ofe+CoJkYazwNJYTNebqpPKN+VVQbh4ZFn1DivMNuHA==";
+ };
+ };
+ "imurmurhash-0.1.4" = {
+ name = "imurmurhash";
+ packageName = "imurmurhash";
+ version = "0.1.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz";
+ sha1 = "9218b9b2b928a238b13dc4fb6b6d576f231453ea";
+ };
+ };
+ "in-publish-2.0.0" = {
+ name = "in-publish";
+ packageName = "in-publish";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz";
+ sha1 = "e20ff5e3a2afc2690320b6dc552682a9c7fadf51";
+ };
+ };
+ "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";
+ };
+ };
+ "inquirer-0.11.0" = {
+ name = "inquirer";
+ packageName = "inquirer";
+ version = "0.11.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/inquirer/-/inquirer-0.11.0.tgz";
+ sha1 = "7448bfa924092af311d47173bbab990cae2bb027";
+ };
+ };
+ "inquirer-0.12.0" = {
+ name = "inquirer";
+ packageName = "inquirer";
+ version = "0.12.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz";
+ sha1 = "1ef2bfd63504df0bc75785fff8c2c41df12f077e";
+ };
+ };
+ "install-0.10.4" = {
+ name = "install";
+ packageName = "install";
+ version = "0.10.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/install/-/install-0.10.4.tgz";
+ sha512 = "+IRyOastuPmLVx9zlVXJoKErSqz1Ma5at9A7S8yfsj3W+Kg95faPoh3bPDtMrZ/grz4PRmXzrswmlzfLlYyLOw==";
+ };
+ };
+ "interpret-1.1.0" = {
+ name = "interpret";
+ packageName = "interpret";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz";
+ sha1 = "7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614";
+ };
+ };
+ "iota.lib.js-0.4.6" = {
+ name = "iota.lib.js";
+ packageName = "iota.lib.js";
+ version = "0.4.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/iota.lib.js/-/iota.lib.js-0.4.6.tgz";
+ sha1 = "47afdc03d57c7f55d2f58f068db492df6bc6e9bb";
+ };
+ };
+ "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-2.0.0" = {
+ name = "is-fullwidth-code-point";
+ packageName = "is-fullwidth-code-point";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz";
+ sha1 = "a3b30a5c4f199183167aaab93beefae3ddfb654f";
+ };
+ };
+ "is-my-json-valid-2.16.1" = {
+ name = "is-my-json-valid";
+ packageName = "is-my-json-valid";
+ version = "2.16.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.1.tgz";
+ sha512 = "ochPsqWS1WXj8ZnMIV0vnNXooaMhp7cyL4FMSIPKTtnV0Ha/T19G2b9kkhcNsabV9bxYkze7/aLZJb/bYuFduQ==";
+ };
+ };
+ "is-path-cwd-1.0.0" = {
+ name = "is-path-cwd";
+ packageName = "is-path-cwd";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz";
+ sha1 = "d225ec23132e89edd38fda767472e62e65f1106d";
+ };
+ };
+ "is-path-in-cwd-1.0.0" = {
+ name = "is-path-in-cwd";
+ packageName = "is-path-in-cwd";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz";
+ sha1 = "6477582b8214d602346094567003be8a9eac04dc";
+ };
+ };
+ "is-path-inside-1.0.1" = {
+ name = "is-path-inside";
+ packageName = "is-path-inside";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz";
+ sha1 = "8ef5b7de50437a3fdca6b4e865ef7aa55cb48036";
+ };
+ };
+ "is-property-1.0.2" = {
+ name = "is-property";
+ packageName = "is-property";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz";
+ sha1 = "57fe1c4e48474edd65b09911f26b1cd4095dda84";
+ };
+ };
+ "is-resolvable-1.0.1" = {
+ name = "is-resolvable";
+ packageName = "is-resolvable";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.1.tgz";
+ sha512 = "y5CXYbzvB3jTnWAZH1Nl7ykUWb6T3BcTs56HUruwBf8MhF56n1HWqhDWnVFo8GHrUPDgvUUNVhrc2U8W7iqz5g==";
+ };
+ };
+ "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";
+ };
+ };
+ "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-3.0.2" = {
+ name = "js-tokens";
+ packageName = "js-tokens";
+ version = "3.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz";
+ sha1 = "9866df395102130e38f7f996bceb65443209c25b";
+ };
+ };
+ "js-yaml-3.10.0" = {
+ name = "js-yaml";
+ packageName = "js-yaml";
+ version = "3.10.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz";
+ sha512 = "O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==";
+ };
+ };
+ "json-stable-stringify-1.0.1" = {
+ name = "json-stable-stringify";
+ packageName = "json-stable-stringify";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz";
+ sha1 = "9a759d39c5f2ff503fd5300646ed445f88c4f9af";
+ };
+ };
+ "json5-0.5.1" = {
+ name = "json5";
+ packageName = "json5";
+ version = "0.5.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz";
+ sha1 = "1eade7acc012034ad84e2396767ead9fa5495821";
+ };
+ };
+ "jsonify-0.0.0" = {
+ name = "jsonify";
+ packageName = "jsonify";
+ version = "0.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz";
+ sha1 = "2c74b6ee41d93ca51b7b5aaee8f503631d252a73";
+ };
+ };
+ "jsonpointer-4.0.1" = {
+ name = "jsonpointer";
+ packageName = "jsonpointer";
+ version = "4.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz";
+ sha1 = "4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9";
+ };
+ };
+ "left-pad-1.2.0" = {
+ name = "left-pad";
+ packageName = "left-pad";
+ version = "1.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/left-pad/-/left-pad-1.2.0.tgz";
+ sha1 = "d30a73c6b8201d8f7d8e7956ba9616087a68e0ee";
+ };
+ };
+ "levn-0.3.0" = {
+ name = "levn";
+ packageName = "levn";
+ version = "0.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz";
+ sha1 = "3b09924edf9f083c0490fdd4c0bc4421e04764ee";
+ };
+ };
+ "lodash-3.10.1" = {
+ name = "lodash";
+ packageName = "lodash";
+ version = "3.10.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz";
+ sha1 = "5bf45e8e49ba4189e17d482789dfd15bd140b7b6";
+ };
+ };
+ "lodash-4.17.4" = {
+ name = "lodash";
+ packageName = "lodash";
+ version = "4.17.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz";
+ sha1 = "78203a4d1c328ae1d86dca6460e369b57f4055ae";
+ };
+ };
+ "log-update-1.0.2" = {
+ name = "log-update";
+ packageName = "log-update";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/log-update/-/log-update-1.0.2.tgz";
+ sha1 = "19929f64c4093d2d2e7075a1dad8af59c296b8d1";
+ };
+ };
+ "minimatch-3.0.4" = {
+ name = "minimatch";
+ packageName = "minimatch";
+ version = "3.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz";
+ sha512 = "yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==";
+ };
+ };
+ "minimist-0.0.8" = {
+ name = "minimist";
+ packageName = "minimist";
+ version = "0.0.8";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz";
+ sha1 = "857fcabfc3397d2625b8228262e86aa7a011b05d";
+ };
+ };
+ "minimist-1.2.0" = {
+ name = "minimist";
+ packageName = "minimist";
+ version = "1.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz";
+ sha1 = "a35008b20f41383eec1fb914f4cd5df79a264284";
+ };
+ };
+ "mkdirp-0.5.1" = {
+ name = "mkdirp";
+ packageName = "mkdirp";
+ version = "0.5.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz";
+ sha1 = "30057438eac6cf7f8c4767f38648d6697d75c903";
+ };
+ };
+ "moment-2.20.1" = {
+ name = "moment";
+ packageName = "moment";
+ version = "2.20.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/moment/-/moment-2.20.1.tgz";
+ sha512 = "Yh9y73JRljxW5QxN08Fner68eFLxM5ynNOAw2LbIB1YAGeQzZT8QFSUvkAz609Zf+IHhhaUxqZK8dG3W/+HEvg==";
+ };
+ };
+ "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";
+ };
+ };
+ "mute-stream-0.0.5" = {
+ name = "mute-stream";
+ packageName = "mute-stream";
+ version = "0.0.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz";
+ sha1 = "8fbfabb0a98a253d3184331f9e8deb7372fac6c0";
+ };
+ };
+ "natural-compare-1.4.0" = {
+ name = "natural-compare";
+ packageName = "natural-compare";
+ version = "1.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz";
+ sha1 = "4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7";
+ };
+ };
+ "node-fetch-1.7.3" = {
+ name = "node-fetch";
+ packageName = "node-fetch";
+ version = "1.7.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz";
+ sha512 = "NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==";
+ };
+ };
+ "node-localstorage-0.6.0" = {
+ name = "node-localstorage";
+ packageName = "node-localstorage";
+ version = "0.6.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/node-localstorage/-/node-localstorage-0.6.0.tgz";
+ sha1 = "45a0601c6932dfde6644a23361f1be173c75d3af";
+ };
+ };
+ "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";
+ };
+ };
+ "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";
+ };
+ };
+ "onetime-1.1.0" = {
+ name = "onetime";
+ packageName = "onetime";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz";
+ sha1 = "a1f7838f8314c516f05ecefcbc4ccfe04b4ed789";
+ };
+ };
+ "optionator-0.8.2" = {
+ name = "optionator";
+ packageName = "optionator";
+ version = "0.8.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz";
+ sha1 = "364c5e409d3f4d6301d6c0b4c05bba50180aeb64";
+ };
+ };
+ "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";
+ };
+ };
+ "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-is-inside-1.0.2" = {
+ name = "path-is-inside";
+ packageName = "path-is-inside";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz";
+ sha1 = "365417dede44430d1c11af61027facf074bdfc53";
+ };
+ };
+ "path-parse-1.0.5" = {
+ name = "path-parse";
+ packageName = "path-parse";
+ version = "1.0.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz";
+ sha1 = "3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1";
+ };
+ };
+ "pify-2.3.0" = {
+ name = "pify";
+ packageName = "pify";
+ version = "2.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz";
+ sha1 = "ed141a6ac043a849ea588498e7dca8b15330e90c";
+ };
+ };
+ "pinkie-2.0.4" = {
+ name = "pinkie";
+ packageName = "pinkie";
+ version = "2.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz";
+ sha1 = "72556b80cfa0d48a974e80e77248e80ed4f7f870";
+ };
+ };
+ "pinkie-promise-2.0.1" = {
+ name = "pinkie-promise";
+ packageName = "pinkie-promise";
+ version = "2.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz";
+ sha1 = "2135d6dfa7a358c069ac9b178776288228450ffa";
+ };
+ };
+ "pluralize-1.2.1" = {
+ name = "pluralize";
+ packageName = "pluralize";
+ version = "1.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pluralize/-/pluralize-1.2.1.tgz";
+ sha1 = "d1a21483fd22bb41e58a12fa3421823140897c45";
+ };
+ };
+ "prelude-ls-1.1.2" = {
+ name = "prelude-ls";
+ packageName = "prelude-ls";
+ version = "1.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz";
+ sha1 = "21932a549f5e52ffd9a827f570e04be62a97da54";
+ };
+ };
+ "prettyjson-1.2.1" = {
+ name = "prettyjson";
+ packageName = "prettyjson";
+ version = "1.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/prettyjson/-/prettyjson-1.2.1.tgz";
+ sha1 = "fcffab41d19cab4dfae5e575e64246619b12d289";
+ };
+ };
+ "process-nextick-args-1.0.7" = {
+ name = "process-nextick-args";
+ packageName = "process-nextick-args";
+ version = "1.0.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz";
+ sha1 = "150e20b756590ad3f91093f25a4f2ad8bff30ba3";
+ };
+ };
+ "progress-1.1.8" = {
+ name = "progress";
+ packageName = "progress";
+ version = "1.1.8";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz";
+ sha1 = "e260c78f6161cdd9b0e56cc3e0a85de17c7a57be";
+ };
+ };
+ "readable-stream-2.3.3" = {
+ name = "readable-stream";
+ packageName = "readable-stream";
+ version = "2.3.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz";
+ sha512 = "m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==";
+ };
+ };
+ "readline2-1.0.1" = {
+ name = "readline2";
+ packageName = "readline2";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz";
+ sha1 = "41059608ffc154757b715d9989d199ffbf372e35";
+ };
+ };
+ "rechoir-0.6.2" = {
+ name = "rechoir";
+ packageName = "rechoir";
+ version = "0.6.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz";
+ sha1 = "85204b54dba82d5742e28c96756ef43af50e3384";
+ };
+ };
+ "regenerator-runtime-0.10.5" = {
+ name = "regenerator-runtime";
+ packageName = "regenerator-runtime";
+ version = "0.10.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz";
+ sha1 = "336c3efc1220adcedda2c9fab67b5a7955a33658";
+ };
+ };
+ "regenerator-runtime-0.11.1" = {
+ name = "regenerator-runtime";
+ packageName = "regenerator-runtime";
+ version = "0.11.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz";
+ sha512 = "MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==";
+ };
+ };
+ "require-uncached-1.0.3" = {
+ name = "require-uncached";
+ packageName = "require-uncached";
+ version = "1.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz";
+ sha1 = "4e0d56d6c9662fd31e43011c4b95aa49955421d3";
+ };
+ };
+ "resolve-1.5.0" = {
+ name = "resolve";
+ packageName = "resolve";
+ version = "1.5.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz";
+ sha512 = "hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==";
+ };
+ };
+ "resolve-from-1.0.1" = {
+ name = "resolve-from";
+ packageName = "resolve-from";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz";
+ sha1 = "26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226";
+ };
+ };
+ "restore-cursor-1.0.1" = {
+ name = "restore-cursor";
+ packageName = "restore-cursor";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz";
+ sha1 = "34661f46886327fed2991479152252df92daa541";
+ };
+ };
+ "rimraf-2.6.2" = {
+ name = "rimraf";
+ packageName = "rimraf";
+ version = "2.6.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz";
+ sha512 = "lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==";
+ };
+ };
+ "run-async-0.1.0" = {
+ name = "run-async";
+ packageName = "run-async";
+ version = "0.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz";
+ sha1 = "c8ad4a5e110661e402a7d21b530e009f25f8e389";
+ };
+ };
+ "rx-lite-3.1.2" = {
+ name = "rx-lite";
+ packageName = "rx-lite";
+ version = "3.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz";
+ sha1 = "19ce502ca572665f3b647b10939f97fd1615f102";
+ };
+ };
+ "safe-buffer-5.1.1" = {
+ name = "safe-buffer";
+ packageName = "safe-buffer";
+ version = "5.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz";
+ sha512 = "kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==";
+ };
+ };
+ "shelljs-0.7.8" = {
+ name = "shelljs";
+ packageName = "shelljs";
+ version = "0.7.8";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/shelljs/-/shelljs-0.7.8.tgz";
+ sha1 = "decbcf874b0d1e5fb72e14b164a9683048e9acb3";
+ };
+ };
+ "slice-ansi-0.0.4" = {
+ name = "slice-ansi";
+ packageName = "slice-ansi";
+ version = "0.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz";
+ sha1 = "edbf8903f66f7ce2f8eafd6ceed65e264c831b35";
+ };
+ };
+ "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";
+ };
+ };
+ "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-2.1.1" = {
+ name = "string-width";
+ packageName = "string-width";
+ version = "2.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz";
+ sha512 = "nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==";
+ };
+ };
+ "string_decoder-1.0.3" = {
+ name = "string_decoder";
+ packageName = "string_decoder";
+ version = "1.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz";
+ sha512 = "4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==";
+ };
+ };
+ "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-4.0.0" = {
+ name = "strip-ansi";
+ packageName = "strip-ansi";
+ version = "4.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz";
+ sha1 = "a8479022eb1ac368a871389b635262c505ee368f";
+ };
+ };
+ "strip-bom-3.0.0" = {
+ name = "strip-bom";
+ packageName = "strip-bom";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz";
+ sha1 = "2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3";
+ };
+ };
+ "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-2.0.0" = {
+ name = "supports-color";
+ packageName = "supports-color";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz";
+ sha1 = "535d045ce6b6363fa40117084629995e9df324c7";
+ };
+ };
+ "supports-color-4.5.0" = {
+ name = "supports-color";
+ packageName = "supports-color";
+ version = "4.5.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz";
+ sha1 = "be7a0de484dec5c5cddf8b3d59125044912f635b";
+ };
+ };
+ "table-3.8.3" = {
+ name = "table";
+ packageName = "table";
+ version = "3.8.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/table/-/table-3.8.3.tgz";
+ sha1 = "2bbc542f0fda9861a755d3947fefd8b3f513855f";
+ };
+ };
+ "text-table-0.2.0" = {
+ name = "text-table";
+ packageName = "text-table";
+ version = "0.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz";
+ sha1 = "7f5ee823ae805207c00af2df4a84ec3fcfa570b4";
+ };
+ };
+ "through-2.3.8" = {
+ name = "through";
+ packageName = "through";
+ version = "2.3.8";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/through/-/through-2.3.8.tgz";
+ sha1 = "0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5";
+ };
+ };
+ "type-check-0.3.2" = {
+ name = "type-check";
+ packageName = "type-check";
+ version = "0.3.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz";
+ sha1 = "5884cab512cf1d355e3fb784f30804b2b520db72";
+ };
+ };
+ "typedarray-0.0.6" = {
+ name = "typedarray";
+ packageName = "typedarray";
+ version = "0.0.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz";
+ sha1 = "867ac74e3864187b1d3d47d996a78ec5c8830777";
+ };
+ };
+ "user-home-2.0.0" = {
+ name = "user-home";
+ packageName = "user-home";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz";
+ sha1 = "9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f";
+ };
+ };
+ "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";
+ };
+ };
+ "vorpal-1.12.0" = {
+ name = "vorpal";
+ packageName = "vorpal";
+ version = "1.12.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/vorpal/-/vorpal-1.12.0.tgz";
+ sha1 = "4be7b2a4e48f8fcfc9cf3648c419d311c522159d";
+ };
+ };
+ "wordwrap-1.0.0" = {
+ name = "wordwrap";
+ packageName = "wordwrap";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz";
+ sha1 = "27584810891456a4171c8d0226441ade90cbcaeb";
+ };
+ };
+ "wrap-ansi-2.1.0" = {
+ name = "wrap-ansi";
+ packageName = "wrap-ansi";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz";
+ sha1 = "d8fc3d284dd05794fe84973caecdd1cf824fdd85";
+ };
+ };
+ "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";
+ };
+ };
+ "write-0.2.1" = {
+ name = "write";
+ packageName = "write";
+ version = "0.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/write/-/write-0.2.1.tgz";
+ sha1 = "5fc03828e264cea3fe91455476f7a3c566cb0757";
+ };
+ };
+ "xmlhttprequest-1.8.0" = {
+ name = "xmlhttprequest";
+ packageName = "xmlhttprequest";
+ version = "1.8.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz";
+ sha1 = "67fe075c5c24fef39f9d65f5f7b7fe75171968fc";
+ };
+ };
+ "xtend-4.0.1" = {
+ name = "xtend";
+ packageName = "xtend";
+ version = "4.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz";
+ sha1 = "a5c6d532be656e23db820efb943a1f04998d63af";
+ };
+ };
+ };
+ args = {
+ name = "iota-cli-app";
+ packageName = "iota-cli-app";
+ version = "1.0.8";
+ inherit src;
+ dependencies = [
+ sources."acorn-5.2.1"
+ (sources."acorn-jsx-3.0.1" // {
+ dependencies = [
+ sources."acorn-3.3.0"
+ ];
+ })
+ sources."ajv-4.11.8"
+ sources."ajv-keywords-1.5.1"
+ sources."ansi-escapes-1.4.0"
+ sources."ansi-regex-2.1.1"
+ sources."ansi-styles-3.2.0"
+ sources."argparse-1.0.9"
+ sources."array-union-1.0.2"
+ sources."array-uniq-1.0.3"
+ sources."arrify-1.0.1"
+ sources."async-2.6.0"
+ (sources."babel-code-frame-6.26.0" // {
+ dependencies = [
+ sources."ansi-styles-2.2.1"
+ sources."chalk-1.1.3"
+ sources."supports-color-2.0.0"
+ ];
+ })
+ sources."babel-polyfill-6.26.0"
+ (sources."babel-runtime-6.26.0" // {
+ dependencies = [
+ sources."regenerator-runtime-0.11.1"
+ ];
+ })
+ sources."balanced-match-1.0.0"
+ sources."bignumber.js-4.1.0"
+ sources."bluebird-3.5.1"
+ sources."brace-expansion-1.1.8"
+ sources."caller-path-0.1.0"
+ sources."callsites-0.2.0"
+ sources."chalk-2.3.0"
+ sources."circular-json-0.3.3"
+ sources."cli-cursor-1.0.2"
+ sources."cli-width-2.2.0"
+ sources."co-4.6.0"
+ sources."code-point-at-1.1.0"
+ sources."color-convert-1.9.1"
+ sources."color-name-1.1.3"
+ sources."colors-1.1.2"
+ sources."concat-map-0.0.1"
+ sources."concat-stream-1.6.0"
+ sources."core-js-2.5.3"
+ sources."core-util-is-1.0.2"
+ sources."crypto-js-3.1.9-1"
+ sources."d-1.0.0"
+ sources."debug-2.6.9"
+ sources."deep-is-0.1.3"
+ sources."del-2.2.2"
+ sources."doctrine-2.0.2"
+ sources."encoding-0.1.12"
+ sources."es5-ext-0.10.37"
+ sources."es6-iterator-2.0.3"
+ sources."es6-map-0.1.5"
+ sources."es6-set-0.1.5"
+ sources."es6-symbol-3.1.1"
+ sources."es6-weak-map-2.0.2"
+ sources."escape-string-regexp-1.0.5"
+ sources."escope-3.6.0"
+ (sources."eslint-3.19.0" // {
+ dependencies = [
+ sources."ansi-styles-2.2.1"
+ sources."chalk-1.1.3"
+ sources."supports-color-2.0.0"
+ ];
+ })
+ sources."espree-3.5.2"
+ sources."esprima-4.0.0"
+ sources."esquery-1.0.0"
+ sources."esrecurse-4.2.0"
+ sources."estraverse-4.2.0"
+ sources."esutils-2.0.2"
+ sources."event-emitter-0.3.5"
+ sources."exit-hook-1.1.1"
+ sources."fast-levenshtein-2.0.6"
+ sources."figures-1.7.0"
+ sources."file-entry-cache-2.0.0"
+ sources."flat-cache-1.3.0"
+ sources."fs.realpath-1.0.0"
+ sources."generate-function-2.0.0"
+ sources."generate-object-property-1.2.0"
+ sources."glob-7.1.2"
+ sources."globals-9.18.0"
+ sources."globby-5.0.0"
+ sources."graceful-fs-4.1.11"
+ sources."has-ansi-2.0.0"
+ sources."has-flag-2.0.0"
+ sources."iconv-lite-0.4.19"
+ sources."ignore-3.3.7"
+ sources."imurmurhash-0.1.4"
+ sources."in-publish-2.0.0"
+ sources."inflight-1.0.6"
+ sources."inherits-2.0.3"
+ (sources."inquirer-0.12.0" // {
+ dependencies = [
+ sources."ansi-styles-2.2.1"
+ sources."chalk-1.1.3"
+ sources."supports-color-2.0.0"
+ ];
+ })
+ sources."install-0.10.4"
+ sources."interpret-1.1.0"
+ sources."iota.lib.js-0.4.6"
+ sources."is-fullwidth-code-point-1.0.0"
+ sources."is-my-json-valid-2.16.1"
+ sources."is-path-cwd-1.0.0"
+ sources."is-path-in-cwd-1.0.0"
+ sources."is-path-inside-1.0.1"
+ sources."is-property-1.0.2"
+ sources."is-resolvable-1.0.1"
+ sources."is-stream-1.1.0"
+ sources."isarray-1.0.0"
+ sources."js-tokens-3.0.2"
+ sources."js-yaml-3.10.0"
+ sources."json-stable-stringify-1.0.1"
+ sources."json5-0.5.1"
+ sources."jsonify-0.0.0"
+ sources."jsonpointer-4.0.1"
+ sources."left-pad-1.2.0"
+ sources."levn-0.3.0"
+ sources."lodash-4.17.4"
+ sources."log-update-1.0.2"
+ sources."minimatch-3.0.4"
+ sources."minimist-0.0.8"
+ sources."mkdirp-0.5.1"
+ sources."moment-2.20.1"
+ sources."ms-2.0.0"
+ sources."mute-stream-0.0.5"
+ sources."natural-compare-1.4.0"
+ sources."node-fetch-1.7.3"
+ sources."node-localstorage-0.6.0"
+ sources."number-is-nan-1.0.1"
+ sources."object-assign-4.1.1"
+ sources."once-1.4.0"
+ sources."onetime-1.1.0"
+ sources."optionator-0.8.2"
+ sources."os-homedir-1.0.2"
+ sources."path-is-absolute-1.0.1"
+ sources."path-is-inside-1.0.2"
+ sources."path-parse-1.0.5"
+ sources."pify-2.3.0"
+ sources."pinkie-2.0.4"
+ sources."pinkie-promise-2.0.1"
+ sources."pluralize-1.2.1"
+ sources."prelude-ls-1.1.2"
+ (sources."prettyjson-1.2.1" // {
+ dependencies = [
+ sources."minimist-1.2.0"
+ ];
+ })
+ sources."process-nextick-args-1.0.7"
+ sources."progress-1.1.8"
+ sources."readable-stream-2.3.3"
+ sources."readline2-1.0.1"
+ sources."rechoir-0.6.2"
+ sources."regenerator-runtime-0.10.5"
+ sources."require-uncached-1.0.3"
+ sources."resolve-1.5.0"
+ sources."resolve-from-1.0.1"
+ sources."restore-cursor-1.0.1"
+ sources."rimraf-2.6.2"
+ sources."run-async-0.1.0"
+ sources."rx-lite-3.1.2"
+ sources."safe-buffer-5.1.1"
+ sources."shelljs-0.7.8"
+ sources."slice-ansi-0.0.4"
+ sources."sprintf-js-1.0.3"
+ sources."string-width-1.0.2"
+ sources."string_decoder-1.0.3"
+ sources."strip-ansi-3.0.1"
+ sources."strip-bom-3.0.0"
+ sources."strip-json-comments-2.0.1"
+ sources."supports-color-4.5.0"
+ (sources."table-3.8.3" // {
+ dependencies = [
+ sources."ansi-regex-3.0.0"
+ sources."ansi-styles-2.2.1"
+ (sources."chalk-1.1.3" // {
+ dependencies = [
+ sources."ansi-regex-2.1.1"
+ sources."strip-ansi-3.0.1"
+ ];
+ })
+ sources."is-fullwidth-code-point-2.0.0"
+ sources."string-width-2.1.1"
+ sources."strip-ansi-4.0.0"
+ sources."supports-color-2.0.0"
+ ];
+ })
+ sources."text-table-0.2.0"
+ sources."through-2.3.8"
+ sources."type-check-0.3.2"
+ sources."typedarray-0.0.6"
+ sources."user-home-2.0.0"
+ sources."util-deprecate-1.0.2"
+ (sources."vorpal-1.12.0" // {
+ dependencies = [
+ sources."ansi-styles-2.2.1"
+ sources."chalk-1.1.3"
+ sources."cli-width-1.1.1"
+ (sources."inquirer-0.11.0" // {
+ dependencies = [
+ sources."lodash-3.10.1"
+ ];
+ })
+ sources."minimist-1.2.0"
+ sources."supports-color-2.0.0"
+ ];
+ })
+ sources."wordwrap-1.0.0"
+ sources."wrap-ansi-2.1.0"
+ sources."wrappy-1.0.2"
+ sources."write-0.2.1"
+ sources."xmlhttprequest-1.8.0"
+ sources."xtend-4.0.1"
+ ];
+ buildInputs = globalBuildInputs;
+ meta = {
+ description = "IOTA CLI";
+ homepage = "https://github.com/iotaledger/cli-app#readme";
+ license = "MIT";
+ };
+ production = true;
+ bypassCache = true;
+ };
+in
+{
+ tarball = nodeEnv.buildNodeSourceDist args;
+ package = nodeEnv.buildNodePackage args;
+ shell = nodeEnv.buildNodeShell args;
+}
--- /dev/null
+{ stdenv, fetchzip }:
+stdenv.mkDerivation rec {
+ version = "v1.3.7";
+ name = "Sia-${version}";
+ src = fetchzip {
+ url = "https://sia.tech/static/releases/${name}-linux-amd64.zip";
+ sha256 = "1ljzwrlkx4hc16r8siiyakn039afipp95dyr83c8yfq3r3bfasqd";
+ };
+ phases = "installPhase";
+ installPhase = ''
+ mkdir -p $out/share/doc
+ mkdir -p $out/bin
+ mkdir -p $out/share/sia
+ cp -a $src/doc $out/share/doc/sia
+ cp -a $src/LICENSE $src/README.md $out/share/sia
+ cp -a $src/{siac,siad} $out/bin
+ cp -a $src/{siac,siad}.sig $out/share/sia/
+ '';
+}
--- /dev/null
+{ pkgs }:
+with pkgs;
+let
+ mylibs = import ../libs.nix { inherit pkgs; };
+in
+rec {
+ boinctui = callPackage ../pkgs/boinctui {};
+ cnagios = callPackage ../pkgs/cnagios { inherit mylibs; };
+ duply = callPackage ../pkgs/duply {};
+ flrn = callPackage ../pkgs/flrn { inherit mylibs; slang = callPackage ../pkgs/slang_1 {}; };
+ genius = callPackage ../pkgs/genius {};
+ mtop = callPackage ../pkgs/mtop {};
+ muttprint = callPackage ../pkgs/muttprint {};
+ mutt-ics = callPackage ../pkgs/mutt-ics { inherit mylibs; };
+ nagios-cli = callPackage ../pkgs/nagios-cli { inherit mylibs; };
+ nagnu = callPackage ../pkgs/nagnu { inherit mylibs; };
+ note = callPackage ../pkgs/note {};
+ notmuch-python2 = callPackage ../pkgs/notmuch/notmuch-python { pythonPackages = python2Packages; };
+ notmuch-python3 = callPackage ../pkgs/notmuch/notmuch-python { pythonPackages = python3Packages; };
+ notmuch-vim = callPackage ../pkgs/notmuch/notmuch-vim {};
+ pg_activity = callPackage ../pkgs/pg_activity { inherit mylibs; };
+ pgloader = callPackage ../pkgs/pgloader { inherit mylibs; };
+ telegram-cli = callPackage ../pkgs/telegram-cli { inherit mylibs; };
+ telegram-history-dump = callPackage ../pkgs/telegram-history-dump { inherit mylibs; };
+ telegramircd = callPackage ../pkgs/telegramircd { inherit mylibs; telethon = callPackage ../pkgs/telethon_sync {}; };
+ terminal-velocity = callPackage ../pkgs/terminal-velocity {};
+ tiv = callPackage ../pkgs/tiv {};
+ unicodeDoc = callPackage ../pkgs/unicode {};
+
+ cardano = callPackage ../pkgs/crypto/cardano { inherit mylibs; };
+ iota-cli-app = callPackage ../pkgs/crypto/iota-cli-app { inherit mylibs; };
+ sia = callPackage ../pkgs/crypto/sia {};
+
+ pure-ftpd = callPackage ../pkgs/pure-ftpd {};
+ mpd = (callPackage ../pkgs/mpd_0_21 {}).mpd;
+ mpd-small = (callPackage ../pkgs/mpd_0_21 {}).mpd-small;
+
+ bitlbee-mastodon = callPackage ./bitlbee-mastodon {};
+
+ composerEnv = callPackage ./composer-env {};
+ webapps = callPackage ./webapps { inherit mylibs composerEnv private; };
+
+ private = if builtins.pathExists (./. + "/private")
+ then import ./private { inherit pkgs; }
+ else { webapps = {}; };
+
+ python3PackagesPlus = callPackage ./python-packages {
+ python = python3;
+ inherit mylibs;
+ };
+}
--- /dev/null
+{ stdenv, fetchurl, makeWrapper, coreutils, python2, duplicity, gawk, gnupg1, bash, gnugrep, txt2man, which }:
+stdenv.mkDerivation rec {
+ name = "duply-${version}";
+ version = "2.1";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/project/ftplicity/duply%20%28simple%20duplicity%29/2.1.x/duply_${version}.tgz";
+ sha256 = "0i5j7h7h6ssrwhll0sfhymisshg54kx7j45zcqffzjxa0ylvzlm8";
+ };
+
+ buildInputs = [ txt2man makeWrapper ];
+
+ postPatch = "patchShebangs .";
+
+ installPhase = ''
+ mkdir -p "$out/bin"
+ mkdir -p "$out/share/man/man1"
+ install -vD duply "$out/bin"
+ sed -i $out/bin/duply -e "1a \
+ export PATH='${stdenv.lib.makeBinPath [ coreutils python2 duplicity gawk gnupg1 bash gnugrep txt2man which ]}'
+ " -e "1a \
+ export DUPL_PYTHON_BIN=$(basename ${duplicity}/lib/python*)
+ "
+ "$out/bin/duply" txt2man > "$out/share/man/man1/duply.1"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Shell front end for the duplicity backup tool";
+ longDescription = ''
+ Duply is a shell front end for the duplicity backup tool
+ http://duplicity.nongnu.org/. It greatly simplifies it's usage by
+ implementing backup job profiles, batch commands and more. Who says
+ secure backups on non-trusted spaces are no child's play?
+ '';
+ homepage = http://duply.net/;
+ license = licenses.gpl2;
+ maintainers = [ maintainers.bjornfor ];
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
--- /dev/null
+{ stdenv, mylibs, libetpan, openssl, autoconf, groff, slang, yacc }:
+stdenv.mkDerivation (mylibs.fetchedGithub ./flrn.json // {
+ buildInputs = [ libetpan openssl autoconf groff slang yacc ];
+ preConfigure = ''
+ sed -i -e "s/test -e configure/false/" configure.in
+ autoconf
+ sed -i -e '/define CHECK_MAIL/d' src/flrn_config.h
+ sed -i -e '/DEFAULT_DIR_FILE/s@".flrn"@".config/flrn"@' src/flrn_config.h
+ sed -i -e '/DEFAULT_CONFIG_FILE/s@".flrnrc"@"flrnrc"@' src/flrn_config.h
+ sed -i -e '/DEFAULT_FLNEWS_FILE/s@".flnewsrc"@"flnewsrc"@' src/flrn_config.h
+ sed -i -e '/flrn_char chaine/s@18@20@' src/flrn_command.c
+ '';
+})
--- /dev/null
+{
+ "tag": "860d642-master",
+ "meta": {
+ "name": "flrn",
+ "url": "https://github.com/Cigaes/flrn",
+ "branch": "master"
+ },
+ "github": {
+ "owner": "Cigaes",
+ "repo": "flrn",
+ "rev": "860d642bd6389a209c8b697bd044f78d23406509",
+ "sha256": "0sqlxxpy1xg7cb2hbxcr0al46nyr6jjnns4b5i8w04z5sypa9r5c",
+ "fetchSubmodules": true
+ }
+}
--- /dev/null
+{ stdenv, fetchurl, mpfr, glib, hicolor-icon-theme, gtk2, intltool, gnome-doc-utils, python3, gnome2, autoconf, automake, libtool, ncurses, readline, pkg-config, }:
+stdenv.mkDerivation rec {
+ name = "genius-${version}";
+ version = "1.0.24";
+ src = fetchurl {
+ url = "https://download.gnome.org/sources/genius/1.0/${name}.tar.xz";
+ sha256 = "772f95f6ae4716d39bb180cd50e8b6b9b074107bee0cd083b825e1e6e55916b6";
+ };
+ buildInputs = [
+ mpfr glib hicolor-icon-theme gtk2 intltool gnome-doc-utils python3 gnome2.gtksourceview
+ autoconf automake libtool ncurses readline pkg-config
+ ];
+ preConfigure = ''
+ autoreconf -fi
+ '';
+ preBuild = ''
+ sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
+ '';
+}
--- /dev/null
+{ stdenv, fetchFromGitHub, meson, ninja, pkgconfig, glib, systemd, boost, darwin
+# Inputs
+, curl, libmms, libnfs, samba
+# Archive support
+, bzip2, zziplib
+# Codecs
+, audiofile, faad2, ffmpeg, flac, fluidsynth, game-music-emu
+, libmad, libmikmod, mpg123, libopus, libvorbis, lame
+# Filters
+, libsamplerate
+# Outputs
+, alsaLib, libjack2, libpulseaudio, libshout
+# Misc
+, icu, sqlite, avahi, dbus, pcre, libgcrypt, expat
+# Services
+, yajl
+# Client support
+, mpd_clientlib
+# Tag support
+, libid3tag
+}:
+
+let
+ major = "0.21";
+ minor = "7";
+
+ lib = stdenv.lib;
+ mkDisable = f: "-D${f}=disabled";
+ mkEnable = f: "-D${f}=enabled";
+ keys = lib.mapAttrsToList (k: v: k);
+
+ featureDependencies = {
+ # Storage plugins
+ udisks = [ dbus ];
+ webdav = [ curl expat ];
+ # Input plugins
+ curl = [ curl ];
+ mms = [ libmms ];
+ nfs = [ libnfs ];
+ smbclient = [ samba ];
+ # Archive support
+ bzip2 = [ bzip2 ];
+ zzip = [ zziplib ];
+ # Decoder plugins
+ audiofile = [ audiofile ];
+ faad = [ faad2 ];
+ ffmpeg = [ ffmpeg ];
+ flac = [ flac ];
+ fluidsynth = [ fluidsynth ];
+ gme = [ game-music-emu ];
+ mad = [ libmad ];
+ mikmod = [ libmikmod ];
+ mpg123 = [ mpg123 ];
+ opus = [ libopus ];
+ vorbis = [ libvorbis ];
+ # Encoder plugins
+ vorbisenc = [ libvorbis ];
+ lame = [ lame ];
+ # Filter plugins
+ libsamplerate = [ libsamplerate ];
+ # Output plugins
+ alsa = [ alsaLib ];
+ jack = [ libjack2 ];
+ pulse = [ libpulseaudio ];
+ shout = [ libshout ];
+ # Commercial services
+ qobuz = [ curl libgcrypt yajl ];
+ soundcloud = [ curl yajl ];
+ tidal = [ curl yajl ];
+ # Client support
+ libmpdclient = [ mpd_clientlib ];
+ # Tag support
+ id3tag = [ libid3tag ];
+ # Misc
+ dbus = [ dbus ];
+ expat = [ expat ];
+ icu = [ icu ];
+ pcre = [ pcre ];
+ sqlite = [ sqlite ];
+ systemd = [ systemd ];
+ yajl = [ yajl ];
+ zeroconf = [ avahi dbus ];
+ };
+
+ run = { features ? null }:
+ let
+ fl = if (features == null )
+ then keys featureDependencies
+ else features;
+
+ # Disable platform specific features if needed
+ # using libmad to decode mp3 files on darwin is causing a segfault -- there
+ # is probably a solution, but I'm disabling it for now
+ platformMask = lib.optionals stdenv.isDarwin [ "mad" "pulse" "jack" "nfs" "smb" ]
+ ++ lib.optionals (!stdenv.isLinux) [ "alsa" "systemd" ];
+ features_ = lib.subtractLists platformMask fl;
+
+ in stdenv.mkDerivation rec {
+ name = "mpd-${version}";
+ version = "${major}${if minor == "" then "" else "." + minor}";
+
+ src = fetchFromGitHub {
+ owner = "MusicPlayerDaemon";
+ repo = "MPD";
+ rev = "v${version}";
+ sha256 = "11zi8hmlj63ngzl06vzx05669k20j4cdsp0caz4p4ayn46fd4m17";
+ };
+
+ buildInputs = [ glib boost ]
+ ++ (lib.concatLists (lib.attrVals features_ featureDependencies))
+ ++ lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.AudioToolbox;
+
+ nativeBuildInputs = [ meson ninja pkgconfig ];
+
+ enableParallelBuilding = true;
+
+ mesonFlags =
+ map mkEnable features_ ++ map mkDisable (lib.subtractLists features_ (keys featureDependencies))
+ ++ [ "-Dsyslog=enabled" ]
+ ++ lib.optional (lib.any (x: x == "zeroconf") features_)
+ "-Dzeroconf=avahi"
+ ++ lib.optional stdenv.isLinux
+ "-Dsystemd_system_unit_dir=etc/systemd/system";
+
+ meta = with stdenv.lib; {
+ description = "A flexible, powerful daemon for playing music";
+ homepage = http://mpd.wikia.com/wiki/Music_Player_Daemon_Wiki;
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ astsmtl fuuzetsu ehmry fpletz ];
+ platforms = platforms.unix;
+
+ longDescription = ''
+ Music Player Daemon (MPD) is a flexible, powerful daemon for playing
+ music. Through plugins and libraries it can play a variety of sound
+ files while being controlled by its network protocol.
+ '';
+ };
+ };
+in
+{
+ mpd = run { };
+ mpd-small = run { features = [
+ "webdav" "curl" "mms" "nfs" "bzip2" "zzip"
+ "audiofile" "faad" "flac" "gme" "mad"
+ "mpg123" "opus" "vorbis"
+ "vorbisenc" "lame" "libsamplerate"
+ "alsa" "shout" "libmpdclient"
+ "id3tag" "expat" "pcre" "yajl" "sqlite"
+ "soundcloud" "qobuz" "tidal"
+ "systemd"
+ ]; };
+}
--- /dev/null
+{ buildPerlPackage, fetchurl, perlPackages, lib }:
+buildPerlPackage rec {
+ name = "mtop-${version}";
+ version = "0.6.6";
+ src = fetchurl {
+ url = "http://downloads.sourceforge.net/project/mtop/mtop/v${version}/mtop-${version}.tar.gz";
+ sha256 = "0x0x5300b1j9i0xxk8rsrki0pspyzj2vylhzv8qg3l6j26aw0zrf";
+ };
+ outputs = ["out"];
+ buildInputs = with perlPackages; [ DBI DBDmysql Curses ];
+
+ postInstall = ''
+ cd "$out"
+ preConfigure || true
+ '';
+
+ meta = with lib; {
+ description = "MySQL top (monitor and examine slow queries)";
+ homepage = http://mtop.sourceforge.net/;
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ { name = "Marc Prewitt"; email = "mprewitt@chelsea.net"; } ];
+ platforms = platforms.unix;
+ };
+}
--- /dev/null
+{ python3Packages, mylibs }:
+with python3Packages;
+buildPythonApplication (mylibs.fetchedGithub ./mutt-ics.json // {
+ propagatedBuildInputs = [ icalendar ];
+})
--- /dev/null
+{
+ "tag": "d291187-master",
+ "meta": {
+ "name": "mutt-ics",
+ "url": "https://github.com/dmedvinsky/mutt-ics",
+ "branch": "master"
+ },
+ "github": {
+ "owner": "dmedvinsky",
+ "repo": "mutt-ics",
+ "rev": "d29118788f291f67d34fefa6eda9f95846a2fe34",
+ "sha256": "0kqzngsvzjq5gpf60jhfmb2xzjznvk172khf4dlcb72n3ak4rb92",
+ "fetchSubmodules": true
+ }
+}
--- /dev/null
+{ stdenv, fetchurl, lib, psutils, dialog, texlive, makeWrapper, automake, autoconf, imagemagick, ghostscript, perl, perlPackages }:
+stdenv.mkDerivation rec {
+ name = "muttprint-${version}";
+ version = "0.73";
+ src = fetchurl {
+ url = "http://downloads.sf.net/muttprint/${name}.tar.gz";
+ sha256 = "1dny4niyibfgazwlzfcnb37jy6k140rs6baaj629z12rmahfdavw";
+ };
+ patches = [
+ ./0.73-4.diff.gz
+ ./regex.patch
+ ./two_edge.patch
+ ];
+ preConfigure = ''
+ aclocal
+ automake --add-missing --copy
+ autoconf
+ '';
+ preBuild = ''
+ cd pics
+ convert -flop BabyTuX.eps BabyTuX.eps
+ for i in BabyTuX_color.eps BabyTuX.eps Debian_color.eps \
+ Debian.eps Gentoo.eps Gentoo_color.eps ; do
+ convert $i $(basename $i .eps).png
+ done
+ convert penguin.eps penguin.jpg
+ cd ..
+ '';
+ postInstall = ''
+ perlFlags=
+ for i in $(IFS=:; echo $PERL5LIB); do
+ perlFlags="$perlFlags -I$i"
+ done
+
+ sed -i "$out/bin/muttprint" -e "s|^#\!\(.*[ /]perl.*\)$|#\!\1$perlFlags|"
+ sed -i "$out/bin/muttprint" -e "s|ENV{HOME}/.muttprintrc|ENV{XDG_CONFIG_HOME}/muttprint/muttprintrc|"
+
+ wrapProgram $out/bin/muttprint \
+ --prefix PATH : ${lib.makeBinPath [ psutils dialog
+ (texlive.combine { inherit (texlive) scheme-basic utopia fancyvrb lastpage marvosym ucs cm-super; }) ]}
+ '';
+ buildInputs = [ makeWrapper automake autoconf imagemagick ghostscript perl ] ++
+ (with perlPackages; [ TimeDate FileWhich TextIconv ]);
+}
--- /dev/null
+--- a/muttprint 2015-07-21 11:18:04.219578426 +1200
++++ b/muttprint 2015-07-21 11:18:53.906243779 +1200
+@@ -1635,7 +1635,7 @@
+ open (AUX, "$auxfile") or fatalError "Could not open $auxfile:\n$!";
+
+ while (<AUX>) {
+- ($numberOfPages) = /\\newlabel{LastPage}{{}{(\d+)}}/;
++ ($numberOfPages) = /\\newlabel\{LastPage}\{\{}\{(\d+)}}/;
+ }
+
+ close AUX or fatalError "Could not close $auxfile:\n$!";
--- /dev/null
+--- a/muttprint 2016-05-05 13:48:50.515950744 +1200
++++ b/muttprint 2016-05-05 13:52:10.722623902 +1200
+@@ -643,14 +643,14 @@
+ if ($Config{PAPERSAVE} eq "on") {
+ if ($useCups) {
+ $Config{PRINT_COMMAND} =~
+- s/\$CUPS_OPTIONS/ -o sides=two-sided-long-edge \$CUPS_OPTIONS/;
++ s/\$CUPS_OPTIONS/ -o sides=two-sided-short-edge \$CUPS_OPTIONS/;
+ } else { # no cups
+ modifyPS("landscape");
+ }
+ } else { # no papersave
+ if ($useCups) {
+ $Config{PRINT_COMMAND} =~
+- s/\$CUPS_OPTIONS/ -o sides=two-sided-short-edge \$CUPS_OPTIONS/;
++ s/\$CUPS_OPTIONS/ -o sides=two-sided-long-edge \$CUPS_OPTIONS/;
+ } else { # no cups
+ modifyPS("portrait");
+ }
--- /dev/null
+{ python2Packages, mylibs }:
+python2Packages.buildPythonApplication (mylibs.fetchedGithub ./nagios-cli.json)
--- /dev/null
+{
+ "tag": "edc51ea-master",
+ "meta": {
+ "name": "nagios-cli",
+ "url": "https://github.com/tehmaze/nagios-cli",
+ "branch": "master"
+ },
+ "github": {
+ "owner": "tehmaze",
+ "repo": "nagios-cli",
+ "rev": "edc51eaccf1086bb4469ce45c5e5155f2d71a2f9",
+ "sha256": "1qw5fv4niz079zqwmfr3kzjv8cc31rbhi9whdbv9c32qdi3h7vsp",
+ "fetchSubmodules": true
+ }
+}
--- /dev/null
+{ stdenv, mylibs, ncurses, curl }:
+stdenv.mkDerivation (mylibs.fetchedGithub ./nagnu.json // rec {
+ buildInputs = [ ncurses curl ];
+ installPhase = ''
+ mkdir -p $out/bin
+ cp nagnu $out/bin
+ mkdir -p $out/share/doc/nagnu
+ cp nagnu.conf.sample $out/share/doc/nagnu
+ mkdir -p $out/share/man/man8
+ cp docs/nagnu.8 $out/share/man/man8
+ '';
+})
--- /dev/null
+{
+ "tag": "c7e65fc-master",
+ "meta": {
+ "name": "nagnu",
+ "url": "https://github.com/frlen/nagnu",
+ "branch": "master"
+ },
+ "github": {
+ "owner": "frlen",
+ "repo": "nagnu",
+ "rev": "c7e65fc02f46a3756a4cc47953ea2f3e57a84728",
+ "sha256": "1i2jm8ibvqcc734daamnzc3hx8q0nsry1x12q0kr5yvcsdjjgyy3",
+ "fetchSubmodules": true
+ }
+}
--- /dev/null
+{ lib, buildPerlPackage, fetchurl, perlPackages }:
+buildPerlPackage rec {
+ name = "note-1.3.26";
+ src = fetchurl {
+ url = "mirror://cpan/authors/id/T/TL/TLINDEN/${name}.tar.gz";
+ sha256 = "1h645rnb5vpms48fcyzvp7cwwcbf9k5xq49w2bpniyzzgk2brjrq";
+ };
+ outputs = ["out" "man"];
+ propagatedBuildInputs = with perlPackages; [ YAML ];
+
+ meta = with lib; {
+ description = "A perl script for maintaining notes";
+ homepage = http://www.daemon.de/NOTE;
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ { name = "T.v.Dein"; email = "tlinden@cpan.org"; } ];
+ platforms = platforms.unix;
+ };
+}
--- /dev/null
+{ stdenv, notmuch, pythonPackages }:
+stdenv.mkDerivation rec {
+ name = "notmuch-${pythonPackages.python.name}-${version}";
+ version = notmuch.version;
+ outputs = [ "out" ];
+ buildInputs = with pythonPackages; [ sphinx python ];
+ src = notmuch.src;
+ phases = [ "unpackPhase" "buildPhase" "installPhase" "fixupPhase" ];
+ buildPhase = ''
+ cd bindings/python
+ python setup.py build
+ '';
+ installPhase = ''
+ python setup.py install --prefix=$out --optimize=1
+ '';
+}
--- /dev/null
+{ stdenv, notmuch }:
+stdenv.mkDerivation rec {
+ name = "notmuch-vim-${version}";
+ version = notmuch.version;
+ outputs = [ "out" ];
+ src = notmuch.src;
+ phases = [ "unpackPhase" "installPhase" ];
+ installPhase = ''
+ make -C vim DESTDIR=$out prefix="/share/vim/vimfiles" install
+ '';
+}
--- /dev/null
+{ python2Packages, mylibs }:
+with python2Packages;
+buildPythonApplication (mylibs.fetchedGithub ./pg_activity.json // {
+ propagatedBuildInputs = [ psycopg2 psutil ];
+})
--- /dev/null
+{
+ "tag": "v1.4.0",
+ "meta": {
+ "name": "pg_activity",
+ "url": "https://github.com/julmon/pg_activity/",
+ "branch": "refs/tags/v1.4.0"
+ },
+ "github": {
+ "owner": "julmon",
+ "repo": "pg_activity",
+ "rev": "f26ae614c204254a805309026eebd5e9230b0214",
+ "sha256": "1bmvgrmna7vz2a6vknxm0k19vl9x7l6hn6vpfd7jgd53rz7c9w5p",
+ "fetchSubmodules": true
+ }
+}
--- /dev/null
+{ stdenv, mylibs, sbcl, cacert, sqlite, freetds, libzip, curl, git, openssl, makeWrapper }:
+stdenv.mkDerivation (mylibs.fetchedGithub ./pgloader.json // {
+ # was removed from quicklisp packages cd7bfa6f48295f361c691a7520fb122938bd2a68,
+ # but needs curl to build everything otherwise
+ __noChroot = true;
+ buildInputs = [ sbcl cacert sqlite freetds libzip curl git openssl makeWrapper ];
+ LD_LIBRARY_PATH = stdenv.lib.makeLibraryPath [ sqlite libzip curl git openssl freetds ];
+ buildPhase = ''
+ export PATH=$PATH:$out/bin
+ export HOME=$TMPDIR
+ make pgloader
+ '';
+ dontStrip = true;
+ enableParallelBuilding = false;
+ installPhase = ''
+ install -Dm755 build/bin/pgloader "$out/bin/pgloader"
+ wrapProgram $out/bin/pgloader --prefix LD_LIBRARY_PATH : "$LD_LIBRARY_PATH"
+ '';
+})
--- /dev/null
+{
+ "tag": "v3.5.2",
+ "meta": {
+ "name": "pgloader",
+ "url": "https://github.com/dimitri/pgloader",
+ "branch": "refs/tags/v3.5.2"
+ },
+ "github": {
+ "owner": "dimitri",
+ "repo": "pgloader",
+ "rev": "63af7e7373975391446dcae151f5c61564849025",
+ "sha256": "1rd0k1x7ml6b6x526brachm13v51vx5ikpg64c8k8j29cskq2vqa",
+ "fetchSubmodules": true
+ }
+}
--- /dev/null
+{ pkgs }:
+with pkgs;
+let
+ mylibs = import ../../libs.nix { inherit pkgs; };
+in
+rec {
+ webapps = callPackage ./webapps {
+ inherit mylibs;
+ inherit (pkgs) composerEnv;
+ inherit (pkgs.webapps) spip;
+ };
+}
--- /dev/null
+{ www_root ? null }:
+rec {
+ www = ./www;
+ apacheConfig = let
+ www_root' = if isNull www_root then www else www_root;
+ in ''
+ ErrorDocument 500 /maintenance_immae.html
+ ErrorDocument 501 /maintenance_immae.html
+ ErrorDocument 502 /maintenance_immae.html
+ ErrorDocument 503 /maintenance_immae.html
+ ErrorDocument 504 /maintenance_immae.html
+ Alias /maintenance_immae.html ${www_root'}/maintenance_immae.html
+ ProxyPass /maintenance_immae.html !
+
+ AliasMatch "(.*)/googleb6d69446ff4ca3e5.html" ${www_root'}/googleb6d69446ff4ca3e5.html
+ <Directory ${www_root'}>
+ AllowOverride None
+ Require all granted
+ </Directory>
+ '';
+}
--- /dev/null
+google-site-verification: googleb6d69446ff4ca3e5.html
\ No newline at end of file
--- /dev/null
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Hello World HTML</title>
+ </head>
+ <body>
+ <h1>It works!</h1>
+ </body>
+</html>
--- /dev/null
+<!doctype html>
+<html>
+ <head>
+ <title>Maintenance</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <style>
+ body {
+ padding-left: 5px;
+ padding-right: 5px;
+ text-align: center;
+ margin: auto;
+ font: 20px Helvetica, sans-serif;
+ color: #333;
+ }
+ h1 {
+ margin: 0px;
+ font-size: 40px;
+ }
+ article {
+ display: block;
+ max-width: 650px;
+ margin: 0 auto;
+ padding-top: 30px;
+ }
+ article + article {
+ border-top: 1px solid lightgrey;
+ }
+ article div {
+ text-align: justify;
+ }
+ a {
+ color: #dc8100;
+ text-decoration: none;
+ }
+ a:hover {
+ color: #333;
+ }
+ </style>
+ <script type="text/javascript">
+ setTimeout(function () { location.reload(true); }, 5000);
+ </script>
+ </head>
+ <body>
+ <article>
+ <h1>Erreur serveur ou maintenance en cours !</h1>
+ <div>
+ <p>Une mise à jour ou une opération de maintenance est en cours sur le site. <a href="">Retentez</a> dans quelques instants ou patientez, la page se rechargera automatiquement.</p>
+ </div>
+ </article>
+
+ <article>
+ <h1>Server error or website in maintenance!</h1>
+ <div>
+ <p>An update or a maintenance is on track on the website. Please try <a href="">again</a> in a few seconds or wait, the page will reload automatically.</p>
+ </div>
+ </article>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>No SSL site</title>
+ </head>
+ <body>
+ <h1>No SSL on this site</h1>
+ <p>Use for wifi networks with login page that doesn't work well with
+ https.</p>
+ </body>
+</html>
--- /dev/null
+{
+ "tag": "b99537f-master",
+ "meta": {
+ "name": "aten",
+ "url": "gitolite@git.immae.eu:perso/Immae/Sites/Aten",
+ "branch": "master"
+ },
+ "git": {
+ "url": "gitolite@git.immae.eu:perso/Immae/Sites/Aten",
+ "rev": "b99537fdad41291afb4f1bb8b2e2aa4081c71fae",
+ "sha256": "15mlyik6zivxwry6zc906bqnivxhby27yr8kj4lg5n68pvb877dn",
+ "fetchSubmodules": true
+ }
+}
--- /dev/null
+{ environment ? "prod"
+, varDir ? "/var/lib/aten_${environment}"
+, mylibs, composerEnv, fetchgit, runCommand, nodejs, jq, libsass, python, fetchurl }:
+let
+ packagesource = mylibs.fetchedGitPrivate ./aten.json;
+ packagejson = runCommand "package.json" { buildInputs = [ jq ]; } ''
+ cat ${packagesource.src}/package.json | jq -r '.version = "v1.0.0"|.name="aten"' > $out
+ '';
+ yarnModules = mylibs.yarn2nixPackage.mkYarnModules rec {
+ name = "aten-yarn";
+ pname = name;
+ version = "v1.0.0";
+ packageJSON = packagejson;
+ yarnLock = "${packagesource.src}/yarn.lock";
+ yarnNix = ./yarn-packages.nix;
+ pkgConfig = {
+ all = {
+ buildInputs = [ mylibs.yarn2nixPackage.src ];
+ };
+ node-sass = {
+ buildInputs = [ libsass python ];
+ postInstall = let
+ nodeHeaders = fetchurl {
+ url = "https://nodejs.org/download/release/v${nodejs.version}/node-v${nodejs.version}-headers.tar.gz";
+ sha256 = "16f20ya3ys6w5w6y6l4536f7jrgk4gz46bf71w1r1xxb26a54m32";
+ };
+ in
+ ''
+ node scripts/build.js --tarball=${nodeHeaders}
+ '';
+ };
+ };
+ };
+ app = composerEnv.buildPackage (
+ import ./php-packages.nix { inherit composerEnv fetchurl fetchgit; } //
+ packagesource //
+ rec {
+ noDev = (environment == "prod");
+ preInstall = ''
+ export SYMFONY_ENV="${environment}"
+ export APP_ENV="${environment}"
+ '';
+ postInstall = ''
+ ln -sf ${yarnModules}/node_modules .
+ yarn run --offline encore production
+ rm -rf var/{log,cache}
+ ln -sf ${varDir}/{log,cache} var/
+ '';
+ buildInputs = [ yarnModules mylibs.yarn2nixPackage.yarn ];
+ passthru = {
+ inherit varDir;
+ inherit environment;
+ webRoot = "${app}/public";
+ };
+ }
+ );
+in app
--- /dev/null
+# Generated with composer2nix and adapted to return only the list of
+# packages
+{ composerEnv, fetchurl, fetchgit ? null }:
+{
+ packages = {
+ "behat/transliterator" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "behat-transliterator-826ce7e9c2a6664c0d1f381cbb38b1fb80a7ee2c";
+ src = fetchurl {
+ url = https://api.github.com/repos/Behat/Transliterator/zipball/826ce7e9c2a6664c0d1f381cbb38b1fb80a7ee2c;
+ sha256 = "1mgc9azx79fkrxahji3xwbgqhlcnvh3xk6llqdvhjb7vgzj4bqq0";
+ };
+ };
+ };
+ "doctrine/annotations" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-annotations-c7f2050c68a9ab0bdb0f98567ec08d80ea7d24d5";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/annotations/zipball/c7f2050c68a9ab0bdb0f98567ec08d80ea7d24d5;
+ sha256 = "0b80xpqd3j99xgm0c41kbgy0k6knrfnd29223c93295sb12112g7";
+ };
+ };
+ };
+ "doctrine/cache" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-cache-d768d58baee9a4862ca783840eca1b9add7a7f57";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/cache/zipball/d768d58baee9a4862ca783840eca1b9add7a7f57;
+ sha256 = "1kljhw4gqp12iz88h6ymsrlfir2fis7icn6dffyizfc1csyb4s2i";
+ };
+ };
+ };
+ "doctrine/collections" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-collections-a01ee38fcd999f34d9bfbcee59dbda5105449cbf";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/collections/zipball/a01ee38fcd999f34d9bfbcee59dbda5105449cbf;
+ sha256 = "0d36zc21ka0pdac9xpkxsgf5zzw9gp0m9lk3r3xs5y70j0lkkkis";
+ };
+ };
+ };
+ "doctrine/common" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-common-30e33f60f64deec87df728c02b107f82cdafad9d";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/common/zipball/30e33f60f64deec87df728c02b107f82cdafad9d;
+ sha256 = "0s4vv14ibyx62a9aj3wn5cs2bbxd72fajmfmi8qb5l11gx0375na";
+ };
+ };
+ };
+ "doctrine/dbal" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-dbal-22800bd651c1d8d2a9719e2a3dc46d5108ebfcc9";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/dbal/zipball/22800bd651c1d8d2a9719e2a3dc46d5108ebfcc9;
+ sha256 = "0kbahs699jd8pxf512dgg7arv49dc7qzi3mx8snxqm4h15n5brnj";
+ };
+ };
+ };
+ "doctrine/doctrine-bundle" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-doctrine-bundle-82d2c63cd09acbde2332f55d9aa7b28aefe4983d";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/DoctrineBundle/zipball/82d2c63cd09acbde2332f55d9aa7b28aefe4983d;
+ sha256 = "0gzrigv360rp50yxpwidbkf8vlagym0w1if010yz5xcfrz37cpn3";
+ };
+ };
+ };
+ "doctrine/doctrine-cache-bundle" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-doctrine-cache-bundle-5514c90d9fb595e1095e6d66ebb98ce9ef049927";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/DoctrineCacheBundle/zipball/5514c90d9fb595e1095e6d66ebb98ce9ef049927;
+ sha256 = "04njrfhw4fc2ifacd9h0wd9i14l7ycv3hanbqrw5ilsai02j6asa";
+ };
+ };
+ };
+ "doctrine/doctrine-migrations-bundle" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-doctrine-migrations-bundle-49fa399181db4bf4f9f725126bd1cb65c4398dce";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/DoctrineMigrationsBundle/zipball/49fa399181db4bf4f9f725126bd1cb65c4398dce;
+ sha256 = "1a73xjhjrjlvkh8d253kfc2rbxd2h4hwafhv5078dy7rg6x9blyn";
+ };
+ };
+ };
+ "doctrine/event-manager" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-event-manager-a520bc093a0170feeb6b14e9d83f3a14452e64b3";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/event-manager/zipball/a520bc093a0170feeb6b14e9d83f3a14452e64b3;
+ sha256 = "165cxvw4idqj01l63nya2whpdb3fz6ld54rx198b71bzwfrydl88";
+ };
+ };
+ };
+ "doctrine/inflector" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-inflector-5527a48b7313d15261292c149e55e26eae771b0a";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/inflector/zipball/5527a48b7313d15261292c149e55e26eae771b0a;
+ sha256 = "0ng6vlwjr8h6hqwa32ynykz1mhlfsff5hirjidlk086ab6njppa5";
+ };
+ };
+ };
+ "doctrine/instantiator" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-instantiator-185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/instantiator/zipball/185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda;
+ sha256 = "1mah9a6mb30qad1zryzjain2dxw29d8h4bjkbcs3srpm3p891msy";
+ };
+ };
+ };
+ "doctrine/lexer" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-lexer-83893c552fd2045dd78aef794c31e694c37c0b8c";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/lexer/zipball/83893c552fd2045dd78aef794c31e694c37c0b8c;
+ sha256 = "0cyh3vwcl163cx1vrcwmhlh5jg9h47xwiqgzc6rwscxw0ppd1v74";
+ };
+ };
+ };
+ "doctrine/migrations" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-migrations-215438c0eef3e5f9b7da7d09c6b90756071b43e6";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/migrations/zipball/215438c0eef3e5f9b7da7d09c6b90756071b43e6;
+ sha256 = "0k6sgw65vji9rgib10mq2m634m41a67inspkrcw4qixig2lnb3ld";
+ };
+ };
+ };
+ "doctrine/orm" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-orm-434820973cadf2da2d66e7184be370084cc32ca8";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/orm/zipball/434820973cadf2da2d66e7184be370084cc32ca8;
+ sha256 = "114fyq8kaf5qzfkp8sdygqflf3z94va1cs5c3scycfpg9cmi4gls";
+ };
+ };
+ };
+ "doctrine/persistence" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-persistence-c0f1c17602afc18b4cbd8e1c8125f264c9cf7d38";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/persistence/zipball/c0f1c17602afc18b4cbd8e1c8125f264c9cf7d38;
+ sha256 = "0xdm5n38rjas1mlyxc15sg1as5h7y012mdb0j9lr6cvphgnaxxv7";
+ };
+ };
+ };
+ "doctrine/reflection" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-reflection-02538d3f95e88eb397a5f86274deb2c6175c2ab6";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/reflection/zipball/02538d3f95e88eb397a5f86274deb2c6175c2ab6;
+ sha256 = "12n9zik4lxb9lx1jf0nbvg9vl9nv958a7z1yjx48scfxd1d1sxjy";
+ };
+ };
+ };
+ "gedmo/doctrine-extensions" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "gedmo-doctrine-extensions-87c78ff9fd4b90460386f753d95622f6fbbfcb27";
+ src = fetchurl {
+ url = https://api.github.com/repos/Atlantic18/DoctrineExtensions/zipball/87c78ff9fd4b90460386f753d95622f6fbbfcb27;
+ sha256 = "0jfg0a19lhdv5b3c032ghknxhvc1f0x2n7fcwp47bm1rbz222q0z";
+ };
+ };
+ };
+ "giggsey/libphonenumber-for-php" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "giggsey-libphonenumber-for-php-a71f260c2efce10ded8af030a20fa13edfb0e9be";
+ src = fetchurl {
+ url = https://api.github.com/repos/giggsey/libphonenumber-for-php/zipball/a71f260c2efce10ded8af030a20fa13edfb0e9be;
+ sha256 = "15id03c1msyhri7j4i63r535g3g56n3x99i8301as63w7m1ybfj5";
+ };
+ };
+ };
+ "giggsey/locale" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "giggsey-locale-da6845720b5d104d319d7e84576f54e44dd9e4f5";
+ src = fetchurl {
+ url = https://api.github.com/repos/giggsey/Locale/zipball/da6845720b5d104d319d7e84576f54e44dd9e4f5;
+ sha256 = "0gc8im06h5l794a0drd74s3inps22jr1zr5wnw0b89m06d4nw42j";
+ };
+ };
+ };
+ "jdorn/sql-formatter" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "jdorn-sql-formatter-64990d96e0959dff8e059dfcdc1af130728d92bc";
+ src = fetchurl {
+ url = https://api.github.com/repos/jdorn/sql-formatter/zipball/64990d96e0959dff8e059dfcdc1af130728d92bc;
+ sha256 = "1dnmkm8mxylvxjwi0bdkzrlklncqx92fa4fwqp5bh2ypj8gaagzi";
+ };
+ };
+ };
+ "ocramius/package-versions" = {
+ targetDir = "";
+ needsModifyRights = true;
+ src = composerEnv.buildZipPackage {
+ name = "ocramius-package-versions-4489d5002c49d55576fa0ba786f42dbb009be46f";
+ src = fetchurl {
+ url = https://api.github.com/repos/Ocramius/PackageVersions/zipball/4489d5002c49d55576fa0ba786f42dbb009be46f;
+ sha256 = "039c404g9597x45xh04bnn8kmcyknkbnr57yb9s7vf29vfrg4881";
+ };
+ };
+ };
+ "ocramius/proxy-manager" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "ocramius-proxy-manager-14b137b06b0f911944132df9d51e445a35920ab1";
+ src = fetchurl {
+ url = https://api.github.com/repos/Ocramius/ProxyManager/zipball/14b137b06b0f911944132df9d51e445a35920ab1;
+ sha256 = "10y5msgh2jdlw4w075fasv40yq01szjy15m3f0wgc89hlfmqz0sn";
+ };
+ };
+ };
+ "opensoft/doctrine-postgres-types" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "opensoft-doctrine-postgres-types-7e69bdfeb2ae61c2f1e90872370cdf0135fb3006";
+ src = fetchurl {
+ url = https://api.github.com/repos/opensoft/doctrine-postgres-types/zipball/7e69bdfeb2ae61c2f1e90872370cdf0135fb3006;
+ sha256 = "1v9rjq82dxnpnb6bir6irkj54324a02qlybayvq2gf2807241bjj";
+ };
+ };
+ };
+ "presta/sitemap-bundle" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "presta-sitemap-bundle-16a2c0eae7320e3647013e48026a6a6bd14f75df";
+ src = fetchurl {
+ url = https://api.github.com/repos/prestaconcept/PrestaSitemapBundle/zipball/16a2c0eae7320e3647013e48026a6a6bd14f75df;
+ sha256 = "1hqh144awazafa2vpv091h9pyqrppbalcvzf9c1n6h387jwwj5l8";
+ };
+ };
+ };
+ "psr/cache" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "psr-cache-d11b50ad223250cf17b86e38383413f5a6764bf8";
+ src = fetchurl {
+ url = https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8;
+ sha256 = "06i2k3dx3b4lgn9a4v1dlgv8l9wcl4kl7vzhh63lbji0q96hv8qz";
+ };
+ };
+ };
+ "psr/container" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "psr-container-b7ce3b176482dbbc1245ebf52b181af44c2cf55f";
+ src = fetchurl {
+ url = https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f;
+ sha256 = "0rkz64vgwb0gfi09klvgay4qnw993l1dc03vyip7d7m2zxi6cy4j";
+ };
+ };
+ };
+ "psr/log" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "psr-log-6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd";
+ src = fetchurl {
+ url = https://api.github.com/repos/php-fig/log/zipball/6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd;
+ sha256 = "1i351p3gd1pgjcjxv7mwwkiw79f1xiqr38irq22156h05zlcx80d";
+ };
+ };
+ };
+ "psr/simple-cache" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "psr-simple-cache-408d5eafb83c57f6365a3ca330ff23aa4a5fa39b";
+ src = fetchurl {
+ url = https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b;
+ sha256 = "1djgzclkamjxi9jy4m9ggfzgq1vqxaga2ip7l3cj88p7rwkzjxgw";
+ };
+ };
+ };
+ "sensio/framework-extra-bundle" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "sensio-framework-extra-bundle-1fdf591c4b388e62dbb2579de89c1560b33f865d";
+ src = fetchurl {
+ url = https://api.github.com/repos/sensiolabs/SensioFrameworkExtraBundle/zipball/1fdf591c4b388e62dbb2579de89c1560b33f865d;
+ sha256 = "0hhw3lsvgm78rqphgmdrg2inc9997lwx0290x71hsixk08khnlb1";
+ };
+ };
+ };
+ "symfony/asset" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-asset-fb06338fd3762f8615b51a58e5e9299ccca03876";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/asset/zipball/fb06338fd3762f8615b51a58e5e9299ccca03876;
+ sha256 = "19fbnz2h4z5nxzcy8n3bfbcjwgncabwdlxh70qfkr7bswpsxr6p3";
+ };
+ };
+ };
+ "symfony/cache" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-cache-5c4b50d6ba4f1c8955c3454444c1e3cfddaaad41";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/cache/zipball/5c4b50d6ba4f1c8955c3454444c1e3cfddaaad41;
+ sha256 = "1wn2rd3n5nj300vsygh60vbjh2k9lh7s9c3ayl614hahrfcfb29s";
+ };
+ };
+ };
+ "symfony/config" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-config-005d9a083d03f588677d15391a716b1ac9b887c0";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/config/zipball/005d9a083d03f588677d15391a716b1ac9b887c0;
+ sha256 = "1h20qhkzsl5xwzs3rg1yyaq5yn8rg92krfzmpmfgv7d3jp1v03as";
+ };
+ };
+ };
+ "symfony/console" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-console-4dff24e5d01e713818805c1862d2e3f901ee7dd0";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/console/zipball/4dff24e5d01e713818805c1862d2e3f901ee7dd0;
+ sha256 = "016l3hxcbvyxz3kkkynk12gi8949hl3x09dwsh0x5wqikgnp64c2";
+ };
+ };
+ };
+ "symfony/contracts" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-contracts-1aa7ab2429c3d594dd70689604b5cf7421254cdf";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/contracts/zipball/1aa7ab2429c3d594dd70689604b5cf7421254cdf;
+ sha256 = "0jhav49lngmrjg4r5kdpmc7lhmasn2fzkmbvhw62l4i1vnm5r5bm";
+ };
+ };
+ };
+ "symfony/debug" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-debug-e0a2b92ee0b5b934f973d90c2f58e18af109d276";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/debug/zipball/e0a2b92ee0b5b934f973d90c2f58e18af109d276;
+ sha256 = "0yzyaprsrmbc93gzwr1wdjx05kin7b4hqy5w74zkcxyab09pan7f";
+ };
+ };
+ };
+ "symfony/dependency-injection" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-dependency-injection-e4adc57a48d3fa7f394edfffa9e954086d7740e5";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/dependency-injection/zipball/e4adc57a48d3fa7f394edfffa9e954086d7740e5;
+ sha256 = "0g8ssf7qm0jf0anvflp033xwdim9z4g73k3kz1vs3smw4pffl6nv";
+ };
+ };
+ };
+ "symfony/doctrine-bridge" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-doctrine-bridge-3466c911438e176c20e1943c529131889432d12f";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/doctrine-bridge/zipball/3466c911438e176c20e1943c529131889432d12f;
+ sha256 = "0qq644z7l9j9fyydlj68p9f43a9i20rnmxy8pkq5sn4r0yn06bb8";
+ };
+ };
+ };
+ "symfony/event-dispatcher" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-event-dispatcher-921f49c3158a276d27c0d770a5a347a3b718b328";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/event-dispatcher/zipball/921f49c3158a276d27c0d770a5a347a3b718b328;
+ sha256 = "05i8syqbzhh11cf2i9d64s8b5x41mfsribfa62rvc0mhbqk7ifzf";
+ };
+ };
+ };
+ "symfony/filesystem" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-filesystem-2f4c8b999b3b7cadb2a69390b01af70886753710";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/filesystem/zipball/2f4c8b999b3b7cadb2a69390b01af70886753710;
+ sha256 = "1gi14q8gf250a3rzmr6arb08ljpzpfg868vm0z21fgmf0zh0dqr6";
+ };
+ };
+ };
+ "symfony/finder" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-finder-e53d477d7b5c4982d0e1bfd2298dbee63d01441d";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/finder/zipball/e53d477d7b5c4982d0e1bfd2298dbee63d01441d;
+ sha256 = "1mpxwgvfqzng36xbdvda6nk1zidyr9dgswccmr4z15k0i9gi0qsj";
+ };
+ };
+ };
+ "symfony/flex" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-flex-955774ecf07b10230bb5b44e150ba078b45f68fa";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/flex/zipball/955774ecf07b10230bb5b44e150ba078b45f68fa;
+ sha256 = "069v1s810mq5kqvx68x87lmlz0h9b2kgla1znnibnbh6j6k4qg6d";
+ };
+ };
+ };
+ "symfony/form" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-form-5ab767b7732154ca6f45c92e30e081178edf30ad";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/form/zipball/5ab767b7732154ca6f45c92e30e081178edf30ad;
+ sha256 = "1g65a7hl1kk6rpa6q52fyzy6vkjafr3233hi2qiggyp0qys20kcc";
+ };
+ };
+ };
+ "symfony/framework-bundle" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-framework-bundle-eb32d67140510f04fe9cc5fb9ad38fda09591db1";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/framework-bundle/zipball/eb32d67140510f04fe9cc5fb9ad38fda09591db1;
+ sha256 = "06dpqppwyngq1frww0q0zjs0gj8na0fi67czlhqf2x2lizgz6wjd";
+ };
+ };
+ };
+ "symfony/http-foundation" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-http-foundation-1b31f3017fadd8cb05cf2c8aebdbf3b12a943851";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/http-foundation/zipball/1b31f3017fadd8cb05cf2c8aebdbf3b12a943851;
+ sha256 = "0s6mx79gl6sp39bk8213xcdzx4ld5xim38s8lckm7wqnkvx94mfl";
+ };
+ };
+ };
+ "symfony/http-kernel" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-http-kernel-b39ceffc0388232c309cbde3a7c3685f2ec0a624";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/http-kernel/zipball/b39ceffc0388232c309cbde3a7c3685f2ec0a624;
+ sha256 = "17rb1hl9r8rlqw1cv9qx2ckvz81g2ylppirq035mya1a848y5ym5";
+ };
+ };
+ };
+ "symfony/inflector" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-inflector-f9a637c0359f74404d44cf0da0a3ce53bae0787e";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/inflector/zipball/f9a637c0359f74404d44cf0da0a3ce53bae0787e;
+ sha256 = "1sp1pk716biyplqpakcpq71ik2h2m1bvsz9cfj9zd63y2723xna3";
+ };
+ };
+ };
+ "symfony/intl" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-intl-748a1c54903344385f88fef75da293915b16a207";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/intl/zipball/748a1c54903344385f88fef75da293915b16a207;
+ sha256 = "1vwa2n7fglxs8rv1yrbxn6vgizg73asimg794igk27i90xdybfmc";
+ };
+ };
+ };
+ "symfony/lts" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-lts-c1affae45b78aee036effa1759237e7fa96d4af2";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/lts/zipball/c1affae45b78aee036effa1759237e7fa96d4af2;
+ sha256 = "0vk9pn4xl7ascvllak0gschdd1w2mxma3ng04j3r1n13zccxc33s";
+ };
+ };
+ };
+ "symfony/options-resolver" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-options-resolver-a9c38e8a3da2c03b3e71fdffa6efb0bda51390ba";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/options-resolver/zipball/a9c38e8a3da2c03b3e71fdffa6efb0bda51390ba;
+ sha256 = "1fjjlp09mwkjcxg98bihqlq4miq24k13691051f5p39lcy03zmb3";
+ };
+ };
+ };
+ "symfony/orm-pack" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-orm-pack-1b58f752cd917a08c9c8df020781d9c46a2275b1";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/orm-pack/zipball/1b58f752cd917a08c9c8df020781d9c46a2275b1;
+ sha256 = "1sk8jchaw29lmpq76yb24mc1csmifnkvbjdrgjdgqs6x5i39plli";
+ };
+ };
+ };
+ "symfony/polyfill-intl-icu" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-polyfill-intl-icu-f22a90256d577c7ef7efad8df1f0201663d57644";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/f22a90256d577c7ef7efad8df1f0201663d57644;
+ sha256 = "0x7h8l248l1gc07xmvfixq6p80ifdaa29qympfq3jzfb79k69slq";
+ };
+ };
+ };
+ "symfony/polyfill-mbstring" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-polyfill-mbstring-c79c051f5b3a46be09205c73b80b346e4153e494";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/polyfill-mbstring/zipball/c79c051f5b3a46be09205c73b80b346e4153e494;
+ sha256 = "18v2777cky55ah6xi4dh383mp4iddwzmnvx81qd86y1kgfykwhpi";
+ };
+ };
+ };
+ "symfony/property-access" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-property-access-b6df4e1849f389468edb36e2e59877d4a8170723";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/property-access/zipball/b6df4e1849f389468edb36e2e59877d4a8170723;
+ sha256 = "16pbnv3x56gp5wxakmbphf3d4igkjyr3v693n3cjm62h72z4dxf3";
+ };
+ };
+ };
+ "symfony/routing" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-routing-649460207e77da6c545326c7f53618d23ad2c866";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/routing/zipball/649460207e77da6c545326c7f53618d23ad2c866;
+ sha256 = "1qjkgghs0kp4lk4711d3gx26vvilrrrjbbz02navzfqy4xjrf0sw";
+ };
+ };
+ };
+ "symfony/translation" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-translation-c0e2191e9bed845946ab3d99767513b56ca7dcd6";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/translation/zipball/c0e2191e9bed845946ab3d99767513b56ca7dcd6;
+ sha256 = "0gzq7f2izsiam9blha85bzvg7x6zc4f3x3bkwhzma6x6ipjfkla2";
+ };
+ };
+ };
+ "symfony/twig-bridge" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-twig-bridge-2e928d6c8244e7f3b32bcfac5814095a83179e60";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/twig-bridge/zipball/2e928d6c8244e7f3b32bcfac5814095a83179e60;
+ sha256 = "1f902j8b0lyqjss9r2mf7j63apv5z8ki57vmcdcw5jlqagbmw1y1";
+ };
+ };
+ };
+ "symfony/twig-bundle" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-twig-bundle-024820cbb4aeffc4843c4170b69c057fb4840fb3";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/twig-bundle/zipball/024820cbb4aeffc4843c4170b69c057fb4840fb3;
+ sha256 = "1qqfpxw228lc024whpr4j6aa6k9ly290nxz9c9ds826lllg2l1zh";
+ };
+ };
+ };
+ "symfony/validator" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-validator-cd35bb14a0e81bd99835e36cac4db1e72ad1939b";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/validator/zipball/cd35bb14a0e81bd99835e36cac4db1e72ad1939b;
+ sha256 = "1809yz483mv5mmrw14v3b371dmjab7i455gxkrqm0z8n0wjdn6i3";
+ };
+ };
+ };
+ "symfony/var-exporter" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-var-exporter-a39222e357362424b61dcde50e2f7b5a7d3306db";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/var-exporter/zipball/a39222e357362424b61dcde50e2f7b5a7d3306db;
+ sha256 = "1ys2sc3ivgfxq7kj8cydxqh5179d3niqxsy10lgg18c5a6bsj41j";
+ };
+ };
+ };
+ "symfony/webpack-encore-pack" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-webpack-encore-pack-8d7f51379d7ae17aea7cf501d910a11896895ac4";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/webpack-encore-pack/zipball/8d7f51379d7ae17aea7cf501d910a11896895ac4;
+ sha256 = "0k6xavcyihx45dsrm1r2r1lbn7vryy463akz66w4gycx5dcqrw0j";
+ };
+ };
+ };
+ "symfony/yaml" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-yaml-c41175c801e3edfda90f32e292619d10c27103d7";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/yaml/zipball/c41175c801e3edfda90f32e292619d10c27103d7;
+ sha256 = "0bh9365mmvzhdk1m0b1xarlg0swx9pv916m7xifcmdrxn67w552p";
+ };
+ };
+ };
+ "twig/twig" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "twig-twig-a11dd39f5b6589e14f0ff3b36675d06047c589b1";
+ src = fetchurl {
+ url = https://api.github.com/repos/twigphp/Twig/zipball/a11dd39f5b6589e14f0ff3b36675d06047c589b1;
+ sha256 = "0rnwam9379gj5m4ik0fh6c81dbr7kwj2b3x1gnmpf6awa5fm261n";
+ };
+ };
+ };
+ "zendframework/zend-code" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "zendframework-zend-code-c21db169075c6ec4b342149f446e7b7b724f95eb";
+ src = fetchurl {
+ url = https://api.github.com/repos/zendframework/zend-code/zipball/c21db169075c6ec4b342149f446e7b7b724f95eb;
+ sha256 = "031mfsahjkl63348020wq05273kvszx0dv2766zmzncnd6fcggw1";
+ };
+ };
+ };
+ "zendframework/zend-eventmanager" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "zendframework-zend-eventmanager-a5e2583a211f73604691586b8406ff7296a946dd";
+ src = fetchurl {
+ url = https://api.github.com/repos/zendframework/zend-eventmanager/zipball/a5e2583a211f73604691586b8406ff7296a946dd;
+ sha256 = "08a05gn40hfdy2zhz4gcd3r6q7m7zcaks5kpvb9dx1awgx0pzr8n";
+ };
+ };
+ };
+ };
+ devPackages = {
+ "nikic/php-parser" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "nikic-php-parser-8aae5b59b83bb4d0dbf07b0a835f2680a658f610";
+ src = fetchurl {
+ url = https://api.github.com/repos/nikic/PHP-Parser/zipball/8aae5b59b83bb4d0dbf07b0a835f2680a658f610;
+ sha256 = "103ix4bsvrwyc4wxh9cqd38xffn25kq3phnpgk8b3z7dqvvr2pss";
+ };
+ };
+ };
+ "symfony/dotenv" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-dotenv-97f135ab40f969cbeae27d482ff63acbc33dbe2a";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/dotenv/zipball/97f135ab40f969cbeae27d482ff63acbc33dbe2a;
+ sha256 = "1jwpxb4w0mi5p89k51l1g84hnnj9s8kjl9jsx3xj39hhc3dy44pc";
+ };
+ };
+ };
+ "symfony/maker-bundle" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-maker-bundle-24b19cccad0c658eca516b35b08668d123fabf92";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/maker-bundle/zipball/24b19cccad0c658eca516b35b08668d123fabf92;
+ sha256 = "1wm17jl3gk0m5ma7nz40y7ryxgm0qncrxcrqdqg5x6afwla85grp";
+ };
+ };
+ };
+ "symfony/polyfill-php72" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-polyfill-php72-9050816e2ca34a8e916c3a0ae8b9c2fccf68b631";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/polyfill-php72/zipball/9050816e2ca34a8e916c3a0ae8b9c2fccf68b631;
+ sha256 = "1smd08fw64mf89s9ma099ayfjlz26wrix9hfr6kh5w4d0rzrhmlw";
+ };
+ };
+ };
+ "symfony/profiler-pack" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-profiler-pack-99c4370632c2a59bb0444852f92140074ef02209";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/profiler-pack/zipball/99c4370632c2a59bb0444852f92140074ef02209;
+ sha256 = "12xisnrqq6q5l0v8bric0p23bsaxh50x43fq7wn2adnsz24nv9pi";
+ };
+ };
+ };
+ "symfony/stopwatch" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-stopwatch-ec076716412274e51f8a7ea675d9515e5c311123";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/stopwatch/zipball/ec076716412274e51f8a7ea675d9515e5c311123;
+ sha256 = "0fzh2bh7lm8f222hk5ihfkpi697babfrz1r0dghlws17hfbgzgax";
+ };
+ };
+ };
+ "symfony/var-dumper" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-var-dumper-db61258540350725f4beb6b84006e32398acd120";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/var-dumper/zipball/db61258540350725f4beb6b84006e32398acd120;
+ sha256 = "0pw3hf4mcc1q9miswrjbgr32x0a2dfjvpi16pjzw173xmf79i4iz";
+ };
+ };
+ };
+ "symfony/web-profiler-bundle" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-web-profiler-bundle-198cb0a6b85346bbab5e1bc74a0eb175b9fa2d08";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/web-profiler-bundle/zipball/198cb0a6b85346bbab5e1bc74a0eb175b9fa2d08;
+ sha256 = "0r4r3zf22860mdx8b2l72ghz8liyi3l39cc1934b2lkh2kghlsi6";
+ };
+ };
+ };
+ };
+}
--- /dev/null
+{fetchurl, linkFarm}: rec {
+ offline_cache = linkFarm "offline" packages;
+ packages = [
+
+ {
+ name = "_symfony_webpack_encore___webpack_encore_0.19.0.tgz";
+ path = fetchurl {
+ name = "_symfony_webpack_encore___webpack_encore_0.19.0.tgz";
+ url = "https://registry.yarnpkg.com/@symfony/webpack-encore/-/webpack-encore-0.19.0.tgz";
+ sha1 = "f0725dbbede5ff9d9fdbd7a07f84accafc83ca14";
+ };
+ }
+
+ {
+ name = "_types_node___node_10.5.3.tgz";
+ path = fetchurl {
+ name = "_types_node___node_10.5.3.tgz";
+ url = "https://registry.yarnpkg.com/@types/node/-/node-10.5.3.tgz";
+ sha1 = "5bcfaf088ad17894232012877669634c06b20cc5";
+ };
+ }
+
+ {
+ name = "_types_tapable___tapable_0.2.5.tgz";
+ path = fetchurl {
+ name = "_types_tapable___tapable_0.2.5.tgz";
+ url = "https://registry.yarnpkg.com/@types/tapable/-/tapable-0.2.5.tgz";
+ sha1 = "2443fc12da514c81346b1a665675559cee21fa75";
+ };
+ }
+
+ {
+ name = "_types_uglify_js___uglify_js_3.0.3.tgz";
+ path = fetchurl {
+ name = "_types_uglify_js___uglify_js_3.0.3.tgz";
+ url = "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.0.3.tgz";
+ sha1 = "801a5ca1dc642861f47c46d14b700ed2d610840b";
+ };
+ }
+
+ {
+ name = "_types_webpack___webpack_3.8.14.tgz";
+ path = fetchurl {
+ name = "_types_webpack___webpack_3.8.14.tgz";
+ url = "https://registry.yarnpkg.com/@types/webpack/-/webpack-3.8.14.tgz";
+ sha1 = "e2bfdf7f604b3f7dc776eaa17446d7f7538f3de7";
+ };
+ }
+
+ {
+ name = "abbrev___abbrev_1.1.1.tgz";
+ path = fetchurl {
+ name = "abbrev___abbrev_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz";
+ sha1 = "f8f2c887ad10bf67f634f005b6987fed3179aac8";
+ };
+ }
+
+ {
+ name = "accepts___accepts_1.3.5.tgz";
+ path = fetchurl {
+ name = "accepts___accepts_1.3.5.tgz";
+ url = "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz";
+ sha1 = "eb777df6011723a3b14e8a72c0805c8e86746bd2";
+ };
+ }
+
+ {
+ name = "acorn_dynamic_import___acorn_dynamic_import_2.0.2.tgz";
+ path = fetchurl {
+ name = "acorn_dynamic_import___acorn_dynamic_import_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz";
+ sha1 = "c752bd210bef679501b6c6cb7fc84f8f47158cc4";
+ };
+ }
+
+ {
+ name = "acorn___acorn_4.0.13.tgz";
+ path = fetchurl {
+ name = "acorn___acorn_4.0.13.tgz";
+ url = "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz";
+ sha1 = "105495ae5361d697bd195c825192e1ad7f253787";
+ };
+ }
+
+ {
+ name = "acorn___acorn_5.7.1.tgz";
+ path = fetchurl {
+ name = "acorn___acorn_5.7.1.tgz";
+ url = "https://registry.yarnpkg.com/acorn/-/acorn-5.7.1.tgz";
+ sha1 = "f095829297706a7c9776958c0afc8930a9b9d9d8";
+ };
+ }
+
+ {
+ name = "adjust_sourcemap_loader___adjust_sourcemap_loader_1.2.0.tgz";
+ path = fetchurl {
+ name = "adjust_sourcemap_loader___adjust_sourcemap_loader_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/adjust-sourcemap-loader/-/adjust-sourcemap-loader-1.2.0.tgz";
+ sha1 = "e33fde95e50db9f2a802e3647e311d2fc5000c69";
+ };
+ }
+
+ {
+ name = "ajv_keywords___ajv_keywords_3.2.0.tgz";
+ path = fetchurl {
+ name = "ajv_keywords___ajv_keywords_3.2.0.tgz";
+ url = "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.2.0.tgz";
+ sha1 = "e86b819c602cf8821ad637413698f1dec021847a";
+ };
+ }
+
+ {
+ name = "ajv___ajv_4.11.8.tgz";
+ path = fetchurl {
+ name = "ajv___ajv_4.11.8.tgz";
+ url = "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz";
+ sha1 = "82ffb02b29e662ae53bdc20af15947706739c536";
+ };
+ }
+
+ {
+ name = "ajv___ajv_5.5.2.tgz";
+ path = fetchurl {
+ name = "ajv___ajv_5.5.2.tgz";
+ url = "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz";
+ sha1 = "73b5eeca3fab653e3d3f9422b341ad42205dc965";
+ };
+ }
+
+ {
+ name = "ajv___ajv_6.5.2.tgz";
+ path = fetchurl {
+ name = "ajv___ajv_6.5.2.tgz";
+ url = "https://registry.yarnpkg.com/ajv/-/ajv-6.5.2.tgz";
+ sha1 = "678495f9b82f7cca6be248dd92f59bff5e1f4360";
+ };
+ }
+
+ {
+ name = "align_text___align_text_0.1.4.tgz";
+ path = fetchurl {
+ name = "align_text___align_text_0.1.4.tgz";
+ url = "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz";
+ sha1 = "0cd90a561093f35d0a99256c22b7069433fad117";
+ };
+ }
+
+ {
+ name = "alphanum_sort___alphanum_sort_1.0.2.tgz";
+ path = fetchurl {
+ name = "alphanum_sort___alphanum_sort_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz";
+ sha1 = "97a1119649b211ad33691d9f9f486a8ec9fbe0a3";
+ };
+ }
+
+ {
+ name = "amdefine___amdefine_1.0.1.tgz";
+ path = fetchurl {
+ name = "amdefine___amdefine_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz";
+ sha1 = "4a5282ac164729e93619bcfd3ad151f817ce91f5";
+ };
+ }
+
+ {
+ name = "ansi_html___ansi_html_0.0.7.tgz";
+ path = fetchurl {
+ name = "ansi_html___ansi_html_0.0.7.tgz";
+ url = "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz";
+ sha1 = "813584021962a9e9e6fd039f940d12f56ca7859e";
+ };
+ }
+
+ {
+ name = "ansi_regex___ansi_regex_2.1.1.tgz";
+ path = fetchurl {
+ name = "ansi_regex___ansi_regex_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz";
+ sha1 = "c3b33ab5ee360d86e0e628f0468ae7ef27d654df";
+ };
+ }
+
+ {
+ name = "ansi_regex___ansi_regex_3.0.0.tgz";
+ path = fetchurl {
+ name = "ansi_regex___ansi_regex_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz";
+ sha1 = "ed0317c322064f79466c02966bddb605ab37d998";
+ };
+ }
+
+ {
+ name = "ansi_styles___ansi_styles_2.2.1.tgz";
+ path = fetchurl {
+ name = "ansi_styles___ansi_styles_2.2.1.tgz";
+ url = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz";
+ sha1 = "b432dd3358b634cf75e1e4664368240533c1ddbe";
+ };
+ }
+
+ {
+ name = "ansi_styles___ansi_styles_3.2.1.tgz";
+ path = fetchurl {
+ name = "ansi_styles___ansi_styles_3.2.1.tgz";
+ url = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz";
+ sha1 = "41fbb20243e50b12be0f04b8dedbf07520ce841d";
+ };
+ }
+
+ {
+ name = "anymatch___anymatch_2.0.0.tgz";
+ path = fetchurl {
+ name = "anymatch___anymatch_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz";
+ sha1 = "bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb";
+ };
+ }
+
+ {
+ name = "aproba___aproba_1.2.0.tgz";
+ path = fetchurl {
+ name = "aproba___aproba_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz";
+ sha1 = "6802e6264efd18c790a1b0d517f0f2627bf2c94a";
+ };
+ }
+
+ {
+ name = "are_we_there_yet___are_we_there_yet_1.1.5.tgz";
+ path = fetchurl {
+ name = "are_we_there_yet___are_we_there_yet_1.1.5.tgz";
+ url = "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz";
+ sha1 = "4b35c2944f062a8bfcda66410760350fe9ddfc21";
+ };
+ }
+
+ {
+ name = "argparse___argparse_1.0.10.tgz";
+ path = fetchurl {
+ name = "argparse___argparse_1.0.10.tgz";
+ url = "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz";
+ sha1 = "bcd6791ea5ae09725e17e5ad988134cd40b3d911";
+ };
+ }
+
+ {
+ name = "arr_diff___arr_diff_2.0.0.tgz";
+ path = fetchurl {
+ name = "arr_diff___arr_diff_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz";
+ sha1 = "8f3b827f955a8bd669697e4a4256ac3ceae356cf";
+ };
+ }
+
+ {
+ name = "arr_diff___arr_diff_4.0.0.tgz";
+ path = fetchurl {
+ name = "arr_diff___arr_diff_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz";
+ sha1 = "d6461074febfec71e7e15235761a329a5dc7c520";
+ };
+ }
+
+ {
+ name = "arr_flatten___arr_flatten_1.1.0.tgz";
+ path = fetchurl {
+ name = "arr_flatten___arr_flatten_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz";
+ sha1 = "36048bbff4e7b47e136644316c99669ea5ae91f1";
+ };
+ }
+
+ {
+ name = "arr_union___arr_union_3.1.0.tgz";
+ path = fetchurl {
+ name = "arr_union___arr_union_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz";
+ sha1 = "e39b09aea9def866a8f206e288af63919bae39c4";
+ };
+ }
+
+ {
+ name = "array_find_index___array_find_index_1.0.2.tgz";
+ path = fetchurl {
+ name = "array_find_index___array_find_index_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz";
+ sha1 = "df010aa1287e164bbda6f9723b0a96a1ec4187a1";
+ };
+ }
+
+ {
+ name = "array_flatten___array_flatten_1.1.1.tgz";
+ path = fetchurl {
+ name = "array_flatten___array_flatten_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz";
+ sha1 = "9a5f699051b1e7073328f2a008968b64ea2955d2";
+ };
+ }
+
+ {
+ name = "array_flatten___array_flatten_2.1.1.tgz";
+ path = fetchurl {
+ name = "array_flatten___array_flatten_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.1.tgz";
+ sha1 = "426bb9da84090c1838d812c8150af20a8331e296";
+ };
+ }
+
+ {
+ name = "array_includes___array_includes_3.0.3.tgz";
+ path = fetchurl {
+ name = "array_includes___array_includes_3.0.3.tgz";
+ url = "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz";
+ sha1 = "184b48f62d92d7452bb31b323165c7f8bd02266d";
+ };
+ }
+
+ {
+ name = "array_union___array_union_1.0.2.tgz";
+ path = fetchurl {
+ name = "array_union___array_union_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz";
+ sha1 = "9a34410e4f4e3da23dea375be5be70f24778ec39";
+ };
+ }
+
+ {
+ name = "array_uniq___array_uniq_1.0.3.tgz";
+ path = fetchurl {
+ name = "array_uniq___array_uniq_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz";
+ sha1 = "af6ac877a25cc7f74e058894753858dfdb24fdb6";
+ };
+ }
+
+ {
+ name = "array_unique___array_unique_0.2.1.tgz";
+ path = fetchurl {
+ name = "array_unique___array_unique_0.2.1.tgz";
+ url = "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz";
+ sha1 = "a1d97ccafcbc2625cc70fadceb36a50c58b01a53";
+ };
+ }
+
+ {
+ name = "array_unique___array_unique_0.3.2.tgz";
+ path = fetchurl {
+ name = "array_unique___array_unique_0.3.2.tgz";
+ url = "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz";
+ sha1 = "a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428";
+ };
+ }
+
+ {
+ name = "asn1.js___asn1.js_4.10.1.tgz";
+ path = fetchurl {
+ name = "asn1.js___asn1.js_4.10.1.tgz";
+ url = "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz";
+ sha1 = "b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0";
+ };
+ }
+
+ {
+ name = "asn1___asn1_0.2.3.tgz";
+ path = fetchurl {
+ name = "asn1___asn1_0.2.3.tgz";
+ url = "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz";
+ sha1 = "dac8787713c9966849fc8180777ebe9c1ddf3b86";
+ };
+ }
+
+ {
+ name = "assert_plus___assert_plus_1.0.0.tgz";
+ path = fetchurl {
+ name = "assert_plus___assert_plus_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz";
+ sha1 = "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525";
+ };
+ }
+
+ {
+ name = "assert_plus___assert_plus_0.2.0.tgz";
+ path = fetchurl {
+ name = "assert_plus___assert_plus_0.2.0.tgz";
+ url = "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz";
+ sha1 = "d74e1b87e7affc0db8aadb7021f3fe48101ab234";
+ };
+ }
+
+ {
+ name = "assert___assert_1.4.1.tgz";
+ path = fetchurl {
+ name = "assert___assert_1.4.1.tgz";
+ url = "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz";
+ sha1 = "99912d591836b5a6f5b345c0f07eefc08fc65d91";
+ };
+ }
+
+ {
+ name = "assign_symbols___assign_symbols_1.0.0.tgz";
+ path = fetchurl {
+ name = "assign_symbols___assign_symbols_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz";
+ sha1 = "59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367";
+ };
+ }
+
+ {
+ name = "async_each___async_each_1.0.1.tgz";
+ path = fetchurl {
+ name = "async_each___async_each_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz";
+ sha1 = "19d386a1d9edc6e7c1c85d388aedbcc56d33602d";
+ };
+ }
+
+ {
+ name = "async_foreach___async_foreach_0.1.3.tgz";
+ path = fetchurl {
+ name = "async_foreach___async_foreach_0.1.3.tgz";
+ url = "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz";
+ sha1 = "36121f845c0578172de419a97dbeb1d16ec34542";
+ };
+ }
+
+ {
+ name = "async___async_1.5.2.tgz";
+ path = fetchurl {
+ name = "async___async_1.5.2.tgz";
+ url = "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz";
+ sha1 = "ec6a61ae56480c0c3cb241c95618e20892f9672a";
+ };
+ }
+
+ {
+ name = "async___async_2.6.1.tgz";
+ path = fetchurl {
+ name = "async___async_2.6.1.tgz";
+ url = "https://registry.yarnpkg.com/async/-/async-2.6.1.tgz";
+ sha1 = "b245a23ca71930044ec53fa46aa00a3e87c6a610";
+ };
+ }
+
+ {
+ name = "asynckit___asynckit_0.4.0.tgz";
+ path = fetchurl {
+ name = "asynckit___asynckit_0.4.0.tgz";
+ url = "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz";
+ sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79";
+ };
+ }
+
+ {
+ name = "atob___atob_2.1.1.tgz";
+ path = fetchurl {
+ name = "atob___atob_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/atob/-/atob-2.1.1.tgz";
+ sha1 = "ae2d5a729477f289d60dd7f96a6314a22dd6c22a";
+ };
+ }
+
+ {
+ name = "autoprefixer___autoprefixer_6.7.7.tgz";
+ path = fetchurl {
+ name = "autoprefixer___autoprefixer_6.7.7.tgz";
+ url = "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-6.7.7.tgz";
+ sha1 = "1dbd1c835658e35ce3f9984099db00585c782014";
+ };
+ }
+
+ {
+ name = "aws_sign2___aws_sign2_0.6.0.tgz";
+ path = fetchurl {
+ name = "aws_sign2___aws_sign2_0.6.0.tgz";
+ url = "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz";
+ sha1 = "14342dd38dbcc94d0e5b87d763cd63612c0e794f";
+ };
+ }
+
+ {
+ name = "aws_sign2___aws_sign2_0.7.0.tgz";
+ path = fetchurl {
+ name = "aws_sign2___aws_sign2_0.7.0.tgz";
+ url = "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz";
+ sha1 = "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8";
+ };
+ }
+
+ {
+ name = "aws4___aws4_1.7.0.tgz";
+ path = fetchurl {
+ name = "aws4___aws4_1.7.0.tgz";
+ url = "https://registry.yarnpkg.com/aws4/-/aws4-1.7.0.tgz";
+ sha1 = "d4d0e9b9dbfca77bf08eeb0a8a471550fe39e289";
+ };
+ }
+
+ {
+ name = "babel_code_frame___babel_code_frame_6.26.0.tgz";
+ path = fetchurl {
+ name = "babel_code_frame___babel_code_frame_6.26.0.tgz";
+ url = "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz";
+ sha1 = "63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b";
+ };
+ }
+
+ {
+ name = "babel_core___babel_core_6.26.3.tgz";
+ path = fetchurl {
+ name = "babel_core___babel_core_6.26.3.tgz";
+ url = "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz";
+ sha1 = "b2e2f09e342d0f0c88e2f02e067794125e75c207";
+ };
+ }
+
+ {
+ name = "babel_generator___babel_generator_6.26.1.tgz";
+ path = fetchurl {
+ name = "babel_generator___babel_generator_6.26.1.tgz";
+ url = "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz";
+ sha1 = "1844408d3b8f0d35a404ea7ac180f087a601bd90";
+ };
+ }
+
+ {
+ name = "babel_helper_builder_binary_assignment_operator_visitor___babel_helper_builder_binary_assignment_operator_visitor_6.24.1.tgz";
+ path = fetchurl {
+ name = "babel_helper_builder_binary_assignment_operator_visitor___babel_helper_builder_binary_assignment_operator_visitor_6.24.1.tgz";
+ url = "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz";
+ sha1 = "cce4517ada356f4220bcae8a02c2b346f9a56664";
+ };
+ }
+
+ {
+ name = "babel_helper_call_delegate___babel_helper_call_delegate_6.24.1.tgz";
+ path = fetchurl {
+ name = "babel_helper_call_delegate___babel_helper_call_delegate_6.24.1.tgz";
+ url = "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz";
+ sha1 = "ece6aacddc76e41c3461f88bfc575bd0daa2df8d";
+ };
+ }
+
+ {
+ name = "babel_helper_define_map___babel_helper_define_map_6.26.0.tgz";
+ path = fetchurl {
+ name = "babel_helper_define_map___babel_helper_define_map_6.26.0.tgz";
+ url = "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz";
+ sha1 = "a5f56dab41a25f97ecb498c7ebaca9819f95be5f";
+ };
+ }
+
+ {
+ name = "babel_helper_explode_assignable_expression___babel_helper_explode_assignable_expression_6.24.1.tgz";
+ path = fetchurl {
+ name = "babel_helper_explode_assignable_expression___babel_helper_explode_assignable_expression_6.24.1.tgz";
+ url = "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz";
+ sha1 = "f25b82cf7dc10433c55f70592d5746400ac22caa";
+ };
+ }
+
+ {
+ name = "babel_helper_function_name___babel_helper_function_name_6.24.1.tgz";
+ path = fetchurl {
+ name = "babel_helper_function_name___babel_helper_function_name_6.24.1.tgz";
+ url = "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz";
+ sha1 = "d3475b8c03ed98242a25b48351ab18399d3580a9";
+ };
+ }
+
+ {
+ name = "babel_helper_get_function_arity___babel_helper_get_function_arity_6.24.1.tgz";
+ path = fetchurl {
+ name = "babel_helper_get_function_arity___babel_helper_get_function_arity_6.24.1.tgz";
+ url = "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz";
+ sha1 = "8f7782aa93407c41d3aa50908f89b031b1b6853d";
+ };
+ }
+
+ {
+ name = "babel_helper_hoist_variables___babel_helper_hoist_variables_6.24.1.tgz";
+ path = fetchurl {
+ name = "babel_helper_hoist_variables___babel_helper_hoist_variables_6.24.1.tgz";
+ url = "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz";
+ sha1 = "1ecb27689c9d25513eadbc9914a73f5408be7a76";
+ };
+ }
+
+ {
+ name = "babel_helper_optimise_call_expression___babel_helper_optimise_call_expression_6.24.1.tgz";
+ path = fetchurl {
+ name = "babel_helper_optimise_call_expression___babel_helper_optimise_call_expression_6.24.1.tgz";
+ url = "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz";
+ sha1 = "f7a13427ba9f73f8f4fa993c54a97882d1244257";
+ };
+ }
+
+ {
+ name = "babel_helper_regex___babel_helper_regex_6.26.0.tgz";
+ path = fetchurl {
+ name = "babel_helper_regex___babel_helper_regex_6.26.0.tgz";
+ url = "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz";
+ sha1 = "325c59f902f82f24b74faceed0363954f6495e72";
+ };
+ }
+
+ {
+ name = "babel_helper_remap_async_to_generator___babel_helper_remap_async_to_generator_6.24.1.tgz";
+ path = fetchurl {
+ name = "babel_helper_remap_async_to_generator___babel_helper_remap_async_to_generator_6.24.1.tgz";
+ url = "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz";
+ sha1 = "5ec581827ad723fecdd381f1c928390676e4551b";
+ };
+ }
+
+ {
+ name = "babel_helper_replace_supers___babel_helper_replace_supers_6.24.1.tgz";
+ path = fetchurl {
+ name = "babel_helper_replace_supers___babel_helper_replace_supers_6.24.1.tgz";
+ url = "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz";
+ sha1 = "bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a";
+ };
+ }
+
+ {
+ name = "babel_helpers___babel_helpers_6.24.1.tgz";
+ path = fetchurl {
+ name = "babel_helpers___babel_helpers_6.24.1.tgz";
+ url = "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz";
+ sha1 = "3471de9caec388e5c850e597e58a26ddf37602b2";
+ };
+ }
+
+ {
+ name = "babel_loader___babel_loader_7.1.5.tgz";
+ path = fetchurl {
+ name = "babel_loader___babel_loader_7.1.5.tgz";
+ url = "https://registry.yarnpkg.com/babel-loader/-/babel-loader-7.1.5.tgz";
+ sha1 = "e3ee0cd7394aa557e013b02d3e492bfd07aa6d68";
+ };
+ }
+
+ {
+ name = "babel_messages___babel_messages_6.23.0.tgz";
+ path = fetchurl {
+ name = "babel_messages___babel_messages_6.23.0.tgz";
+ url = "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz";
+ sha1 = "f3cdf4703858035b2a2951c6ec5edf6c62f2630e";
+ };
+ }
+
+ {
+ name = "babel_plugin_check_es2015_constants___babel_plugin_check_es2015_constants_6.22.0.tgz";
+ path = fetchurl {
+ name = "babel_plugin_check_es2015_constants___babel_plugin_check_es2015_constants_6.22.0.tgz";
+ url = "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz";
+ sha1 = "35157b101426fd2ffd3da3f75c7d1e91835bbf8a";
+ };
+ }
+
+ {
+ name = "babel_plugin_syntax_async_functions___babel_plugin_syntax_async_functions_6.13.0.tgz";
+ path = fetchurl {
+ name = "babel_plugin_syntax_async_functions___babel_plugin_syntax_async_functions_6.13.0.tgz";
+ url = "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz";
+ sha1 = "cad9cad1191b5ad634bf30ae0872391e0647be95";
+ };
+ }
+
+ {
+ name = "babel_plugin_syntax_exponentiation_operator___babel_plugin_syntax_exponentiation_operator_6.13.0.tgz";
+ path = fetchurl {
+ name = "babel_plugin_syntax_exponentiation_operator___babel_plugin_syntax_exponentiation_operator_6.13.0.tgz";
+ url = "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz";
+ sha1 = "9ee7e8337290da95288201a6a57f4170317830de";
+ };
+ }
+
+ {
+ name = "babel_plugin_syntax_trailing_function_commas___babel_plugin_syntax_trailing_function_commas_6.22.0.tgz";
+ path = fetchurl {
+ name = "babel_plugin_syntax_trailing_function_commas___babel_plugin_syntax_trailing_function_commas_6.22.0.tgz";
+ url = "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz";
+ sha1 = "ba0360937f8d06e40180a43fe0d5616fff532cf3";
+ };
+ }
+
+ {
+ name = "babel_plugin_transform_async_to_generator___babel_plugin_transform_async_to_generator_6.24.1.tgz";
+ path = fetchurl {
+ name = "babel_plugin_transform_async_to_generator___babel_plugin_transform_async_to_generator_6.24.1.tgz";
+ url = "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz";
+ sha1 = "6536e378aff6cb1d5517ac0e40eb3e9fc8d08761";
+ };
+ }
+
+ {
+ name = "babel_plugin_transform_es2015_arrow_functions___babel_plugin_transform_es2015_arrow_functions_6.22.0.tgz";
+ path = fetchurl {
+ name = "babel_plugin_transform_es2015_arrow_functions___babel_plugin_transform_es2015_arrow_functions_6.22.0.tgz";
+ url = "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz";
+ sha1 = "452692cb711d5f79dc7f85e440ce41b9f244d221";
+ };
+ }
+
+ {
+ name = "babel_plugin_transform_es2015_block_scoped_functions___babel_plugin_transform_es2015_block_scoped_functions_6.22.0.tgz";
+ path = fetchurl {
+ name = "babel_plugin_transform_es2015_block_scoped_functions___babel_plugin_transform_es2015_block_scoped_functions_6.22.0.tgz";
+ url = "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz";
+ sha1 = "bbc51b49f964d70cb8d8e0b94e820246ce3a6141";
+ };
+ }
+
+ {
+ name = "babel_plugin_transform_es2015_block_scoping___babel_plugin_transform_es2015_block_scoping_6.26.0.tgz";
+ path = fetchurl {
+ name = "babel_plugin_transform_es2015_block_scoping___babel_plugin_transform_es2015_block_scoping_6.26.0.tgz";
+ url = "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz";
+ sha1 = "d70f5299c1308d05c12f463813b0a09e73b1895f";
+ };
+ }
+
+ {
+ name = "babel_plugin_transform_es2015_classes___babel_plugin_transform_es2015_classes_6.24.1.tgz";
+ path = fetchurl {
+ name = "babel_plugin_transform_es2015_classes___babel_plugin_transform_es2015_classes_6.24.1.tgz";
+ url = "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz";
+ sha1 = "5a4c58a50c9c9461e564b4b2a3bfabc97a2584db";
+ };
+ }
+
+ {
+ name = "babel_plugin_transform_es2015_computed_properties___babel_plugin_transform_es2015_computed_properties_6.24.1.tgz";
+ path = fetchurl {
+ name = "babel_plugin_transform_es2015_computed_properties___babel_plugin_transform_es2015_computed_properties_6.24.1.tgz";
+ url = "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz";
+ sha1 = "6fe2a8d16895d5634f4cd999b6d3480a308159b3";
+ };
+ }
+
+ {
+ name = "babel_plugin_transform_es2015_destructuring___babel_plugin_transform_es2015_destructuring_6.23.0.tgz";
+ path = fetchurl {
+ name = "babel_plugin_transform_es2015_destructuring___babel_plugin_transform_es2015_destructuring_6.23.0.tgz";
+ url = "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz";
+ sha1 = "997bb1f1ab967f682d2b0876fe358d60e765c56d";
+ };
+ }
+
+ {
+ name = "babel_plugin_transform_es2015_duplicate_keys___babel_plugin_transform_es2015_duplicate_keys_6.24.1.tgz";
+ path = fetchurl {
+ name = "babel_plugin_transform_es2015_duplicate_keys___babel_plugin_transform_es2015_duplicate_keys_6.24.1.tgz";
+ url = "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz";
+ sha1 = "73eb3d310ca969e3ef9ec91c53741a6f1576423e";
+ };
+ }
+
+ {
+ name = "babel_plugin_transform_es2015_for_of___babel_plugin_transform_es2015_for_of_6.23.0.tgz";
+ path = fetchurl {
+ name = "babel_plugin_transform_es2015_for_of___babel_plugin_transform_es2015_for_of_6.23.0.tgz";
+ url = "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz";
+ sha1 = "f47c95b2b613df1d3ecc2fdb7573623c75248691";
+ };
+ }
+
+ {
+ name = "babel_plugin_transform_es2015_function_name___babel_plugin_transform_es2015_function_name_6.24.1.tgz";
+ path = fetchurl {
+ name = "babel_plugin_transform_es2015_function_name___babel_plugin_transform_es2015_function_name_6.24.1.tgz";
+ url = "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz";
+ sha1 = "834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b";
+ };
+ }
+
+ {
+ name = "babel_plugin_transform_es2015_literals___babel_plugin_transform_es2015_literals_6.22.0.tgz";
+ path = fetchurl {
+ name = "babel_plugin_transform_es2015_literals___babel_plugin_transform_es2015_literals_6.22.0.tgz";
+ url = "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz";
+ sha1 = "4f54a02d6cd66cf915280019a31d31925377ca2e";
+ };
+ }
+
+ {
+ name = "babel_plugin_transform_es2015_modules_amd___babel_plugin_transform_es2015_modules_amd_6.24.1.tgz";
+ path = fetchurl {
+ name = "babel_plugin_transform_es2015_modules_amd___babel_plugin_transform_es2015_modules_amd_6.24.1.tgz";
+ url = "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz";
+ sha1 = "3b3e54017239842d6d19c3011c4bd2f00a00d154";
+ };
+ }
+
+ {
+ name = "babel_plugin_transform_es2015_modules_commonjs___babel_plugin_transform_es2015_modules_commonjs_6.26.2.tgz";
+ path = fetchurl {
+ name = "babel_plugin_transform_es2015_modules_commonjs___babel_plugin_transform_es2015_modules_commonjs_6.26.2.tgz";
+ url = "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz";
+ sha1 = "58a793863a9e7ca870bdc5a881117ffac27db6f3";
+ };
+ }
+
+ {
+ name = "babel_plugin_transform_es2015_modules_systemjs___babel_plugin_transform_es2015_modules_systemjs_6.24.1.tgz";
+ path = fetchurl {
+ name = "babel_plugin_transform_es2015_modules_systemjs___babel_plugin_transform_es2015_modules_systemjs_6.24.1.tgz";
+ url = "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz";
+ sha1 = "ff89a142b9119a906195f5f106ecf305d9407d23";
+ };
+ }
+
+ {
+ name = "babel_plugin_transform_es2015_modules_umd___babel_plugin_transform_es2015_modules_umd_6.24.1.tgz";
+ path = fetchurl {
+ name = "babel_plugin_transform_es2015_modules_umd___babel_plugin_transform_es2015_modules_umd_6.24.1.tgz";
+ url = "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz";
+ sha1 = "ac997e6285cd18ed6176adb607d602344ad38468";
+ };
+ }
+
+ {
+ name = "babel_plugin_transform_es2015_object_super___babel_plugin_transform_es2015_object_super_6.24.1.tgz";
+ path = fetchurl {
+ name = "babel_plugin_transform_es2015_object_super___babel_plugin_transform_es2015_object_super_6.24.1.tgz";
+ url = "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz";
+ sha1 = "24cef69ae21cb83a7f8603dad021f572eb278f8d";
+ };
+ }
+
+ {
+ name = "babel_plugin_transform_es2015_parameters___babel_plugin_transform_es2015_parameters_6.24.1.tgz";
+ path = fetchurl {
+ name = "babel_plugin_transform_es2015_parameters___babel_plugin_transform_es2015_parameters_6.24.1.tgz";
+ url = "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz";
+ sha1 = "57ac351ab49caf14a97cd13b09f66fdf0a625f2b";
+ };
+ }
+
+ {
+ name = "babel_plugin_transform_es2015_shorthand_properties___babel_plugin_transform_es2015_shorthand_properties_6.24.1.tgz";
+ path = fetchurl {
+ name = "babel_plugin_transform_es2015_shorthand_properties___babel_plugin_transform_es2015_shorthand_properties_6.24.1.tgz";
+ url = "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz";
+ sha1 = "24f875d6721c87661bbd99a4622e51f14de38aa0";
+ };
+ }
+
+ {
+ name = "babel_plugin_transform_es2015_spread___babel_plugin_transform_es2015_spread_6.22.0.tgz";
+ path = fetchurl {
+ name = "babel_plugin_transform_es2015_spread___babel_plugin_transform_es2015_spread_6.22.0.tgz";
+ url = "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz";
+ sha1 = "d6d68a99f89aedc4536c81a542e8dd9f1746f8d1";
+ };
+ }
+
+ {
+ name = "babel_plugin_transform_es2015_sticky_regex___babel_plugin_transform_es2015_sticky_regex_6.24.1.tgz";
+ path = fetchurl {
+ name = "babel_plugin_transform_es2015_sticky_regex___babel_plugin_transform_es2015_sticky_regex_6.24.1.tgz";
+ url = "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz";
+ sha1 = "00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc";
+ };
+ }
+
+ {
+ name = "babel_plugin_transform_es2015_template_literals___babel_plugin_transform_es2015_template_literals_6.22.0.tgz";
+ path = fetchurl {
+ name = "babel_plugin_transform_es2015_template_literals___babel_plugin_transform_es2015_template_literals_6.22.0.tgz";
+ url = "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz";
+ sha1 = "a84b3450f7e9f8f1f6839d6d687da84bb1236d8d";
+ };
+ }
+
+ {
+ name = "babel_plugin_transform_es2015_typeof_symbol___babel_plugin_transform_es2015_typeof_symbol_6.23.0.tgz";
+ path = fetchurl {
+ name = "babel_plugin_transform_es2015_typeof_symbol___babel_plugin_transform_es2015_typeof_symbol_6.23.0.tgz";
+ url = "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz";
+ sha1 = "dec09f1cddff94b52ac73d505c84df59dcceb372";
+ };
+ }
+
+ {
+ name = "babel_plugin_transform_es2015_unicode_regex___babel_plugin_transform_es2015_unicode_regex_6.24.1.tgz";
+ path = fetchurl {
+ name = "babel_plugin_transform_es2015_unicode_regex___babel_plugin_transform_es2015_unicode_regex_6.24.1.tgz";
+ url = "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz";
+ sha1 = "d38b12f42ea7323f729387f18a7c5ae1faeb35e9";
+ };
+ }
+
+ {
+ name = "babel_plugin_transform_exponentiation_operator___babel_plugin_transform_exponentiation_operator_6.24.1.tgz";
+ path = fetchurl {
+ name = "babel_plugin_transform_exponentiation_operator___babel_plugin_transform_exponentiation_operator_6.24.1.tgz";
+ url = "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz";
+ sha1 = "2ab0c9c7f3098fa48907772bb813fe41e8de3a0e";
+ };
+ }
+
+ {
+ name = "babel_plugin_transform_regenerator___babel_plugin_transform_regenerator_6.26.0.tgz";
+ path = fetchurl {
+ name = "babel_plugin_transform_regenerator___babel_plugin_transform_regenerator_6.26.0.tgz";
+ url = "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz";
+ sha1 = "e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f";
+ };
+ }
+
+ {
+ name = "babel_plugin_transform_strict_mode___babel_plugin_transform_strict_mode_6.24.1.tgz";
+ path = fetchurl {
+ name = "babel_plugin_transform_strict_mode___babel_plugin_transform_strict_mode_6.24.1.tgz";
+ url = "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz";
+ sha1 = "d5faf7aa578a65bbe591cf5edae04a0c67020758";
+ };
+ }
+
+ {
+ name = "babel_preset_env___babel_preset_env_1.7.0.tgz";
+ path = fetchurl {
+ name = "babel_preset_env___babel_preset_env_1.7.0.tgz";
+ url = "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.7.0.tgz";
+ sha1 = "dea79fa4ebeb883cd35dab07e260c1c9c04df77a";
+ };
+ }
+
+ {
+ name = "babel_register___babel_register_6.26.0.tgz";
+ path = fetchurl {
+ name = "babel_register___babel_register_6.26.0.tgz";
+ url = "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz";
+ sha1 = "6ed021173e2fcb486d7acb45c6009a856f647071";
+ };
+ }
+
+ {
+ name = "babel_runtime___babel_runtime_6.26.0.tgz";
+ path = fetchurl {
+ name = "babel_runtime___babel_runtime_6.26.0.tgz";
+ url = "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz";
+ sha1 = "965c7058668e82b55d7bfe04ff2337bc8b5647fe";
+ };
+ }
+
+ {
+ name = "babel_template___babel_template_6.26.0.tgz";
+ path = fetchurl {
+ name = "babel_template___babel_template_6.26.0.tgz";
+ url = "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz";
+ sha1 = "de03e2d16396b069f46dd9fff8521fb1a0e35e02";
+ };
+ }
+
+ {
+ name = "babel_traverse___babel_traverse_6.26.0.tgz";
+ path = fetchurl {
+ name = "babel_traverse___babel_traverse_6.26.0.tgz";
+ url = "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz";
+ sha1 = "46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee";
+ };
+ }
+
+ {
+ name = "babel_types___babel_types_6.26.0.tgz";
+ path = fetchurl {
+ name = "babel_types___babel_types_6.26.0.tgz";
+ url = "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz";
+ sha1 = "a3b073f94ab49eb6fa55cd65227a334380632497";
+ };
+ }
+
+ {
+ name = "babylon___babylon_6.18.0.tgz";
+ path = fetchurl {
+ name = "babylon___babylon_6.18.0.tgz";
+ url = "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz";
+ sha1 = "af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3";
+ };
+ }
+
+ {
+ name = "balanced_match___balanced_match_0.4.2.tgz";
+ path = fetchurl {
+ name = "balanced_match___balanced_match_0.4.2.tgz";
+ url = "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz";
+ sha1 = "cb3f3e3c732dc0f01ee70b403f302e61d7709838";
+ };
+ }
+
+ {
+ name = "balanced_match___balanced_match_1.0.0.tgz";
+ path = fetchurl {
+ name = "balanced_match___balanced_match_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz";
+ sha1 = "89b4d199ab2bee49de164ea02b89ce462d71b767";
+ };
+ }
+
+ {
+ name = "base64_js___base64_js_1.3.0.tgz";
+ path = fetchurl {
+ name = "base64_js___base64_js_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz";
+ sha1 = "cab1e6118f051095e58b5281aea8c1cd22bfc0e3";
+ };
+ }
+
+ {
+ name = "base___base_0.11.2.tgz";
+ path = fetchurl {
+ name = "base___base_0.11.2.tgz";
+ url = "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz";
+ sha1 = "7bde5ced145b6d551a90db87f83c558b4eb48a8f";
+ };
+ }
+
+ {
+ name = "batch___batch_0.6.1.tgz";
+ path = fetchurl {
+ name = "batch___batch_0.6.1.tgz";
+ url = "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz";
+ sha1 = "dc34314f4e679318093fc760272525f94bf25c16";
+ };
+ }
+
+ {
+ name = "bcrypt_pbkdf___bcrypt_pbkdf_1.0.2.tgz";
+ path = fetchurl {
+ name = "bcrypt_pbkdf___bcrypt_pbkdf_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz";
+ sha1 = "a4301d389b6a43f9b67ff3ca11a3f6637e360e9e";
+ };
+ }
+
+ {
+ name = "big.js___big.js_3.2.0.tgz";
+ path = fetchurl {
+ name = "big.js___big.js_3.2.0.tgz";
+ url = "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz";
+ sha1 = "a5fc298b81b9e0dca2e458824784b65c52ba588e";
+ };
+ }
+
+ {
+ name = "binary_extensions___binary_extensions_1.11.0.tgz";
+ path = fetchurl {
+ name = "binary_extensions___binary_extensions_1.11.0.tgz";
+ url = "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz";
+ sha1 = "46aa1751fb6a2f93ee5e689bb1087d4b14c6c205";
+ };
+ }
+
+ {
+ name = "block_stream___block_stream_0.0.9.tgz";
+ path = fetchurl {
+ name = "block_stream___block_stream_0.0.9.tgz";
+ url = "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz";
+ sha1 = "13ebfe778a03205cfe03751481ebb4b3300c126a";
+ };
+ }
+
+ {
+ name = "bn.js___bn.js_4.11.8.tgz";
+ path = fetchurl {
+ name = "bn.js___bn.js_4.11.8.tgz";
+ url = "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz";
+ sha1 = "2cde09eb5ee341f484746bb0309b3253b1b1442f";
+ };
+ }
+
+ {
+ name = "body_parser___body_parser_1.18.2.tgz";
+ path = fetchurl {
+ name = "body_parser___body_parser_1.18.2.tgz";
+ url = "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.2.tgz";
+ sha1 = "87678a19d84b47d859b83199bd59bce222b10454";
+ };
+ }
+
+ {
+ name = "bonjour___bonjour_3.5.0.tgz";
+ path = fetchurl {
+ name = "bonjour___bonjour_3.5.0.tgz";
+ url = "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz";
+ sha1 = "8e890a183d8ee9a2393b3844c691a42bcf7bc9f5";
+ };
+ }
+
+ {
+ name = "boolbase___boolbase_1.0.0.tgz";
+ path = fetchurl {
+ name = "boolbase___boolbase_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz";
+ sha1 = "68dff5fbe60c51eb37725ea9e3ed310dcc1e776e";
+ };
+ }
+
+ {
+ name = "boom___boom_2.10.1.tgz";
+ path = fetchurl {
+ name = "boom___boom_2.10.1.tgz";
+ url = "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz";
+ sha1 = "39c8918ceff5799f83f9492a848f625add0c766f";
+ };
+ }
+
+ {
+ name = "bootstrap___bootstrap_4.1.3.tgz";
+ path = fetchurl {
+ name = "bootstrap___bootstrap_4.1.3.tgz";
+ url = "https://registry.yarnpkg.com/bootstrap/-/bootstrap-4.1.3.tgz";
+ sha1 = "0eb371af2c8448e8c210411d0cb824a6409a12be";
+ };
+ }
+
+ {
+ name = "brace_expansion___brace_expansion_1.1.11.tgz";
+ path = fetchurl {
+ name = "brace_expansion___brace_expansion_1.1.11.tgz";
+ url = "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz";
+ sha1 = "3c7fcbf529d87226f3d2f52b966ff5271eb441dd";
+ };
+ }
+
+ {
+ name = "braces___braces_1.8.5.tgz";
+ path = fetchurl {
+ name = "braces___braces_1.8.5.tgz";
+ url = "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz";
+ sha1 = "ba77962e12dff969d6b76711e914b737857bf6a7";
+ };
+ }
+
+ {
+ name = "braces___braces_2.3.2.tgz";
+ path = fetchurl {
+ name = "braces___braces_2.3.2.tgz";
+ url = "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz";
+ sha1 = "5979fd3f14cd531565e5fa2df1abfff1dfaee729";
+ };
+ }
+
+ {
+ name = "brorand___brorand_1.1.0.tgz";
+ path = fetchurl {
+ name = "brorand___brorand_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz";
+ sha1 = "12c25efe40a45e3c323eb8675a0a0ce57b22371f";
+ };
+ }
+
+ {
+ name = "browserify_aes___browserify_aes_1.2.0.tgz";
+ path = fetchurl {
+ name = "browserify_aes___browserify_aes_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz";
+ sha1 = "326734642f403dabc3003209853bb70ad428ef48";
+ };
+ }
+
+ {
+ name = "browserify_cipher___browserify_cipher_1.0.1.tgz";
+ path = fetchurl {
+ name = "browserify_cipher___browserify_cipher_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz";
+ sha1 = "8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0";
+ };
+ }
+
+ {
+ name = "browserify_des___browserify_des_1.0.2.tgz";
+ path = fetchurl {
+ name = "browserify_des___browserify_des_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz";
+ sha1 = "3af4f1f59839403572f1c66204375f7a7f703e9c";
+ };
+ }
+
+ {
+ name = "browserify_rsa___browserify_rsa_4.0.1.tgz";
+ path = fetchurl {
+ name = "browserify_rsa___browserify_rsa_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz";
+ sha1 = "21e0abfaf6f2029cf2fafb133567a701d4135524";
+ };
+ }
+
+ {
+ name = "browserify_sign___browserify_sign_4.0.4.tgz";
+ path = fetchurl {
+ name = "browserify_sign___browserify_sign_4.0.4.tgz";
+ url = "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz";
+ sha1 = "aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298";
+ };
+ }
+
+ {
+ name = "browserify_zlib___browserify_zlib_0.2.0.tgz";
+ path = fetchurl {
+ name = "browserify_zlib___browserify_zlib_0.2.0.tgz";
+ url = "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz";
+ sha1 = "2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f";
+ };
+ }
+
+ {
+ name = "browserslist___browserslist_1.7.7.tgz";
+ path = fetchurl {
+ name = "browserslist___browserslist_1.7.7.tgz";
+ url = "https://registry.yarnpkg.com/browserslist/-/browserslist-1.7.7.tgz";
+ sha1 = "0bd76704258be829b2398bb50e4b62d1a166b0b9";
+ };
+ }
+
+ {
+ name = "browserslist___browserslist_3.2.8.tgz";
+ path = fetchurl {
+ name = "browserslist___browserslist_3.2.8.tgz";
+ url = "https://registry.yarnpkg.com/browserslist/-/browserslist-3.2.8.tgz";
+ sha1 = "b0005361d6471f0f5952797a76fc985f1f978fc6";
+ };
+ }
+
+ {
+ name = "buffer_indexof___buffer_indexof_1.1.1.tgz";
+ path = fetchurl {
+ name = "buffer_indexof___buffer_indexof_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz";
+ sha1 = "52fabcc6a606d1a00302802648ef68f639da268c";
+ };
+ }
+
+ {
+ name = "buffer_xor___buffer_xor_1.0.3.tgz";
+ path = fetchurl {
+ name = "buffer_xor___buffer_xor_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz";
+ sha1 = "26e61ed1422fb70dd42e6e36729ed51d855fe8d9";
+ };
+ }
+
+ {
+ name = "buffer___buffer_4.9.1.tgz";
+ path = fetchurl {
+ name = "buffer___buffer_4.9.1.tgz";
+ url = "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz";
+ sha1 = "6d1bb601b07a4efced97094132093027c95bc298";
+ };
+ }
+
+ {
+ name = "builtin_modules___builtin_modules_1.1.1.tgz";
+ path = fetchurl {
+ name = "builtin_modules___builtin_modules_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz";
+ sha1 = "270f076c5a72c02f5b65a47df94c5fe3a278892f";
+ };
+ }
+
+ {
+ name = "builtin_status_codes___builtin_status_codes_3.0.0.tgz";
+ path = fetchurl {
+ name = "builtin_status_codes___builtin_status_codes_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz";
+ sha1 = "85982878e21b98e1c66425e03d0174788f569ee8";
+ };
+ }
+
+ {
+ name = "bytes___bytes_3.0.0.tgz";
+ path = fetchurl {
+ name = "bytes___bytes_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz";
+ sha1 = "d32815404d689699f85a4ea4fa8755dd13a96048";
+ };
+ }
+
+ {
+ name = "cache_base___cache_base_1.0.1.tgz";
+ path = fetchurl {
+ name = "cache_base___cache_base_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz";
+ sha1 = "0a7f46416831c8b662ee36fe4e7c59d76f666ab2";
+ };
+ }
+
+ {
+ name = "camelcase_keys___camelcase_keys_2.1.0.tgz";
+ path = fetchurl {
+ name = "camelcase_keys___camelcase_keys_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz";
+ sha1 = "308beeaffdf28119051efa1d932213c91b8f92e7";
+ };
+ }
+
+ {
+ name = "camelcase___camelcase_1.2.1.tgz";
+ path = fetchurl {
+ name = "camelcase___camelcase_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz";
+ sha1 = "9bb5304d2e0b56698b2c758b08a3eaa9daa58a39";
+ };
+ }
+
+ {
+ name = "camelcase___camelcase_2.1.1.tgz";
+ path = fetchurl {
+ name = "camelcase___camelcase_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz";
+ sha1 = "7c1d16d679a1bbe59ca02cacecfb011e201f5a1f";
+ };
+ }
+
+ {
+ name = "camelcase___camelcase_3.0.0.tgz";
+ path = fetchurl {
+ name = "camelcase___camelcase_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz";
+ sha1 = "32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a";
+ };
+ }
+
+ {
+ name = "camelcase___camelcase_4.1.0.tgz";
+ path = fetchurl {
+ name = "camelcase___camelcase_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz";
+ sha1 = "d545635be1e33c542649c69173e5de6acfae34dd";
+ };
+ }
+
+ {
+ name = "caniuse_api___caniuse_api_1.6.1.tgz";
+ path = fetchurl {
+ name = "caniuse_api___caniuse_api_1.6.1.tgz";
+ url = "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-1.6.1.tgz";
+ sha1 = "b534e7c734c4f81ec5fbe8aca2ad24354b962c6c";
+ };
+ }
+
+ {
+ name = "caniuse_db___caniuse_db_1.0.30000871.tgz";
+ path = fetchurl {
+ name = "caniuse_db___caniuse_db_1.0.30000871.tgz";
+ url = "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000871.tgz";
+ sha1 = "f1995c1fe31892649a7605957a80c92518423d4d";
+ };
+ }
+
+ {
+ name = "caniuse_lite___caniuse_lite_1.0.30000865.tgz";
+ path = fetchurl {
+ name = "caniuse_lite___caniuse_lite_1.0.30000865.tgz";
+ url = "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000865.tgz";
+ sha1 = "70026616e8afe6e1442f8bb4e1092987d81a2f25";
+ };
+ }
+
+ {
+ name = "caseless___caseless_0.12.0.tgz";
+ path = fetchurl {
+ name = "caseless___caseless_0.12.0.tgz";
+ url = "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz";
+ sha1 = "1b681c21ff84033c826543090689420d187151dc";
+ };
+ }
+
+ {
+ name = "center_align___center_align_0.1.3.tgz";
+ path = fetchurl {
+ name = "center_align___center_align_0.1.3.tgz";
+ url = "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz";
+ sha1 = "aa0d32629b6ee972200411cbd4461c907bc2b7ad";
+ };
+ }
+
+ {
+ name = "chalk___chalk_1.1.3.tgz";
+ path = fetchurl {
+ name = "chalk___chalk_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz";
+ sha1 = "a8115c55e4a702fe4d150abd3872822a7e09fc98";
+ };
+ }
+
+ {
+ name = "chalk___chalk_2.4.1.tgz";
+ path = fetchurl {
+ name = "chalk___chalk_2.4.1.tgz";
+ url = "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz";
+ sha1 = "18c49ab16a037b6eb0152cc83e3471338215b66e";
+ };
+ }
+
+ {
+ name = "chokidar___chokidar_2.0.4.tgz";
+ path = fetchurl {
+ name = "chokidar___chokidar_2.0.4.tgz";
+ url = "https://registry.yarnpkg.com/chokidar/-/chokidar-2.0.4.tgz";
+ sha1 = "356ff4e2b0e8e43e322d18a372460bbcf3accd26";
+ };
+ }
+
+ {
+ name = "chownr___chownr_1.0.1.tgz";
+ path = fetchurl {
+ name = "chownr___chownr_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz";
+ sha1 = "e2a75042a9551908bebd25b8523d5f9769d79181";
+ };
+ }
+
+ {
+ name = "cipher_base___cipher_base_1.0.4.tgz";
+ path = fetchurl {
+ name = "cipher_base___cipher_base_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz";
+ sha1 = "8760e4ecc272f4c363532f926d874aae2c1397de";
+ };
+ }
+
+ {
+ name = "clap___clap_1.2.3.tgz";
+ path = fetchurl {
+ name = "clap___clap_1.2.3.tgz";
+ url = "https://registry.yarnpkg.com/clap/-/clap-1.2.3.tgz";
+ sha1 = "4f36745b32008492557f46412d66d50cb99bce51";
+ };
+ }
+
+ {
+ name = "class_utils___class_utils_0.3.6.tgz";
+ path = fetchurl {
+ name = "class_utils___class_utils_0.3.6.tgz";
+ url = "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz";
+ sha1 = "f93369ae8b9a7ce02fd41faad0ca83033190c463";
+ };
+ }
+
+ {
+ name = "clean_webpack_plugin___clean_webpack_plugin_0.1.19.tgz";
+ path = fetchurl {
+ name = "clean_webpack_plugin___clean_webpack_plugin_0.1.19.tgz";
+ url = "https://registry.yarnpkg.com/clean-webpack-plugin/-/clean-webpack-plugin-0.1.19.tgz";
+ sha1 = "ceda8bb96b00fe168e9b080272960d20fdcadd6d";
+ };
+ }
+
+ {
+ name = "cliui___cliui_2.1.0.tgz";
+ path = fetchurl {
+ name = "cliui___cliui_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz";
+ sha1 = "4b475760ff80264c762c3a1719032e91c7fea0d1";
+ };
+ }
+
+ {
+ name = "cliui___cliui_3.2.0.tgz";
+ path = fetchurl {
+ name = "cliui___cliui_3.2.0.tgz";
+ url = "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz";
+ sha1 = "120601537a916d29940f934da3b48d585a39213d";
+ };
+ }
+
+ {
+ name = "clone_deep___clone_deep_2.0.2.tgz";
+ path = fetchurl {
+ name = "clone_deep___clone_deep_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/clone-deep/-/clone-deep-2.0.2.tgz";
+ sha1 = "00db3a1e173656730d1188c3d6aced6d7ea97713";
+ };
+ }
+
+ {
+ name = "clone___clone_1.0.4.tgz";
+ path = fetchurl {
+ name = "clone___clone_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz";
+ sha1 = "da309cc263df15994c688ca902179ca3c7cd7c7e";
+ };
+ }
+
+ {
+ name = "co___co_4.6.0.tgz";
+ path = fetchurl {
+ name = "co___co_4.6.0.tgz";
+ url = "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz";
+ sha1 = "6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184";
+ };
+ }
+
+ {
+ name = "coa___coa_1.0.4.tgz";
+ path = fetchurl {
+ name = "coa___coa_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/coa/-/coa-1.0.4.tgz";
+ sha1 = "a9ef153660d6a86a8bdec0289a5c684d217432fd";
+ };
+ }
+
+ {
+ name = "code_point_at___code_point_at_1.1.0.tgz";
+ path = fetchurl {
+ name = "code_point_at___code_point_at_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz";
+ sha1 = "0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77";
+ };
+ }
+
+ {
+ name = "collection_visit___collection_visit_1.0.0.tgz";
+ path = fetchurl {
+ name = "collection_visit___collection_visit_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz";
+ sha1 = "4bc0373c164bc3291b4d368c829cf1a80a59dca0";
+ };
+ }
+
+ {
+ name = "color_convert___color_convert_1.9.2.tgz";
+ path = fetchurl {
+ name = "color_convert___color_convert_1.9.2.tgz";
+ url = "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.2.tgz";
+ sha1 = "49881b8fba67df12a96bdf3f56c0aab9e7913147";
+ };
+ }
+
+ {
+ name = "color_name___color_name_1.1.1.tgz";
+ path = fetchurl {
+ name = "color_name___color_name_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/color-name/-/color-name-1.1.1.tgz";
+ sha1 = "4b1415304cf50028ea81643643bd82ea05803689";
+ };
+ }
+
+ {
+ name = "color_name___color_name_1.1.3.tgz";
+ path = fetchurl {
+ name = "color_name___color_name_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz";
+ sha1 = "a7d0558bd89c42f795dd42328f740831ca53bc25";
+ };
+ }
+
+ {
+ name = "color_string___color_string_0.3.0.tgz";
+ path = fetchurl {
+ name = "color_string___color_string_0.3.0.tgz";
+ url = "https://registry.yarnpkg.com/color-string/-/color-string-0.3.0.tgz";
+ sha1 = "27d46fb67025c5c2fa25993bfbf579e47841b991";
+ };
+ }
+
+ {
+ name = "color___color_0.11.4.tgz";
+ path = fetchurl {
+ name = "color___color_0.11.4.tgz";
+ url = "https://registry.yarnpkg.com/color/-/color-0.11.4.tgz";
+ sha1 = "6d7b5c74fb65e841cd48792ad1ed5e07b904d764";
+ };
+ }
+
+ {
+ name = "colormin___colormin_1.1.2.tgz";
+ path = fetchurl {
+ name = "colormin___colormin_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/colormin/-/colormin-1.1.2.tgz";
+ sha1 = "ea2f7420a72b96881a38aae59ec124a6f7298133";
+ };
+ }
+
+ {
+ name = "colors___colors_1.1.2.tgz";
+ path = fetchurl {
+ name = "colors___colors_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz";
+ sha1 = "168a4701756b6a7f51a12ce0c97bfa28c084ed63";
+ };
+ }
+
+ {
+ name = "combined_stream___combined_stream_1.0.6.tgz";
+ path = fetchurl {
+ name = "combined_stream___combined_stream_1.0.6.tgz";
+ url = "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.6.tgz";
+ sha1 = "723e7df6e801ac5613113a7e445a9b69cb632818";
+ };
+ }
+
+ {
+ name = "commondir___commondir_1.0.1.tgz";
+ path = fetchurl {
+ name = "commondir___commondir_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz";
+ sha1 = "ddd800da0c66127393cca5950ea968a3aaf1253b";
+ };
+ }
+
+ {
+ name = "component_emitter___component_emitter_1.2.1.tgz";
+ path = fetchurl {
+ name = "component_emitter___component_emitter_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz";
+ sha1 = "137918d6d78283f7df7a6b7c5a63e140e69425e6";
+ };
+ }
+
+ {
+ name = "compressible___compressible_2.0.14.tgz";
+ path = fetchurl {
+ name = "compressible___compressible_2.0.14.tgz";
+ url = "https://registry.yarnpkg.com/compressible/-/compressible-2.0.14.tgz";
+ sha1 = "326c5f507fbb055f54116782b969a81b67a29da7";
+ };
+ }
+
+ {
+ name = "compression___compression_1.7.3.tgz";
+ path = fetchurl {
+ name = "compression___compression_1.7.3.tgz";
+ url = "https://registry.yarnpkg.com/compression/-/compression-1.7.3.tgz";
+ sha1 = "27e0e176aaf260f7f2c2813c3e440adb9f1993db";
+ };
+ }
+
+ {
+ name = "concat_map___concat_map_0.0.1.tgz";
+ path = fetchurl {
+ name = "concat_map___concat_map_0.0.1.tgz";
+ url = "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz";
+ sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b";
+ };
+ }
+
+ {
+ name = "connect_history_api_fallback___connect_history_api_fallback_1.5.0.tgz";
+ path = fetchurl {
+ name = "connect_history_api_fallback___connect_history_api_fallback_1.5.0.tgz";
+ url = "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz";
+ sha1 = "b06873934bc5e344fef611a196a6faae0aee015a";
+ };
+ }
+
+ {
+ name = "console_browserify___console_browserify_1.1.0.tgz";
+ path = fetchurl {
+ name = "console_browserify___console_browserify_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz";
+ sha1 = "f0241c45730a9fc6323b206dbf38edc741d0bb10";
+ };
+ }
+
+ {
+ name = "console_control_strings___console_control_strings_1.1.0.tgz";
+ path = fetchurl {
+ name = "console_control_strings___console_control_strings_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz";
+ sha1 = "3d7cf4464db6446ea644bf4b39507f9851008e8e";
+ };
+ }
+
+ {
+ name = "constants_browserify___constants_browserify_1.0.0.tgz";
+ path = fetchurl {
+ name = "constants_browserify___constants_browserify_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz";
+ sha1 = "c20b96d8c617748aaf1c16021760cd27fcb8cb75";
+ };
+ }
+
+ {
+ name = "content_disposition___content_disposition_0.5.2.tgz";
+ path = fetchurl {
+ name = "content_disposition___content_disposition_0.5.2.tgz";
+ url = "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz";
+ sha1 = "0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4";
+ };
+ }
+
+ {
+ name = "content_type___content_type_1.0.4.tgz";
+ path = fetchurl {
+ name = "content_type___content_type_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz";
+ sha1 = "e138cc75e040c727b1966fe5e5f8c9aee256fe3b";
+ };
+ }
+
+ {
+ name = "convert_source_map___convert_source_map_0.3.5.tgz";
+ path = fetchurl {
+ name = "convert_source_map___convert_source_map_0.3.5.tgz";
+ url = "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-0.3.5.tgz";
+ sha1 = "f1d802950af7dd2631a1febe0596550c86ab3190";
+ };
+ }
+
+ {
+ name = "convert_source_map___convert_source_map_1.5.1.tgz";
+ path = fetchurl {
+ name = "convert_source_map___convert_source_map_1.5.1.tgz";
+ url = "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz";
+ sha1 = "b8278097b9bc229365de5c62cf5fcaed8b5599e5";
+ };
+ }
+
+ {
+ name = "cookie_signature___cookie_signature_1.0.6.tgz";
+ path = fetchurl {
+ name = "cookie_signature___cookie_signature_1.0.6.tgz";
+ url = "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz";
+ sha1 = "e303a882b342cc3ee8ca513a79999734dab3ae2c";
+ };
+ }
+
+ {
+ name = "cookie___cookie_0.3.1.tgz";
+ path = fetchurl {
+ name = "cookie___cookie_0.3.1.tgz";
+ url = "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz";
+ sha1 = "e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb";
+ };
+ }
+
+ {
+ name = "copy_descriptor___copy_descriptor_0.1.1.tgz";
+ path = fetchurl {
+ name = "copy_descriptor___copy_descriptor_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz";
+ sha1 = "676f6eb3c39997c2ee1ac3a924fd6124748f578d";
+ };
+ }
+
+ {
+ name = "core_js___core_js_2.5.7.tgz";
+ path = fetchurl {
+ name = "core_js___core_js_2.5.7.tgz";
+ url = "https://registry.yarnpkg.com/core-js/-/core-js-2.5.7.tgz";
+ sha1 = "f972608ff0cead68b841a16a932d0b183791814e";
+ };
+ }
+
+ {
+ name = "core_util_is___core_util_is_1.0.2.tgz";
+ path = fetchurl {
+ name = "core_util_is___core_util_is_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz";
+ sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7";
+ };
+ }
+
+ {
+ name = "create_ecdh___create_ecdh_4.0.3.tgz";
+ path = fetchurl {
+ name = "create_ecdh___create_ecdh_4.0.3.tgz";
+ url = "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz";
+ sha1 = "c9111b6f33045c4697f144787f9254cdc77c45ff";
+ };
+ }
+
+ {
+ name = "create_hash___create_hash_1.2.0.tgz";
+ path = fetchurl {
+ name = "create_hash___create_hash_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz";
+ sha1 = "889078af11a63756bcfb59bd221996be3a9ef196";
+ };
+ }
+
+ {
+ name = "create_hmac___create_hmac_1.1.7.tgz";
+ path = fetchurl {
+ name = "create_hmac___create_hmac_1.1.7.tgz";
+ url = "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz";
+ sha1 = "69170c78b3ab957147b2b8b04572e47ead2243ff";
+ };
+ }
+
+ {
+ name = "cross_spawn___cross_spawn_3.0.1.tgz";
+ path = fetchurl {
+ name = "cross_spawn___cross_spawn_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-3.0.1.tgz";
+ sha1 = "1256037ecb9f0c5f79e3d6ef135e30770184b982";
+ };
+ }
+
+ {
+ name = "cross_spawn___cross_spawn_5.1.0.tgz";
+ path = fetchurl {
+ name = "cross_spawn___cross_spawn_5.1.0.tgz";
+ url = "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz";
+ sha1 = "e8bd0efee58fcff6f8f94510a0a554bbfa235449";
+ };
+ }
+
+ {
+ name = "cryptiles___cryptiles_2.0.5.tgz";
+ path = fetchurl {
+ name = "cryptiles___cryptiles_2.0.5.tgz";
+ url = "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz";
+ sha1 = "3bdfecdc608147c1c67202fa291e7dca59eaa3b8";
+ };
+ }
+
+ {
+ name = "crypto_browserify___crypto_browserify_3.12.0.tgz";
+ path = fetchurl {
+ name = "crypto_browserify___crypto_browserify_3.12.0.tgz";
+ url = "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz";
+ sha1 = "396cf9f3137f03e4b8e532c58f698254e00f80ec";
+ };
+ }
+
+ {
+ name = "css_color_names___css_color_names_0.0.4.tgz";
+ path = fetchurl {
+ name = "css_color_names___css_color_names_0.0.4.tgz";
+ url = "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz";
+ sha1 = "808adc2e79cf84738069b646cb20ec27beb629e0";
+ };
+ }
+
+ {
+ name = "css_loader___css_loader_0.26.4.tgz";
+ path = fetchurl {
+ name = "css_loader___css_loader_0.26.4.tgz";
+ url = "https://registry.yarnpkg.com/css-loader/-/css-loader-0.26.4.tgz";
+ sha1 = "b61e9e30db94303e6ffc892f10ecd09ad025a1fd";
+ };
+ }
+
+ {
+ name = "css_select___css_select_1.2.0.tgz";
+ path = fetchurl {
+ name = "css_select___css_select_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz";
+ sha1 = "2b3a110539c5355f1cd8d314623e870b121ec858";
+ };
+ }
+
+ {
+ name = "css_selector_tokenizer___css_selector_tokenizer_0.7.0.tgz";
+ path = fetchurl {
+ name = "css_selector_tokenizer___css_selector_tokenizer_0.7.0.tgz";
+ url = "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz";
+ sha1 = "e6988474ae8c953477bf5e7efecfceccd9cf4c86";
+ };
+ }
+
+ {
+ name = "css_what___css_what_2.1.0.tgz";
+ path = fetchurl {
+ name = "css_what___css_what_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/css-what/-/css-what-2.1.0.tgz";
+ sha1 = "9467d032c38cfaefb9f2d79501253062f87fa1bd";
+ };
+ }
+
+ {
+ name = "css___css_2.2.3.tgz";
+ path = fetchurl {
+ name = "css___css_2.2.3.tgz";
+ url = "https://registry.yarnpkg.com/css/-/css-2.2.3.tgz";
+ sha1 = "f861f4ba61e79bedc962aa548e5780fd95cbc6be";
+ };
+ }
+
+ {
+ name = "cssesc___cssesc_0.1.0.tgz";
+ path = fetchurl {
+ name = "cssesc___cssesc_0.1.0.tgz";
+ url = "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz";
+ sha1 = "c814903e45623371a0477b40109aaafbeeaddbb4";
+ };
+ }
+
+ {
+ name = "cssnano___cssnano_3.10.0.tgz";
+ path = fetchurl {
+ name = "cssnano___cssnano_3.10.0.tgz";
+ url = "https://registry.yarnpkg.com/cssnano/-/cssnano-3.10.0.tgz";
+ sha1 = "4f38f6cea2b9b17fa01490f23f1dc68ea65c1c38";
+ };
+ }
+
+ {
+ name = "csso___csso_2.3.2.tgz";
+ path = fetchurl {
+ name = "csso___csso_2.3.2.tgz";
+ url = "https://registry.yarnpkg.com/csso/-/csso-2.3.2.tgz";
+ sha1 = "ddd52c587033f49e94b71fc55569f252e8ff5f85";
+ };
+ }
+
+ {
+ name = "currently_unhandled___currently_unhandled_0.4.1.tgz";
+ path = fetchurl {
+ name = "currently_unhandled___currently_unhandled_0.4.1.tgz";
+ url = "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz";
+ sha1 = "988df33feab191ef799a61369dd76c17adf957ea";
+ };
+ }
+
+ {
+ name = "d___d_1.0.0.tgz";
+ path = fetchurl {
+ name = "d___d_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz";
+ sha1 = "754bb5bfe55451da69a58b94d45f4c5b0462d58f";
+ };
+ }
+
+ {
+ name = "dashdash___dashdash_1.14.1.tgz";
+ path = fetchurl {
+ name = "dashdash___dashdash_1.14.1.tgz";
+ url = "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz";
+ sha1 = "853cfa0f7cbe2fed5de20326b8dd581035f6e2f0";
+ };
+ }
+
+ {
+ name = "date_now___date_now_0.1.4.tgz";
+ path = fetchurl {
+ name = "date_now___date_now_0.1.4.tgz";
+ url = "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz";
+ sha1 = "eaf439fd4d4848ad74e5cc7dbef200672b9e345b";
+ };
+ }
+
+ {
+ name = "debug___debug_2.6.9.tgz";
+ path = fetchurl {
+ name = "debug___debug_2.6.9.tgz";
+ url = "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz";
+ sha1 = "5d128515df134ff327e90a4c93f4e077a536341f";
+ };
+ }
+
+ {
+ name = "debug___debug_3.1.0.tgz";
+ path = fetchurl {
+ name = "debug___debug_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz";
+ sha1 = "5bb5a0672628b64149566ba16819e61518c67261";
+ };
+ }
+
+ {
+ name = "decamelize___decamelize_1.2.0.tgz";
+ path = fetchurl {
+ name = "decamelize___decamelize_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz";
+ sha1 = "f6534d15148269b20352e7bee26f501f9a191290";
+ };
+ }
+
+ {
+ name = "decode_uri_component___decode_uri_component_0.2.0.tgz";
+ path = fetchurl {
+ name = "decode_uri_component___decode_uri_component_0.2.0.tgz";
+ url = "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz";
+ sha1 = "eb3913333458775cb84cd1a1fae062106bb87545";
+ };
+ }
+
+ {
+ name = "deep_equal___deep_equal_1.0.1.tgz";
+ path = fetchurl {
+ name = "deep_equal___deep_equal_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz";
+ sha1 = "f5d260292b660e084eff4cdbc9f08ad3247448b5";
+ };
+ }
+
+ {
+ name = "deep_extend___deep_extend_0.6.0.tgz";
+ path = fetchurl {
+ name = "deep_extend___deep_extend_0.6.0.tgz";
+ url = "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz";
+ sha1 = "c4fa7c95404a17a9c3e8ca7e1537312b736330ac";
+ };
+ }
+
+ {
+ name = "define_properties___define_properties_1.1.2.tgz";
+ path = fetchurl {
+ name = "define_properties___define_properties_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz";
+ sha1 = "83a73f2fea569898fb737193c8f873caf6d45c94";
+ };
+ }
+
+ {
+ name = "define_property___define_property_0.2.5.tgz";
+ path = fetchurl {
+ name = "define_property___define_property_0.2.5.tgz";
+ url = "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz";
+ sha1 = "c35b1ef918ec3c990f9a5bc57be04aacec5c8116";
+ };
+ }
+
+ {
+ name = "define_property___define_property_1.0.0.tgz";
+ path = fetchurl {
+ name = "define_property___define_property_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz";
+ sha1 = "769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6";
+ };
+ }
+
+ {
+ name = "define_property___define_property_2.0.2.tgz";
+ path = fetchurl {
+ name = "define_property___define_property_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz";
+ sha1 = "d459689e8d654ba77e02a817f8710d702cb16e9d";
+ };
+ }
+
+ {
+ name = "defined___defined_1.0.0.tgz";
+ path = fetchurl {
+ name = "defined___defined_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz";
+ sha1 = "c98d9bcef75674188e110969151199e39b1fa693";
+ };
+ }
+
+ {
+ name = "del___del_3.0.0.tgz";
+ path = fetchurl {
+ name = "del___del_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/del/-/del-3.0.0.tgz";
+ sha1 = "53ecf699ffcbcb39637691ab13baf160819766e5";
+ };
+ }
+
+ {
+ name = "delayed_stream___delayed_stream_1.0.0.tgz";
+ path = fetchurl {
+ name = "delayed_stream___delayed_stream_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz";
+ sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619";
+ };
+ }
+
+ {
+ name = "delegates___delegates_1.0.0.tgz";
+ path = fetchurl {
+ name = "delegates___delegates_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz";
+ sha1 = "84c6e159b81904fdca59a0ef44cd870d31250f9a";
+ };
+ }
+
+ {
+ name = "depd___depd_1.1.1.tgz";
+ path = fetchurl {
+ name = "depd___depd_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz";
+ sha1 = "5783b4e1c459f06fa5ca27f991f3d06e7a310359";
+ };
+ }
+
+ {
+ name = "depd___depd_1.1.2.tgz";
+ path = fetchurl {
+ name = "depd___depd_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz";
+ sha1 = "9bcd52e14c097763e749b274c4346ed2e560b5a9";
+ };
+ }
+
+ {
+ name = "des.js___des.js_1.0.0.tgz";
+ path = fetchurl {
+ name = "des.js___des.js_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz";
+ sha1 = "c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc";
+ };
+ }
+
+ {
+ name = "destroy___destroy_1.0.4.tgz";
+ path = fetchurl {
+ name = "destroy___destroy_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz";
+ sha1 = "978857442c44749e4206613e37946205826abd80";
+ };
+ }
+
+ {
+ name = "detect_indent___detect_indent_4.0.0.tgz";
+ path = fetchurl {
+ name = "detect_indent___detect_indent_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz";
+ sha1 = "f76d064352cdf43a1cb6ce619c4ee3a9475de208";
+ };
+ }
+
+ {
+ name = "detect_libc___detect_libc_1.0.3.tgz";
+ path = fetchurl {
+ name = "detect_libc___detect_libc_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz";
+ sha1 = "fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b";
+ };
+ }
+
+ {
+ name = "detect_node___detect_node_2.0.3.tgz";
+ path = fetchurl {
+ name = "detect_node___detect_node_2.0.3.tgz";
+ url = "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.3.tgz";
+ sha1 = "a2033c09cc8e158d37748fbde7507832bd6ce127";
+ };
+ }
+
+ {
+ name = "diffie_hellman___diffie_hellman_5.0.3.tgz";
+ path = fetchurl {
+ name = "diffie_hellman___diffie_hellman_5.0.3.tgz";
+ url = "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz";
+ sha1 = "40e8ee98f55a2149607146921c63e1ae5f3d2875";
+ };
+ }
+
+ {
+ name = "dns_equal___dns_equal_1.0.0.tgz";
+ path = fetchurl {
+ name = "dns_equal___dns_equal_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz";
+ sha1 = "b39e7f1da6eb0a75ba9c17324b34753c47e0654d";
+ };
+ }
+
+ {
+ name = "dns_packet___dns_packet_1.3.1.tgz";
+ path = fetchurl {
+ name = "dns_packet___dns_packet_1.3.1.tgz";
+ url = "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.1.tgz";
+ sha1 = "12aa426981075be500b910eedcd0b47dd7deda5a";
+ };
+ }
+
+ {
+ name = "dns_txt___dns_txt_2.0.2.tgz";
+ path = fetchurl {
+ name = "dns_txt___dns_txt_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz";
+ sha1 = "b91d806f5d27188e4ab3e7d107d881a1cc4642b6";
+ };
+ }
+
+ {
+ name = "dom_converter___dom_converter_0.1.4.tgz";
+ path = fetchurl {
+ name = "dom_converter___dom_converter_0.1.4.tgz";
+ url = "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.1.4.tgz";
+ sha1 = "a45ef5727b890c9bffe6d7c876e7b19cb0e17f3b";
+ };
+ }
+
+ {
+ name = "dom_serializer___dom_serializer_0.1.0.tgz";
+ path = fetchurl {
+ name = "dom_serializer___dom_serializer_0.1.0.tgz";
+ url = "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz";
+ sha1 = "073c697546ce0780ce23be4a28e293e40bc30c82";
+ };
+ }
+
+ {
+ name = "domain_browser___domain_browser_1.2.0.tgz";
+ path = fetchurl {
+ name = "domain_browser___domain_browser_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz";
+ sha1 = "3d31f50191a6749dd1375a7f522e823d42e54eda";
+ };
+ }
+
+ {
+ name = "domelementtype___domelementtype_1.3.0.tgz";
+ path = fetchurl {
+ name = "domelementtype___domelementtype_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.0.tgz";
+ sha1 = "b17aed82e8ab59e52dd9c19b1756e0fc187204c2";
+ };
+ }
+
+ {
+ name = "domelementtype___domelementtype_1.1.3.tgz";
+ path = fetchurl {
+ name = "domelementtype___domelementtype_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz";
+ sha1 = "bd28773e2642881aec51544924299c5cd822185b";
+ };
+ }
+
+ {
+ name = "domhandler___domhandler_2.1.0.tgz";
+ path = fetchurl {
+ name = "domhandler___domhandler_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/domhandler/-/domhandler-2.1.0.tgz";
+ sha1 = "d2646f5e57f6c3bab11cf6cb05d3c0acf7412594";
+ };
+ }
+
+ {
+ name = "domutils___domutils_1.1.6.tgz";
+ path = fetchurl {
+ name = "domutils___domutils_1.1.6.tgz";
+ url = "https://registry.yarnpkg.com/domutils/-/domutils-1.1.6.tgz";
+ sha1 = "bddc3de099b9a2efacc51c623f28f416ecc57485";
+ };
+ }
+
+ {
+ name = "domutils___domutils_1.5.1.tgz";
+ path = fetchurl {
+ name = "domutils___domutils_1.5.1.tgz";
+ url = "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz";
+ sha1 = "dcd8488a26f563d61079e48c9f7b7e32373682cf";
+ };
+ }
+
+ {
+ name = "ecc_jsbn___ecc_jsbn_0.1.1.tgz";
+ path = fetchurl {
+ name = "ecc_jsbn___ecc_jsbn_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz";
+ sha1 = "0fc73a9ed5f0d53c38193398523ef7e543777505";
+ };
+ }
+
+ {
+ name = "ee_first___ee_first_1.1.1.tgz";
+ path = fetchurl {
+ name = "ee_first___ee_first_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz";
+ sha1 = "590c61156b0ae2f4f0255732a158b266bc56b21d";
+ };
+ }
+
+ {
+ name = "electron_to_chromium___electron_to_chromium_1.3.52.tgz";
+ path = fetchurl {
+ name = "electron_to_chromium___electron_to_chromium_1.3.52.tgz";
+ url = "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.52.tgz";
+ sha1 = "d2d9f1270ba4a3b967b831c40ef71fb4d9ab5ce0";
+ };
+ }
+
+ {
+ name = "elliptic___elliptic_6.4.0.tgz";
+ path = fetchurl {
+ name = "elliptic___elliptic_6.4.0.tgz";
+ url = "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.0.tgz";
+ sha1 = "cac9af8762c85836187003c8dfe193e5e2eae5df";
+ };
+ }
+
+ {
+ name = "emojis_list___emojis_list_2.1.0.tgz";
+ path = fetchurl {
+ name = "emojis_list___emojis_list_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz";
+ sha1 = "4daa4d9db00f9819880c79fa457ae5b09a1fd389";
+ };
+ }
+
+ {
+ name = "encodeurl___encodeurl_1.0.2.tgz";
+ path = fetchurl {
+ name = "encodeurl___encodeurl_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz";
+ sha1 = "ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59";
+ };
+ }
+
+ {
+ name = "enhanced_resolve___enhanced_resolve_3.4.1.tgz";
+ path = fetchurl {
+ name = "enhanced_resolve___enhanced_resolve_3.4.1.tgz";
+ url = "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz";
+ sha1 = "0421e339fd71419b3da13d129b3979040230476e";
+ };
+ }
+
+ {
+ name = "entities___entities_1.1.1.tgz";
+ path = fetchurl {
+ name = "entities___entities_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz";
+ sha1 = "6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0";
+ };
+ }
+
+ {
+ name = "errno___errno_0.1.7.tgz";
+ path = fetchurl {
+ name = "errno___errno_0.1.7.tgz";
+ url = "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz";
+ sha1 = "4684d71779ad39af177e3f007996f7c67c852618";
+ };
+ }
+
+ {
+ name = "error_ex___error_ex_1.3.2.tgz";
+ path = fetchurl {
+ name = "error_ex___error_ex_1.3.2.tgz";
+ url = "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz";
+ sha1 = "b4ac40648107fdcdcfae242f428bea8a14d4f1bf";
+ };
+ }
+
+ {
+ name = "error_stack_parser___error_stack_parser_2.0.2.tgz";
+ path = fetchurl {
+ name = "error_stack_parser___error_stack_parser_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.0.2.tgz";
+ sha1 = "4ae8dbaa2bf90a8b450707b9149dcabca135520d";
+ };
+ }
+
+ {
+ name = "es_abstract___es_abstract_1.12.0.tgz";
+ path = fetchurl {
+ name = "es_abstract___es_abstract_1.12.0.tgz";
+ url = "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.12.0.tgz";
+ sha1 = "9dbbdd27c6856f0001421ca18782d786bf8a6165";
+ };
+ }
+
+ {
+ name = "es_to_primitive___es_to_primitive_1.1.1.tgz";
+ path = fetchurl {
+ name = "es_to_primitive___es_to_primitive_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz";
+ sha1 = "45355248a88979034b6792e19bb81f2b7975dd0d";
+ };
+ }
+
+ {
+ name = "es5_ext___es5_ext_0.10.45.tgz";
+ path = fetchurl {
+ name = "es5_ext___es5_ext_0.10.45.tgz";
+ url = "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.45.tgz";
+ sha1 = "0bfdf7b473da5919d5adf3bd25ceb754fccc3653";
+ };
+ }
+
+ {
+ name = "es6_iterator___es6_iterator_2.0.3.tgz";
+ path = fetchurl {
+ name = "es6_iterator___es6_iterator_2.0.3.tgz";
+ url = "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz";
+ sha1 = "a7de889141a05a94b0854403b2d0a0fbfa98f3b7";
+ };
+ }
+
+ {
+ name = "es6_map___es6_map_0.1.5.tgz";
+ path = fetchurl {
+ name = "es6_map___es6_map_0.1.5.tgz";
+ url = "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz";
+ sha1 = "9136e0503dcc06a301690f0bb14ff4e364e949f0";
+ };
+ }
+
+ {
+ name = "es6_set___es6_set_0.1.5.tgz";
+ path = fetchurl {
+ name = "es6_set___es6_set_0.1.5.tgz";
+ url = "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz";
+ sha1 = "d2b3ec5d4d800ced818db538d28974db0a73ccb1";
+ };
+ }
+
+ {
+ name = "es6_symbol___es6_symbol_3.1.1.tgz";
+ path = fetchurl {
+ name = "es6_symbol___es6_symbol_3.1.1.tgz";
+ url = "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz";
+ sha1 = "bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77";
+ };
+ }
+
+ {
+ name = "es6_weak_map___es6_weak_map_2.0.2.tgz";
+ path = fetchurl {
+ name = "es6_weak_map___es6_weak_map_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz";
+ sha1 = "5e3ab32251ffd1538a1f8e5ffa1357772f92d96f";
+ };
+ }
+
+ {
+ name = "escape_html___escape_html_1.0.3.tgz";
+ path = fetchurl {
+ name = "escape_html___escape_html_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz";
+ sha1 = "0258eae4d3d0c0974de1c169188ef0051d1d1988";
+ };
+ }
+
+ {
+ name = "escape_string_regexp___escape_string_regexp_1.0.5.tgz";
+ path = fetchurl {
+ name = "escape_string_regexp___escape_string_regexp_1.0.5.tgz";
+ url = "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz";
+ sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4";
+ };
+ }
+
+ {
+ name = "escope___escope_3.6.0.tgz";
+ path = fetchurl {
+ name = "escope___escope_3.6.0.tgz";
+ url = "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz";
+ sha1 = "e01975e812781a163a6dadfdd80398dc64c889c3";
+ };
+ }
+
+ {
+ name = "esprima___esprima_2.7.3.tgz";
+ path = fetchurl {
+ name = "esprima___esprima_2.7.3.tgz";
+ url = "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz";
+ sha1 = "96e3b70d5779f6ad49cd032673d1c312767ba581";
+ };
+ }
+
+ {
+ name = "esrecurse___esrecurse_4.2.1.tgz";
+ path = fetchurl {
+ name = "esrecurse___esrecurse_4.2.1.tgz";
+ url = "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz";
+ sha1 = "007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf";
+ };
+ }
+
+ {
+ name = "estraverse___estraverse_4.2.0.tgz";
+ path = fetchurl {
+ name = "estraverse___estraverse_4.2.0.tgz";
+ url = "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz";
+ sha1 = "0dee3fed31fcd469618ce7342099fc1afa0bdb13";
+ };
+ }
+
+ {
+ name = "esutils___esutils_2.0.2.tgz";
+ path = fetchurl {
+ name = "esutils___esutils_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz";
+ sha1 = "0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b";
+ };
+ }
+
+ {
+ name = "etag___etag_1.8.1.tgz";
+ path = fetchurl {
+ name = "etag___etag_1.8.1.tgz";
+ url = "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz";
+ sha1 = "41ae2eeb65efa62268aebfea83ac7d79299b0887";
+ };
+ }
+
+ {
+ name = "event_emitter___event_emitter_0.3.5.tgz";
+ path = fetchurl {
+ name = "event_emitter___event_emitter_0.3.5.tgz";
+ url = "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz";
+ sha1 = "df8c69eef1647923c7157b9ce83840610b02cc39";
+ };
+ }
+
+ {
+ name = "eventemitter3___eventemitter3_3.1.0.tgz";
+ path = fetchurl {
+ name = "eventemitter3___eventemitter3_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.0.tgz";
+ sha1 = "090b4d6cdbd645ed10bf750d4b5407942d7ba163";
+ };
+ }
+
+ {
+ name = "events___events_1.1.1.tgz";
+ path = fetchurl {
+ name = "events___events_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz";
+ sha1 = "9ebdb7635ad099c70dcc4c2a1f5004288e8bd924";
+ };
+ }
+
+ {
+ name = "eventsource___eventsource_0.1.6.tgz";
+ path = fetchurl {
+ name = "eventsource___eventsource_0.1.6.tgz";
+ url = "https://registry.yarnpkg.com/eventsource/-/eventsource-0.1.6.tgz";
+ sha1 = "0acede849ed7dd1ccc32c811bb11b944d4f29232";
+ };
+ }
+
+ {
+ name = "evp_bytestokey___evp_bytestokey_1.0.3.tgz";
+ path = fetchurl {
+ name = "evp_bytestokey___evp_bytestokey_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz";
+ sha1 = "7fcbdb198dc71959432efe13842684e0525acb02";
+ };
+ }
+
+ {
+ name = "execa___execa_0.7.0.tgz";
+ path = fetchurl {
+ name = "execa___execa_0.7.0.tgz";
+ url = "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz";
+ sha1 = "944becd34cc41ee32a63a9faf27ad5a65fc59777";
+ };
+ }
+
+ {
+ name = "expand_brackets___expand_brackets_0.1.5.tgz";
+ path = fetchurl {
+ name = "expand_brackets___expand_brackets_0.1.5.tgz";
+ url = "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz";
+ sha1 = "df07284e342a807cd733ac5af72411e581d1177b";
+ };
+ }
+
+ {
+ name = "expand_brackets___expand_brackets_2.1.4.tgz";
+ path = fetchurl {
+ name = "expand_brackets___expand_brackets_2.1.4.tgz";
+ url = "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz";
+ sha1 = "b77735e315ce30f6b6eff0f83b04151a22449622";
+ };
+ }
+
+ {
+ name = "expand_range___expand_range_1.8.2.tgz";
+ path = fetchurl {
+ name = "expand_range___expand_range_1.8.2.tgz";
+ url = "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz";
+ sha1 = "a299effd335fe2721ebae8e257ec79644fc85337";
+ };
+ }
+
+ {
+ name = "express___express_4.16.3.tgz";
+ path = fetchurl {
+ name = "express___express_4.16.3.tgz";
+ url = "https://registry.yarnpkg.com/express/-/express-4.16.3.tgz";
+ sha1 = "6af8a502350db3246ecc4becf6b5a34d22f7ed53";
+ };
+ }
+
+ {
+ name = "extend_shallow___extend_shallow_2.0.1.tgz";
+ path = fetchurl {
+ name = "extend_shallow___extend_shallow_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz";
+ sha1 = "51af7d614ad9a9f610ea1bafbb989d6b1c56890f";
+ };
+ }
+
+ {
+ name = "extend_shallow___extend_shallow_3.0.2.tgz";
+ path = fetchurl {
+ name = "extend_shallow___extend_shallow_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz";
+ sha1 = "26a71aaf073b39fb2127172746131c2704028db8";
+ };
+ }
+
+ {
+ name = "extend___extend_3.0.2.tgz";
+ path = fetchurl {
+ name = "extend___extend_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz";
+ sha1 = "f8b1136b4071fbd8eb140aff858b1019ec2915fa";
+ };
+ }
+
+ {
+ name = "extglob___extglob_0.3.2.tgz";
+ path = fetchurl {
+ name = "extglob___extglob_0.3.2.tgz";
+ url = "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz";
+ sha1 = "2e18ff3d2f49ab2765cec9023f011daa8d8349a1";
+ };
+ }
+
+ {
+ name = "extglob___extglob_2.0.4.tgz";
+ path = fetchurl {
+ name = "extglob___extglob_2.0.4.tgz";
+ url = "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz";
+ sha1 = "ad00fe4dc612a9232e8718711dc5cb5ab0285543";
+ };
+ }
+
+ {
+ name = "extract_text_webpack_plugin___extract_text_webpack_plugin_3.0.2.tgz";
+ path = fetchurl {
+ name = "extract_text_webpack_plugin___extract_text_webpack_plugin_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/extract-text-webpack-plugin/-/extract-text-webpack-plugin-3.0.2.tgz";
+ sha1 = "5f043eaa02f9750a9258b78c0a6e0dc1408fb2f7";
+ };
+ }
+
+ {
+ name = "extsprintf___extsprintf_1.3.0.tgz";
+ path = fetchurl {
+ name = "extsprintf___extsprintf_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz";
+ sha1 = "96918440e3041a7a414f8c52e3c574eb3c3e1e05";
+ };
+ }
+
+ {
+ name = "extsprintf___extsprintf_1.4.0.tgz";
+ path = fetchurl {
+ name = "extsprintf___extsprintf_1.4.0.tgz";
+ url = "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz";
+ sha1 = "e2689f8f356fad62cca65a3a91c5df5f9551692f";
+ };
+ }
+
+ {
+ name = "fast_deep_equal___fast_deep_equal_1.1.0.tgz";
+ path = fetchurl {
+ name = "fast_deep_equal___fast_deep_equal_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz";
+ sha1 = "c053477817c86b51daa853c81e059b733d023614";
+ };
+ }
+
+ {
+ name = "fast_deep_equal___fast_deep_equal_2.0.1.tgz";
+ path = fetchurl {
+ name = "fast_deep_equal___fast_deep_equal_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz";
+ sha1 = "7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49";
+ };
+ }
+
+ {
+ name = "fast_json_stable_stringify___fast_json_stable_stringify_2.0.0.tgz";
+ path = fetchurl {
+ name = "fast_json_stable_stringify___fast_json_stable_stringify_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz";
+ sha1 = "d5142c0caee6b1189f87d3a76111064f86c8bbf2";
+ };
+ }
+
+ {
+ name = "fast_levenshtein___fast_levenshtein_2.0.6.tgz";
+ path = fetchurl {
+ name = "fast_levenshtein___fast_levenshtein_2.0.6.tgz";
+ url = "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz";
+ sha1 = "3d8a5c66883a16a30ca8643e851f19baa7797917";
+ };
+ }
+
+ {
+ name = "fastparse___fastparse_1.1.1.tgz";
+ path = fetchurl {
+ name = "fastparse___fastparse_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.1.tgz";
+ sha1 = "d1e2643b38a94d7583b479060e6c4affc94071f8";
+ };
+ }
+
+ {
+ name = "faye_websocket___faye_websocket_0.10.0.tgz";
+ path = fetchurl {
+ name = "faye_websocket___faye_websocket_0.10.0.tgz";
+ url = "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz";
+ sha1 = "4e492f8d04dfb6f89003507f6edbf2d501e7c6f4";
+ };
+ }
+
+ {
+ name = "faye_websocket___faye_websocket_0.11.1.tgz";
+ path = fetchurl {
+ name = "faye_websocket___faye_websocket_0.11.1.tgz";
+ url = "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.1.tgz";
+ sha1 = "f0efe18c4f56e4f40afc7e06c719fd5ee6188f38";
+ };
+ }
+
+ {
+ name = "file_loader___file_loader_0.10.1.tgz";
+ path = fetchurl {
+ name = "file_loader___file_loader_0.10.1.tgz";
+ url = "https://registry.yarnpkg.com/file-loader/-/file-loader-0.10.1.tgz";
+ sha1 = "815034119891fc6441fb5a64c11bc93c22ddd842";
+ };
+ }
+
+ {
+ name = "filename_regex___filename_regex_2.0.1.tgz";
+ path = fetchurl {
+ name = "filename_regex___filename_regex_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz";
+ sha1 = "c1c4b9bee3e09725ddb106b75c1e301fe2f18b26";
+ };
+ }
+
+ {
+ name = "fill_range___fill_range_2.2.4.tgz";
+ path = fetchurl {
+ name = "fill_range___fill_range_2.2.4.tgz";
+ url = "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz";
+ sha1 = "eb1e773abb056dcd8df2bfdf6af59b8b3a936565";
+ };
+ }
+
+ {
+ name = "fill_range___fill_range_4.0.0.tgz";
+ path = fetchurl {
+ name = "fill_range___fill_range_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz";
+ sha1 = "d544811d428f98eb06a63dc402d2403c328c38f7";
+ };
+ }
+
+ {
+ name = "finalhandler___finalhandler_1.1.1.tgz";
+ path = fetchurl {
+ name = "finalhandler___finalhandler_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.1.tgz";
+ sha1 = "eebf4ed840079c83f4249038c9d703008301b105";
+ };
+ }
+
+ {
+ name = "find_cache_dir___find_cache_dir_1.0.0.tgz";
+ path = fetchurl {
+ name = "find_cache_dir___find_cache_dir_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-1.0.0.tgz";
+ sha1 = "9288e3e9e3cc3748717d39eade17cf71fc30ee6f";
+ };
+ }
+
+ {
+ name = "find_up___find_up_1.1.2.tgz";
+ path = fetchurl {
+ name = "find_up___find_up_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz";
+ sha1 = "6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f";
+ };
+ }
+
+ {
+ name = "find_up___find_up_2.1.0.tgz";
+ path = fetchurl {
+ name = "find_up___find_up_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz";
+ sha1 = "45d1b7e506c717ddd482775a2b77920a3c0c57a7";
+ };
+ }
+
+ {
+ name = "flatten___flatten_1.0.2.tgz";
+ path = fetchurl {
+ name = "flatten___flatten_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz";
+ sha1 = "dae46a9d78fbe25292258cc1e780a41d95c03782";
+ };
+ }
+
+ {
+ name = "follow_redirects___follow_redirects_1.5.1.tgz";
+ path = fetchurl {
+ name = "follow_redirects___follow_redirects_1.5.1.tgz";
+ url = "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.1.tgz";
+ sha1 = "67a8f14f5a1f67f962c2c46469c79eaec0a90291";
+ };
+ }
+
+ {
+ name = "for_in___for_in_0.1.8.tgz";
+ path = fetchurl {
+ name = "for_in___for_in_0.1.8.tgz";
+ url = "https://registry.yarnpkg.com/for-in/-/for-in-0.1.8.tgz";
+ sha1 = "d8773908e31256109952b1fdb9b3fa867d2775e1";
+ };
+ }
+
+ {
+ name = "for_in___for_in_1.0.2.tgz";
+ path = fetchurl {
+ name = "for_in___for_in_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz";
+ sha1 = "81068d295a8142ec0ac726c6e2200c30fb6d5e80";
+ };
+ }
+
+ {
+ name = "for_own___for_own_0.1.5.tgz";
+ path = fetchurl {
+ name = "for_own___for_own_0.1.5.tgz";
+ url = "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz";
+ sha1 = "5265c681a4f294dabbf17c9509b6763aa84510ce";
+ };
+ }
+
+ {
+ name = "for_own___for_own_1.0.0.tgz";
+ path = fetchurl {
+ name = "for_own___for_own_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/for-own/-/for-own-1.0.0.tgz";
+ sha1 = "c63332f415cedc4b04dbfe70cf836494c53cb44b";
+ };
+ }
+
+ {
+ name = "foreach___foreach_2.0.5.tgz";
+ path = fetchurl {
+ name = "foreach___foreach_2.0.5.tgz";
+ url = "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz";
+ sha1 = "0bee005018aeb260d0a3af3ae658dd0136ec1b99";
+ };
+ }
+
+ {
+ name = "forever_agent___forever_agent_0.6.1.tgz";
+ path = fetchurl {
+ name = "forever_agent___forever_agent_0.6.1.tgz";
+ url = "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz";
+ sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91";
+ };
+ }
+
+ {
+ name = "form_data___form_data_2.1.4.tgz";
+ path = fetchurl {
+ name = "form_data___form_data_2.1.4.tgz";
+ url = "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz";
+ sha1 = "33c183acf193276ecaa98143a69e94bfee1750d1";
+ };
+ }
+
+ {
+ name = "form_data___form_data_2.3.2.tgz";
+ path = fetchurl {
+ name = "form_data___form_data_2.3.2.tgz";
+ url = "https://registry.yarnpkg.com/form-data/-/form-data-2.3.2.tgz";
+ sha1 = "4970498be604c20c005d4f5c23aecd21d6b49099";
+ };
+ }
+
+ {
+ name = "forwarded___forwarded_0.1.2.tgz";
+ path = fetchurl {
+ name = "forwarded___forwarded_0.1.2.tgz";
+ url = "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz";
+ sha1 = "98c23dab1175657b8c0573e8ceccd91b0ff18c84";
+ };
+ }
+
+ {
+ name = "fragment_cache___fragment_cache_0.2.1.tgz";
+ path = fetchurl {
+ name = "fragment_cache___fragment_cache_0.2.1.tgz";
+ url = "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz";
+ sha1 = "4290fad27f13e89be7f33799c6bc5a0abfff0d19";
+ };
+ }
+
+ {
+ name = "fresh___fresh_0.5.2.tgz";
+ path = fetchurl {
+ name = "fresh___fresh_0.5.2.tgz";
+ url = "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz";
+ sha1 = "3d8cadd90d976569fa835ab1f8e4b23a105605a7";
+ };
+ }
+
+ {
+ name = "friendly_errors_webpack_plugin___friendly_errors_webpack_plugin_1.7.0.tgz";
+ path = fetchurl {
+ name = "friendly_errors_webpack_plugin___friendly_errors_webpack_plugin_1.7.0.tgz";
+ url = "https://registry.yarnpkg.com/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.7.0.tgz";
+ sha1 = "efc86cbb816224565861a1be7a9d84d0aafea136";
+ };
+ }
+
+ {
+ name = "fs_extra___fs_extra_2.1.2.tgz";
+ path = fetchurl {
+ name = "fs_extra___fs_extra_2.1.2.tgz";
+ url = "https://registry.yarnpkg.com/fs-extra/-/fs-extra-2.1.2.tgz";
+ sha1 = "046c70163cef9aad46b0e4a7fa467fb22d71de35";
+ };
+ }
+
+ {
+ name = "fs_minipass___fs_minipass_1.2.5.tgz";
+ path = fetchurl {
+ name = "fs_minipass___fs_minipass_1.2.5.tgz";
+ url = "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz";
+ sha1 = "06c277218454ec288df77ada54a03b8702aacb9d";
+ };
+ }
+
+ {
+ name = "fs.realpath___fs.realpath_1.0.0.tgz";
+ path = fetchurl {
+ name = "fs.realpath___fs.realpath_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz";
+ sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f";
+ };
+ }
+
+ {
+ name = "fsevents___fsevents_1.2.4.tgz";
+ path = fetchurl {
+ name = "fsevents___fsevents_1.2.4.tgz";
+ url = "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.4.tgz";
+ sha1 = "f41dcb1af2582af3692da36fc55cbd8e1041c426";
+ };
+ }
+
+ {
+ name = "fstream___fstream_1.0.11.tgz";
+ path = fetchurl {
+ name = "fstream___fstream_1.0.11.tgz";
+ url = "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz";
+ sha1 = "5c1fb1f117477114f0632a0eb4b71b3cb0fd3171";
+ };
+ }
+
+ {
+ name = "function_bind___function_bind_1.1.1.tgz";
+ path = fetchurl {
+ name = "function_bind___function_bind_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz";
+ sha1 = "a56899d3ea3c9bab874bb9773b7c5ede92f4895d";
+ };
+ }
+
+ {
+ name = "gauge___gauge_2.7.4.tgz";
+ path = fetchurl {
+ name = "gauge___gauge_2.7.4.tgz";
+ url = "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz";
+ sha1 = "2c03405c7538c39d7eb37b317022e325fb018bf7";
+ };
+ }
+
+ {
+ name = "gaze___gaze_1.1.3.tgz";
+ path = fetchurl {
+ name = "gaze___gaze_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/gaze/-/gaze-1.1.3.tgz";
+ sha1 = "c441733e13b927ac8c0ff0b4c3b033f28812924a";
+ };
+ }
+
+ {
+ name = "get_caller_file___get_caller_file_1.0.3.tgz";
+ path = fetchurl {
+ name = "get_caller_file___get_caller_file_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz";
+ sha1 = "f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a";
+ };
+ }
+
+ {
+ name = "get_stdin___get_stdin_4.0.1.tgz";
+ path = fetchurl {
+ name = "get_stdin___get_stdin_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz";
+ sha1 = "b968c6b0a04384324902e8bf1a5df32579a450fe";
+ };
+ }
+
+ {
+ name = "get_stream___get_stream_3.0.0.tgz";
+ path = fetchurl {
+ name = "get_stream___get_stream_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz";
+ sha1 = "8e943d1358dc37555054ecbe2edb05aa174ede14";
+ };
+ }
+
+ {
+ name = "get_value___get_value_2.0.6.tgz";
+ path = fetchurl {
+ name = "get_value___get_value_2.0.6.tgz";
+ url = "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz";
+ sha1 = "dc15ca1c672387ca76bd37ac0a395ba2042a2c28";
+ };
+ }
+
+ {
+ name = "getpass___getpass_0.1.7.tgz";
+ path = fetchurl {
+ name = "getpass___getpass_0.1.7.tgz";
+ url = "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz";
+ sha1 = "5eff8e3e684d569ae4cb2b1282604e8ba62149fa";
+ };
+ }
+
+ {
+ name = "glob_base___glob_base_0.3.0.tgz";
+ path = fetchurl {
+ name = "glob_base___glob_base_0.3.0.tgz";
+ url = "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz";
+ sha1 = "dbb164f6221b1c0b1ccf82aea328b497df0ea3c4";
+ };
+ }
+
+ {
+ name = "glob_parent___glob_parent_2.0.0.tgz";
+ path = fetchurl {
+ name = "glob_parent___glob_parent_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz";
+ sha1 = "81383d72db054fcccf5336daa902f182f6edbb28";
+ };
+ }
+
+ {
+ name = "glob_parent___glob_parent_3.1.0.tgz";
+ path = fetchurl {
+ name = "glob_parent___glob_parent_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz";
+ sha1 = "9e6af6299d8d3bd2bd40430832bd113df906c5ae";
+ };
+ }
+
+ {
+ name = "glob___glob_6.0.4.tgz";
+ path = fetchurl {
+ name = "glob___glob_6.0.4.tgz";
+ url = "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz";
+ sha1 = "0f08860f6a155127b2fadd4f9ce24b1aab6e4d22";
+ };
+ }
+
+ {
+ name = "glob___glob_7.1.2.tgz";
+ path = fetchurl {
+ name = "glob___glob_7.1.2.tgz";
+ url = "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz";
+ sha1 = "c19c9df9a028702d678612384a6552404c636d15";
+ };
+ }
+
+ {
+ name = "globals___globals_9.18.0.tgz";
+ path = fetchurl {
+ name = "globals___globals_9.18.0.tgz";
+ url = "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz";
+ sha1 = "aa3896b3e69b487f17e31ed2143d69a8e30c2d8a";
+ };
+ }
+
+ {
+ name = "globby___globby_6.1.0.tgz";
+ path = fetchurl {
+ name = "globby___globby_6.1.0.tgz";
+ url = "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz";
+ sha1 = "f5a6d70e8395e21c858fb0489d64df02424d506c";
+ };
+ }
+
+ {
+ name = "globule___globule_1.2.1.tgz";
+ path = fetchurl {
+ name = "globule___globule_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/globule/-/globule-1.2.1.tgz";
+ sha1 = "5dffb1b191f22d20797a9369b49eab4e9839696d";
+ };
+ }
+
+ {
+ name = "graceful_fs___graceful_fs_4.1.11.tgz";
+ path = fetchurl {
+ name = "graceful_fs___graceful_fs_4.1.11.tgz";
+ url = "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz";
+ sha1 = "0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658";
+ };
+ }
+
+ {
+ name = "handle_thing___handle_thing_1.2.5.tgz";
+ path = fetchurl {
+ name = "handle_thing___handle_thing_1.2.5.tgz";
+ url = "https://registry.yarnpkg.com/handle-thing/-/handle-thing-1.2.5.tgz";
+ sha1 = "fd7aad726bf1a5fd16dfc29b2f7a6601d27139c4";
+ };
+ }
+
+ {
+ name = "har_schema___har_schema_1.0.5.tgz";
+ path = fetchurl {
+ name = "har_schema___har_schema_1.0.5.tgz";
+ url = "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz";
+ sha1 = "d263135f43307c02c602afc8fe95970c0151369e";
+ };
+ }
+
+ {
+ name = "har_schema___har_schema_2.0.0.tgz";
+ path = fetchurl {
+ name = "har_schema___har_schema_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz";
+ sha1 = "a94c2224ebcac04782a0d9035521f24735b7ec92";
+ };
+ }
+
+ {
+ name = "har_validator___har_validator_4.2.1.tgz";
+ path = fetchurl {
+ name = "har_validator___har_validator_4.2.1.tgz";
+ url = "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz";
+ sha1 = "33481d0f1bbff600dd203d75812a6a5fba002e2a";
+ };
+ }
+
+ {
+ name = "har_validator___har_validator_5.0.3.tgz";
+ path = fetchurl {
+ name = "har_validator___har_validator_5.0.3.tgz";
+ url = "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz";
+ sha1 = "ba402c266194f15956ef15e0fcf242993f6a7dfd";
+ };
+ }
+
+ {
+ name = "has_ansi___has_ansi_2.0.0.tgz";
+ path = fetchurl {
+ name = "has_ansi___has_ansi_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz";
+ sha1 = "34f5049ce1ecdf2b0649af3ef24e45ed35416d91";
+ };
+ }
+
+ {
+ name = "has_flag___has_flag_1.0.0.tgz";
+ path = fetchurl {
+ name = "has_flag___has_flag_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz";
+ sha1 = "9d9e793165ce017a00f00418c43f942a7b1d11fa";
+ };
+ }
+
+ {
+ name = "has_flag___has_flag_2.0.0.tgz";
+ path = fetchurl {
+ name = "has_flag___has_flag_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz";
+ sha1 = "e8207af1cc7b30d446cc70b734b5e8be18f88d51";
+ };
+ }
+
+ {
+ name = "has_flag___has_flag_3.0.0.tgz";
+ path = fetchurl {
+ name = "has_flag___has_flag_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz";
+ sha1 = "b5d454dc2199ae225699f3467e5a07f3b955bafd";
+ };
+ }
+
+ {
+ name = "has_unicode___has_unicode_2.0.1.tgz";
+ path = fetchurl {
+ name = "has_unicode___has_unicode_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz";
+ sha1 = "e0e6fe6a28cf51138855e086d1691e771de2a8b9";
+ };
+ }
+
+ {
+ name = "has_value___has_value_0.3.1.tgz";
+ path = fetchurl {
+ name = "has_value___has_value_0.3.1.tgz";
+ url = "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz";
+ sha1 = "7b1f58bada62ca827ec0a2078025654845995e1f";
+ };
+ }
+
+ {
+ name = "has_value___has_value_1.0.0.tgz";
+ path = fetchurl {
+ name = "has_value___has_value_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz";
+ sha1 = "18b281da585b1c5c51def24c930ed29a0be6b177";
+ };
+ }
+
+ {
+ name = "has_values___has_values_0.1.4.tgz";
+ path = fetchurl {
+ name = "has_values___has_values_0.1.4.tgz";
+ url = "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz";
+ sha1 = "6d61de95d91dfca9b9a02089ad384bff8f62b771";
+ };
+ }
+
+ {
+ name = "has_values___has_values_1.0.0.tgz";
+ path = fetchurl {
+ name = "has_values___has_values_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz";
+ sha1 = "95b0b63fec2146619a6fe57fe75628d5a39efe4f";
+ };
+ }
+
+ {
+ name = "has___has_1.0.3.tgz";
+ path = fetchurl {
+ name = "has___has_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz";
+ sha1 = "722d7cbfc1f6aa8241f16dd814e011e1f41e8796";
+ };
+ }
+
+ {
+ name = "hash_base___hash_base_3.0.4.tgz";
+ path = fetchurl {
+ name = "hash_base___hash_base_3.0.4.tgz";
+ url = "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz";
+ sha1 = "5fc8686847ecd73499403319a6b0a3f3f6ae4918";
+ };
+ }
+
+ {
+ name = "hash.js___hash.js_1.1.5.tgz";
+ path = fetchurl {
+ name = "hash.js___hash.js_1.1.5.tgz";
+ url = "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.5.tgz";
+ sha1 = "e38ab4b85dfb1e0c40fe9265c0e9b54854c23812";
+ };
+ }
+
+ {
+ name = "hawk___hawk_3.1.3.tgz";
+ path = fetchurl {
+ name = "hawk___hawk_3.1.3.tgz";
+ url = "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz";
+ sha1 = "078444bd7c1640b0fe540d2c9b73d59678e8e1c4";
+ };
+ }
+
+ {
+ name = "hmac_drbg___hmac_drbg_1.0.1.tgz";
+ path = fetchurl {
+ name = "hmac_drbg___hmac_drbg_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz";
+ sha1 = "d2745701025a6c775a6c545793ed502fc0c649a1";
+ };
+ }
+
+ {
+ name = "hoek___hoek_2.16.3.tgz";
+ path = fetchurl {
+ name = "hoek___hoek_2.16.3.tgz";
+ url = "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz";
+ sha1 = "20bb7403d3cea398e91dc4710a8ff1b8274a25ed";
+ };
+ }
+
+ {
+ name = "home_or_tmp___home_or_tmp_2.0.0.tgz";
+ path = fetchurl {
+ name = "home_or_tmp___home_or_tmp_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz";
+ sha1 = "e36c3f2d2cae7d746a857e38d18d5f32a7882db8";
+ };
+ }
+
+ {
+ name = "hosted_git_info___hosted_git_info_2.7.1.tgz";
+ path = fetchurl {
+ name = "hosted_git_info___hosted_git_info_2.7.1.tgz";
+ url = "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz";
+ sha1 = "97f236977bd6e125408930ff6de3eec6281ec047";
+ };
+ }
+
+ {
+ name = "hpack.js___hpack.js_2.1.6.tgz";
+ path = fetchurl {
+ name = "hpack.js___hpack.js_2.1.6.tgz";
+ url = "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz";
+ sha1 = "87774c0949e513f42e84575b3c45681fade2a0b2";
+ };
+ }
+
+ {
+ name = "html_comment_regex___html_comment_regex_1.1.1.tgz";
+ path = fetchurl {
+ name = "html_comment_regex___html_comment_regex_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.1.tgz";
+ sha1 = "668b93776eaae55ebde8f3ad464b307a4963625e";
+ };
+ }
+
+ {
+ name = "html_entities___html_entities_1.2.1.tgz";
+ path = fetchurl {
+ name = "html_entities___html_entities_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz";
+ sha1 = "0df29351f0721163515dfb9e5543e5f6eed5162f";
+ };
+ }
+
+ {
+ name = "htmlparser2___htmlparser2_3.3.0.tgz";
+ path = fetchurl {
+ name = "htmlparser2___htmlparser2_3.3.0.tgz";
+ url = "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.3.0.tgz";
+ sha1 = "cc70d05a59f6542e43f0e685c982e14c924a9efe";
+ };
+ }
+
+ {
+ name = "http_deceiver___http_deceiver_1.2.7.tgz";
+ path = fetchurl {
+ name = "http_deceiver___http_deceiver_1.2.7.tgz";
+ url = "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz";
+ sha1 = "fa7168944ab9a519d337cb0bec7284dc3e723d87";
+ };
+ }
+
+ {
+ name = "http_errors___http_errors_1.6.2.tgz";
+ path = fetchurl {
+ name = "http_errors___http_errors_1.6.2.tgz";
+ url = "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz";
+ sha1 = "0a002cc85707192a7e7946ceedc11155f60ec736";
+ };
+ }
+
+ {
+ name = "http_errors___http_errors_1.6.3.tgz";
+ path = fetchurl {
+ name = "http_errors___http_errors_1.6.3.tgz";
+ url = "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz";
+ sha1 = "8b55680bb4be283a0b5bf4ea2e38580be1d9320d";
+ };
+ }
+
+ {
+ name = "http_parser_js___http_parser_js_0.4.13.tgz";
+ path = fetchurl {
+ name = "http_parser_js___http_parser_js_0.4.13.tgz";
+ url = "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.13.tgz";
+ sha1 = "3bd6d6fde6e3172c9334c3b33b6c193d80fe1137";
+ };
+ }
+
+ {
+ name = "http_proxy_middleware___http_proxy_middleware_0.17.4.tgz";
+ path = fetchurl {
+ name = "http_proxy_middleware___http_proxy_middleware_0.17.4.tgz";
+ url = "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz";
+ sha1 = "642e8848851d66f09d4f124912846dbaeb41b833";
+ };
+ }
+
+ {
+ name = "http_proxy___http_proxy_1.17.0.tgz";
+ path = fetchurl {
+ name = "http_proxy___http_proxy_1.17.0.tgz";
+ url = "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.17.0.tgz";
+ sha1 = "7ad38494658f84605e2f6db4436df410f4e5be9a";
+ };
+ }
+
+ {
+ name = "http_signature___http_signature_1.1.1.tgz";
+ path = fetchurl {
+ name = "http_signature___http_signature_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz";
+ sha1 = "df72e267066cd0ac67fb76adf8e134a8fbcf91bf";
+ };
+ }
+
+ {
+ name = "http_signature___http_signature_1.2.0.tgz";
+ path = fetchurl {
+ name = "http_signature___http_signature_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz";
+ sha1 = "9aecd925114772f3d95b65a60abb8f7c18fbace1";
+ };
+ }
+
+ {
+ name = "https_browserify___https_browserify_1.0.0.tgz";
+ path = fetchurl {
+ name = "https_browserify___https_browserify_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz";
+ sha1 = "ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73";
+ };
+ }
+
+ {
+ name = "iconv_lite___iconv_lite_0.4.19.tgz";
+ path = fetchurl {
+ name = "iconv_lite___iconv_lite_0.4.19.tgz";
+ url = "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz";
+ sha1 = "f7468f60135f5e5dad3399c0a81be9a1603a082b";
+ };
+ }
+
+ {
+ name = "iconv_lite___iconv_lite_0.4.23.tgz";
+ path = fetchurl {
+ name = "iconv_lite___iconv_lite_0.4.23.tgz";
+ url = "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz";
+ sha1 = "297871f63be507adcfbfca715d0cd0eed84e9a63";
+ };
+ }
+
+ {
+ name = "icss_replace_symbols___icss_replace_symbols_1.1.0.tgz";
+ path = fetchurl {
+ name = "icss_replace_symbols___icss_replace_symbols_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz";
+ sha1 = "06ea6f83679a7749e386cfe1fe812ae5db223ded";
+ };
+ }
+
+ {
+ name = "ieee754___ieee754_1.1.12.tgz";
+ path = fetchurl {
+ name = "ieee754___ieee754_1.1.12.tgz";
+ url = "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.12.tgz";
+ sha1 = "50bf24e5b9c8bb98af4964c941cdb0918da7b60b";
+ };
+ }
+
+ {
+ name = "ignore_walk___ignore_walk_3.0.1.tgz";
+ path = fetchurl {
+ name = "ignore_walk___ignore_walk_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz";
+ sha1 = "a83e62e7d272ac0e3b551aaa82831a19b69f82f8";
+ };
+ }
+
+ {
+ name = "import_local___import_local_1.0.0.tgz";
+ path = fetchurl {
+ name = "import_local___import_local_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/import-local/-/import-local-1.0.0.tgz";
+ sha1 = "5e4ffdc03f4fe6c009c6729beb29631c2f8227bc";
+ };
+ }
+
+ {
+ name = "in_publish___in_publish_2.0.0.tgz";
+ path = fetchurl {
+ name = "in_publish___in_publish_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/in-publish/-/in-publish-2.0.0.tgz";
+ sha1 = "e20ff5e3a2afc2690320b6dc552682a9c7fadf51";
+ };
+ }
+
+ {
+ name = "indent_string___indent_string_2.1.0.tgz";
+ path = fetchurl {
+ name = "indent_string___indent_string_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz";
+ sha1 = "8e2d48348742121b4a8218b7a137e9a52049dc80";
+ };
+ }
+
+ {
+ name = "indexes_of___indexes_of_1.0.1.tgz";
+ path = fetchurl {
+ name = "indexes_of___indexes_of_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz";
+ sha1 = "f30f716c8e2bd346c7b67d3df3915566a7c05607";
+ };
+ }
+
+ {
+ name = "indexof___indexof_0.0.1.tgz";
+ path = fetchurl {
+ name = "indexof___indexof_0.0.1.tgz";
+ url = "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz";
+ sha1 = "82dc336d232b9062179d05ab3293a66059fd435d";
+ };
+ }
+
+ {
+ name = "inflight___inflight_1.0.6.tgz";
+ path = fetchurl {
+ name = "inflight___inflight_1.0.6.tgz";
+ url = "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz";
+ sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9";
+ };
+ }
+
+ {
+ name = "inherits___inherits_2.0.3.tgz";
+ path = fetchurl {
+ name = "inherits___inherits_2.0.3.tgz";
+ url = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz";
+ sha1 = "633c2c83e3da42a502f52466022480f4208261de";
+ };
+ }
+
+ {
+ name = "inherits___inherits_2.0.1.tgz";
+ path = fetchurl {
+ name = "inherits___inherits_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz";
+ sha1 = "b17d08d326b4423e568eff719f91b0b1cbdf69f1";
+ };
+ }
+
+ {
+ name = "ini___ini_1.3.5.tgz";
+ path = fetchurl {
+ name = "ini___ini_1.3.5.tgz";
+ url = "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz";
+ sha1 = "eee25f56db1c9ec6085e0c22778083f596abf927";
+ };
+ }
+
+ {
+ name = "internal_ip___internal_ip_1.2.0.tgz";
+ path = fetchurl {
+ name = "internal_ip___internal_ip_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/internal-ip/-/internal-ip-1.2.0.tgz";
+ sha1 = "ae9fbf93b984878785d50a8de1b356956058cf5c";
+ };
+ }
+
+ {
+ name = "interpret___interpret_1.1.0.tgz";
+ path = fetchurl {
+ name = "interpret___interpret_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz";
+ sha1 = "7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614";
+ };
+ }
+
+ {
+ name = "invariant___invariant_2.2.4.tgz";
+ path = fetchurl {
+ name = "invariant___invariant_2.2.4.tgz";
+ url = "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz";
+ sha1 = "610f3c92c9359ce1db616e538008d23ff35158e6";
+ };
+ }
+
+ {
+ name = "invert_kv___invert_kv_1.0.0.tgz";
+ path = fetchurl {
+ name = "invert_kv___invert_kv_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz";
+ sha1 = "104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6";
+ };
+ }
+
+ {
+ name = "ip___ip_1.1.5.tgz";
+ path = fetchurl {
+ name = "ip___ip_1.1.5.tgz";
+ url = "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz";
+ sha1 = "bdded70114290828c0a039e72ef25f5aaec4354a";
+ };
+ }
+
+ {
+ name = "ipaddr.js___ipaddr.js_1.8.0.tgz";
+ path = fetchurl {
+ name = "ipaddr.js___ipaddr.js_1.8.0.tgz";
+ url = "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.8.0.tgz";
+ sha1 = "eaa33d6ddd7ace8f7f6fe0c9ca0440e706738b1e";
+ };
+ }
+
+ {
+ name = "is_absolute_url___is_absolute_url_2.1.0.tgz";
+ path = fetchurl {
+ name = "is_absolute_url___is_absolute_url_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz";
+ sha1 = "50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6";
+ };
+ }
+
+ {
+ name = "is_accessor_descriptor___is_accessor_descriptor_0.1.6.tgz";
+ path = fetchurl {
+ name = "is_accessor_descriptor___is_accessor_descriptor_0.1.6.tgz";
+ url = "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz";
+ sha1 = "a9e12cb3ae8d876727eeef3843f8a0897b5c98d6";
+ };
+ }
+
+ {
+ name = "is_accessor_descriptor___is_accessor_descriptor_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_accessor_descriptor___is_accessor_descriptor_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz";
+ sha1 = "169c2f6d3df1f992618072365c9b0ea1f6878656";
+ };
+ }
+
+ {
+ name = "is_arrayish___is_arrayish_0.2.1.tgz";
+ path = fetchurl {
+ name = "is_arrayish___is_arrayish_0.2.1.tgz";
+ url = "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz";
+ sha1 = "77c99840527aa8ecb1a8ba697b80645a7a926a9d";
+ };
+ }
+
+ {
+ name = "is_binary_path___is_binary_path_1.0.1.tgz";
+ path = fetchurl {
+ name = "is_binary_path___is_binary_path_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz";
+ sha1 = "75f16642b480f187a711c814161fd3a4a7655898";
+ };
+ }
+
+ {
+ name = "is_buffer___is_buffer_1.1.6.tgz";
+ path = fetchurl {
+ name = "is_buffer___is_buffer_1.1.6.tgz";
+ url = "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz";
+ sha1 = "efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be";
+ };
+ }
+
+ {
+ name = "is_builtin_module___is_builtin_module_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_builtin_module___is_builtin_module_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz";
+ sha1 = "540572d34f7ac3119f8f76c30cbc1b1e037affbe";
+ };
+ }
+
+ {
+ name = "is_callable___is_callable_1.1.4.tgz";
+ path = fetchurl {
+ name = "is_callable___is_callable_1.1.4.tgz";
+ url = "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz";
+ sha1 = "1e1adf219e1eeb684d691f9d6a05ff0d30a24d75";
+ };
+ }
+
+ {
+ name = "is_data_descriptor___is_data_descriptor_0.1.4.tgz";
+ path = fetchurl {
+ name = "is_data_descriptor___is_data_descriptor_0.1.4.tgz";
+ url = "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz";
+ sha1 = "0b5ee648388e2c860282e793f1856fec3f301b56";
+ };
+ }
+
+ {
+ name = "is_data_descriptor___is_data_descriptor_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_data_descriptor___is_data_descriptor_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz";
+ sha1 = "d84876321d0e7add03990406abbbbd36ba9268c7";
+ };
+ }
+
+ {
+ name = "is_date_object___is_date_object_1.0.1.tgz";
+ path = fetchurl {
+ name = "is_date_object___is_date_object_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz";
+ sha1 = "9aa20eb6aeebbff77fbd33e74ca01b33581d3a16";
+ };
+ }
+
+ {
+ name = "is_descriptor___is_descriptor_0.1.6.tgz";
+ path = fetchurl {
+ name = "is_descriptor___is_descriptor_0.1.6.tgz";
+ url = "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz";
+ sha1 = "366d8240dde487ca51823b1ab9f07a10a78251ca";
+ };
+ }
+
+ {
+ name = "is_descriptor___is_descriptor_1.0.2.tgz";
+ path = fetchurl {
+ name = "is_descriptor___is_descriptor_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz";
+ sha1 = "3b159746a66604b04f8c81524ba365c5f14d86ec";
+ };
+ }
+
+ {
+ name = "is_dotfile___is_dotfile_1.0.3.tgz";
+ path = fetchurl {
+ name = "is_dotfile___is_dotfile_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz";
+ sha1 = "a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1";
+ };
+ }
+
+ {
+ name = "is_equal_shallow___is_equal_shallow_0.1.3.tgz";
+ path = fetchurl {
+ name = "is_equal_shallow___is_equal_shallow_0.1.3.tgz";
+ url = "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz";
+ sha1 = "2238098fc221de0bcfa5d9eac4c45d638aa1c534";
+ };
+ }
+
+ {
+ name = "is_extendable___is_extendable_0.1.1.tgz";
+ path = fetchurl {
+ name = "is_extendable___is_extendable_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz";
+ sha1 = "62b110e289a471418e3ec36a617d472e301dfc89";
+ };
+ }
+
+ {
+ name = "is_extendable___is_extendable_1.0.1.tgz";
+ path = fetchurl {
+ name = "is_extendable___is_extendable_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz";
+ sha1 = "a7470f9e426733d81bd81e1155264e3a3507cab4";
+ };
+ }
+
+ {
+ name = "is_extglob___is_extglob_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_extglob___is_extglob_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz";
+ sha1 = "ac468177c4943405a092fc8f29760c6ffc6206c0";
+ };
+ }
+
+ {
+ name = "is_extglob___is_extglob_2.1.1.tgz";
+ path = fetchurl {
+ name = "is_extglob___is_extglob_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz";
+ sha1 = "a88c02535791f02ed37c76a1b9ea9773c833f8c2";
+ };
+ }
+
+ {
+ name = "is_finite___is_finite_1.0.2.tgz";
+ path = fetchurl {
+ name = "is_finite___is_finite_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz";
+ sha1 = "cc6677695602be550ef11e8b4aa6305342b6d0aa";
+ };
+ }
+
+ {
+ name = "is_fullwidth_code_point___is_fullwidth_code_point_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_fullwidth_code_point___is_fullwidth_code_point_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz";
+ sha1 = "ef9e31386f031a7f0d643af82fde50c457ef00cb";
+ };
+ }
+
+ {
+ name = "is_fullwidth_code_point___is_fullwidth_code_point_2.0.0.tgz";
+ path = fetchurl {
+ name = "is_fullwidth_code_point___is_fullwidth_code_point_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz";
+ sha1 = "a3b30a5c4f199183167aaab93beefae3ddfb654f";
+ };
+ }
+
+ {
+ name = "is_glob___is_glob_2.0.1.tgz";
+ path = fetchurl {
+ name = "is_glob___is_glob_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz";
+ sha1 = "d096f926a3ded5600f3fdfd91198cb0888c2d863";
+ };
+ }
+
+ {
+ name = "is_glob___is_glob_3.1.0.tgz";
+ path = fetchurl {
+ name = "is_glob___is_glob_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz";
+ sha1 = "7ba5ae24217804ac70707b96922567486cc3e84a";
+ };
+ }
+
+ {
+ name = "is_glob___is_glob_4.0.0.tgz";
+ path = fetchurl {
+ name = "is_glob___is_glob_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.0.tgz";
+ sha1 = "9521c76845cc2610a85203ddf080a958c2ffabc0";
+ };
+ }
+
+ {
+ name = "is_number___is_number_2.1.0.tgz";
+ path = fetchurl {
+ name = "is_number___is_number_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz";
+ sha1 = "01fcbbb393463a548f2f466cce16dece49db908f";
+ };
+ }
+
+ {
+ name = "is_number___is_number_3.0.0.tgz";
+ path = fetchurl {
+ name = "is_number___is_number_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz";
+ sha1 = "24fd6201a4782cf50561c810276afc7d12d71195";
+ };
+ }
+
+ {
+ name = "is_number___is_number_4.0.0.tgz";
+ path = fetchurl {
+ name = "is_number___is_number_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz";
+ sha1 = "0026e37f5454d73e356dfe6564699867c6a7f0ff";
+ };
+ }
+
+ {
+ name = "is_path_cwd___is_path_cwd_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_path_cwd___is_path_cwd_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz";
+ sha1 = "d225ec23132e89edd38fda767472e62e65f1106d";
+ };
+ }
+
+ {
+ name = "is_path_in_cwd___is_path_in_cwd_1.0.1.tgz";
+ path = fetchurl {
+ name = "is_path_in_cwd___is_path_in_cwd_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz";
+ sha1 = "5ac48b345ef675339bd6c7a48a912110b241cf52";
+ };
+ }
+
+ {
+ name = "is_path_inside___is_path_inside_1.0.1.tgz";
+ path = fetchurl {
+ name = "is_path_inside___is_path_inside_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz";
+ sha1 = "8ef5b7de50437a3fdca6b4e865ef7aa55cb48036";
+ };
+ }
+
+ {
+ name = "is_plain_obj___is_plain_obj_1.1.0.tgz";
+ path = fetchurl {
+ name = "is_plain_obj___is_plain_obj_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz";
+ sha1 = "71a50c8429dfca773c92a390a4a03b39fcd51d3e";
+ };
+ }
+
+ {
+ name = "is_plain_object___is_plain_object_2.0.4.tgz";
+ path = fetchurl {
+ name = "is_plain_object___is_plain_object_2.0.4.tgz";
+ url = "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz";
+ sha1 = "2c163b3fafb1b606d9d17928f05c2a1c38e07677";
+ };
+ }
+
+ {
+ name = "is_posix_bracket___is_posix_bracket_0.1.1.tgz";
+ path = fetchurl {
+ name = "is_posix_bracket___is_posix_bracket_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz";
+ sha1 = "3334dc79774368e92f016e6fbc0a88f5cd6e6bc4";
+ };
+ }
+
+ {
+ name = "is_primitive___is_primitive_2.0.0.tgz";
+ path = fetchurl {
+ name = "is_primitive___is_primitive_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz";
+ sha1 = "207bab91638499c07b2adf240a41a87210034575";
+ };
+ }
+
+ {
+ name = "is_regex___is_regex_1.0.4.tgz";
+ path = fetchurl {
+ name = "is_regex___is_regex_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz";
+ sha1 = "5517489b547091b0930e095654ced25ee97e9491";
+ };
+ }
+
+ {
+ name = "is_stream___is_stream_1.1.0.tgz";
+ path = fetchurl {
+ name = "is_stream___is_stream_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz";
+ sha1 = "12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44";
+ };
+ }
+
+ {
+ name = "is_svg___is_svg_2.1.0.tgz";
+ path = fetchurl {
+ name = "is_svg___is_svg_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/is-svg/-/is-svg-2.1.0.tgz";
+ sha1 = "cf61090da0d9efbcab8722deba6f032208dbb0e9";
+ };
+ }
+
+ {
+ name = "is_symbol___is_symbol_1.0.1.tgz";
+ path = fetchurl {
+ name = "is_symbol___is_symbol_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz";
+ sha1 = "3cc59f00025194b6ab2e38dbae6689256b660572";
+ };
+ }
+
+ {
+ name = "is_typedarray___is_typedarray_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_typedarray___is_typedarray_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz";
+ sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a";
+ };
+ }
+
+ {
+ name = "is_utf8___is_utf8_0.2.1.tgz";
+ path = fetchurl {
+ name = "is_utf8___is_utf8_0.2.1.tgz";
+ url = "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz";
+ sha1 = "4b0da1442104d1b336340e80797e865cf39f7d72";
+ };
+ }
+
+ {
+ name = "is_windows___is_windows_1.0.2.tgz";
+ path = fetchurl {
+ name = "is_windows___is_windows_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz";
+ sha1 = "d1850eb9791ecd18e6182ce12a30f396634bb19d";
+ };
+ }
+
+ {
+ name = "is_wsl___is_wsl_1.1.0.tgz";
+ path = fetchurl {
+ name = "is_wsl___is_wsl_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz";
+ sha1 = "1f16e4aa22b04d1336b66188a66af3c600c3a66d";
+ };
+ }
+
+ {
+ name = "isarray___isarray_0.0.1.tgz";
+ path = fetchurl {
+ name = "isarray___isarray_0.0.1.tgz";
+ url = "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz";
+ sha1 = "8a18acfca9a8f4177e09abfc6038939b05d1eedf";
+ };
+ }
+
+ {
+ name = "isarray___isarray_1.0.0.tgz";
+ path = fetchurl {
+ name = "isarray___isarray_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz";
+ sha1 = "bb935d48582cba168c06834957a54a3e07124f11";
+ };
+ }
+
+ {
+ name = "isexe___isexe_2.0.0.tgz";
+ path = fetchurl {
+ name = "isexe___isexe_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz";
+ sha1 = "e8fbf374dc556ff8947a10dcb0572d633f2cfa10";
+ };
+ }
+
+ {
+ name = "isobject___isobject_2.1.0.tgz";
+ path = fetchurl {
+ name = "isobject___isobject_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz";
+ sha1 = "f065561096a3f1da2ef46272f815c840d87e0c89";
+ };
+ }
+
+ {
+ name = "isobject___isobject_3.0.1.tgz";
+ path = fetchurl {
+ name = "isobject___isobject_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz";
+ sha1 = "4e431e92b11a9731636aa1f9c8d1ccbcfdab78df";
+ };
+ }
+
+ {
+ name = "isstream___isstream_0.1.2.tgz";
+ path = fetchurl {
+ name = "isstream___isstream_0.1.2.tgz";
+ url = "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz";
+ sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a";
+ };
+ }
+
+ {
+ name = "jquery___jquery_3.3.1.tgz";
+ path = fetchurl {
+ name = "jquery___jquery_3.3.1.tgz";
+ url = "https://registry.yarnpkg.com/jquery/-/jquery-3.3.1.tgz";
+ sha1 = "958ce29e81c9790f31be7792df5d4d95fc57fbca";
+ };
+ }
+
+ {
+ name = "js_base64___js_base64_2.4.8.tgz";
+ path = fetchurl {
+ name = "js_base64___js_base64_2.4.8.tgz";
+ url = "https://registry.yarnpkg.com/js-base64/-/js-base64-2.4.8.tgz";
+ sha1 = "57a9b130888f956834aa40c5b165ba59c758f033";
+ };
+ }
+
+ {
+ name = "js_tokens___js_tokens_4.0.0.tgz";
+ path = fetchurl {
+ name = "js_tokens___js_tokens_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz";
+ sha1 = "19203fb59991df98e3a287050d4647cdeaf32499";
+ };
+ }
+
+ {
+ name = "js_tokens___js_tokens_3.0.2.tgz";
+ path = fetchurl {
+ name = "js_tokens___js_tokens_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz";
+ sha1 = "9866df395102130e38f7f996bceb65443209c25b";
+ };
+ }
+
+ {
+ name = "js_yaml___js_yaml_3.7.0.tgz";
+ path = fetchurl {
+ name = "js_yaml___js_yaml_3.7.0.tgz";
+ url = "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz";
+ sha1 = "5c967ddd837a9bfdca5f2de84253abe8a1c03b80";
+ };
+ }
+
+ {
+ name = "jsbn___jsbn_0.1.1.tgz";
+ path = fetchurl {
+ name = "jsbn___jsbn_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz";
+ sha1 = "a5e654c2e5a2deb5f201d96cefbca80c0ef2f513";
+ };
+ }
+
+ {
+ name = "jsesc___jsesc_1.3.0.tgz";
+ path = fetchurl {
+ name = "jsesc___jsesc_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz";
+ sha1 = "46c3fec8c1892b12b0833db9bc7622176dbab34b";
+ };
+ }
+
+ {
+ name = "jsesc___jsesc_0.5.0.tgz";
+ path = fetchurl {
+ name = "jsesc___jsesc_0.5.0.tgz";
+ url = "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz";
+ sha1 = "e7dee66e35d6fc16f710fe91d5cf69f70f08911d";
+ };
+ }
+
+ {
+ name = "json_loader___json_loader_0.5.7.tgz";
+ path = fetchurl {
+ name = "json_loader___json_loader_0.5.7.tgz";
+ url = "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.7.tgz";
+ sha1 = "dca14a70235ff82f0ac9a3abeb60d337a365185d";
+ };
+ }
+
+ {
+ name = "json_schema_traverse___json_schema_traverse_0.3.1.tgz";
+ path = fetchurl {
+ name = "json_schema_traverse___json_schema_traverse_0.3.1.tgz";
+ url = "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz";
+ sha1 = "349a6d44c53a51de89b40805c5d5e59b417d3340";
+ };
+ }
+
+ {
+ name = "json_schema_traverse___json_schema_traverse_0.4.1.tgz";
+ path = fetchurl {
+ name = "json_schema_traverse___json_schema_traverse_0.4.1.tgz";
+ url = "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz";
+ sha1 = "69f6a87d9513ab8bb8fe63bdb0979c448e684660";
+ };
+ }
+
+ {
+ name = "json_schema___json_schema_0.2.3.tgz";
+ path = fetchurl {
+ name = "json_schema___json_schema_0.2.3.tgz";
+ url = "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz";
+ sha1 = "b480c892e59a2f05954ce727bd3f2a4e882f9e13";
+ };
+ }
+
+ {
+ name = "json_stable_stringify___json_stable_stringify_1.0.1.tgz";
+ path = fetchurl {
+ name = "json_stable_stringify___json_stable_stringify_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz";
+ sha1 = "9a759d39c5f2ff503fd5300646ed445f88c4f9af";
+ };
+ }
+
+ {
+ name = "json_stringify_safe___json_stringify_safe_5.0.1.tgz";
+ path = fetchurl {
+ name = "json_stringify_safe___json_stringify_safe_5.0.1.tgz";
+ url = "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz";
+ sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb";
+ };
+ }
+
+ {
+ name = "json3___json3_3.3.2.tgz";
+ path = fetchurl {
+ name = "json3___json3_3.3.2.tgz";
+ url = "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz";
+ sha1 = "3c0434743df93e2f5c42aee7b19bcb483575f4e1";
+ };
+ }
+
+ {
+ name = "json5___json5_0.5.1.tgz";
+ path = fetchurl {
+ name = "json5___json5_0.5.1.tgz";
+ url = "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz";
+ sha1 = "1eade7acc012034ad84e2396767ead9fa5495821";
+ };
+ }
+
+ {
+ name = "jsonfile___jsonfile_2.4.0.tgz";
+ path = fetchurl {
+ name = "jsonfile___jsonfile_2.4.0.tgz";
+ url = "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz";
+ sha1 = "3736a2b428b87bbda0cc83b53fa3d633a35c2ae8";
+ };
+ }
+
+ {
+ name = "jsonify___jsonify_0.0.0.tgz";
+ path = fetchurl {
+ name = "jsonify___jsonify_0.0.0.tgz";
+ url = "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz";
+ sha1 = "2c74b6ee41d93ca51b7b5aaee8f503631d252a73";
+ };
+ }
+
+ {
+ name = "jsprim___jsprim_1.4.1.tgz";
+ path = fetchurl {
+ name = "jsprim___jsprim_1.4.1.tgz";
+ url = "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz";
+ sha1 = "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2";
+ };
+ }
+
+ {
+ name = "killable___killable_1.0.0.tgz";
+ path = fetchurl {
+ name = "killable___killable_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/killable/-/killable-1.0.0.tgz";
+ sha1 = "da8b84bd47de5395878f95d64d02f2449fe05e6b";
+ };
+ }
+
+ {
+ name = "kind_of___kind_of_3.2.2.tgz";
+ path = fetchurl {
+ name = "kind_of___kind_of_3.2.2.tgz";
+ url = "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz";
+ sha1 = "31ea21a734bab9bbb0f32466d893aea51e4a3c64";
+ };
+ }
+
+ {
+ name = "kind_of___kind_of_4.0.0.tgz";
+ path = fetchurl {
+ name = "kind_of___kind_of_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz";
+ sha1 = "20813df3d712928b207378691a45066fae72dd57";
+ };
+ }
+
+ {
+ name = "kind_of___kind_of_5.1.0.tgz";
+ path = fetchurl {
+ name = "kind_of___kind_of_5.1.0.tgz";
+ url = "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz";
+ sha1 = "729c91e2d857b7a419a1f9aa65685c4c33f5845d";
+ };
+ }
+
+ {
+ name = "kind_of___kind_of_6.0.2.tgz";
+ path = fetchurl {
+ name = "kind_of___kind_of_6.0.2.tgz";
+ url = "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz";
+ sha1 = "01146b36a6218e64e58f3a8d66de5d7fc6f6d051";
+ };
+ }
+
+ {
+ name = "lazy_cache___lazy_cache_1.0.4.tgz";
+ path = fetchurl {
+ name = "lazy_cache___lazy_cache_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz";
+ sha1 = "a1d78fc3a50474cb80845d3b3b6e1da49a446e8e";
+ };
+ }
+
+ {
+ name = "lcid___lcid_1.0.0.tgz";
+ path = fetchurl {
+ name = "lcid___lcid_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz";
+ sha1 = "308accafa0bc483a3867b4b6f2b9506251d1b835";
+ };
+ }
+
+ {
+ name = "load_json_file___load_json_file_1.1.0.tgz";
+ path = fetchurl {
+ name = "load_json_file___load_json_file_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz";
+ sha1 = "956905708d58b4bab4c2261b04f59f31c99374c0";
+ };
+ }
+
+ {
+ name = "load_json_file___load_json_file_2.0.0.tgz";
+ path = fetchurl {
+ name = "load_json_file___load_json_file_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz";
+ sha1 = "7947e42149af80d696cbf797bcaabcfe1fe29ca8";
+ };
+ }
+
+ {
+ name = "loader_runner___loader_runner_2.3.0.tgz";
+ path = fetchurl {
+ name = "loader_runner___loader_runner_2.3.0.tgz";
+ url = "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.0.tgz";
+ sha1 = "f482aea82d543e07921700d5a46ef26fdac6b8a2";
+ };
+ }
+
+ {
+ name = "loader_utils___loader_utils_1.1.0.tgz";
+ path = fetchurl {
+ name = "loader_utils___loader_utils_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz";
+ sha1 = "c98aef488bcceda2ffb5e2de646d6a754429f5cd";
+ };
+ }
+
+ {
+ name = "locate_path___locate_path_2.0.0.tgz";
+ path = fetchurl {
+ name = "locate_path___locate_path_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz";
+ sha1 = "2b568b265eec944c6d9c0de9c3dbbbca0354cd8e";
+ };
+ }
+
+ {
+ name = "lodash._baseassign___lodash._baseassign_3.2.0.tgz";
+ path = fetchurl {
+ name = "lodash._baseassign___lodash._baseassign_3.2.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz";
+ sha1 = "8c38a099500f215ad09e59f1722fd0c52bfe0a4e";
+ };
+ }
+
+ {
+ name = "lodash._basecopy___lodash._basecopy_3.0.1.tgz";
+ path = fetchurl {
+ name = "lodash._basecopy___lodash._basecopy_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz";
+ sha1 = "8da0e6a876cf344c0ad8a54882111dd3c5c7ca36";
+ };
+ }
+
+ {
+ name = "lodash._bindcallback___lodash._bindcallback_3.0.1.tgz";
+ path = fetchurl {
+ name = "lodash._bindcallback___lodash._bindcallback_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz";
+ sha1 = "e531c27644cf8b57a99e17ed95b35c748789392e";
+ };
+ }
+
+ {
+ name = "lodash._createassigner___lodash._createassigner_3.1.1.tgz";
+ path = fetchurl {
+ name = "lodash._createassigner___lodash._createassigner_3.1.1.tgz";
+ url = "https://registry.yarnpkg.com/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz";
+ sha1 = "838a5bae2fdaca63ac22dee8e19fa4e6d6970b11";
+ };
+ }
+
+ {
+ name = "lodash._getnative___lodash._getnative_3.9.1.tgz";
+ path = fetchurl {
+ name = "lodash._getnative___lodash._getnative_3.9.1.tgz";
+ url = "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz";
+ sha1 = "570bc7dede46d61cdcde687d65d3eecbaa3aaff5";
+ };
+ }
+
+ {
+ name = "lodash._isiterateecall___lodash._isiterateecall_3.0.9.tgz";
+ path = fetchurl {
+ name = "lodash._isiterateecall___lodash._isiterateecall_3.0.9.tgz";
+ url = "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz";
+ sha1 = "5203ad7ba425fae842460e696db9cf3e6aac057c";
+ };
+ }
+
+ {
+ name = "lodash.assign___lodash.assign_3.2.0.tgz";
+ path = fetchurl {
+ name = "lodash.assign___lodash.assign_3.2.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-3.2.0.tgz";
+ sha1 = "3ce9f0234b4b2223e296b8fa0ac1fee8ebca64fa";
+ };
+ }
+
+ {
+ name = "lodash.assign___lodash.assign_4.2.0.tgz";
+ path = fetchurl {
+ name = "lodash.assign___lodash.assign_4.2.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz";
+ sha1 = "0d99f3ccd7a6d261d19bdaeb9245005d285808e7";
+ };
+ }
+
+ {
+ name = "lodash.camelcase___lodash.camelcase_4.3.0.tgz";
+ path = fetchurl {
+ name = "lodash.camelcase___lodash.camelcase_4.3.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz";
+ sha1 = "b28aa6288a2b9fc651035c7711f65ab6190331a6";
+ };
+ }
+
+ {
+ name = "lodash.clonedeep___lodash.clonedeep_4.5.0.tgz";
+ path = fetchurl {
+ name = "lodash.clonedeep___lodash.clonedeep_4.5.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz";
+ sha1 = "e23f3f9c4f8fbdde872529c1071857a086e5ccef";
+ };
+ }
+
+ {
+ name = "lodash.debounce___lodash.debounce_4.0.8.tgz";
+ path = fetchurl {
+ name = "lodash.debounce___lodash.debounce_4.0.8.tgz";
+ url = "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz";
+ sha1 = "82d79bff30a67c4005ffd5e2515300ad9ca4d7af";
+ };
+ }
+
+ {
+ name = "lodash.defaults___lodash.defaults_3.1.2.tgz";
+ path = fetchurl {
+ name = "lodash.defaults___lodash.defaults_3.1.2.tgz";
+ url = "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-3.1.2.tgz";
+ sha1 = "c7308b18dbf8bc9372d701a73493c61192bd2e2c";
+ };
+ }
+
+ {
+ name = "lodash.defaults___lodash.defaults_4.2.0.tgz";
+ path = fetchurl {
+ name = "lodash.defaults___lodash.defaults_4.2.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz";
+ sha1 = "d09178716ffea4dde9e5fb7b37f6f0802274580c";
+ };
+ }
+
+ {
+ name = "lodash.isarguments___lodash.isarguments_3.1.0.tgz";
+ path = fetchurl {
+ name = "lodash.isarguments___lodash.isarguments_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz";
+ sha1 = "2f573d85c6a24289ff00663b491c1d338ff3458a";
+ };
+ }
+
+ {
+ name = "lodash.isarray___lodash.isarray_3.0.4.tgz";
+ path = fetchurl {
+ name = "lodash.isarray___lodash.isarray_3.0.4.tgz";
+ url = "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz";
+ sha1 = "79e4eb88c36a8122af86f844aa9bcd851b5fbb55";
+ };
+ }
+
+ {
+ name = "lodash.keys___lodash.keys_3.1.2.tgz";
+ path = fetchurl {
+ name = "lodash.keys___lodash.keys_3.1.2.tgz";
+ url = "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz";
+ sha1 = "4dbc0472b156be50a0b286855d1bd0b0c656098a";
+ };
+ }
+
+ {
+ name = "lodash.memoize___lodash.memoize_4.1.2.tgz";
+ path = fetchurl {
+ name = "lodash.memoize___lodash.memoize_4.1.2.tgz";
+ url = "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz";
+ sha1 = "bcc6c49a42a2840ed997f323eada5ecd182e0bfe";
+ };
+ }
+
+ {
+ name = "lodash.mergewith___lodash.mergewith_4.6.1.tgz";
+ path = fetchurl {
+ name = "lodash.mergewith___lodash.mergewith_4.6.1.tgz";
+ url = "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz";
+ sha1 = "639057e726c3afbdb3e7d42741caa8d6e4335927";
+ };
+ }
+
+ {
+ name = "lodash.restparam___lodash.restparam_3.6.1.tgz";
+ path = fetchurl {
+ name = "lodash.restparam___lodash.restparam_3.6.1.tgz";
+ url = "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz";
+ sha1 = "936a4e309ef330a7645ed4145986c85ae5b20805";
+ };
+ }
+
+ {
+ name = "lodash.tail___lodash.tail_4.1.1.tgz";
+ path = fetchurl {
+ name = "lodash.tail___lodash.tail_4.1.1.tgz";
+ url = "https://registry.yarnpkg.com/lodash.tail/-/lodash.tail-4.1.1.tgz";
+ sha1 = "d2333a36d9e7717c8ad2f7cacafec7c32b444664";
+ };
+ }
+
+ {
+ name = "lodash.uniq___lodash.uniq_4.5.0.tgz";
+ path = fetchurl {
+ name = "lodash.uniq___lodash.uniq_4.5.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz";
+ sha1 = "d0225373aeb652adc1bc82e4945339a842754773";
+ };
+ }
+
+ {
+ name = "lodash___lodash_4.17.10.tgz";
+ path = fetchurl {
+ name = "lodash___lodash_4.17.10.tgz";
+ url = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz";
+ sha1 = "1b7793cf7259ea38fb3661d4d38b3260af8ae4e7";
+ };
+ }
+
+ {
+ name = "loglevel___loglevel_1.6.1.tgz";
+ path = fetchurl {
+ name = "loglevel___loglevel_1.6.1.tgz";
+ url = "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.1.tgz";
+ sha1 = "e0fc95133b6ef276cdc8887cdaf24aa6f156f8fa";
+ };
+ }
+
+ {
+ name = "longest___longest_1.0.1.tgz";
+ path = fetchurl {
+ name = "longest___longest_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz";
+ sha1 = "30a0b2da38f73770e8294a0d22e6625ed77d0097";
+ };
+ }
+
+ {
+ name = "loose_envify___loose_envify_1.4.0.tgz";
+ path = fetchurl {
+ name = "loose_envify___loose_envify_1.4.0.tgz";
+ url = "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz";
+ sha1 = "71ee51fa7be4caec1a63839f7e682d8132d30caf";
+ };
+ }
+
+ {
+ name = "loud_rejection___loud_rejection_1.6.0.tgz";
+ path = fetchurl {
+ name = "loud_rejection___loud_rejection_1.6.0.tgz";
+ url = "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz";
+ sha1 = "5b46f80147edee578870f086d04821cf998e551f";
+ };
+ }
+
+ {
+ name = "lru_cache___lru_cache_4.1.3.tgz";
+ path = fetchurl {
+ name = "lru_cache___lru_cache_4.1.3.tgz";
+ url = "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.3.tgz";
+ sha1 = "a1175cf3496dfc8436c156c334b4955992bce69c";
+ };
+ }
+
+ {
+ name = "make_dir___make_dir_1.3.0.tgz";
+ path = fetchurl {
+ name = "make_dir___make_dir_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz";
+ sha1 = "79c1033b80515bd6d24ec9933e860ca75ee27f0c";
+ };
+ }
+
+ {
+ name = "map_cache___map_cache_0.2.2.tgz";
+ path = fetchurl {
+ name = "map_cache___map_cache_0.2.2.tgz";
+ url = "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz";
+ sha1 = "c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf";
+ };
+ }
+
+ {
+ name = "map_obj___map_obj_1.0.1.tgz";
+ path = fetchurl {
+ name = "map_obj___map_obj_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz";
+ sha1 = "d933ceb9205d82bdcf4886f6742bdc2b4dea146d";
+ };
+ }
+
+ {
+ name = "map_visit___map_visit_1.0.0.tgz";
+ path = fetchurl {
+ name = "map_visit___map_visit_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz";
+ sha1 = "ecdca8f13144e660f1b5bd41f12f3479d98dfb8f";
+ };
+ }
+
+ {
+ name = "math_expression_evaluator___math_expression_evaluator_1.2.17.tgz";
+ path = fetchurl {
+ name = "math_expression_evaluator___math_expression_evaluator_1.2.17.tgz";
+ url = "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz";
+ sha1 = "de819fdbcd84dccd8fae59c6aeb79615b9d266ac";
+ };
+ }
+
+ {
+ name = "math_random___math_random_1.0.1.tgz";
+ path = fetchurl {
+ name = "math_random___math_random_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/math-random/-/math-random-1.0.1.tgz";
+ sha1 = "8b3aac588b8a66e4975e3cdea67f7bb329601fac";
+ };
+ }
+
+ {
+ name = "md5.js___md5.js_1.3.4.tgz";
+ path = fetchurl {
+ name = "md5.js___md5.js_1.3.4.tgz";
+ url = "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.4.tgz";
+ sha1 = "e9bdbde94a20a5ac18b04340fc5764d5b09d901d";
+ };
+ }
+
+ {
+ name = "media_typer___media_typer_0.3.0.tgz";
+ path = fetchurl {
+ name = "media_typer___media_typer_0.3.0.tgz";
+ url = "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz";
+ sha1 = "8710d7af0aa626f8fffa1ce00168545263255748";
+ };
+ }
+
+ {
+ name = "mem___mem_1.1.0.tgz";
+ path = fetchurl {
+ name = "mem___mem_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz";
+ sha1 = "5edd52b485ca1d900fe64895505399a0dfa45f76";
+ };
+ }
+
+ {
+ name = "memory_fs___memory_fs_0.4.1.tgz";
+ path = fetchurl {
+ name = "memory_fs___memory_fs_0.4.1.tgz";
+ url = "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz";
+ sha1 = "3a9a20b8462523e447cfbc7e8bb80ed667bfc552";
+ };
+ }
+
+ {
+ name = "meow___meow_3.7.0.tgz";
+ path = fetchurl {
+ name = "meow___meow_3.7.0.tgz";
+ url = "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz";
+ sha1 = "72cb668b425228290abbfa856892587308a801fb";
+ };
+ }
+
+ {
+ name = "merge_descriptors___merge_descriptors_1.0.1.tgz";
+ path = fetchurl {
+ name = "merge_descriptors___merge_descriptors_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz";
+ sha1 = "b00aaa556dd8b44568150ec9d1b953f3f90cbb61";
+ };
+ }
+
+ {
+ name = "methods___methods_1.1.2.tgz";
+ path = fetchurl {
+ name = "methods___methods_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz";
+ sha1 = "5529a4d67654134edcc5266656835b0f851afcee";
+ };
+ }
+
+ {
+ name = "micromatch___micromatch_2.3.11.tgz";
+ path = fetchurl {
+ name = "micromatch___micromatch_2.3.11.tgz";
+ url = "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz";
+ sha1 = "86677c97d1720b363431d04d0d15293bd38c1565";
+ };
+ }
+
+ {
+ name = "micromatch___micromatch_3.1.10.tgz";
+ path = fetchurl {
+ name = "micromatch___micromatch_3.1.10.tgz";
+ url = "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz";
+ sha1 = "70859bc95c9840952f359a068a3fc49f9ecfac23";
+ };
+ }
+
+ {
+ name = "miller_rabin___miller_rabin_4.0.1.tgz";
+ path = fetchurl {
+ name = "miller_rabin___miller_rabin_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz";
+ sha1 = "f080351c865b0dc562a8462966daa53543c78a4d";
+ };
+ }
+
+ {
+ name = "mime_db___mime_db_1.35.0.tgz";
+ path = fetchurl {
+ name = "mime_db___mime_db_1.35.0.tgz";
+ url = "https://registry.yarnpkg.com/mime-db/-/mime-db-1.35.0.tgz";
+ sha1 = "0569d657466491283709663ad379a99b90d9ab47";
+ };
+ }
+
+ {
+ name = "mime_types___mime_types_2.1.19.tgz";
+ path = fetchurl {
+ name = "mime_types___mime_types_2.1.19.tgz";
+ url = "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.19.tgz";
+ sha1 = "71e464537a7ef81c15f2db9d97e913fc0ff606f0";
+ };
+ }
+
+ {
+ name = "mime___mime_1.4.1.tgz";
+ path = fetchurl {
+ name = "mime___mime_1.4.1.tgz";
+ url = "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz";
+ sha1 = "121f9ebc49e3766f311a76e1fa1c8003c4b03aa6";
+ };
+ }
+
+ {
+ name = "mime___mime_1.6.0.tgz";
+ path = fetchurl {
+ name = "mime___mime_1.6.0.tgz";
+ url = "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz";
+ sha1 = "32cd9e5c64553bd58d19a568af452acff04981b1";
+ };
+ }
+
+ {
+ name = "mimic_fn___mimic_fn_1.2.0.tgz";
+ path = fetchurl {
+ name = "mimic_fn___mimic_fn_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz";
+ sha1 = "820c86a39334640e99516928bd03fca88057d022";
+ };
+ }
+
+ {
+ name = "minimalistic_assert___minimalistic_assert_1.0.1.tgz";
+ path = fetchurl {
+ name = "minimalistic_assert___minimalistic_assert_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz";
+ sha1 = "2e194de044626d4a10e7f7fbc00ce73e83e4d5c7";
+ };
+ }
+
+ {
+ name = "minimalistic_crypto_utils___minimalistic_crypto_utils_1.0.1.tgz";
+ path = fetchurl {
+ name = "minimalistic_crypto_utils___minimalistic_crypto_utils_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz";
+ sha1 = "f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a";
+ };
+ }
+
+ {
+ name = "minimatch___minimatch_3.0.4.tgz";
+ path = fetchurl {
+ name = "minimatch___minimatch_3.0.4.tgz";
+ url = "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz";
+ sha1 = "5166e286457f03306064be5497e8dbb0c3d32083";
+ };
+ }
+
+ {
+ name = "minimist___minimist_0.0.8.tgz";
+ path = fetchurl {
+ name = "minimist___minimist_0.0.8.tgz";
+ url = "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz";
+ sha1 = "857fcabfc3397d2625b8228262e86aa7a011b05d";
+ };
+ }
+
+ {
+ name = "minimist___minimist_1.2.0.tgz";
+ path = fetchurl {
+ name = "minimist___minimist_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz";
+ sha1 = "a35008b20f41383eec1fb914f4cd5df79a264284";
+ };
+ }
+
+ {
+ name = "minipass___minipass_2.3.3.tgz";
+ path = fetchurl {
+ name = "minipass___minipass_2.3.3.tgz";
+ url = "https://registry.yarnpkg.com/minipass/-/minipass-2.3.3.tgz";
+ sha1 = "a7dcc8b7b833f5d368759cce544dccb55f50f233";
+ };
+ }
+
+ {
+ name = "minizlib___minizlib_1.1.0.tgz";
+ path = fetchurl {
+ name = "minizlib___minizlib_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/minizlib/-/minizlib-1.1.0.tgz";
+ sha1 = "11e13658ce46bc3a70a267aac58359d1e0c29ceb";
+ };
+ }
+
+ {
+ name = "mixin_deep___mixin_deep_1.3.1.tgz";
+ path = fetchurl {
+ name = "mixin_deep___mixin_deep_1.3.1.tgz";
+ url = "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz";
+ sha1 = "a49e7268dce1a0d9698e45326c5626df3543d0fe";
+ };
+ }
+
+ {
+ name = "mixin_object___mixin_object_2.0.1.tgz";
+ path = fetchurl {
+ name = "mixin_object___mixin_object_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/mixin-object/-/mixin-object-2.0.1.tgz";
+ sha1 = "4fb949441dab182540f1fe035ba60e1947a5e57e";
+ };
+ }
+
+ {
+ name = "mkdirp___mkdirp_0.5.1.tgz";
+ path = fetchurl {
+ name = "mkdirp___mkdirp_0.5.1.tgz";
+ url = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz";
+ sha1 = "30057438eac6cf7f8c4767f38648d6697d75c903";
+ };
+ }
+
+ {
+ name = "ms___ms_2.0.0.tgz";
+ path = fetchurl {
+ name = "ms___ms_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz";
+ sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8";
+ };
+ }
+
+ {
+ name = "multicast_dns_service_types___multicast_dns_service_types_1.1.0.tgz";
+ path = fetchurl {
+ name = "multicast_dns_service_types___multicast_dns_service_types_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz";
+ sha1 = "899f11d9686e5e05cb91b35d5f0e63b773cfc901";
+ };
+ }
+
+ {
+ name = "multicast_dns___multicast_dns_6.2.3.tgz";
+ path = fetchurl {
+ name = "multicast_dns___multicast_dns_6.2.3.tgz";
+ url = "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz";
+ sha1 = "a0ec7bd9055c4282f790c3c82f4e28db3b31b229";
+ };
+ }
+
+ {
+ name = "nan___nan_2.10.0.tgz";
+ path = fetchurl {
+ name = "nan___nan_2.10.0.tgz";
+ url = "https://registry.yarnpkg.com/nan/-/nan-2.10.0.tgz";
+ sha1 = "96d0cd610ebd58d4b4de9cc0c6828cda99c7548f";
+ };
+ }
+
+ {
+ name = "nanomatch___nanomatch_1.2.13.tgz";
+ path = fetchurl {
+ name = "nanomatch___nanomatch_1.2.13.tgz";
+ url = "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz";
+ sha1 = "b87a8aa4fc0de8fe6be88895b38983ff265bd119";
+ };
+ }
+
+ {
+ name = "needle___needle_2.2.1.tgz";
+ path = fetchurl {
+ name = "needle___needle_2.2.1.tgz";
+ url = "https://registry.yarnpkg.com/needle/-/needle-2.2.1.tgz";
+ sha1 = "b5e325bd3aae8c2678902fa296f729455d1d3a7d";
+ };
+ }
+
+ {
+ name = "negotiator___negotiator_0.6.1.tgz";
+ path = fetchurl {
+ name = "negotiator___negotiator_0.6.1.tgz";
+ url = "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz";
+ sha1 = "2b327184e8992101177b28563fb5e7102acd0ca9";
+ };
+ }
+
+ {
+ name = "neo_async___neo_async_2.5.1.tgz";
+ path = fetchurl {
+ name = "neo_async___neo_async_2.5.1.tgz";
+ url = "https://registry.yarnpkg.com/neo-async/-/neo-async-2.5.1.tgz";
+ sha1 = "acb909e327b1e87ec9ef15f41b8a269512ad41ee";
+ };
+ }
+
+ {
+ name = "next_tick___next_tick_1.0.0.tgz";
+ path = fetchurl {
+ name = "next_tick___next_tick_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz";
+ sha1 = "ca86d1fe8828169b0120208e3dc8424b9db8342c";
+ };
+ }
+
+ {
+ name = "node_forge___node_forge_0.7.5.tgz";
+ path = fetchurl {
+ name = "node_forge___node_forge_0.7.5.tgz";
+ url = "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.5.tgz";
+ sha1 = "6c152c345ce11c52f465c2abd957e8639cd674df";
+ };
+ }
+
+ {
+ name = "node_gyp___node_gyp_3.7.0.tgz";
+ path = fetchurl {
+ name = "node_gyp___node_gyp_3.7.0.tgz";
+ url = "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.7.0.tgz";
+ sha1 = "789478e8f6c45e277aa014f3e28f958f286f9203";
+ };
+ }
+
+ {
+ name = "node_libs_browser___node_libs_browser_2.1.0.tgz";
+ path = fetchurl {
+ name = "node_libs_browser___node_libs_browser_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.1.0.tgz";
+ sha1 = "5f94263d404f6e44767d726901fff05478d600df";
+ };
+ }
+
+ {
+ name = "node_pre_gyp___node_pre_gyp_0.10.3.tgz";
+ path = fetchurl {
+ name = "node_pre_gyp___node_pre_gyp_0.10.3.tgz";
+ url = "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.10.3.tgz";
+ sha1 = "3070040716afdc778747b61b6887bf78880b80fc";
+ };
+ }
+
+ {
+ name = "node_sass___node_sass_4.9.2.tgz";
+ path = fetchurl {
+ name = "node_sass___node_sass_4.9.2.tgz";
+ url = "https://registry.yarnpkg.com/node-sass/-/node-sass-4.9.2.tgz";
+ sha1 = "5e63fe6bd0f2ae3ac9d6c14ede8620e2b8bdb437";
+ };
+ }
+
+ {
+ name = "nopt___nopt_3.0.6.tgz";
+ path = fetchurl {
+ name = "nopt___nopt_3.0.6.tgz";
+ url = "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz";
+ sha1 = "c6465dbf08abcd4db359317f79ac68a646b28ff9";
+ };
+ }
+
+ {
+ name = "nopt___nopt_4.0.1.tgz";
+ path = fetchurl {
+ name = "nopt___nopt_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz";
+ sha1 = "d0d4685afd5415193c8c7505602d0d17cd64474d";
+ };
+ }
+
+ {
+ name = "normalize_package_data___normalize_package_data_2.4.0.tgz";
+ path = fetchurl {
+ name = "normalize_package_data___normalize_package_data_2.4.0.tgz";
+ url = "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz";
+ sha1 = "12f95a307d58352075a04907b84ac8be98ac012f";
+ };
+ }
+
+ {
+ name = "normalize_path___normalize_path_2.1.1.tgz";
+ path = fetchurl {
+ name = "normalize_path___normalize_path_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz";
+ sha1 = "1ab28b556e198363a8c1a6f7e6fa20137fe6aed9";
+ };
+ }
+
+ {
+ name = "normalize_range___normalize_range_0.1.2.tgz";
+ path = fetchurl {
+ name = "normalize_range___normalize_range_0.1.2.tgz";
+ url = "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz";
+ sha1 = "2d10c06bdfd312ea9777695a4d28439456b75942";
+ };
+ }
+
+ {
+ name = "normalize_url___normalize_url_1.9.1.tgz";
+ path = fetchurl {
+ name = "normalize_url___normalize_url_1.9.1.tgz";
+ url = "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz";
+ sha1 = "2cc0d66b31ea23036458436e3620d85954c66c3c";
+ };
+ }
+
+ {
+ name = "npm_bundled___npm_bundled_1.0.3.tgz";
+ path = fetchurl {
+ name = "npm_bundled___npm_bundled_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.3.tgz";
+ sha1 = "7e71703d973af3370a9591bafe3a63aca0be2308";
+ };
+ }
+
+ {
+ name = "npm_packlist___npm_packlist_1.1.11.tgz";
+ path = fetchurl {
+ name = "npm_packlist___npm_packlist_1.1.11.tgz";
+ url = "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.11.tgz";
+ sha1 = "84e8c683cbe7867d34b1d357d893ce29e28a02de";
+ };
+ }
+
+ {
+ name = "npm_run_path___npm_run_path_2.0.2.tgz";
+ path = fetchurl {
+ name = "npm_run_path___npm_run_path_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz";
+ sha1 = "35a9232dfa35d7067b4cb2ddf2357b1871536c5f";
+ };
+ }
+
+ {
+ name = "npmlog___npmlog_4.1.2.tgz";
+ path = fetchurl {
+ name = "npmlog___npmlog_4.1.2.tgz";
+ url = "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz";
+ sha1 = "08a7f2a8bf734604779a9efa4ad5cc717abb954b";
+ };
+ }
+
+ {
+ name = "nth_check___nth_check_1.0.1.tgz";
+ path = fetchurl {
+ name = "nth_check___nth_check_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.1.tgz";
+ sha1 = "9929acdf628fc2c41098deab82ac580cf149aae4";
+ };
+ }
+
+ {
+ name = "num2fraction___num2fraction_1.2.2.tgz";
+ path = fetchurl {
+ name = "num2fraction___num2fraction_1.2.2.tgz";
+ url = "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz";
+ sha1 = "6f682b6a027a4e9ddfa4564cd2589d1d4e669ede";
+ };
+ }
+
+ {
+ name = "number_is_nan___number_is_nan_1.0.1.tgz";
+ path = fetchurl {
+ name = "number_is_nan___number_is_nan_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz";
+ sha1 = "097b602b53422a522c1afb8790318336941a011d";
+ };
+ }
+
+ {
+ name = "oauth_sign___oauth_sign_0.8.2.tgz";
+ path = fetchurl {
+ name = "oauth_sign___oauth_sign_0.8.2.tgz";
+ url = "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz";
+ sha1 = "46a6ab7f0aead8deae9ec0565780b7d4efeb9d43";
+ };
+ }
+
+ {
+ name = "object_assign___object_assign_4.1.1.tgz";
+ path = fetchurl {
+ name = "object_assign___object_assign_4.1.1.tgz";
+ url = "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz";
+ sha1 = "2109adc7965887cfc05cbbd442cac8bfbb360863";
+ };
+ }
+
+ {
+ name = "object_copy___object_copy_0.1.0.tgz";
+ path = fetchurl {
+ name = "object_copy___object_copy_0.1.0.tgz";
+ url = "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz";
+ sha1 = "7e7d858b781bd7c991a41ba975ed3812754e998c";
+ };
+ }
+
+ {
+ name = "object_keys___object_keys_1.0.12.tgz";
+ path = fetchurl {
+ name = "object_keys___object_keys_1.0.12.tgz";
+ url = "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.12.tgz";
+ sha1 = "09c53855377575310cca62f55bb334abff7b3ed2";
+ };
+ }
+
+ {
+ name = "object_path___object_path_0.9.2.tgz";
+ path = fetchurl {
+ name = "object_path___object_path_0.9.2.tgz";
+ url = "https://registry.yarnpkg.com/object-path/-/object-path-0.9.2.tgz";
+ sha1 = "0fd9a74fc5fad1ae3968b586bda5c632bd6c05a5";
+ };
+ }
+
+ {
+ name = "object_visit___object_visit_1.0.1.tgz";
+ path = fetchurl {
+ name = "object_visit___object_visit_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz";
+ sha1 = "f79c4493af0c5377b59fe39d395e41042dd045bb";
+ };
+ }
+
+ {
+ name = "object.omit___object.omit_2.0.1.tgz";
+ path = fetchurl {
+ name = "object.omit___object.omit_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz";
+ sha1 = "1a9c744829f39dbb858c76ca3579ae2a54ebd1fa";
+ };
+ }
+
+ {
+ name = "object.pick___object.pick_1.3.0.tgz";
+ path = fetchurl {
+ name = "object.pick___object.pick_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz";
+ sha1 = "87a10ac4c1694bd2e1cbf53591a66141fb5dd747";
+ };
+ }
+
+ {
+ name = "obuf___obuf_1.1.2.tgz";
+ path = fetchurl {
+ name = "obuf___obuf_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz";
+ sha1 = "09bea3343d41859ebd446292d11c9d4db619084e";
+ };
+ }
+
+ {
+ name = "on_finished___on_finished_2.3.0.tgz";
+ path = fetchurl {
+ name = "on_finished___on_finished_2.3.0.tgz";
+ url = "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz";
+ sha1 = "20f1336481b083cd75337992a16971aa2d906947";
+ };
+ }
+
+ {
+ name = "on_headers___on_headers_1.0.1.tgz";
+ path = fetchurl {
+ name = "on_headers___on_headers_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.1.tgz";
+ sha1 = "928f5d0f470d49342651ea6794b0857c100693f7";
+ };
+ }
+
+ {
+ name = "once___once_1.4.0.tgz";
+ path = fetchurl {
+ name = "once___once_1.4.0.tgz";
+ url = "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz";
+ sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1";
+ };
+ }
+
+ {
+ name = "open_iconic___open_iconic_1.1.1.tgz";
+ path = fetchurl {
+ name = "open_iconic___open_iconic_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/open-iconic/-/open-iconic-1.1.1.tgz";
+ sha1 = "9dcfc8c7cd3c61cdb4a236b1a347894c97adc0c6";
+ };
+ }
+
+ {
+ name = "opn___opn_5.3.0.tgz";
+ path = fetchurl {
+ name = "opn___opn_5.3.0.tgz";
+ url = "https://registry.yarnpkg.com/opn/-/opn-5.3.0.tgz";
+ sha1 = "64871565c863875f052cfdf53d3e3cb5adb53b1c";
+ };
+ }
+
+ {
+ name = "original___original_1.0.1.tgz";
+ path = fetchurl {
+ name = "original___original_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/original/-/original-1.0.1.tgz";
+ sha1 = "b0a53ff42ba997a8c9cd1fb5daaeb42b9d693190";
+ };
+ }
+
+ {
+ name = "os_browserify___os_browserify_0.3.0.tgz";
+ path = fetchurl {
+ name = "os_browserify___os_browserify_0.3.0.tgz";
+ url = "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz";
+ sha1 = "854373c7f5c2315914fc9bfc6bd8238fdda1ec27";
+ };
+ }
+
+ {
+ name = "os_homedir___os_homedir_1.0.2.tgz";
+ path = fetchurl {
+ name = "os_homedir___os_homedir_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz";
+ sha1 = "ffbc4988336e0e833de0c168c7ef152121aa7fb3";
+ };
+ }
+
+ {
+ name = "os_locale___os_locale_1.4.0.tgz";
+ path = fetchurl {
+ name = "os_locale___os_locale_1.4.0.tgz";
+ url = "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz";
+ sha1 = "20f9f17ae29ed345e8bde583b13d2009803c14d9";
+ };
+ }
+
+ {
+ name = "os_locale___os_locale_2.1.0.tgz";
+ path = fetchurl {
+ name = "os_locale___os_locale_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz";
+ sha1 = "42bc2900a6b5b8bd17376c8e882b65afccf24bf2";
+ };
+ }
+
+ {
+ name = "os_tmpdir___os_tmpdir_1.0.2.tgz";
+ path = fetchurl {
+ name = "os_tmpdir___os_tmpdir_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz";
+ sha1 = "bbe67406c79aa85c5cfec766fe5734555dfa1274";
+ };
+ }
+
+ {
+ name = "osenv___osenv_0.1.5.tgz";
+ path = fetchurl {
+ name = "osenv___osenv_0.1.5.tgz";
+ url = "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz";
+ sha1 = "85cdfafaeb28e8677f416e287592b5f3f49ea410";
+ };
+ }
+
+ {
+ name = "p_finally___p_finally_1.0.0.tgz";
+ path = fetchurl {
+ name = "p_finally___p_finally_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz";
+ sha1 = "3fbcfb15b899a44123b34b6dcc18b724336a2cae";
+ };
+ }
+
+ {
+ name = "p_limit___p_limit_1.3.0.tgz";
+ path = fetchurl {
+ name = "p_limit___p_limit_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz";
+ sha1 = "b86bd5f0c25690911c7590fcbfc2010d54b3ccb8";
+ };
+ }
+
+ {
+ name = "p_locate___p_locate_2.0.0.tgz";
+ path = fetchurl {
+ name = "p_locate___p_locate_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz";
+ sha1 = "20a0103b222a70c8fd39cc2e580680f3dde5ec43";
+ };
+ }
+
+ {
+ name = "p_map___p_map_1.2.0.tgz";
+ path = fetchurl {
+ name = "p_map___p_map_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz";
+ sha1 = "e4e94f311eabbc8633a1e79908165fca26241b6b";
+ };
+ }
+
+ {
+ name = "p_try___p_try_1.0.0.tgz";
+ path = fetchurl {
+ name = "p_try___p_try_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz";
+ sha1 = "cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3";
+ };
+ }
+
+ {
+ name = "pako___pako_1.0.6.tgz";
+ path = fetchurl {
+ name = "pako___pako_1.0.6.tgz";
+ url = "https://registry.yarnpkg.com/pako/-/pako-1.0.6.tgz";
+ sha1 = "0101211baa70c4bca4a0f63f2206e97b7dfaf258";
+ };
+ }
+
+ {
+ name = "parse_asn1___parse_asn1_5.1.1.tgz";
+ path = fetchurl {
+ name = "parse_asn1___parse_asn1_5.1.1.tgz";
+ url = "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.1.tgz";
+ sha1 = "f6bf293818332bd0dab54efb16087724745e6ca8";
+ };
+ }
+
+ {
+ name = "parse_glob___parse_glob_3.0.4.tgz";
+ path = fetchurl {
+ name = "parse_glob___parse_glob_3.0.4.tgz";
+ url = "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz";
+ sha1 = "b2c376cfb11f35513badd173ef0bb6e3a388391c";
+ };
+ }
+
+ {
+ name = "parse_json___parse_json_2.2.0.tgz";
+ path = fetchurl {
+ name = "parse_json___parse_json_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz";
+ sha1 = "f480f40434ef80741f8469099f8dea18f55a4dc9";
+ };
+ }
+
+ {
+ name = "parseurl___parseurl_1.3.2.tgz";
+ path = fetchurl {
+ name = "parseurl___parseurl_1.3.2.tgz";
+ url = "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz";
+ sha1 = "fc289d4ed8993119460c156253262cdc8de65bf3";
+ };
+ }
+
+ {
+ name = "pascalcase___pascalcase_0.1.1.tgz";
+ path = fetchurl {
+ name = "pascalcase___pascalcase_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz";
+ sha1 = "b363e55e8006ca6fe21784d2db22bd15d7917f14";
+ };
+ }
+
+ {
+ name = "path_browserify___path_browserify_0.0.0.tgz";
+ path = fetchurl {
+ name = "path_browserify___path_browserify_0.0.0.tgz";
+ url = "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz";
+ sha1 = "a0b870729aae214005b7d5032ec2cbbb0fb4451a";
+ };
+ }
+
+ {
+ name = "path_dirname___path_dirname_1.0.2.tgz";
+ path = fetchurl {
+ name = "path_dirname___path_dirname_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz";
+ sha1 = "cc33d24d525e099a5388c0336c6e32b9160609e0";
+ };
+ }
+
+ {
+ name = "path_exists___path_exists_2.1.0.tgz";
+ path = fetchurl {
+ name = "path_exists___path_exists_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz";
+ sha1 = "0feb6c64f0fc518d9a754dd5efb62c7022761f4b";
+ };
+ }
+
+ {
+ name = "path_exists___path_exists_3.0.0.tgz";
+ path = fetchurl {
+ name = "path_exists___path_exists_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz";
+ sha1 = "ce0ebeaa5f78cb18925ea7d810d7b59b010fd515";
+ };
+ }
+
+ {
+ name = "path_is_absolute___path_is_absolute_1.0.1.tgz";
+ path = fetchurl {
+ name = "path_is_absolute___path_is_absolute_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz";
+ sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f";
+ };
+ }
+
+ {
+ name = "path_is_inside___path_is_inside_1.0.2.tgz";
+ path = fetchurl {
+ name = "path_is_inside___path_is_inside_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz";
+ sha1 = "365417dede44430d1c11af61027facf074bdfc53";
+ };
+ }
+
+ {
+ name = "path_key___path_key_2.0.1.tgz";
+ path = fetchurl {
+ name = "path_key___path_key_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz";
+ sha1 = "411cadb574c5a140d3a4b1910d40d80cc9f40b40";
+ };
+ }
+
+ {
+ name = "path_to_regexp___path_to_regexp_0.1.7.tgz";
+ path = fetchurl {
+ name = "path_to_regexp___path_to_regexp_0.1.7.tgz";
+ url = "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz";
+ sha1 = "df604178005f522f15eb4490e7247a1bfaa67f8c";
+ };
+ }
+
+ {
+ name = "path_type___path_type_1.1.0.tgz";
+ path = fetchurl {
+ name = "path_type___path_type_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz";
+ sha1 = "59c44f7ee491da704da415da5a4070ba4f8fe441";
+ };
+ }
+
+ {
+ name = "path_type___path_type_2.0.0.tgz";
+ path = fetchurl {
+ name = "path_type___path_type_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz";
+ sha1 = "f012ccb8415b7096fc2daa1054c3d72389594c73";
+ };
+ }
+
+ {
+ name = "pbkdf2___pbkdf2_3.0.16.tgz";
+ path = fetchurl {
+ name = "pbkdf2___pbkdf2_3.0.16.tgz";
+ url = "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.16.tgz";
+ sha1 = "7404208ec6b01b62d85bf83853a8064f8d9c2a5c";
+ };
+ }
+
+ {
+ name = "performance_now___performance_now_0.2.0.tgz";
+ path = fetchurl {
+ name = "performance_now___performance_now_0.2.0.tgz";
+ url = "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz";
+ sha1 = "33ef30c5c77d4ea21c5a53869d91b56d8f2555e5";
+ };
+ }
+
+ {
+ name = "performance_now___performance_now_2.1.0.tgz";
+ path = fetchurl {
+ name = "performance_now___performance_now_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz";
+ sha1 = "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b";
+ };
+ }
+
+ {
+ name = "pify___pify_2.3.0.tgz";
+ path = fetchurl {
+ name = "pify___pify_2.3.0.tgz";
+ url = "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz";
+ sha1 = "ed141a6ac043a849ea588498e7dca8b15330e90c";
+ };
+ }
+
+ {
+ name = "pify___pify_3.0.0.tgz";
+ path = fetchurl {
+ name = "pify___pify_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz";
+ sha1 = "e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176";
+ };
+ }
+
+ {
+ name = "pinkie_promise___pinkie_promise_2.0.1.tgz";
+ path = fetchurl {
+ name = "pinkie_promise___pinkie_promise_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz";
+ sha1 = "2135d6dfa7a358c069ac9b178776288228450ffa";
+ };
+ }
+
+ {
+ name = "pinkie___pinkie_2.0.4.tgz";
+ path = fetchurl {
+ name = "pinkie___pinkie_2.0.4.tgz";
+ url = "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz";
+ sha1 = "72556b80cfa0d48a974e80e77248e80ed4f7f870";
+ };
+ }
+
+ {
+ name = "pkg_dir___pkg_dir_2.0.0.tgz";
+ path = fetchurl {
+ name = "pkg_dir___pkg_dir_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz";
+ sha1 = "f6d5d1109e19d63edf428e0bd57e12777615334b";
+ };
+ }
+
+ {
+ name = "pkg_up___pkg_up_1.0.0.tgz";
+ path = fetchurl {
+ name = "pkg_up___pkg_up_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/pkg-up/-/pkg-up-1.0.0.tgz";
+ sha1 = "3e08fb461525c4421624a33b9f7e6d0af5b05a26";
+ };
+ }
+
+ {
+ name = "popper.js___popper.js_1.14.4.tgz";
+ path = fetchurl {
+ name = "popper.js___popper.js_1.14.4.tgz";
+ url = "https://registry.yarnpkg.com/popper.js/-/popper.js-1.14.4.tgz";
+ sha1 = "8eec1d8ff02a5a3a152dd43414a15c7b79fd69b6";
+ };
+ }
+
+ {
+ name = "portfinder___portfinder_1.0.13.tgz";
+ path = fetchurl {
+ name = "portfinder___portfinder_1.0.13.tgz";
+ url = "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.13.tgz";
+ sha1 = "bb32ecd87c27104ae6ee44b5a3ccbf0ebb1aede9";
+ };
+ }
+
+ {
+ name = "posix_character_classes___posix_character_classes_0.1.1.tgz";
+ path = fetchurl {
+ name = "posix_character_classes___posix_character_classes_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz";
+ sha1 = "01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab";
+ };
+ }
+
+ {
+ name = "postcss_calc___postcss_calc_5.3.1.tgz";
+ path = fetchurl {
+ name = "postcss_calc___postcss_calc_5.3.1.tgz";
+ url = "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-5.3.1.tgz";
+ sha1 = "77bae7ca928ad85716e2fda42f261bf7c1d65b5e";
+ };
+ }
+
+ {
+ name = "postcss_colormin___postcss_colormin_2.2.2.tgz";
+ path = fetchurl {
+ name = "postcss_colormin___postcss_colormin_2.2.2.tgz";
+ url = "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-2.2.2.tgz";
+ sha1 = "6631417d5f0e909a3d7ec26b24c8a8d1e4f96e4b";
+ };
+ }
+
+ {
+ name = "postcss_convert_values___postcss_convert_values_2.6.1.tgz";
+ path = fetchurl {
+ name = "postcss_convert_values___postcss_convert_values_2.6.1.tgz";
+ url = "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz";
+ sha1 = "bbd8593c5c1fd2e3d1c322bb925dcae8dae4d62d";
+ };
+ }
+
+ {
+ name = "postcss_discard_comments___postcss_discard_comments_2.0.4.tgz";
+ path = fetchurl {
+ name = "postcss_discard_comments___postcss_discard_comments_2.0.4.tgz";
+ url = "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz";
+ sha1 = "befe89fafd5b3dace5ccce51b76b81514be00e3d";
+ };
+ }
+
+ {
+ name = "postcss_discard_duplicates___postcss_discard_duplicates_2.1.0.tgz";
+ path = fetchurl {
+ name = "postcss_discard_duplicates___postcss_discard_duplicates_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz";
+ sha1 = "b9abf27b88ac188158a5eb12abcae20263b91932";
+ };
+ }
+
+ {
+ name = "postcss_discard_empty___postcss_discard_empty_2.1.0.tgz";
+ path = fetchurl {
+ name = "postcss_discard_empty___postcss_discard_empty_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz";
+ sha1 = "d2b4bd9d5ced5ebd8dcade7640c7d7cd7f4f92b5";
+ };
+ }
+
+ {
+ name = "postcss_discard_overridden___postcss_discard_overridden_0.1.1.tgz";
+ path = fetchurl {
+ name = "postcss_discard_overridden___postcss_discard_overridden_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz";
+ sha1 = "8b1eaf554f686fb288cd874c55667b0aa3668d58";
+ };
+ }
+
+ {
+ name = "postcss_discard_unused___postcss_discard_unused_2.2.3.tgz";
+ path = fetchurl {
+ name = "postcss_discard_unused___postcss_discard_unused_2.2.3.tgz";
+ url = "https://registry.yarnpkg.com/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz";
+ sha1 = "bce30b2cc591ffc634322b5fb3464b6d934f4433";
+ };
+ }
+
+ {
+ name = "postcss_filter_plugins___postcss_filter_plugins_2.0.3.tgz";
+ path = fetchurl {
+ name = "postcss_filter_plugins___postcss_filter_plugins_2.0.3.tgz";
+ url = "https://registry.yarnpkg.com/postcss-filter-plugins/-/postcss-filter-plugins-2.0.3.tgz";
+ sha1 = "82245fdf82337041645e477114d8e593aa18b8ec";
+ };
+ }
+
+ {
+ name = "postcss_merge_idents___postcss_merge_idents_2.1.7.tgz";
+ path = fetchurl {
+ name = "postcss_merge_idents___postcss_merge_idents_2.1.7.tgz";
+ url = "https://registry.yarnpkg.com/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz";
+ sha1 = "4c5530313c08e1d5b3bbf3d2bbc747e278eea270";
+ };
+ }
+
+ {
+ name = "postcss_merge_longhand___postcss_merge_longhand_2.0.2.tgz";
+ path = fetchurl {
+ name = "postcss_merge_longhand___postcss_merge_longhand_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz";
+ sha1 = "23d90cd127b0a77994915332739034a1a4f3d658";
+ };
+ }
+
+ {
+ name = "postcss_merge_rules___postcss_merge_rules_2.1.2.tgz";
+ path = fetchurl {
+ name = "postcss_merge_rules___postcss_merge_rules_2.1.2.tgz";
+ url = "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz";
+ sha1 = "d1df5dfaa7b1acc3be553f0e9e10e87c61b5f721";
+ };
+ }
+
+ {
+ name = "postcss_message_helpers___postcss_message_helpers_2.0.0.tgz";
+ path = fetchurl {
+ name = "postcss_message_helpers___postcss_message_helpers_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz";
+ sha1 = "a4f2f4fab6e4fe002f0aed000478cdf52f9ba60e";
+ };
+ }
+
+ {
+ name = "postcss_minify_font_values___postcss_minify_font_values_1.0.5.tgz";
+ path = fetchurl {
+ name = "postcss_minify_font_values___postcss_minify_font_values_1.0.5.tgz";
+ url = "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz";
+ sha1 = "4b58edb56641eba7c8474ab3526cafd7bbdecb69";
+ };
+ }
+
+ {
+ name = "postcss_minify_gradients___postcss_minify_gradients_1.0.5.tgz";
+ path = fetchurl {
+ name = "postcss_minify_gradients___postcss_minify_gradients_1.0.5.tgz";
+ url = "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz";
+ sha1 = "5dbda11373703f83cfb4a3ea3881d8d75ff5e6e1";
+ };
+ }
+
+ {
+ name = "postcss_minify_params___postcss_minify_params_1.2.2.tgz";
+ path = fetchurl {
+ name = "postcss_minify_params___postcss_minify_params_1.2.2.tgz";
+ url = "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz";
+ sha1 = "ad2ce071373b943b3d930a3fa59a358c28d6f1f3";
+ };
+ }
+
+ {
+ name = "postcss_minify_selectors___postcss_minify_selectors_2.1.1.tgz";
+ path = fetchurl {
+ name = "postcss_minify_selectors___postcss_minify_selectors_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz";
+ sha1 = "b2c6a98c0072cf91b932d1a496508114311735bf";
+ };
+ }
+
+ {
+ name = "postcss_modules_extract_imports___postcss_modules_extract_imports_1.1.0.tgz";
+ path = fetchurl {
+ name = "postcss_modules_extract_imports___postcss_modules_extract_imports_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz";
+ sha1 = "b614c9720be6816eaee35fb3a5faa1dba6a05ddb";
+ };
+ }
+
+ {
+ name = "postcss_modules_local_by_default___postcss_modules_local_by_default_1.2.0.tgz";
+ path = fetchurl {
+ name = "postcss_modules_local_by_default___postcss_modules_local_by_default_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz";
+ sha1 = "f7d80c398c5a393fa7964466bd19500a7d61c069";
+ };
+ }
+
+ {
+ name = "postcss_modules_scope___postcss_modules_scope_1.1.0.tgz";
+ path = fetchurl {
+ name = "postcss_modules_scope___postcss_modules_scope_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz";
+ sha1 = "d6ea64994c79f97b62a72b426fbe6056a194bb90";
+ };
+ }
+
+ {
+ name = "postcss_modules_values___postcss_modules_values_1.3.0.tgz";
+ path = fetchurl {
+ name = "postcss_modules_values___postcss_modules_values_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz";
+ sha1 = "ecffa9d7e192518389f42ad0e83f72aec456ea20";
+ };
+ }
+
+ {
+ name = "postcss_normalize_charset___postcss_normalize_charset_1.1.1.tgz";
+ path = fetchurl {
+ name = "postcss_normalize_charset___postcss_normalize_charset_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz";
+ sha1 = "ef9ee71212d7fe759c78ed162f61ed62b5cb93f1";
+ };
+ }
+
+ {
+ name = "postcss_normalize_url___postcss_normalize_url_3.0.8.tgz";
+ path = fetchurl {
+ name = "postcss_normalize_url___postcss_normalize_url_3.0.8.tgz";
+ url = "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz";
+ sha1 = "108f74b3f2fcdaf891a2ffa3ea4592279fc78222";
+ };
+ }
+
+ {
+ name = "postcss_ordered_values___postcss_ordered_values_2.2.3.tgz";
+ path = fetchurl {
+ name = "postcss_ordered_values___postcss_ordered_values_2.2.3.tgz";
+ url = "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz";
+ sha1 = "eec6c2a67b6c412a8db2042e77fe8da43f95c11d";
+ };
+ }
+
+ {
+ name = "postcss_reduce_idents___postcss_reduce_idents_2.4.0.tgz";
+ path = fetchurl {
+ name = "postcss_reduce_idents___postcss_reduce_idents_2.4.0.tgz";
+ url = "https://registry.yarnpkg.com/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz";
+ sha1 = "c2c6d20cc958284f6abfbe63f7609bf409059ad3";
+ };
+ }
+
+ {
+ name = "postcss_reduce_initial___postcss_reduce_initial_1.0.1.tgz";
+ path = fetchurl {
+ name = "postcss_reduce_initial___postcss_reduce_initial_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz";
+ sha1 = "68f80695f045d08263a879ad240df8dd64f644ea";
+ };
+ }
+
+ {
+ name = "postcss_reduce_transforms___postcss_reduce_transforms_1.0.4.tgz";
+ path = fetchurl {
+ name = "postcss_reduce_transforms___postcss_reduce_transforms_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz";
+ sha1 = "ff76f4d8212437b31c298a42d2e1444025771ae1";
+ };
+ }
+
+ {
+ name = "postcss_selector_parser___postcss_selector_parser_2.2.3.tgz";
+ path = fetchurl {
+ name = "postcss_selector_parser___postcss_selector_parser_2.2.3.tgz";
+ url = "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz";
+ sha1 = "f9437788606c3c9acee16ffe8d8b16297f27bb90";
+ };
+ }
+
+ {
+ name = "postcss_svgo___postcss_svgo_2.1.6.tgz";
+ path = fetchurl {
+ name = "postcss_svgo___postcss_svgo_2.1.6.tgz";
+ url = "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-2.1.6.tgz";
+ sha1 = "b6df18aa613b666e133f08adb5219c2684ac108d";
+ };
+ }
+
+ {
+ name = "postcss_unique_selectors___postcss_unique_selectors_2.0.2.tgz";
+ path = fetchurl {
+ name = "postcss_unique_selectors___postcss_unique_selectors_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz";
+ sha1 = "981d57d29ddcb33e7b1dfe1fd43b8649f933ca1d";
+ };
+ }
+
+ {
+ name = "postcss_value_parser___postcss_value_parser_3.3.0.tgz";
+ path = fetchurl {
+ name = "postcss_value_parser___postcss_value_parser_3.3.0.tgz";
+ url = "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz";
+ sha1 = "87f38f9f18f774a4ab4c8a232f5c5ce8872a9d15";
+ };
+ }
+
+ {
+ name = "postcss_zindex___postcss_zindex_2.2.0.tgz";
+ path = fetchurl {
+ name = "postcss_zindex___postcss_zindex_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/postcss-zindex/-/postcss-zindex-2.2.0.tgz";
+ sha1 = "d2109ddc055b91af67fc4cb3b025946639d2af22";
+ };
+ }
+
+ {
+ name = "postcss___postcss_5.2.18.tgz";
+ path = fetchurl {
+ name = "postcss___postcss_5.2.18.tgz";
+ url = "https://registry.yarnpkg.com/postcss/-/postcss-5.2.18.tgz";
+ sha1 = "badfa1497d46244f6390f58b319830d9107853c5";
+ };
+ }
+
+ {
+ name = "postcss___postcss_6.0.23.tgz";
+ path = fetchurl {
+ name = "postcss___postcss_6.0.23.tgz";
+ url = "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz";
+ sha1 = "61c82cc328ac60e677645f979054eb98bc0e3324";
+ };
+ }
+
+ {
+ name = "prepend_http___prepend_http_1.0.4.tgz";
+ path = fetchurl {
+ name = "prepend_http___prepend_http_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz";
+ sha1 = "d4f4562b0ce3696e41ac52d0e002e57a635dc6dc";
+ };
+ }
+
+ {
+ name = "preserve___preserve_0.2.0.tgz";
+ path = fetchurl {
+ name = "preserve___preserve_0.2.0.tgz";
+ url = "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz";
+ sha1 = "815ed1f6ebc65926f865b310c0713bcb3315ce4b";
+ };
+ }
+
+ {
+ name = "pretty_error___pretty_error_2.1.1.tgz";
+ path = fetchurl {
+ name = "pretty_error___pretty_error_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.1.tgz";
+ sha1 = "5f4f87c8f91e5ae3f3ba87ab4cf5e03b1a17f1a3";
+ };
+ }
+
+ {
+ name = "private___private_0.1.8.tgz";
+ path = fetchurl {
+ name = "private___private_0.1.8.tgz";
+ url = "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz";
+ sha1 = "2381edb3689f7a53d653190060fcf822d2f368ff";
+ };
+ }
+
+ {
+ name = "process_nextick_args___process_nextick_args_2.0.0.tgz";
+ path = fetchurl {
+ name = "process_nextick_args___process_nextick_args_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz";
+ sha1 = "a37d732f4271b4ab1ad070d35508e8290788ffaa";
+ };
+ }
+
+ {
+ name = "process___process_0.11.10.tgz";
+ path = fetchurl {
+ name = "process___process_0.11.10.tgz";
+ url = "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz";
+ sha1 = "7332300e840161bda3e69a1d1d91a7d4bc16f182";
+ };
+ }
+
+ {
+ name = "proxy_addr___proxy_addr_2.0.4.tgz";
+ path = fetchurl {
+ name = "proxy_addr___proxy_addr_2.0.4.tgz";
+ url = "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.4.tgz";
+ sha1 = "ecfc733bf22ff8c6f407fa275327b9ab67e48b93";
+ };
+ }
+
+ {
+ name = "prr___prr_1.0.1.tgz";
+ path = fetchurl {
+ name = "prr___prr_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz";
+ sha1 = "d3fc114ba06995a45ec6893f484ceb1d78f5f476";
+ };
+ }
+
+ {
+ name = "pseudomap___pseudomap_1.0.2.tgz";
+ path = fetchurl {
+ name = "pseudomap___pseudomap_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz";
+ sha1 = "f052a28da70e618917ef0a8ac34c1ae5a68286b3";
+ };
+ }
+
+ {
+ name = "public_encrypt___public_encrypt_4.0.2.tgz";
+ path = fetchurl {
+ name = "public_encrypt___public_encrypt_4.0.2.tgz";
+ url = "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.2.tgz";
+ sha1 = "46eb9107206bf73489f8b85b69d91334c6610994";
+ };
+ }
+
+ {
+ name = "punycode___punycode_1.3.2.tgz";
+ path = fetchurl {
+ name = "punycode___punycode_1.3.2.tgz";
+ url = "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz";
+ sha1 = "9653a036fb7c1ee42342f2325cceefea3926c48d";
+ };
+ }
+
+ {
+ name = "punycode___punycode_1.4.1.tgz";
+ path = fetchurl {
+ name = "punycode___punycode_1.4.1.tgz";
+ url = "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz";
+ sha1 = "c0d5a63b2718800ad8e1eb0fa5269c84dd41845e";
+ };
+ }
+
+ {
+ name = "punycode___punycode_2.1.1.tgz";
+ path = fetchurl {
+ name = "punycode___punycode_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz";
+ sha1 = "b58b010ac40c22c5657616c8d2c2c02c7bf479ec";
+ };
+ }
+
+ {
+ name = "q___q_1.5.1.tgz";
+ path = fetchurl {
+ name = "q___q_1.5.1.tgz";
+ url = "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz";
+ sha1 = "7e32f75b41381291d04611f1bf14109ac00651d7";
+ };
+ }
+
+ {
+ name = "qs___qs_6.5.1.tgz";
+ path = fetchurl {
+ name = "qs___qs_6.5.1.tgz";
+ url = "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz";
+ sha1 = "349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8";
+ };
+ }
+
+ {
+ name = "qs___qs_6.4.0.tgz";
+ path = fetchurl {
+ name = "qs___qs_6.4.0.tgz";
+ url = "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz";
+ sha1 = "13e26d28ad6b0ffaa91312cd3bf708ed351e7233";
+ };
+ }
+
+ {
+ name = "qs___qs_6.5.2.tgz";
+ path = fetchurl {
+ name = "qs___qs_6.5.2.tgz";
+ url = "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz";
+ sha1 = "cb3ae806e8740444584ef154ce8ee98d403f3e36";
+ };
+ }
+
+ {
+ name = "query_string___query_string_4.3.4.tgz";
+ path = fetchurl {
+ name = "query_string___query_string_4.3.4.tgz";
+ url = "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz";
+ sha1 = "bbb693b9ca915c232515b228b1a02b609043dbeb";
+ };
+ }
+
+ {
+ name = "querystring_es3___querystring_es3_0.2.1.tgz";
+ path = fetchurl {
+ name = "querystring_es3___querystring_es3_0.2.1.tgz";
+ url = "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz";
+ sha1 = "9ec61f79049875707d69414596fd907a4d711e73";
+ };
+ }
+
+ {
+ name = "querystring___querystring_0.2.0.tgz";
+ path = fetchurl {
+ name = "querystring___querystring_0.2.0.tgz";
+ url = "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz";
+ sha1 = "b209849203bb25df820da756e747005878521620";
+ };
+ }
+
+ {
+ name = "querystringify___querystringify_2.0.0.tgz";
+ path = fetchurl {
+ name = "querystringify___querystringify_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/querystringify/-/querystringify-2.0.0.tgz";
+ sha1 = "fa3ed6e68eb15159457c89b37bc6472833195755";
+ };
+ }
+
+ {
+ name = "randomatic___randomatic_3.0.0.tgz";
+ path = fetchurl {
+ name = "randomatic___randomatic_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/randomatic/-/randomatic-3.0.0.tgz";
+ sha1 = "d35490030eb4f7578de292ce6dfb04a91a128923";
+ };
+ }
+
+ {
+ name = "randombytes___randombytes_2.0.6.tgz";
+ path = fetchurl {
+ name = "randombytes___randombytes_2.0.6.tgz";
+ url = "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.6.tgz";
+ sha1 = "d302c522948588848a8d300c932b44c24231da80";
+ };
+ }
+
+ {
+ name = "randomfill___randomfill_1.0.4.tgz";
+ path = fetchurl {
+ name = "randomfill___randomfill_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz";
+ sha1 = "c92196fc86ab42be983f1bf31778224931d61458";
+ };
+ }
+
+ {
+ name = "range_parser___range_parser_1.2.0.tgz";
+ path = fetchurl {
+ name = "range_parser___range_parser_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz";
+ sha1 = "f49be6b487894ddc40dcc94a322f611092e00d5e";
+ };
+ }
+
+ {
+ name = "raw_body___raw_body_2.3.2.tgz";
+ path = fetchurl {
+ name = "raw_body___raw_body_2.3.2.tgz";
+ url = "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.2.tgz";
+ sha1 = "bcd60c77d3eb93cde0050295c3f379389bc88f89";
+ };
+ }
+
+ {
+ name = "rc___rc_1.2.8.tgz";
+ path = fetchurl {
+ name = "rc___rc_1.2.8.tgz";
+ url = "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz";
+ sha1 = "cd924bf5200a075b83c188cd6b9e211b7fc0d3ed";
+ };
+ }
+
+ {
+ name = "read_pkg_up___read_pkg_up_1.0.1.tgz";
+ path = fetchurl {
+ name = "read_pkg_up___read_pkg_up_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz";
+ sha1 = "9d63c13276c065918d57f002a57f40a1b643fb02";
+ };
+ }
+
+ {
+ name = "read_pkg_up___read_pkg_up_2.0.0.tgz";
+ path = fetchurl {
+ name = "read_pkg_up___read_pkg_up_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz";
+ sha1 = "6b72a8048984e0c41e79510fd5e9fa99b3b549be";
+ };
+ }
+
+ {
+ name = "read_pkg___read_pkg_1.1.0.tgz";
+ path = fetchurl {
+ name = "read_pkg___read_pkg_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz";
+ sha1 = "f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28";
+ };
+ }
+
+ {
+ name = "read_pkg___read_pkg_2.0.0.tgz";
+ path = fetchurl {
+ name = "read_pkg___read_pkg_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz";
+ sha1 = "8ef1c0623c6a6db0dc6713c4bfac46332b2368f8";
+ };
+ }
+
+ {
+ name = "readable_stream___readable_stream_1.0.34.tgz";
+ path = fetchurl {
+ name = "readable_stream___readable_stream_1.0.34.tgz";
+ url = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz";
+ sha1 = "125820e34bc842d2f2aaafafe4c2916ee32c157c";
+ };
+ }
+
+ {
+ name = "readable_stream___readable_stream_2.3.6.tgz";
+ path = fetchurl {
+ name = "readable_stream___readable_stream_2.3.6.tgz";
+ url = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz";
+ sha1 = "b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf";
+ };
+ }
+
+ {
+ name = "readdirp___readdirp_2.1.0.tgz";
+ path = fetchurl {
+ name = "readdirp___readdirp_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz";
+ sha1 = "4ed0ad060df3073300c48440373f72d1cc642d78";
+ };
+ }
+
+ {
+ name = "redent___redent_1.0.0.tgz";
+ path = fetchurl {
+ name = "redent___redent_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz";
+ sha1 = "cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde";
+ };
+ }
+
+ {
+ name = "reduce_css_calc___reduce_css_calc_1.3.0.tgz";
+ path = fetchurl {
+ name = "reduce_css_calc___reduce_css_calc_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz";
+ sha1 = "747c914e049614a4c9cfbba629871ad1d2927716";
+ };
+ }
+
+ {
+ name = "reduce_function_call___reduce_function_call_1.0.2.tgz";
+ path = fetchurl {
+ name = "reduce_function_call___reduce_function_call_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/reduce-function-call/-/reduce-function-call-1.0.2.tgz";
+ sha1 = "5a200bf92e0e37751752fe45b0ab330fd4b6be99";
+ };
+ }
+
+ {
+ name = "regenerate___regenerate_1.4.0.tgz";
+ path = fetchurl {
+ name = "regenerate___regenerate_1.4.0.tgz";
+ url = "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz";
+ sha1 = "4a856ec4b56e4077c557589cae85e7a4c8869a11";
+ };
+ }
+
+ {
+ name = "regenerator_runtime___regenerator_runtime_0.11.1.tgz";
+ path = fetchurl {
+ name = "regenerator_runtime___regenerator_runtime_0.11.1.tgz";
+ url = "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz";
+ sha1 = "be05ad7f9bf7d22e056f9726cee5017fbf19e2e9";
+ };
+ }
+
+ {
+ name = "regenerator_transform___regenerator_transform_0.10.1.tgz";
+ path = fetchurl {
+ name = "regenerator_transform___regenerator_transform_0.10.1.tgz";
+ url = "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz";
+ sha1 = "1e4996837231da8b7f3cf4114d71b5691a0680dd";
+ };
+ }
+
+ {
+ name = "regex_cache___regex_cache_0.4.4.tgz";
+ path = fetchurl {
+ name = "regex_cache___regex_cache_0.4.4.tgz";
+ url = "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz";
+ sha1 = "75bdc58a2a1496cec48a12835bc54c8d562336dd";
+ };
+ }
+
+ {
+ name = "regex_not___regex_not_1.0.2.tgz";
+ path = fetchurl {
+ name = "regex_not___regex_not_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz";
+ sha1 = "1f4ece27e00b0b65e0247a6810e6a85d83a5752c";
+ };
+ }
+
+ {
+ name = "regex_parser___regex_parser_2.2.9.tgz";
+ path = fetchurl {
+ name = "regex_parser___regex_parser_2.2.9.tgz";
+ url = "https://registry.yarnpkg.com/regex-parser/-/regex-parser-2.2.9.tgz";
+ sha1 = "a372f45a248b62976a568037c1b6e60a60599192";
+ };
+ }
+
+ {
+ name = "regexpu_core___regexpu_core_1.0.0.tgz";
+ path = fetchurl {
+ name = "regexpu_core___regexpu_core_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-1.0.0.tgz";
+ sha1 = "86a763f58ee4d7c2f6b102e4764050de7ed90c6b";
+ };
+ }
+
+ {
+ name = "regexpu_core___regexpu_core_2.0.0.tgz";
+ path = fetchurl {
+ name = "regexpu_core___regexpu_core_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz";
+ sha1 = "49d038837b8dcf8bfa5b9a42139938e6ea2ae240";
+ };
+ }
+
+ {
+ name = "regjsgen___regjsgen_0.2.0.tgz";
+ path = fetchurl {
+ name = "regjsgen___regjsgen_0.2.0.tgz";
+ url = "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz";
+ sha1 = "6c016adeac554f75823fe37ac05b92d5a4edb1f7";
+ };
+ }
+
+ {
+ name = "regjsparser___regjsparser_0.1.5.tgz";
+ path = fetchurl {
+ name = "regjsparser___regjsparser_0.1.5.tgz";
+ url = "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz";
+ sha1 = "7ee8f84dc6fa792d3fd0ae228d24bd949ead205c";
+ };
+ }
+
+ {
+ name = "remove_trailing_separator___remove_trailing_separator_1.1.0.tgz";
+ path = fetchurl {
+ name = "remove_trailing_separator___remove_trailing_separator_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz";
+ sha1 = "c24bce2a283adad5bc3f58e0d48249b92379d8ef";
+ };
+ }
+
+ {
+ name = "renderkid___renderkid_2.0.1.tgz";
+ path = fetchurl {
+ name = "renderkid___renderkid_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.1.tgz";
+ sha1 = "898cabfc8bede4b7b91135a3ffd323e58c0db319";
+ };
+ }
+
+ {
+ name = "repeat_element___repeat_element_1.1.2.tgz";
+ path = fetchurl {
+ name = "repeat_element___repeat_element_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz";
+ sha1 = "ef089a178d1483baae4d93eb98b4f9e4e11d990a";
+ };
+ }
+
+ {
+ name = "repeat_string___repeat_string_1.6.1.tgz";
+ path = fetchurl {
+ name = "repeat_string___repeat_string_1.6.1.tgz";
+ url = "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz";
+ sha1 = "8dcae470e1c88abc2d600fff4a776286da75e637";
+ };
+ }
+
+ {
+ name = "repeating___repeating_2.0.1.tgz";
+ path = fetchurl {
+ name = "repeating___repeating_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz";
+ sha1 = "5214c53a926d3552707527fbab415dbc08d06dda";
+ };
+ }
+
+ {
+ name = "request___request_2.87.0.tgz";
+ path = fetchurl {
+ name = "request___request_2.87.0.tgz";
+ url = "https://registry.yarnpkg.com/request/-/request-2.87.0.tgz";
+ sha1 = "32f00235cd08d482b4d0d68db93a829c0ed5756e";
+ };
+ }
+
+ {
+ name = "request___request_2.81.0.tgz";
+ path = fetchurl {
+ name = "request___request_2.81.0.tgz";
+ url = "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz";
+ sha1 = "c6928946a0e06c5f8d6f8a9333469ffda46298a0";
+ };
+ }
+
+ {
+ name = "require_directory___require_directory_2.1.1.tgz";
+ path = fetchurl {
+ name = "require_directory___require_directory_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz";
+ sha1 = "8c64ad5fd30dab1c976e2344ffe7f792a6a6df42";
+ };
+ }
+
+ {
+ name = "require_main_filename___require_main_filename_1.0.1.tgz";
+ path = fetchurl {
+ name = "require_main_filename___require_main_filename_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz";
+ sha1 = "97f717b69d48784f5f526a6c5aa8ffdda055a4d1";
+ };
+ }
+
+ {
+ name = "requires_port___requires_port_1.0.0.tgz";
+ path = fetchurl {
+ name = "requires_port___requires_port_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz";
+ sha1 = "925d2601d39ac485e091cf0da5c6e694dc3dcaff";
+ };
+ }
+
+ {
+ name = "resolve_cwd___resolve_cwd_2.0.0.tgz";
+ path = fetchurl {
+ name = "resolve_cwd___resolve_cwd_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz";
+ sha1 = "00a9f7387556e27038eae232caa372a6a59b665a";
+ };
+ }
+
+ {
+ name = "resolve_from___resolve_from_3.0.0.tgz";
+ path = fetchurl {
+ name = "resolve_from___resolve_from_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz";
+ sha1 = "b22c7af7d9d6881bc8b6e653335eebcb0a188748";
+ };
+ }
+
+ {
+ name = "resolve_url_loader___resolve_url_loader_2.3.0.tgz";
+ path = fetchurl {
+ name = "resolve_url_loader___resolve_url_loader_2.3.0.tgz";
+ url = "https://registry.yarnpkg.com/resolve-url-loader/-/resolve-url-loader-2.3.0.tgz";
+ sha1 = "e1b37034d48f22f8cfb9f04c026faaa070fdaf26";
+ };
+ }
+
+ {
+ name = "resolve_url___resolve_url_0.2.1.tgz";
+ path = fetchurl {
+ name = "resolve_url___resolve_url_0.2.1.tgz";
+ url = "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz";
+ sha1 = "2c637fe77c893afd2a663fe21aa9080068e2052a";
+ };
+ }
+
+ {
+ name = "ret___ret_0.1.15.tgz";
+ path = fetchurl {
+ name = "ret___ret_0.1.15.tgz";
+ url = "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz";
+ sha1 = "b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc";
+ };
+ }
+
+ {
+ name = "rework_visit___rework_visit_1.0.0.tgz";
+ path = fetchurl {
+ name = "rework_visit___rework_visit_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/rework-visit/-/rework-visit-1.0.0.tgz";
+ sha1 = "9945b2803f219e2f7aca00adb8bc9f640f842c9a";
+ };
+ }
+
+ {
+ name = "rework___rework_1.0.1.tgz";
+ path = fetchurl {
+ name = "rework___rework_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/rework/-/rework-1.0.1.tgz";
+ sha1 = "30806a841342b54510aa4110850cd48534144aa7";
+ };
+ }
+
+ {
+ name = "right_align___right_align_0.1.3.tgz";
+ path = fetchurl {
+ name = "right_align___right_align_0.1.3.tgz";
+ url = "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz";
+ sha1 = "61339b722fe6a3515689210d24e14c96148613ef";
+ };
+ }
+
+ {
+ name = "rimraf___rimraf_2.6.2.tgz";
+ path = fetchurl {
+ name = "rimraf___rimraf_2.6.2.tgz";
+ url = "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz";
+ sha1 = "2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36";
+ };
+ }
+
+ {
+ name = "ripemd160___ripemd160_2.0.2.tgz";
+ path = fetchurl {
+ name = "ripemd160___ripemd160_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz";
+ sha1 = "a1c1a6f624751577ba5d07914cbc92850585890c";
+ };
+ }
+
+ {
+ name = "safe_buffer___safe_buffer_5.1.1.tgz";
+ path = fetchurl {
+ name = "safe_buffer___safe_buffer_5.1.1.tgz";
+ url = "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz";
+ sha1 = "893312af69b2123def71f57889001671eeb2c853";
+ };
+ }
+
+ {
+ name = "safe_buffer___safe_buffer_5.1.2.tgz";
+ path = fetchurl {
+ name = "safe_buffer___safe_buffer_5.1.2.tgz";
+ url = "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz";
+ sha1 = "991ec69d296e0313747d59bdfd2b745c35f8828d";
+ };
+ }
+
+ {
+ name = "safe_regex___safe_regex_1.1.0.tgz";
+ path = fetchurl {
+ name = "safe_regex___safe_regex_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz";
+ sha1 = "40a3669f3b077d1e943d44629e157dd48023bf2e";
+ };
+ }
+
+ {
+ name = "safer_buffer___safer_buffer_2.1.2.tgz";
+ path = fetchurl {
+ name = "safer_buffer___safer_buffer_2.1.2.tgz";
+ url = "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz";
+ sha1 = "44fa161b0187b9549dd84bb91802f9bd8385cd6a";
+ };
+ }
+
+ {
+ name = "sass_graph___sass_graph_2.2.4.tgz";
+ path = fetchurl {
+ name = "sass_graph___sass_graph_2.2.4.tgz";
+ url = "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.2.4.tgz";
+ sha1 = "13fbd63cd1caf0908b9fd93476ad43a51d1e0b49";
+ };
+ }
+
+ {
+ name = "sass_loader___sass_loader_7.0.3.tgz";
+ path = fetchurl {
+ name = "sass_loader___sass_loader_7.0.3.tgz";
+ url = "https://registry.yarnpkg.com/sass-loader/-/sass-loader-7.0.3.tgz";
+ sha1 = "6ca10871a1cc7549f8143db5a9958242c4e4ca2a";
+ };
+ }
+
+ {
+ name = "sax___sax_1.2.4.tgz";
+ path = fetchurl {
+ name = "sax___sax_1.2.4.tgz";
+ url = "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz";
+ sha1 = "2816234e2378bddc4e5354fab5caa895df7100d9";
+ };
+ }
+
+ {
+ name = "schema_utils___schema_utils_0.3.0.tgz";
+ path = fetchurl {
+ name = "schema_utils___schema_utils_0.3.0.tgz";
+ url = "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.3.0.tgz";
+ sha1 = "f5877222ce3e931edae039f17eb3716e7137f8cf";
+ };
+ }
+
+ {
+ name = "scss_tokenizer___scss_tokenizer_0.2.3.tgz";
+ path = fetchurl {
+ name = "scss_tokenizer___scss_tokenizer_0.2.3.tgz";
+ url = "https://registry.yarnpkg.com/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz";
+ sha1 = "8eb06db9a9723333824d3f5530641149847ce5d1";
+ };
+ }
+
+ {
+ name = "select_hose___select_hose_2.0.0.tgz";
+ path = fetchurl {
+ name = "select_hose___select_hose_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz";
+ sha1 = "625d8658f865af43ec962bfc376a37359a4994ca";
+ };
+ }
+
+ {
+ name = "selfsigned___selfsigned_1.10.3.tgz";
+ path = fetchurl {
+ name = "selfsigned___selfsigned_1.10.3.tgz";
+ url = "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.3.tgz";
+ sha1 = "d628ecf9e3735f84e8bafba936b3cf85bea43823";
+ };
+ }
+
+ {
+ name = "semver___semver_5.5.0.tgz";
+ path = fetchurl {
+ name = "semver___semver_5.5.0.tgz";
+ url = "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz";
+ sha1 = "dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab";
+ };
+ }
+
+ {
+ name = "semver___semver_5.3.0.tgz";
+ path = fetchurl {
+ name = "semver___semver_5.3.0.tgz";
+ url = "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz";
+ sha1 = "9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f";
+ };
+ }
+
+ {
+ name = "send___send_0.16.2.tgz";
+ path = fetchurl {
+ name = "send___send_0.16.2.tgz";
+ url = "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz";
+ sha1 = "6ecca1e0f8c156d141597559848df64730a6bbc1";
+ };
+ }
+
+ {
+ name = "serve_index___serve_index_1.9.1.tgz";
+ path = fetchurl {
+ name = "serve_index___serve_index_1.9.1.tgz";
+ url = "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz";
+ sha1 = "d3768d69b1e7d82e5ce050fff5b453bea12a9239";
+ };
+ }
+
+ {
+ name = "serve_static___serve_static_1.13.2.tgz";
+ path = fetchurl {
+ name = "serve_static___serve_static_1.13.2.tgz";
+ url = "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.2.tgz";
+ sha1 = "095e8472fd5b46237db50ce486a43f4b86c6cec1";
+ };
+ }
+
+ {
+ name = "set_blocking___set_blocking_2.0.0.tgz";
+ path = fetchurl {
+ name = "set_blocking___set_blocking_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz";
+ sha1 = "045f9782d011ae9a6803ddd382b24392b3d890f7";
+ };
+ }
+
+ {
+ name = "set_immediate_shim___set_immediate_shim_1.0.1.tgz";
+ path = fetchurl {
+ name = "set_immediate_shim___set_immediate_shim_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz";
+ sha1 = "4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61";
+ };
+ }
+
+ {
+ name = "set_value___set_value_0.4.3.tgz";
+ path = fetchurl {
+ name = "set_value___set_value_0.4.3.tgz";
+ url = "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz";
+ sha1 = "7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1";
+ };
+ }
+
+ {
+ name = "set_value___set_value_2.0.0.tgz";
+ path = fetchurl {
+ name = "set_value___set_value_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz";
+ sha1 = "71ae4a88f0feefbbf52d1ea604f3fb315ebb6274";
+ };
+ }
+
+ {
+ name = "setimmediate___setimmediate_1.0.5.tgz";
+ path = fetchurl {
+ name = "setimmediate___setimmediate_1.0.5.tgz";
+ url = "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz";
+ sha1 = "290cbb232e306942d7d7ea9b83732ab7856f8285";
+ };
+ }
+
+ {
+ name = "setprototypeof___setprototypeof_1.0.3.tgz";
+ path = fetchurl {
+ name = "setprototypeof___setprototypeof_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz";
+ sha1 = "66567e37043eeb4f04d91bd658c0cbefb55b8e04";
+ };
+ }
+
+ {
+ name = "setprototypeof___setprototypeof_1.1.0.tgz";
+ path = fetchurl {
+ name = "setprototypeof___setprototypeof_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz";
+ sha1 = "d0bd85536887b6fe7c0d818cb962d9d91c54e656";
+ };
+ }
+
+ {
+ name = "sha.js___sha.js_2.4.11.tgz";
+ path = fetchurl {
+ name = "sha.js___sha.js_2.4.11.tgz";
+ url = "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz";
+ sha1 = "37a5cf0b81ecbc6943de109ba2960d1b26584ae7";
+ };
+ }
+
+ {
+ name = "shallow_clone___shallow_clone_1.0.0.tgz";
+ path = fetchurl {
+ name = "shallow_clone___shallow_clone_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-1.0.0.tgz";
+ sha1 = "4480cd06e882ef68b2ad88a3ea54832e2c48b571";
+ };
+ }
+
+ {
+ name = "shebang_command___shebang_command_1.2.0.tgz";
+ path = fetchurl {
+ name = "shebang_command___shebang_command_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz";
+ sha1 = "44aac65b695b03398968c39f363fee5deafdf1ea";
+ };
+ }
+
+ {
+ name = "shebang_regex___shebang_regex_1.0.0.tgz";
+ path = fetchurl {
+ name = "shebang_regex___shebang_regex_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz";
+ sha1 = "da42f49740c0b42db2ca9728571cb190c98efea3";
+ };
+ }
+
+ {
+ name = "signal_exit___signal_exit_3.0.2.tgz";
+ path = fetchurl {
+ name = "signal_exit___signal_exit_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz";
+ sha1 = "b5fdc08f1287ea1178628e415e25132b73646c6d";
+ };
+ }
+
+ {
+ name = "slash___slash_1.0.0.tgz";
+ path = fetchurl {
+ name = "slash___slash_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz";
+ sha1 = "c41f2f6c39fc16d1cd17ad4b5d896114ae470d55";
+ };
+ }
+
+ {
+ name = "snapdragon_node___snapdragon_node_2.1.1.tgz";
+ path = fetchurl {
+ name = "snapdragon_node___snapdragon_node_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz";
+ sha1 = "6c175f86ff14bdb0724563e8f3c1b021a286853b";
+ };
+ }
+
+ {
+ name = "snapdragon_util___snapdragon_util_3.0.1.tgz";
+ path = fetchurl {
+ name = "snapdragon_util___snapdragon_util_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz";
+ sha1 = "f956479486f2acd79700693f6f7b805e45ab56e2";
+ };
+ }
+
+ {
+ name = "snapdragon___snapdragon_0.8.2.tgz";
+ path = fetchurl {
+ name = "snapdragon___snapdragon_0.8.2.tgz";
+ url = "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz";
+ sha1 = "64922e7c565b0e14204ba1aa7d6964278d25182d";
+ };
+ }
+
+ {
+ name = "sntp___sntp_1.0.9.tgz";
+ path = fetchurl {
+ name = "sntp___sntp_1.0.9.tgz";
+ url = "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz";
+ sha1 = "6541184cc90aeea6c6e7b35e2659082443c66198";
+ };
+ }
+
+ {
+ name = "sockjs_client___sockjs_client_1.1.4.tgz";
+ path = fetchurl {
+ name = "sockjs_client___sockjs_client_1.1.4.tgz";
+ url = "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.1.4.tgz";
+ sha1 = "5babe386b775e4cf14e7520911452654016c8b12";
+ };
+ }
+
+ {
+ name = "sockjs___sockjs_0.3.19.tgz";
+ path = fetchurl {
+ name = "sockjs___sockjs_0.3.19.tgz";
+ url = "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.19.tgz";
+ sha1 = "d976bbe800af7bd20ae08598d582393508993c0d";
+ };
+ }
+
+ {
+ name = "sort_keys___sort_keys_1.1.2.tgz";
+ path = fetchurl {
+ name = "sort_keys___sort_keys_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz";
+ sha1 = "441b6d4d346798f1b4e49e8920adfba0e543f9ad";
+ };
+ }
+
+ {
+ name = "source_list_map___source_list_map_0.1.8.tgz";
+ path = fetchurl {
+ name = "source_list_map___source_list_map_0.1.8.tgz";
+ url = "https://registry.yarnpkg.com/source-list-map/-/source-list-map-0.1.8.tgz";
+ sha1 = "c550b2ab5427f6b3f21f5afead88c4f5587b2106";
+ };
+ }
+
+ {
+ name = "source_list_map___source_list_map_2.0.0.tgz";
+ path = fetchurl {
+ name = "source_list_map___source_list_map_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz";
+ sha1 = "aaa47403f7b245a92fbc97ea08f250d6087ed085";
+ };
+ }
+
+ {
+ name = "source_map_resolve___source_map_resolve_0.5.2.tgz";
+ path = fetchurl {
+ name = "source_map_resolve___source_map_resolve_0.5.2.tgz";
+ url = "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz";
+ sha1 = "72e2cc34095543e43b2c62b2c4c10d4a9054f259";
+ };
+ }
+
+ {
+ name = "source_map_support___source_map_support_0.4.18.tgz";
+ path = fetchurl {
+ name = "source_map_support___source_map_support_0.4.18.tgz";
+ url = "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz";
+ sha1 = "0286a6de8be42641338594e97ccea75f0a2c585f";
+ };
+ }
+
+ {
+ name = "source_map_url___source_map_url_0.4.0.tgz";
+ path = fetchurl {
+ name = "source_map_url___source_map_url_0.4.0.tgz";
+ url = "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz";
+ sha1 = "3e935d7ddd73631b97659956d55128e87b5084a3";
+ };
+ }
+
+ {
+ name = "source_map___source_map_0.1.43.tgz";
+ path = fetchurl {
+ name = "source_map___source_map_0.1.43.tgz";
+ url = "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz";
+ sha1 = "c24bc146ca517c1471f5dacbe2571b2b7f9e3346";
+ };
+ }
+
+ {
+ name = "source_map___source_map_0.4.4.tgz";
+ path = fetchurl {
+ name = "source_map___source_map_0.4.4.tgz";
+ url = "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz";
+ sha1 = "eba4f5da9c0dc999de68032d8b4f76173652036b";
+ };
+ }
+
+ {
+ name = "source_map___source_map_0.5.7.tgz";
+ path = fetchurl {
+ name = "source_map___source_map_0.5.7.tgz";
+ url = "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz";
+ sha1 = "8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc";
+ };
+ }
+
+ {
+ name = "source_map___source_map_0.6.1.tgz";
+ path = fetchurl {
+ name = "source_map___source_map_0.6.1.tgz";
+ url = "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz";
+ sha1 = "74722af32e9614e9c287a8d0bbde48b5e2f1a263";
+ };
+ }
+
+ {
+ name = "spdx_correct___spdx_correct_3.0.0.tgz";
+ path = fetchurl {
+ name = "spdx_correct___spdx_correct_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.0.tgz";
+ sha1 = "05a5b4d7153a195bc92c3c425b69f3b2a9524c82";
+ };
+ }
+
+ {
+ name = "spdx_exceptions___spdx_exceptions_2.1.0.tgz";
+ path = fetchurl {
+ name = "spdx_exceptions___spdx_exceptions_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz";
+ sha1 = "2c7ae61056c714a5b9b9b2b2af7d311ef5c78fe9";
+ };
+ }
+
+ {
+ name = "spdx_expression_parse___spdx_expression_parse_3.0.0.tgz";
+ path = fetchurl {
+ name = "spdx_expression_parse___spdx_expression_parse_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz";
+ sha1 = "99e119b7a5da00e05491c9fa338b7904823b41d0";
+ };
+ }
+
+ {
+ name = "spdx_license_ids___spdx_license_ids_3.0.0.tgz";
+ path = fetchurl {
+ name = "spdx_license_ids___spdx_license_ids_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz";
+ sha1 = "7a7cd28470cc6d3a1cfe6d66886f6bc430d3ac87";
+ };
+ }
+
+ {
+ name = "spdy_transport___spdy_transport_2.1.0.tgz";
+ path = fetchurl {
+ name = "spdy_transport___spdy_transport_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-2.1.0.tgz";
+ sha1 = "4bbb15aaffed0beefdd56ad61dbdc8ba3e2cb7a1";
+ };
+ }
+
+ {
+ name = "spdy___spdy_3.4.7.tgz";
+ path = fetchurl {
+ name = "spdy___spdy_3.4.7.tgz";
+ url = "https://registry.yarnpkg.com/spdy/-/spdy-3.4.7.tgz";
+ sha1 = "42ff41ece5cc0f99a3a6c28aabb73f5c3b03acbc";
+ };
+ }
+
+ {
+ name = "split_string___split_string_3.1.0.tgz";
+ path = fetchurl {
+ name = "split_string___split_string_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz";
+ sha1 = "7cb09dda3a86585705c64b39a6466038682e8fe2";
+ };
+ }
+
+ {
+ name = "sprintf_js___sprintf_js_1.0.3.tgz";
+ path = fetchurl {
+ name = "sprintf_js___sprintf_js_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz";
+ sha1 = "04e6926f662895354f3dd015203633b857297e2c";
+ };
+ }
+
+ {
+ name = "sshpk___sshpk_1.14.2.tgz";
+ path = fetchurl {
+ name = "sshpk___sshpk_1.14.2.tgz";
+ url = "https://registry.yarnpkg.com/sshpk/-/sshpk-1.14.2.tgz";
+ sha1 = "c6fc61648a3d9c4e764fd3fcdf4ea105e492ba98";
+ };
+ }
+
+ {
+ name = "stackframe___stackframe_1.0.4.tgz";
+ path = fetchurl {
+ name = "stackframe___stackframe_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/stackframe/-/stackframe-1.0.4.tgz";
+ sha1 = "357b24a992f9427cba6b545d96a14ed2cbca187b";
+ };
+ }
+
+ {
+ name = "static_extend___static_extend_0.1.2.tgz";
+ path = fetchurl {
+ name = "static_extend___static_extend_0.1.2.tgz";
+ url = "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz";
+ sha1 = "60809c39cbff55337226fd5e0b520f341f1fb5c6";
+ };
+ }
+
+ {
+ name = "statuses___statuses_1.5.0.tgz";
+ path = fetchurl {
+ name = "statuses___statuses_1.5.0.tgz";
+ url = "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz";
+ sha1 = "161c7dac177659fd9811f43771fa99381478628c";
+ };
+ }
+
+ {
+ name = "statuses___statuses_1.4.0.tgz";
+ path = fetchurl {
+ name = "statuses___statuses_1.4.0.tgz";
+ url = "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz";
+ sha1 = "bb73d446da2796106efcc1b601a253d6c46bd087";
+ };
+ }
+
+ {
+ name = "stdout_stream___stdout_stream_1.4.0.tgz";
+ path = fetchurl {
+ name = "stdout_stream___stdout_stream_1.4.0.tgz";
+ url = "https://registry.yarnpkg.com/stdout-stream/-/stdout-stream-1.4.0.tgz";
+ sha1 = "a2c7c8587e54d9427ea9edb3ac3f2cd522df378b";
+ };
+ }
+
+ {
+ name = "stream_browserify___stream_browserify_2.0.1.tgz";
+ path = fetchurl {
+ name = "stream_browserify___stream_browserify_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz";
+ sha1 = "66266ee5f9bdb9940a4e4514cafb43bb71e5c9db";
+ };
+ }
+
+ {
+ name = "stream_http___stream_http_2.8.3.tgz";
+ path = fetchurl {
+ name = "stream_http___stream_http_2.8.3.tgz";
+ url = "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz";
+ sha1 = "b2d242469288a5a27ec4fe8933acf623de6514fc";
+ };
+ }
+
+ {
+ name = "strict_uri_encode___strict_uri_encode_1.1.0.tgz";
+ path = fetchurl {
+ name = "strict_uri_encode___strict_uri_encode_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz";
+ sha1 = "279b225df1d582b1f54e65addd4352e18faa0713";
+ };
+ }
+
+ {
+ name = "string_width___string_width_1.0.2.tgz";
+ path = fetchurl {
+ name = "string_width___string_width_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz";
+ sha1 = "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3";
+ };
+ }
+
+ {
+ name = "string_width___string_width_2.1.1.tgz";
+ path = fetchurl {
+ name = "string_width___string_width_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz";
+ sha1 = "ab93f27a8dc13d28cac815c462143a6d9012ae9e";
+ };
+ }
+
+ {
+ name = "string_decoder___string_decoder_1.1.1.tgz";
+ path = fetchurl {
+ name = "string_decoder___string_decoder_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz";
+ sha1 = "9cf1611ba62685d7030ae9e4ba34149c3af03fc8";
+ };
+ }
+
+ {
+ name = "string_decoder___string_decoder_0.10.31.tgz";
+ path = fetchurl {
+ name = "string_decoder___string_decoder_0.10.31.tgz";
+ url = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz";
+ sha1 = "62e203bc41766c6c28c9fc84301dab1c5310fa94";
+ };
+ }
+
+ {
+ name = "stringstream___stringstream_0.0.6.tgz";
+ path = fetchurl {
+ name = "stringstream___stringstream_0.0.6.tgz";
+ url = "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.6.tgz";
+ sha1 = "7880225b0d4ad10e30927d167a1d6f2fd3b33a72";
+ };
+ }
+
+ {
+ name = "strip_ansi___strip_ansi_3.0.1.tgz";
+ path = fetchurl {
+ name = "strip_ansi___strip_ansi_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz";
+ sha1 = "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf";
+ };
+ }
+
+ {
+ name = "strip_ansi___strip_ansi_4.0.0.tgz";
+ path = fetchurl {
+ name = "strip_ansi___strip_ansi_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz";
+ sha1 = "a8479022eb1ac368a871389b635262c505ee368f";
+ };
+ }
+
+ {
+ name = "strip_bom___strip_bom_2.0.0.tgz";
+ path = fetchurl {
+ name = "strip_bom___strip_bom_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz";
+ sha1 = "6219a85616520491f35788bdbf1447a99c7e6b0e";
+ };
+ }
+
+ {
+ name = "strip_bom___strip_bom_3.0.0.tgz";
+ path = fetchurl {
+ name = "strip_bom___strip_bom_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz";
+ sha1 = "2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3";
+ };
+ }
+
+ {
+ name = "strip_eof___strip_eof_1.0.0.tgz";
+ path = fetchurl {
+ name = "strip_eof___strip_eof_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz";
+ sha1 = "bb43ff5598a6eb05d89b59fcd129c983313606bf";
+ };
+ }
+
+ {
+ name = "strip_indent___strip_indent_1.0.1.tgz";
+ path = fetchurl {
+ name = "strip_indent___strip_indent_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz";
+ sha1 = "0c7962a6adefa7bbd4ac366460a638552ae1a0a2";
+ };
+ }
+
+ {
+ name = "strip_json_comments___strip_json_comments_2.0.1.tgz";
+ path = fetchurl {
+ name = "strip_json_comments___strip_json_comments_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz";
+ sha1 = "3c531942e908c2697c0ec344858c286c7ca0a60a";
+ };
+ }
+
+ {
+ name = "style_loader___style_loader_0.13.2.tgz";
+ path = fetchurl {
+ name = "style_loader___style_loader_0.13.2.tgz";
+ url = "https://registry.yarnpkg.com/style-loader/-/style-loader-0.13.2.tgz";
+ sha1 = "74533384cf698c7104c7951150b49717adc2f3bb";
+ };
+ }
+
+ {
+ name = "summernote___summernote_0.8.10.tgz";
+ path = fetchurl {
+ name = "summernote___summernote_0.8.10.tgz";
+ url = "https://registry.yarnpkg.com/summernote/-/summernote-0.8.10.tgz";
+ sha1 = "21a5d7f18a3b07500b58b60d5907417a54897520";
+ };
+ }
+
+ {
+ name = "supports_color___supports_color_2.0.0.tgz";
+ path = fetchurl {
+ name = "supports_color___supports_color_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz";
+ sha1 = "535d045ce6b6363fa40117084629995e9df324c7";
+ };
+ }
+
+ {
+ name = "supports_color___supports_color_3.2.3.tgz";
+ path = fetchurl {
+ name = "supports_color___supports_color_3.2.3.tgz";
+ url = "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz";
+ sha1 = "65ac0504b3954171d8a64946b2ae3cbb8a5f54f6";
+ };
+ }
+
+ {
+ name = "supports_color___supports_color_4.5.0.tgz";
+ path = fetchurl {
+ name = "supports_color___supports_color_4.5.0.tgz";
+ url = "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz";
+ sha1 = "be7a0de484dec5c5cddf8b3d59125044912f635b";
+ };
+ }
+
+ {
+ name = "supports_color___supports_color_5.4.0.tgz";
+ path = fetchurl {
+ name = "supports_color___supports_color_5.4.0.tgz";
+ url = "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz";
+ sha1 = "1c6b337402c2137605efe19f10fec390f6faab54";
+ };
+ }
+
+ {
+ name = "svgo___svgo_0.7.2.tgz";
+ path = fetchurl {
+ name = "svgo___svgo_0.7.2.tgz";
+ url = "https://registry.yarnpkg.com/svgo/-/svgo-0.7.2.tgz";
+ sha1 = "9f5772413952135c6fefbf40afe6a4faa88b4bb5";
+ };
+ }
+
+ {
+ name = "tapable___tapable_0.2.8.tgz";
+ path = fetchurl {
+ name = "tapable___tapable_0.2.8.tgz";
+ url = "https://registry.yarnpkg.com/tapable/-/tapable-0.2.8.tgz";
+ sha1 = "99372a5c999bf2df160afc0d74bed4f47948cd22";
+ };
+ }
+
+ {
+ name = "tar___tar_2.2.1.tgz";
+ path = fetchurl {
+ name = "tar___tar_2.2.1.tgz";
+ url = "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz";
+ sha1 = "8e4d2a256c0e2185c6b18ad694aec968b83cb1d1";
+ };
+ }
+
+ {
+ name = "tar___tar_4.4.4.tgz";
+ path = fetchurl {
+ name = "tar___tar_4.4.4.tgz";
+ url = "https://registry.yarnpkg.com/tar/-/tar-4.4.4.tgz";
+ sha1 = "ec8409fae9f665a4355cc3b4087d0820232bb8cd";
+ };
+ }
+
+ {
+ name = "thunky___thunky_1.0.2.tgz";
+ path = fetchurl {
+ name = "thunky___thunky_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/thunky/-/thunky-1.0.2.tgz";
+ sha1 = "a862e018e3fb1ea2ec3fce5d55605cf57f247371";
+ };
+ }
+
+ {
+ name = "time_stamp___time_stamp_2.0.0.tgz";
+ path = fetchurl {
+ name = "time_stamp___time_stamp_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/time-stamp/-/time-stamp-2.0.0.tgz";
+ sha1 = "95c6a44530e15ba8d6f4a3ecb8c3a3fac46da357";
+ };
+ }
+
+ {
+ name = "timers_browserify___timers_browserify_2.0.10.tgz";
+ path = fetchurl {
+ name = "timers_browserify___timers_browserify_2.0.10.tgz";
+ url = "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.10.tgz";
+ sha1 = "1d28e3d2aadf1d5a5996c4e9f95601cd053480ae";
+ };
+ }
+
+ {
+ name = "to_arraybuffer___to_arraybuffer_1.0.1.tgz";
+ path = fetchurl {
+ name = "to_arraybuffer___to_arraybuffer_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz";
+ sha1 = "7d229b1fcc637e466ca081180836a7aabff83f43";
+ };
+ }
+
+ {
+ name = "to_fast_properties___to_fast_properties_1.0.3.tgz";
+ path = fetchurl {
+ name = "to_fast_properties___to_fast_properties_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz";
+ sha1 = "b83571fa4d8c25b82e231b06e3a3055de4ca1a47";
+ };
+ }
+
+ {
+ name = "to_object_path___to_object_path_0.3.0.tgz";
+ path = fetchurl {
+ name = "to_object_path___to_object_path_0.3.0.tgz";
+ url = "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz";
+ sha1 = "297588b7b0e7e0ac08e04e672f85c1f4999e17af";
+ };
+ }
+
+ {
+ name = "to_regex_range___to_regex_range_2.1.1.tgz";
+ path = fetchurl {
+ name = "to_regex_range___to_regex_range_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz";
+ sha1 = "7c80c17b9dfebe599e27367e0d4dd5590141db38";
+ };
+ }
+
+ {
+ name = "to_regex___to_regex_3.0.2.tgz";
+ path = fetchurl {
+ name = "to_regex___to_regex_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz";
+ sha1 = "13cfdd9b336552f30b51f33a8ae1b42a7a7599ce";
+ };
+ }
+
+ {
+ name = "tough_cookie___tough_cookie_2.3.4.tgz";
+ path = fetchurl {
+ name = "tough_cookie___tough_cookie_2.3.4.tgz";
+ url = "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.4.tgz";
+ sha1 = "ec60cee38ac675063ffc97a5c18970578ee83655";
+ };
+ }
+
+ {
+ name = "trim_newlines___trim_newlines_1.0.0.tgz";
+ path = fetchurl {
+ name = "trim_newlines___trim_newlines_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz";
+ sha1 = "5887966bb582a4503a41eb524f7d35011815a613";
+ };
+ }
+
+ {
+ name = "trim_right___trim_right_1.0.1.tgz";
+ path = fetchurl {
+ name = "trim_right___trim_right_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz";
+ sha1 = "cb2e1203067e0c8de1f614094b9fe45704ea6003";
+ };
+ }
+
+ {
+ name = "true_case_path___true_case_path_1.0.2.tgz";
+ path = fetchurl {
+ name = "true_case_path___true_case_path_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/true-case-path/-/true-case-path-1.0.2.tgz";
+ sha1 = "7ec91130924766c7f573be3020c34f8fdfd00d62";
+ };
+ }
+
+ {
+ name = "tty_browserify___tty_browserify_0.0.0.tgz";
+ path = fetchurl {
+ name = "tty_browserify___tty_browserify_0.0.0.tgz";
+ url = "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz";
+ sha1 = "a157ba402da24e9bf957f9aa69d524eed42901a6";
+ };
+ }
+
+ {
+ name = "tunnel_agent___tunnel_agent_0.6.0.tgz";
+ path = fetchurl {
+ name = "tunnel_agent___tunnel_agent_0.6.0.tgz";
+ url = "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz";
+ sha1 = "27a5dea06b36b04a0a9966774b290868f0fc40fd";
+ };
+ }
+
+ {
+ name = "tweetnacl___tweetnacl_0.14.5.tgz";
+ path = fetchurl {
+ name = "tweetnacl___tweetnacl_0.14.5.tgz";
+ url = "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz";
+ sha1 = "5ae68177f192d4456269d108afa93ff8743f4f64";
+ };
+ }
+
+ {
+ name = "type_is___type_is_1.6.16.tgz";
+ path = fetchurl {
+ name = "type_is___type_is_1.6.16.tgz";
+ url = "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz";
+ sha1 = "f89ce341541c672b25ee7ae3c73dee3b2be50194";
+ };
+ }
+
+ {
+ name = "uglify_js___uglify_js_2.8.29.tgz";
+ path = fetchurl {
+ name = "uglify_js___uglify_js_2.8.29.tgz";
+ url = "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz";
+ sha1 = "29c5733148057bb4e1f75df35b7a9cb72e6a59dd";
+ };
+ }
+
+ {
+ name = "uglify_to_browserify___uglify_to_browserify_1.0.2.tgz";
+ path = fetchurl {
+ name = "uglify_to_browserify___uglify_to_browserify_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz";
+ sha1 = "6e0924d6bda6b5afe349e39a6d632850a0f882b7";
+ };
+ }
+
+ {
+ name = "uglifyjs_webpack_plugin___uglifyjs_webpack_plugin_0.4.6.tgz";
+ path = fetchurl {
+ name = "uglifyjs_webpack_plugin___uglifyjs_webpack_plugin_0.4.6.tgz";
+ url = "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz";
+ sha1 = "b951f4abb6bd617e66f63eb891498e391763e309";
+ };
+ }
+
+ {
+ name = "union_value___union_value_1.0.0.tgz";
+ path = fetchurl {
+ name = "union_value___union_value_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz";
+ sha1 = "5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4";
+ };
+ }
+
+ {
+ name = "uniq___uniq_1.0.1.tgz";
+ path = fetchurl {
+ name = "uniq___uniq_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz";
+ sha1 = "b31c5ae8254844a3a8281541ce2b04b865a734ff";
+ };
+ }
+
+ {
+ name = "uniqs___uniqs_2.0.0.tgz";
+ path = fetchurl {
+ name = "uniqs___uniqs_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz";
+ sha1 = "ffede4b36b25290696e6e165d4a59edb998e6b02";
+ };
+ }
+
+ {
+ name = "unpipe___unpipe_1.0.0.tgz";
+ path = fetchurl {
+ name = "unpipe___unpipe_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz";
+ sha1 = "b2bf4ee8514aae6165b4817829d21b2ef49904ec";
+ };
+ }
+
+ {
+ name = "unset_value___unset_value_1.0.0.tgz";
+ path = fetchurl {
+ name = "unset_value___unset_value_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz";
+ sha1 = "8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559";
+ };
+ }
+
+ {
+ name = "upath___upath_1.1.0.tgz";
+ path = fetchurl {
+ name = "upath___upath_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/upath/-/upath-1.1.0.tgz";
+ sha1 = "35256597e46a581db4793d0ce47fa9aebfc9fabd";
+ };
+ }
+
+ {
+ name = "uri_js___uri_js_4.2.2.tgz";
+ path = fetchurl {
+ name = "uri_js___uri_js_4.2.2.tgz";
+ url = "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz";
+ sha1 = "94c540e1ff772956e2299507c010aea6c8838eb0";
+ };
+ }
+
+ {
+ name = "urix___urix_0.1.0.tgz";
+ path = fetchurl {
+ name = "urix___urix_0.1.0.tgz";
+ url = "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz";
+ sha1 = "da937f7a62e21fec1fd18d49b35c2935067a6c72";
+ };
+ }
+
+ {
+ name = "url_parse___url_parse_1.4.1.tgz";
+ path = fetchurl {
+ name = "url_parse___url_parse_1.4.1.tgz";
+ url = "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.1.tgz";
+ sha1 = "4dec9dad3dc8585f862fed461d2e19bbf623df30";
+ };
+ }
+
+ {
+ name = "url___url_0.11.0.tgz";
+ path = fetchurl {
+ name = "url___url_0.11.0.tgz";
+ url = "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz";
+ sha1 = "3838e97cfc60521eb73c525a8e55bfdd9e2e28f1";
+ };
+ }
+
+ {
+ name = "use___use_3.1.1.tgz";
+ path = fetchurl {
+ name = "use___use_3.1.1.tgz";
+ url = "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz";
+ sha1 = "d50c8cac79a19fbc20f2911f56eb973f4e10070f";
+ };
+ }
+
+ {
+ name = "util_deprecate___util_deprecate_1.0.2.tgz";
+ path = fetchurl {
+ name = "util_deprecate___util_deprecate_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz";
+ sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf";
+ };
+ }
+
+ {
+ name = "util___util_0.10.3.tgz";
+ path = fetchurl {
+ name = "util___util_0.10.3.tgz";
+ url = "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz";
+ sha1 = "7afb1afe50805246489e3db7fe0ed379336ac0f9";
+ };
+ }
+
+ {
+ name = "util___util_0.10.4.tgz";
+ path = fetchurl {
+ name = "util___util_0.10.4.tgz";
+ url = "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz";
+ sha1 = "3aa0125bfe668a4672de58857d3ace27ecb76901";
+ };
+ }
+
+ {
+ name = "utila___utila_0.3.3.tgz";
+ path = fetchurl {
+ name = "utila___utila_0.3.3.tgz";
+ url = "https://registry.yarnpkg.com/utila/-/utila-0.3.3.tgz";
+ sha1 = "d7e8e7d7e309107092b05f8d9688824d633a4226";
+ };
+ }
+
+ {
+ name = "utila___utila_0.4.0.tgz";
+ path = fetchurl {
+ name = "utila___utila_0.4.0.tgz";
+ url = "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz";
+ sha1 = "8a16a05d445657a3aea5eecc5b12a4fa5379772c";
+ };
+ }
+
+ {
+ name = "utils_merge___utils_merge_1.0.1.tgz";
+ path = fetchurl {
+ name = "utils_merge___utils_merge_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz";
+ sha1 = "9f95710f50a267947b2ccc124741c1028427e713";
+ };
+ }
+
+ {
+ name = "uuid___uuid_3.3.2.tgz";
+ path = fetchurl {
+ name = "uuid___uuid_3.3.2.tgz";
+ url = "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz";
+ sha1 = "1b4af4955eb3077c501c23872fc6513811587131";
+ };
+ }
+
+ {
+ name = "validate_npm_package_license___validate_npm_package_license_3.0.3.tgz";
+ path = fetchurl {
+ name = "validate_npm_package_license___validate_npm_package_license_3.0.3.tgz";
+ url = "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz";
+ sha1 = "81643bcbef1bdfecd4623793dc4648948ba98338";
+ };
+ }
+
+ {
+ name = "vary___vary_1.1.2.tgz";
+ path = fetchurl {
+ name = "vary___vary_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz";
+ sha1 = "2299f02c6ded30d4a5961b0b9f74524a18f634fc";
+ };
+ }
+
+ {
+ name = "vendors___vendors_1.0.2.tgz";
+ path = fetchurl {
+ name = "vendors___vendors_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/vendors/-/vendors-1.0.2.tgz";
+ sha1 = "7fcb5eef9f5623b156bcea89ec37d63676f21801";
+ };
+ }
+
+ {
+ name = "verror___verror_1.10.0.tgz";
+ path = fetchurl {
+ name = "verror___verror_1.10.0.tgz";
+ url = "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz";
+ sha1 = "3a105ca17053af55d6e270c1f8288682e18da400";
+ };
+ }
+
+ {
+ name = "vm_browserify___vm_browserify_0.0.4.tgz";
+ path = fetchurl {
+ name = "vm_browserify___vm_browserify_0.0.4.tgz";
+ url = "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz";
+ sha1 = "5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73";
+ };
+ }
+
+ {
+ name = "watchpack___watchpack_1.6.0.tgz";
+ path = fetchurl {
+ name = "watchpack___watchpack_1.6.0.tgz";
+ url = "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz";
+ sha1 = "4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00";
+ };
+ }
+
+ {
+ name = "wbuf___wbuf_1.7.3.tgz";
+ path = fetchurl {
+ name = "wbuf___wbuf_1.7.3.tgz";
+ url = "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz";
+ sha1 = "c1d8d149316d3ea852848895cb6a0bfe887b87df";
+ };
+ }
+
+ {
+ name = "webpack_chunk_hash___webpack_chunk_hash_0.5.0.tgz";
+ path = fetchurl {
+ name = "webpack_chunk_hash___webpack_chunk_hash_0.5.0.tgz";
+ url = "https://registry.yarnpkg.com/webpack-chunk-hash/-/webpack-chunk-hash-0.5.0.tgz";
+ sha1 = "1dba38203d73c1e6ab069b6810a5a37402399dec";
+ };
+ }
+
+ {
+ name = "webpack_dev_middleware___webpack_dev_middleware_1.12.2.tgz";
+ path = fetchurl {
+ name = "webpack_dev_middleware___webpack_dev_middleware_1.12.2.tgz";
+ url = "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-1.12.2.tgz";
+ sha1 = "f8fc1120ce3b4fc5680ceecb43d777966b21105e";
+ };
+ }
+
+ {
+ name = "webpack_dev_server___webpack_dev_server_2.11.2.tgz";
+ path = fetchurl {
+ name = "webpack_dev_server___webpack_dev_server_2.11.2.tgz";
+ url = "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-2.11.2.tgz";
+ sha1 = "1f4f4c78bf1895378f376815910812daf79a216f";
+ };
+ }
+
+ {
+ name = "webpack_sources___webpack_sources_1.1.0.tgz";
+ path = fetchurl {
+ name = "webpack_sources___webpack_sources_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.1.0.tgz";
+ sha1 = "a101ebae59d6507354d71d8013950a3a8b7a5a54";
+ };
+ }
+
+ {
+ name = "webpack___webpack_3.12.0.tgz";
+ path = fetchurl {
+ name = "webpack___webpack_3.12.0.tgz";
+ url = "https://registry.yarnpkg.com/webpack/-/webpack-3.12.0.tgz";
+ sha1 = "3f9e34360370602fcf639e97939db486f4ec0d74";
+ };
+ }
+
+ {
+ name = "websocket_driver___websocket_driver_0.7.0.tgz";
+ path = fetchurl {
+ name = "websocket_driver___websocket_driver_0.7.0.tgz";
+ url = "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.0.tgz";
+ sha1 = "0caf9d2d755d93aee049d4bdd0d3fe2cca2a24eb";
+ };
+ }
+
+ {
+ name = "websocket_extensions___websocket_extensions_0.1.3.tgz";
+ path = fetchurl {
+ name = "websocket_extensions___websocket_extensions_0.1.3.tgz";
+ url = "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz";
+ sha1 = "5d2ff22977003ec687a4b87073dfbbac146ccf29";
+ };
+ }
+
+ {
+ name = "whet.extend___whet.extend_0.9.9.tgz";
+ path = fetchurl {
+ name = "whet.extend___whet.extend_0.9.9.tgz";
+ url = "https://registry.yarnpkg.com/whet.extend/-/whet.extend-0.9.9.tgz";
+ sha1 = "f877d5bf648c97e5aa542fadc16d6a259b9c11a1";
+ };
+ }
+
+ {
+ name = "which_module___which_module_1.0.0.tgz";
+ path = fetchurl {
+ name = "which_module___which_module_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz";
+ sha1 = "bba63ca861948994ff307736089e3b96026c2a4f";
+ };
+ }
+
+ {
+ name = "which_module___which_module_2.0.0.tgz";
+ path = fetchurl {
+ name = "which_module___which_module_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz";
+ sha1 = "d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a";
+ };
+ }
+
+ {
+ name = "which___which_1.3.1.tgz";
+ path = fetchurl {
+ name = "which___which_1.3.1.tgz";
+ url = "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz";
+ sha1 = "a45043d54f5805316da8d62f9f50918d3da70b0a";
+ };
+ }
+
+ {
+ name = "wide_align___wide_align_1.1.3.tgz";
+ path = fetchurl {
+ name = "wide_align___wide_align_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz";
+ sha1 = "ae074e6bdc0c14a431e804e624549c633b000457";
+ };
+ }
+
+ {
+ name = "window_size___window_size_0.1.0.tgz";
+ path = fetchurl {
+ name = "window_size___window_size_0.1.0.tgz";
+ url = "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz";
+ sha1 = "5438cd2ea93b202efa3a19fe8887aee7c94f9c9d";
+ };
+ }
+
+ {
+ name = "wordwrap___wordwrap_0.0.2.tgz";
+ path = fetchurl {
+ name = "wordwrap___wordwrap_0.0.2.tgz";
+ url = "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz";
+ sha1 = "b79669bb42ecb409f83d583cad52ca17eaa1643f";
+ };
+ }
+
+ {
+ name = "wrap_ansi___wrap_ansi_2.1.0.tgz";
+ path = fetchurl {
+ name = "wrap_ansi___wrap_ansi_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz";
+ sha1 = "d8fc3d284dd05794fe84973caecdd1cf824fdd85";
+ };
+ }
+
+ {
+ name = "wrappy___wrappy_1.0.2.tgz";
+ path = fetchurl {
+ name = "wrappy___wrappy_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz";
+ sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f";
+ };
+ }
+
+ {
+ name = "xtend___xtend_4.0.1.tgz";
+ path = fetchurl {
+ name = "xtend___xtend_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz";
+ sha1 = "a5c6d532be656e23db820efb943a1f04998d63af";
+ };
+ }
+
+ {
+ name = "y18n___y18n_3.2.1.tgz";
+ path = fetchurl {
+ name = "y18n___y18n_3.2.1.tgz";
+ url = "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz";
+ sha1 = "6d15fba884c08679c0d77e88e7759e811e07fa41";
+ };
+ }
+
+ {
+ name = "yallist___yallist_2.1.2.tgz";
+ path = fetchurl {
+ name = "yallist___yallist_2.1.2.tgz";
+ url = "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz";
+ sha1 = "1c11f9218f076089a47dd512f93c6699a6a81d52";
+ };
+ }
+
+ {
+ name = "yallist___yallist_3.0.2.tgz";
+ path = fetchurl {
+ name = "yallist___yallist_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz";
+ sha1 = "8452b4bb7e83c7c188d8041c1a837c773d6d8bb9";
+ };
+ }
+
+ {
+ name = "yargs_parser___yargs_parser_4.2.1.tgz";
+ path = fetchurl {
+ name = "yargs_parser___yargs_parser_4.2.1.tgz";
+ url = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-4.2.1.tgz";
+ sha1 = "29cceac0dc4f03c6c87b4a9f217dd18c9f74871c";
+ };
+ }
+
+ {
+ name = "yargs_parser___yargs_parser_5.0.0.tgz";
+ path = fetchurl {
+ name = "yargs_parser___yargs_parser_5.0.0.tgz";
+ url = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz";
+ sha1 = "275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a";
+ };
+ }
+
+ {
+ name = "yargs_parser___yargs_parser_7.0.0.tgz";
+ path = fetchurl {
+ name = "yargs_parser___yargs_parser_7.0.0.tgz";
+ url = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz";
+ sha1 = "8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9";
+ };
+ }
+
+ {
+ name = "yargs___yargs_6.6.0.tgz";
+ path = fetchurl {
+ name = "yargs___yargs_6.6.0.tgz";
+ url = "https://registry.yarnpkg.com/yargs/-/yargs-6.6.0.tgz";
+ sha1 = "782ec21ef403345f830a808ca3d513af56065208";
+ };
+ }
+
+ {
+ name = "yargs___yargs_7.1.0.tgz";
+ path = fetchurl {
+ name = "yargs___yargs_7.1.0.tgz";
+ url = "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz";
+ sha1 = "6ba318eb16961727f5d284f8ea003e8d6154d0c8";
+ };
+ }
+
+ {
+ name = "yargs___yargs_8.0.2.tgz";
+ path = fetchurl {
+ name = "yargs___yargs_8.0.2.tgz";
+ url = "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz";
+ sha1 = "6299a9055b1cefc969ff7e79c1d918dceb22c360";
+ };
+ }
+
+ {
+ name = "yargs___yargs_3.10.0.tgz";
+ path = fetchurl {
+ name = "yargs___yargs_3.10.0.tgz";
+ url = "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz";
+ sha1 = "f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1";
+ };
+ }
+ ];
+}
--- /dev/null
+{
+ "tag": "96fc4eb-master",
+ "meta": {
+ "name": "chloe",
+ "url": "gitolite@git.immae.eu:perso/Immae/Sites/Chloe",
+ "branch": "master"
+ },
+ "git": {
+ "url": "gitolite@git.immae.eu:perso/Immae/Sites/Chloe",
+ "rev": "96fc4eb0099a29b0f9a58fb4eaec4bf14ac65f0a",
+ "sha256": "0mf15j6z86j2smm2k360cmm5djhcjbs9949pznwi57kw97vkm1s3",
+ "fetchSubmodules": true
+ }
+}
--- /dev/null
+{ environment ? "prod"
+, varDir ? "/var/lib/chloe_${environment}"
+, spip, stdenv, mylibs, sassc }:
+let
+ siteDir = stdenv.mkDerivation (mylibs.fetchedGitPrivate ./chloe.json // rec {
+ buildPhase = ''
+ make
+ '';
+ installPhase = ''
+ cp -a . $out
+ '';
+ buildInputs = [ sassc ];
+ });
+in
+spip.override {
+ ldap = true;
+ siteName = "chloe";
+ inherit environment siteDir;
+}
--- /dev/null
+{
+ "tag": "dfcdce0-master",
+ "meta": {
+ "name": "connexionswing",
+ "url": "gitolite@git.immae.eu:perso/Immae/Projets/Connexionswing",
+ "branch": "master"
+ },
+ "git": {
+ "url": "gitolite@git.immae.eu:perso/Immae/Projets/Connexionswing",
+ "rev": "dfcdce04d11a75f5e850e6dc3a049de4517fc107",
+ "sha256": "0ddirwxs2ify3bni6nv787nb31ckyn2hsrcq8g01b5cfv5havkwq",
+ "fetchSubmodules": true
+ }
+}
--- /dev/null
+{ environment ? "prod"
+, varDir ? "/var/lib/connexionswing_${environment}"
+, composerEnv, fetchurl, fetchgit, mylibs }:
+let
+ app = composerEnv.buildPackage (
+ import ./php-packages.nix { inherit composerEnv fetchurl fetchgit; } //
+ mylibs.fetchedGitPrivate ./connexionswing.json //
+ rec {
+ noDev = (environment == "prod");
+ preInstall = ''
+ export SYMFONY_ENV="${environment}"
+ '';
+ postInstall = ''
+ cd $out
+ ${if environment == "prod" then "php ./bin/console assetic:dump --env=prod --no-debug" else ""}
+ rm app/config/parameters.yml
+ ln -sf /var/secrets/webapps/${environment}-connexionswing app/config/parameters.yml
+ rm -rf var/{logs,cache}
+ ln -sf ${varDir}/var/{logs,cache} var/
+ ln -sf ${varDir}/{medias,uploads} web/images/
+ '';
+ passthru = {
+ inherit varDir environment;
+ webRoot = "${app}/web";
+ };
+ });
+in app
--- /dev/null
+# Generated with composer2nix and adapted to return only the list of
+# packages
+{ composerEnv, fetchurl, fetchgit ? null }:
+{
+ packages = {
+ "behat/transliterator" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "behat-transliterator-826ce7e9c2a6664c0d1f381cbb38b1fb80a7ee2c";
+ src = fetchurl {
+ url = https://api.github.com/repos/Behat/Transliterator/zipball/826ce7e9c2a6664c0d1f381cbb38b1fb80a7ee2c;
+ sha256 = "1mgc9azx79fkrxahji3xwbgqhlcnvh3xk6llqdvhjb7vgzj4bqq0";
+ };
+ };
+ };
+ "components/bootstrap" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "components-bootstrap-670295b9d6170a79acc8586a15e729bf24128275";
+ src = fetchurl {
+ url = https://api.github.com/repos/components/bootstrap/zipball/670295b9d6170a79acc8586a15e729bf24128275;
+ sha256 = "0lcq9cjnywvf1nd8k99flgcf2dmfgyyxzsvcpip8xiibmh5x04p9";
+ };
+ };
+ };
+ "components/jquery" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "components-jquery-5dd7297d7603e11e53bdcca2a71074d92de37b8f";
+ src = fetchurl {
+ url = https://api.github.com/repos/components/jquery/zipball/5dd7297d7603e11e53bdcca2a71074d92de37b8f;
+ sha256 = "1maplw3yic1pzbwwl2amjlivipsi1w0r8bq7i0mmjaqf7wij506i";
+ };
+ };
+ };
+ "components/jqueryui" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "components-jqueryui-44ecf3794cc56b65954cc19737234a3119d036cc";
+ src = fetchurl {
+ url = https://api.github.com/repos/components/jqueryui/zipball/44ecf3794cc56b65954cc19737234a3119d036cc;
+ sha256 = "1y0ppxk44jkxbh38i05sg0zcgk927s5wy6sjngwr5qifibqbcbhk";
+ };
+ };
+ };
+ "composer/ca-bundle" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "composer-ca-bundle-d2c0a83b7533d6912e8d516756ebd34f893e9169";
+ src = fetchurl {
+ url = https://api.github.com/repos/composer/ca-bundle/zipball/d2c0a83b7533d6912e8d516756ebd34f893e9169;
+ sha256 = "1as399dzrfbjnifb87j1g5cvrbacyddbay8fv59i56xx1bdq7lwc";
+ };
+ };
+ };
+ "doctrine/annotations" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-annotations-54cacc9b81758b14e3ce750f205a393d52339e97";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/annotations/zipball/54cacc9b81758b14e3ce750f205a393d52339e97;
+ sha256 = "1wi5skihqbcinlkrkr15nmmvqkn2gydqib8xl232abdvfq1q0w24";
+ };
+ };
+ };
+ "doctrine/cache" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-cache-eb152c5100571c7a45470ff2a35095ab3f3b900b";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/cache/zipball/eb152c5100571c7a45470ff2a35095ab3f3b900b;
+ sha256 = "0iq0qqv1smlqz63jhj2fpjy54c5dwfwxyf5c89iky6i0yb81gwyd";
+ };
+ };
+ };
+ "doctrine/collections" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-collections-1a4fb7e902202c33cce8c55989b945612943c2ba";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/collections/zipball/1a4fb7e902202c33cce8c55989b945612943c2ba;
+ sha256 = "0fkiwkx7zbmfnh4p21za807lh1n7g1f4lpgy8y59g4r5krvpl90w";
+ };
+ };
+ };
+ "doctrine/common" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-common-4acb8f89626baafede6ee5475bc5844096eba8a9";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/common/zipball/4acb8f89626baafede6ee5475bc5844096eba8a9;
+ sha256 = "0qjqframvg81z3lwqaj5haanqj9v3dfbj170pxmwlgmrfsbr16zh";
+ };
+ };
+ };
+ "doctrine/dbal" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-dbal-729340d8d1eec8f01bff708e12e449a3415af873";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/dbal/zipball/729340d8d1eec8f01bff708e12e449a3415af873;
+ sha256 = "184p8h0n6mcm0y6vfyh0z6qcxmmf8h5z4vdvxd4ycmx0531lnhj3";
+ };
+ };
+ };
+ "doctrine/doctrine-bundle" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-doctrine-bundle-703fad32e4c8cbe609caf45a71a1d4266c830f0f";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/DoctrineBundle/zipball/703fad32e4c8cbe609caf45a71a1d4266c830f0f;
+ sha256 = "0v2f63j22i3im8jbmv7spi8j42fay6dnxjvbxnbwj190ajxl6sdp";
+ };
+ };
+ };
+ "doctrine/doctrine-cache-bundle" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-doctrine-cache-bundle-4c8e363f96427924e7e519c5b5119b4f54512697";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/DoctrineCacheBundle/zipball/4c8e363f96427924e7e519c5b5119b4f54512697;
+ sha256 = "1irm04iijzq6gziknwyb10a9s0xbzh04xs5i2d6aac86cc29187c";
+ };
+ };
+ };
+ "doctrine/doctrine-migrations-bundle" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-doctrine-migrations-bundle-a9e506369f931351a2a6dd2aef588a822802b1b7";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/DoctrineMigrationsBundle/zipball/a9e506369f931351a2a6dd2aef588a822802b1b7;
+ sha256 = "1jgrqsgdwcm2g8rml76qr6b19s1vxfbnrp43qr6n1g9kbx7y9wg9";
+ };
+ };
+ };
+ "doctrine/inflector" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-inflector-90b2128806bfde671b6952ab8bea493942c1fdae";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/inflector/zipball/90b2128806bfde671b6952ab8bea493942c1fdae;
+ sha256 = "01vmclj3k7xil51jg329fznshh8d07pvm4mr89lvfn1d7fyrq6qw";
+ };
+ };
+ };
+ "doctrine/instantiator" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-instantiator-8e884e78f9f0eb1329e445619e04456e64d8051d";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d;
+ sha256 = "15dcja45rnwya431pcm826l68k1g8f1fabl7rih69alcdyvdlln4";
+ };
+ };
+ };
+ "doctrine/lexer" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-lexer-83893c552fd2045dd78aef794c31e694c37c0b8c";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/lexer/zipball/83893c552fd2045dd78aef794c31e694c37c0b8c;
+ sha256 = "0cyh3vwcl163cx1vrcwmhlh5jg9h47xwiqgzc6rwscxw0ppd1v74";
+ };
+ };
+ };
+ "doctrine/migrations" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-migrations-c81147c0f2938a6566594455367e095150547f72";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/migrations/zipball/c81147c0f2938a6566594455367e095150547f72;
+ sha256 = "0x8hvxbm3f40sx25nq8zlh1kr936pagghzp89l0gdy5bar7cdzi5";
+ };
+ };
+ };
+ "doctrine/orm" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-orm-810a7baf81462a5ddf10e8baa8cb94b6eec02754";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/doctrine2/zipball/810a7baf81462a5ddf10e8baa8cb94b6eec02754;
+ sha256 = "1hmkc7917kgnav9hmlgvlp7qwm3zjj910ci71g9yqwjh6s28wrf1";
+ };
+ };
+ };
+ "fig/link-util" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "fig-link-util-1a07821801a148be4add11ab0603e4af55a72fac";
+ src = fetchurl {
+ url = https://api.github.com/repos/php-fig/link-util/zipball/1a07821801a148be4add11ab0603e4af55a72fac;
+ sha256 = "0ky1pq4a17br5zvcychjghgwr6wpkgp409hdv0ljdk3ks90w5w64";
+ };
+ };
+ };
+ "friendsofsymfony/jsrouting-bundle" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "friendsofsymfony-jsrouting-bundle-49c1069132dcef371fb526351569deabeb6f0d8e";
+ src = fetchurl {
+ url = https://api.github.com/repos/FriendsOfSymfony/FOSJsRoutingBundle/zipball/49c1069132dcef371fb526351569deabeb6f0d8e;
+ sha256 = "0ymmxhxbjnzj8bk3zq55vq0xvsaq82348v321gy2jyi90d19p5j7";
+ };
+ };
+ };
+ "gedmo/doctrine-extensions" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "gedmo-doctrine-extensions-1e400fbd05b7e5f912f55fe95805450f7d3bed60";
+ src = fetchurl {
+ url = https://api.github.com/repos/Atlantic18/DoctrineExtensions/zipball/1e400fbd05b7e5f912f55fe95805450f7d3bed60;
+ sha256 = "0mpdpmar1hxamz2x2iqjickf1msjh67kkfpsblnklxk5izjwzhxx";
+ };
+ };
+ };
+ "immae/connexionswing-ckeditor-component" = {
+ targetDir = "";
+ src = fetchgit {
+ name = "immae-connexionswing-ckeditor-component-3b35bd273a79f6b01fda7a246aed64aca147ea7a";
+ url = "https://git.immae.eu/perso/Immae/Projets/packagist/connexionswing-ckeditor-component.git";
+ rev = "3b35bd273a79f6b01fda7a246aed64aca147ea7a";
+ sha256 = "1w0y6k28ci73n0db9gwvqg7grzvh1z718ys9v1ik8cla7zw83bni";
+ };
+ };
+ "immae/jquery-touchswipe" = {
+ targetDir = "";
+ src = fetchgit {
+ name = "immae-jquery-touchswipe-3e15949df974d6612d76dc9ee75cd976dbcc2114";
+ url = "https://git.immae.eu/perso/Immae/Projets/packagist/jquery-touchswipe.git";
+ rev = "3e15949df974d6612d76dc9ee75cd976dbcc2114";
+ sha256 = "1pnvki1j3a65cdwwqs0id790ni813lh3r0m7556gdn0hsqa1cc4d";
+ };
+ };
+ "incenteev/composer-parameter-handler" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "incenteev-composer-parameter-handler-933c45a34814f27f2345c11c37d46b3ca7303550";
+ src = fetchurl {
+ url = https://api.github.com/repos/Incenteev/ParameterHandler/zipball/933c45a34814f27f2345c11c37d46b3ca7303550;
+ sha256 = "1zqdwlcl790kjyz4rkpva35xkfsp8kslds82fzznj0yigkgnbifm";
+ };
+ };
+ };
+ "jdorn/sql-formatter" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "jdorn-sql-formatter-64990d96e0959dff8e059dfcdc1af130728d92bc";
+ src = fetchurl {
+ url = https://api.github.com/repos/jdorn/sql-formatter/zipball/64990d96e0959dff8e059dfcdc1af130728d92bc;
+ sha256 = "1dnmkm8mxylvxjwi0bdkzrlklncqx92fa4fwqp5bh2ypj8gaagzi";
+ };
+ };
+ };
+ "kriswallsmith/assetic" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "kriswallsmith-assetic-e911c437dbdf006a8f62c2f59b15b2d69a5e0aa1";
+ src = fetchurl {
+ url = https://api.github.com/repos/kriswallsmith/assetic/zipball/e911c437dbdf006a8f62c2f59b15b2d69a5e0aa1;
+ sha256 = "1dqk4zvx8fgqf8rb81sj9bipl5431jib2b9kcvxyig5fw99irpf8";
+ };
+ };
+ };
+ "monolog/monolog" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "monolog-monolog-fd8c787753b3a2ad11bc60c063cff1358a32a3b4";
+ src = fetchurl {
+ url = https://api.github.com/repos/Seldaek/monolog/zipball/fd8c787753b3a2ad11bc60c063cff1358a32a3b4;
+ sha256 = "0avf3y8raw23krwdb7kw9qb5bsr5ls4i7qd2vh7hcds3qjixg3h9";
+ };
+ };
+ };
+ "ocramius/proxy-manager" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "ocramius-proxy-manager-57e9272ec0e8deccf09421596e0e2252df440e11";
+ src = fetchurl {
+ url = https://api.github.com/repos/Ocramius/ProxyManager/zipball/57e9272ec0e8deccf09421596e0e2252df440e11;
+ sha256 = "10crhcnhz42b01i6lv6ysgc7awp7yw82p4i2a4sg6bjihw677yps";
+ };
+ };
+ };
+ "paragonie/random_compat" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "paragonie-random_compat-258c89a6b97de7dfaf5b8c7607d0478e236b04fb";
+ src = fetchurl {
+ url = https://api.github.com/repos/paragonie/random_compat/zipball/258c89a6b97de7dfaf5b8c7607d0478e236b04fb;
+ sha256 = "11arrici2mgfj7r847wm423pqrvfj9wn9jcgyxnq4rzyahaxz5l1";
+ };
+ };
+ };
+ "psr/cache" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "psr-cache-d11b50ad223250cf17b86e38383413f5a6764bf8";
+ src = fetchurl {
+ url = https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8;
+ sha256 = "06i2k3dx3b4lgn9a4v1dlgv8l9wcl4kl7vzhh63lbji0q96hv8qz";
+ };
+ };
+ };
+ "psr/container" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "psr-container-b7ce3b176482dbbc1245ebf52b181af44c2cf55f";
+ src = fetchurl {
+ url = https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f;
+ sha256 = "0rkz64vgwb0gfi09klvgay4qnw993l1dc03vyip7d7m2zxi6cy4j";
+ };
+ };
+ };
+ "psr/link" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "psr-link-eea8e8662d5cd3ae4517c9b864493f59fca95562";
+ src = fetchurl {
+ url = https://api.github.com/repos/php-fig/link/zipball/eea8e8662d5cd3ae4517c9b864493f59fca95562;
+ sha256 = "091k4p9irkqnmq9b0p792wz1hb7dm4rafpjilw9im9xhsxgkmr13";
+ };
+ };
+ };
+ "psr/log" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "psr-log-4ebe3a8bf773a19edfe0a84b6585ba3d401b724d";
+ src = fetchurl {
+ url = https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d;
+ sha256 = "1mlcv17fjw39bjpck176ah1z393b6pnbw3jqhhrblj27c70785md";
+ };
+ };
+ };
+ "psr/simple-cache" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "psr-simple-cache-408d5eafb83c57f6365a3ca330ff23aa4a5fa39b";
+ src = fetchurl {
+ url = https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b;
+ sha256 = "1djgzclkamjxi9jy4m9ggfzgq1vqxaga2ip7l3cj88p7rwkzjxgw";
+ };
+ };
+ };
+ "ricbra/robots-txt-bundle" = {
+ targetDir = "Ricbra/Bundle/RobotsTxtBundle";
+ src = composerEnv.buildZipPackage {
+ name = "ricbra-robots-txt-bundle-80d122a708893a762041464890e59a76babd6c22";
+ src = fetchurl {
+ url = https://api.github.com/repos/ricbra/robots-txt-bundle/zipball/80d122a708893a762041464890e59a76babd6c22;
+ sha256 = "0w3lfzy1ys0bwl3shy4ychldfd711w1p2y13i1az2z2gh731d0ad";
+ };
+ };
+ };
+ "robloach/component-installer" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "robloach-component-installer-908a859aa7c4949ba9ad67091e67bac10b66d3d7";
+ src = fetchurl {
+ url = https://api.github.com/repos/RobLoach/component-installer/zipball/908a859aa7c4949ba9ad67091e67bac10b66d3d7;
+ sha256 = "19y5sv4k338bihzmm8iac6q43r18vxhmbpvrdhz8jn39r51ampq9";
+ };
+ };
+ };
+ "sensio/distribution-bundle" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "sensio-distribution-bundle-eb6266b3b472e4002538610b28a0a04bcf94891a";
+ src = fetchurl {
+ url = https://api.github.com/repos/sensiolabs/SensioDistributionBundle/zipball/eb6266b3b472e4002538610b28a0a04bcf94891a;
+ sha256 = "0wyffqj924lz9cv0vbahyngjw1g850v0p34swygzzgp3cr0ank13";
+ };
+ };
+ };
+ "sensio/framework-extra-bundle" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "sensio-framework-extra-bundle-bb907234df776b68922eb4b25bfa061683597b6a";
+ src = fetchurl {
+ url = https://api.github.com/repos/sensiolabs/SensioFrameworkExtraBundle/zipball/bb907234df776b68922eb4b25bfa061683597b6a;
+ sha256 = "011hcljjcfq5qy4a7mlf0hwqxyb58yci40ini0n5rqandcyk2nck";
+ };
+ };
+ };
+ "sensiolabs/security-checker" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "sensiolabs-security-checker-dc270d5fec418cc6ac983671dba5d80ffaffb142";
+ src = fetchurl {
+ url = https://api.github.com/repos/sensiolabs/security-checker/zipball/dc270d5fec418cc6ac983671dba5d80ffaffb142;
+ sha256 = "0fnshyd6f8j91a7y604nh6sqgscjl48mfa0727g2r4hkdfz8hpd1";
+ };
+ };
+ };
+ "swiftmailer/swiftmailer" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "swiftmailer-swiftmailer-7ffc1ea296ed14bf8260b6ef11b80208dbadba91";
+ src = fetchurl {
+ url = https://api.github.com/repos/swiftmailer/swiftmailer/zipball/7ffc1ea296ed14bf8260b6ef11b80208dbadba91;
+ sha256 = "1vl5pzgvr2yfrj1yfs02mi917b0gr56v76ibi40r51a3346zhp6v";
+ };
+ };
+ };
+ "symfony/assetic-bundle" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-assetic-bundle-2e0a23a4874838e26de6f025e02fc63328921a4c";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/assetic-bundle/zipball/2e0a23a4874838e26de6f025e02fc63328921a4c;
+ sha256 = "17rxrkyzxa6x5nn7qhhhdgx4z0nlznnq5fifza4wv9znca8bbwyc";
+ };
+ };
+ };
+ "symfony/monolog-bundle" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-monolog-bundle-8781649349fe418d51d194f8c9d212c0b97c40dd";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/monolog-bundle/zipball/8781649349fe418d51d194f8c9d212c0b97c40dd;
+ sha256 = "0wcqhg1vfdj3mxacr3fxpgqwy1rk9znjg9bmzx4jymk8l16i7bq8";
+ };
+ };
+ };
+ "symfony/polyfill-apcu" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-polyfill-apcu-9b83bd010112ec196410849e840d9b9fefcb15ad";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/polyfill-apcu/zipball/9b83bd010112ec196410849e840d9b9fefcb15ad;
+ sha256 = "0iiiqbn0bs0zqc95nz8l1qa5ysy0iifx4f27r9wnhzsh6f1h02mv";
+ };
+ };
+ };
+ "symfony/polyfill-intl-icu" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-polyfill-intl-icu-80ee17ae83c10cd513e5144f91a73607a21edb4e";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/80ee17ae83c10cd513e5144f91a73607a21edb4e;
+ sha256 = "1hck9bn8zfb1pmx2yccf4w5dd9rbmvwii7hncin6px6nasi6wzvv";
+ };
+ };
+ };
+ "symfony/polyfill-mbstring" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-polyfill-mbstring-3296adf6a6454a050679cde90f95350ad604b171";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/polyfill-mbstring/zipball/3296adf6a6454a050679cde90f95350ad604b171;
+ sha256 = "02wyx9fjx9lyc5q5d3bnn8aw9xag8im2wqanmbkljwd5vmx9k9b2";
+ };
+ };
+ };
+ "symfony/polyfill-php56" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-polyfill-php56-af98553c84912459db3f636329567809d639a8f6";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/polyfill-php56/zipball/af98553c84912459db3f636329567809d639a8f6;
+ sha256 = "1l1ydsd7cq3s97cpgl4fw1qxc2wmv27yfxa3q8ng9p66ypzvkw42";
+ };
+ };
+ };
+ "symfony/polyfill-php70" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-polyfill-php70-77454693d8f10dd23bb24955cffd2d82db1007a6";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/polyfill-php70/zipball/77454693d8f10dd23bb24955cffd2d82db1007a6;
+ sha256 = "146d620ca725iqdh7j0dqb99h20d4vs641c9vjy9x4jws3rgj905";
+ };
+ };
+ };
+ "symfony/polyfill-util" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-polyfill-util-1a5ad95d9436cbff3296034fe9f8d586dce3fb3a";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/polyfill-util/zipball/1a5ad95d9436cbff3296034fe9f8d586dce3fb3a;
+ sha256 = "0l7w4dlr7y3qijpaiq7hfhbhv1qqz9jjknr1n6k4vrss2a8d1sxk";
+ };
+ };
+ };
+ "symfony/swiftmailer-bundle" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-swiftmailer-bundle-c4808f5169efc05567be983909d00f00521c53ec";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/swiftmailer-bundle/zipball/c4808f5169efc05567be983909d00f00521c53ec;
+ sha256 = "0jmd3slhb3gf3c3krmk2a9fi4ixdxvqlimdkfpj0sfaaq0115y01";
+ };
+ };
+ };
+ "symfony/symfony" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-symfony-4babd75194d45f7a4412560038924f3008c67ef2";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/symfony/zipball/4babd75194d45f7a4412560038924f3008c67ef2;
+ sha256 = "1347qp994yg6k91v5gwdwnn202bz92m0pj4090b59z5nqxh7463d";
+ };
+ };
+ };
+ "twig/extensions" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "twig-extensions-d188c76168b853481cc75879ea045bf93d718e9c";
+ src = fetchurl {
+ url = https://api.github.com/repos/twigphp/Twig-extensions/zipball/d188c76168b853481cc75879ea045bf93d718e9c;
+ sha256 = "0d6wywys5fqzi3m8g8h3sb5phl5y3a7vfc95n214mqp0iwrcmzwm";
+ };
+ };
+ };
+ "twig/twig" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "twig-twig-b48680b6eb7d16b5025b9bfc4108d86f6b8af86f";
+ src = fetchurl {
+ url = https://api.github.com/repos/twigphp/Twig/zipball/b48680b6eb7d16b5025b9bfc4108d86f6b8af86f;
+ sha256 = "1q82f246wq7whl11lx00n0skwmllppvpzg20x6q4frmw44dc6v9a";
+ };
+ };
+ };
+ "willdurand/jsonp-callback-validator" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "willdurand-jsonp-callback-validator-1a7d388bb521959e612ef50c5c7b1691b097e909";
+ src = fetchurl {
+ url = https://api.github.com/repos/willdurand/JsonpCallbackValidator/zipball/1a7d388bb521959e612ef50c5c7b1691b097e909;
+ sha256 = "19ds8f3nbss4b2xvqkcjkcvz0l4c5nhrm8w8yxc8a508r0jmd9in";
+ };
+ };
+ };
+ "zendframework/zend-code" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "zendframework-zend-code-95033f061b083e16cdee60530ec260d7d628b887";
+ src = fetchurl {
+ url = https://api.github.com/repos/zendframework/zend-code/zipball/95033f061b083e16cdee60530ec260d7d628b887;
+ sha256 = "0h77qf267l2sp9wg3n61dpgpf6wh6p5jssy8mrg7vlns2j03f9f5";
+ };
+ };
+ };
+ "zendframework/zend-eventmanager" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "zendframework-zend-eventmanager-a5e2583a211f73604691586b8406ff7296a946dd";
+ src = fetchurl {
+ url = https://api.github.com/repos/zendframework/zend-eventmanager/zipball/a5e2583a211f73604691586b8406ff7296a946dd;
+ sha256 = "08a05gn40hfdy2zhz4gcd3r6q7m7zcaks5kpvb9dx1awgx0pzr8n";
+ };
+ };
+ };
+ };
+ devPackages = {
+ "doctrine/data-fixtures" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-data-fixtures-17fa5bfe6ff52e35cb3d9ec37c934a2f4bd1fa2e";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/data-fixtures/zipball/17fa5bfe6ff52e35cb3d9ec37c934a2f4bd1fa2e;
+ sha256 = "15k7vl58kwh02g0a93rab82ifbgmc91srgminzlkjq5kx8agh7ab";
+ };
+ };
+ };
+ "doctrine/doctrine-fixtures-bundle" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-doctrine-fixtures-bundle-74b8cc70a4a25b774628ee59f4cdf3623a146273";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/DoctrineFixturesBundle/zipball/74b8cc70a4a25b774628ee59f4cdf3623a146273;
+ sha256 = "1bbflq8k6izwqgp9ka2gyb5y96a80b4lnlc5wrgc5gnih7hqidlf";
+ };
+ };
+ };
+ "sensio/generator-bundle" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "sensio-generator-bundle-28cbaa244bd0816fd8908b93f90380bcd7b67a65";
+ src = fetchurl {
+ url = https://api.github.com/repos/sensiolabs/SensioGeneratorBundle/zipball/28cbaa244bd0816fd8908b93f90380bcd7b67a65;
+ sha256 = "1j09y037xk843q8gcyfmwgy6dmn0h67pd5jnsvhj08h92ssbl0c3";
+ };
+ };
+ };
+ "symfony/phpunit-bridge" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-phpunit-bridge-7470518370113785f67a7fd8e6e1667661e88805";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/phpunit-bridge/zipball/7470518370113785f67a7fd8e6e1667661e88805;
+ sha256 = "0jd28ag0wks9sv62rkwsbx68csvdl5gabbz2h01hkqpa23gdkhs9";
+ };
+ };
+ };
+ };
+}
--- /dev/null
+{ callPackage, mylibs, composerEnv, lib, spip }:
+rec {
+ apache-default = callPackage ./apache-default {};
+
+ aten = callPackage ./aten { inherit composerEnv mylibs; };
+ chloe = callPackage ./chloe { inherit mylibs spip; };
+ connexionswing = callPackage ./connexionswing { inherit composerEnv mylibs;};
+ ludivinecassal = callPackage ./ludivinecassal { inherit composerEnv mylibs; };
+ piedsjaloux = callPackage ./piedsjaloux { inherit composerEnv mylibs; };
+ tellesflorian = callPackage ./tellesflorian { inherit composerEnv mylibs; };
+}
--- /dev/null
+{ environment ? "prod"
+, varDir ? "/var/lib/ludivinecassal_${environment}"
+, composerEnv, fetchurl, fetchgit, imagemagick, sass, ruby, mylibs }:
+let
+ app = composerEnv.buildPackage (
+ import ./php-packages.nix { inherit composerEnv fetchurl fetchgit; } //
+ mylibs.fetchedGitPrivate ./ludivinecassal.json //
+ rec {
+ noDev = (environment == "prod");
+ preInstall = ''
+ export SYMFONY_ENV="${environment}"
+ cp app/config/parameters.yml.dist app/config/parameters.yml
+ cat >> app/config/parameters.yml <<EOF
+ leapt_im:
+ binary_path: ${imagemagick}/bin
+ assetic:
+ sass: ${sass}/bin/sass
+ ruby: ${ruby}/bin/ruby
+ EOF
+ sed -i -e "/Incenteev..ParameterHandler..ScriptHandler::buildParameters/d" composer.json
+ '';
+ # /!\ miniatures and data need to be in the same physical dir due to a
+ # bug in leapt.im (searches for data/../miniatures)
+ postInstall = ''
+ rm -rf var/{logs,cache,data,miniatures,tmp}
+ ln -sf ${varDir}/{logs,cache,data,miniatures,tmp} var/
+ ln -sf /var/secrets/webapps/${environment}-ludivinecassal app/config/parameters.yml
+ '';
+ buildInputs = [ sass ];
+ passthru = {
+ inherit varDir environment;
+ webRoot = "${app}/web";
+ };
+ });
+in app
--- /dev/null
+{
+ "tag": "0dacc32-master",
+ "meta": {
+ "name": "ludivinecassal",
+ "url": "gitolite@git.immae.eu:perso/Immae/Sites/Ludivine",
+ "branch": "master"
+ },
+ "git": {
+ "url": "gitolite@git.immae.eu:perso/Immae/Sites/Ludivine",
+ "rev": "0dacc320ea052b69f79861c84bceaa89be53de60",
+ "sha256": "10khg1fq9ixly3xak591n3v0rv3f2hn91rd46d75yv3wjxaj1c2d",
+ "fetchSubmodules": true
+ }
+}
--- /dev/null
+# Generated with composer2nix and adapted to return only the list of
+# packages
+{ composerEnv, fetchurl, fetchgit ? null }:
+{
+ packages = {
+ "behat/transliterator" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "behat-transliterator-826ce7e9c2a6664c0d1f381cbb38b1fb80a7ee2c";
+ src = fetchurl {
+ url = https://api.github.com/repos/Behat/Transliterator/zipball/826ce7e9c2a6664c0d1f381cbb38b1fb80a7ee2c;
+ sha256 = "1mgc9azx79fkrxahji3xwbgqhlcnvh3xk6llqdvhjb7vgzj4bqq0";
+ };
+ };
+ };
+ "components/bootstrap" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "components-bootstrap-5d60b2efd3159e1a9e203901849b3493c5aac61f";
+ src = fetchurl {
+ url = https://api.github.com/repos/components/bootstrap/zipball/5d60b2efd3159e1a9e203901849b3493c5aac61f;
+ sha256 = "0jdyxl86dr2lf8az1vby84i7kdn1qcqkp8fy60rs18gav0aqp4fg";
+ };
+ };
+ };
+ "components/jquery" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "components-jquery-459648cda77875519c5da3ae1dd0ed5d170aa649";
+ src = fetchurl {
+ url = https://api.github.com/repos/components/jquery/zipball/459648cda77875519c5da3ae1dd0ed5d170aa649;
+ sha256 = "04jv8yifhwx0cpkw3y3ng0bs2dv77pzrdd640p59rjxwba6r1lbb";
+ };
+ };
+ };
+ "components/jqueryui" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "components-jqueryui-c34f8dbf3ba57b3784b93f26119f436c0e8288e1";
+ src = fetchurl {
+ url = https://api.github.com/repos/components/jqueryui/zipball/c34f8dbf3ba57b3784b93f26119f436c0e8288e1;
+ sha256 = "00nkg6z8g6l3jysyzsfmfxhxqcdsd3jfqib28j8kn2frzx508xv9";
+ };
+ };
+ };
+ "composer/ca-bundle" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "composer-ca-bundle-8afa52cd417f4ec417b4bfe86b68106538a87660";
+ src = fetchurl {
+ url = https://api.github.com/repos/composer/ca-bundle/zipball/8afa52cd417f4ec417b4bfe86b68106538a87660;
+ sha256 = "18b0gq29frjf4yhl4sl3i3zbz6zr3qjgsjb8cjdhz65vpb50581p";
+ };
+ };
+ };
+ "doctrine/annotations" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-annotations-c7f2050c68a9ab0bdb0f98567ec08d80ea7d24d5";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/annotations/zipball/c7f2050c68a9ab0bdb0f98567ec08d80ea7d24d5;
+ sha256 = "0b80xpqd3j99xgm0c41kbgy0k6knrfnd29223c93295sb12112g7";
+ };
+ };
+ };
+ "doctrine/cache" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-cache-d768d58baee9a4862ca783840eca1b9add7a7f57";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/cache/zipball/d768d58baee9a4862ca783840eca1b9add7a7f57;
+ sha256 = "1kljhw4gqp12iz88h6ymsrlfir2fis7icn6dffyizfc1csyb4s2i";
+ };
+ };
+ };
+ "doctrine/collections" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-collections-a01ee38fcd999f34d9bfbcee59dbda5105449cbf";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/collections/zipball/a01ee38fcd999f34d9bfbcee59dbda5105449cbf;
+ sha256 = "0d36zc21ka0pdac9xpkxsgf5zzw9gp0m9lk3r3xs5y70j0lkkkis";
+ };
+ };
+ };
+ "doctrine/common" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-common-30e33f60f64deec87df728c02b107f82cdafad9d";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/common/zipball/30e33f60f64deec87df728c02b107f82cdafad9d;
+ sha256 = "0s4vv14ibyx62a9aj3wn5cs2bbxd72fajmfmi8qb5l11gx0375na";
+ };
+ };
+ };
+ "doctrine/dbal" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-dbal-22800bd651c1d8d2a9719e2a3dc46d5108ebfcc9";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/dbal/zipball/22800bd651c1d8d2a9719e2a3dc46d5108ebfcc9;
+ sha256 = "0kbahs699jd8pxf512dgg7arv49dc7qzi3mx8snxqm4h15n5brnj";
+ };
+ };
+ };
+ "doctrine/doctrine-bundle" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-doctrine-bundle-82d2c63cd09acbde2332f55d9aa7b28aefe4983d";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/DoctrineBundle/zipball/82d2c63cd09acbde2332f55d9aa7b28aefe4983d;
+ sha256 = "0gzrigv360rp50yxpwidbkf8vlagym0w1if010yz5xcfrz37cpn3";
+ };
+ };
+ };
+ "doctrine/doctrine-cache-bundle" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-doctrine-cache-bundle-5514c90d9fb595e1095e6d66ebb98ce9ef049927";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/DoctrineCacheBundle/zipball/5514c90d9fb595e1095e6d66ebb98ce9ef049927;
+ sha256 = "04njrfhw4fc2ifacd9h0wd9i14l7ycv3hanbqrw5ilsai02j6asa";
+ };
+ };
+ };
+ "doctrine/doctrine-migrations-bundle" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-doctrine-migrations-bundle-49fa399181db4bf4f9f725126bd1cb65c4398dce";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/DoctrineMigrationsBundle/zipball/49fa399181db4bf4f9f725126bd1cb65c4398dce;
+ sha256 = "1a73xjhjrjlvkh8d253kfc2rbxd2h4hwafhv5078dy7rg6x9blyn";
+ };
+ };
+ };
+ "doctrine/event-manager" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-event-manager-a520bc093a0170feeb6b14e9d83f3a14452e64b3";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/event-manager/zipball/a520bc093a0170feeb6b14e9d83f3a14452e64b3;
+ sha256 = "165cxvw4idqj01l63nya2whpdb3fz6ld54rx198b71bzwfrydl88";
+ };
+ };
+ };
+ "doctrine/inflector" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-inflector-5527a48b7313d15261292c149e55e26eae771b0a";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/inflector/zipball/5527a48b7313d15261292c149e55e26eae771b0a;
+ sha256 = "0ng6vlwjr8h6hqwa32ynykz1mhlfsff5hirjidlk086ab6njppa5";
+ };
+ };
+ };
+ "doctrine/instantiator" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-instantiator-185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/instantiator/zipball/185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda;
+ sha256 = "1mah9a6mb30qad1zryzjain2dxw29d8h4bjkbcs3srpm3p891msy";
+ };
+ };
+ };
+ "doctrine/lexer" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-lexer-83893c552fd2045dd78aef794c31e694c37c0b8c";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/lexer/zipball/83893c552fd2045dd78aef794c31e694c37c0b8c;
+ sha256 = "0cyh3vwcl163cx1vrcwmhlh5jg9h47xwiqgzc6rwscxw0ppd1v74";
+ };
+ };
+ };
+ "doctrine/migrations" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-migrations-215438c0eef3e5f9b7da7d09c6b90756071b43e6";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/migrations/zipball/215438c0eef3e5f9b7da7d09c6b90756071b43e6;
+ sha256 = "0k6sgw65vji9rgib10mq2m634m41a67inspkrcw4qixig2lnb3ld";
+ };
+ };
+ };
+ "doctrine/orm" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-orm-434820973cadf2da2d66e7184be370084cc32ca8";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/orm/zipball/434820973cadf2da2d66e7184be370084cc32ca8;
+ sha256 = "114fyq8kaf5qzfkp8sdygqflf3z94va1cs5c3scycfpg9cmi4gls";
+ };
+ };
+ };
+ "doctrine/persistence" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-persistence-c0f1c17602afc18b4cbd8e1c8125f264c9cf7d38";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/persistence/zipball/c0f1c17602afc18b4cbd8e1c8125f264c9cf7d38;
+ sha256 = "0xdm5n38rjas1mlyxc15sg1as5h7y012mdb0j9lr6cvphgnaxxv7";
+ };
+ };
+ };
+ "doctrine/reflection" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-reflection-02538d3f95e88eb397a5f86274deb2c6175c2ab6";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/reflection/zipball/02538d3f95e88eb397a5f86274deb2c6175c2ab6;
+ sha256 = "12n9zik4lxb9lx1jf0nbvg9vl9nv958a7z1yjx48scfxd1d1sxjy";
+ };
+ };
+ };
+ "fig/link-util" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "fig-link-util-1a07821801a148be4add11ab0603e4af55a72fac";
+ src = fetchurl {
+ url = https://api.github.com/repos/php-fig/link-util/zipball/1a07821801a148be4add11ab0603e4af55a72fac;
+ sha256 = "0ky1pq4a17br5zvcychjghgwr6wpkgp409hdv0ljdk3ks90w5w64";
+ };
+ };
+ };
+ "gedmo/doctrine-extensions" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "gedmo-doctrine-extensions-87c78ff9fd4b90460386f753d95622f6fbbfcb27";
+ src = fetchurl {
+ url = https://api.github.com/repos/Atlantic18/DoctrineExtensions/zipball/87c78ff9fd4b90460386f753d95622f6fbbfcb27;
+ sha256 = "0jfg0a19lhdv5b3c032ghknxhvc1f0x2n7fcwp47bm1rbz222q0z";
+ };
+ };
+ };
+ "immae/ludivine-ckeditor-component" = {
+ targetDir = "";
+ src = fetchgit {
+ name = "immae-ludivine-ckeditor-component-1794320dcfdfcd19572fb1676294f9853a6bbc20";
+ url = "https://git.immae.eu/perso/Immae/Projets/packagist/ludivine-ckeditor-component.git";
+ rev = "1794320dcfdfcd19572fb1676294f9853a6bbc20";
+ sha256 = "080f3znvp0aj5jdpc3ywis0kfzvkwz5mw2jcj12gwq3r5g5i8zdq";
+ };
+ };
+ "immae/ludivine-slick-component" = {
+ targetDir = "";
+ src = fetchgit {
+ name = "immae-ludivine-slick-component-604734c4a960aac3d99f1008337181ed2b0f04db";
+ url = "https://git.immae.eu/perso/Immae/Projets/packagist/ludivine-slick-component.git";
+ rev = "604734c4a960aac3d99f1008337181ed2b0f04db";
+ sha256 = "041wqv9pa9nvqcgqykx6cnbj539qnr9h1iym7l54igw12yj57w06";
+ };
+ };
+ "incenteev/composer-parameter-handler" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "incenteev-composer-parameter-handler-933c45a34814f27f2345c11c37d46b3ca7303550";
+ src = fetchurl {
+ url = https://api.github.com/repos/Incenteev/ParameterHandler/zipball/933c45a34814f27f2345c11c37d46b3ca7303550;
+ sha256 = "1zqdwlcl790kjyz4rkpva35xkfsp8kslds82fzznj0yigkgnbifm";
+ };
+ };
+ };
+ "jdorn/sql-formatter" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "jdorn-sql-formatter-64990d96e0959dff8e059dfcdc1af130728d92bc";
+ src = fetchurl {
+ url = https://api.github.com/repos/jdorn/sql-formatter/zipball/64990d96e0959dff8e059dfcdc1af130728d92bc;
+ sha256 = "1dnmkm8mxylvxjwi0bdkzrlklncqx92fa4fwqp5bh2ypj8gaagzi";
+ };
+ };
+ };
+ "kriswallsmith/assetic" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "kriswallsmith-assetic-e911c437dbdf006a8f62c2f59b15b2d69a5e0aa1";
+ src = fetchurl {
+ url = https://api.github.com/repos/kriswallsmith/assetic/zipball/e911c437dbdf006a8f62c2f59b15b2d69a5e0aa1;
+ sha256 = "1dqk4zvx8fgqf8rb81sj9bipl5431jib2b9kcvxyig5fw99irpf8";
+ };
+ };
+ };
+ "leapt/im-bundle" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "leapt-im-bundle-83442778d118f6edb537b93f9746c3a97e56c3d1";
+ src = fetchurl {
+ url = https://api.github.com/repos/leapt/im-bundle/zipball/83442778d118f6edb537b93f9746c3a97e56c3d1;
+ sha256 = "1gm4ih3v1j0xjm7mrpspd3yacdwvbqgag22cyqmix0hc9hw3pc6a";
+ };
+ };
+ };
+ "luxifer/doctrine-functions" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "luxifer-doctrine-functions-e1c0bb1a5cb002d9fc82d8b32a5da28c02d34c6c";
+ src = fetchurl {
+ url = https://api.github.com/repos/luxifer/doctrine-functions/zipball/e1c0bb1a5cb002d9fc82d8b32a5da28c02d34c6c;
+ sha256 = "1sw4826nvs5q0y2na9m26rbxfiaw0kfqwhky7x7apicgx5adqfa9";
+ };
+ };
+ };
+ "monolog/monolog" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "monolog-monolog-bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266";
+ src = fetchurl {
+ url = https://api.github.com/repos/Seldaek/monolog/zipball/bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266;
+ sha256 = "0h3nnxjf2bdh7nmpqnpij99lqv6bw13r2bx83d8vn5zvblwg5png";
+ };
+ };
+ };
+ "ocramius/package-versions" = {
+ targetDir = "";
+ needsModifyRights = true;
+ src = composerEnv.buildZipPackage {
+ name = "ocramius-package-versions-4489d5002c49d55576fa0ba786f42dbb009be46f";
+ src = fetchurl {
+ url = https://api.github.com/repos/Ocramius/PackageVersions/zipball/4489d5002c49d55576fa0ba786f42dbb009be46f;
+ sha256 = "039c404g9597x45xh04bnn8kmcyknkbnr57yb9s7vf29vfrg4881";
+ };
+ };
+ };
+ "ocramius/proxy-manager" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "ocramius-proxy-manager-14b137b06b0f911944132df9d51e445a35920ab1";
+ src = fetchurl {
+ url = https://api.github.com/repos/Ocramius/ProxyManager/zipball/14b137b06b0f911944132df9d51e445a35920ab1;
+ sha256 = "10y5msgh2jdlw4w075fasv40yq01szjy15m3f0wgc89hlfmqz0sn";
+ };
+ };
+ };
+ "paragonie/random_compat" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "paragonie-random_compat-84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95";
+ src = fetchurl {
+ url = https://api.github.com/repos/paragonie/random_compat/zipball/84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95;
+ sha256 = "03nsccdvcb79l64b7lsmx0n8ldf5z3v8niqr7bpp6wg401qp9p09";
+ };
+ };
+ };
+ "psr/cache" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "psr-cache-d11b50ad223250cf17b86e38383413f5a6764bf8";
+ src = fetchurl {
+ url = https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8;
+ sha256 = "06i2k3dx3b4lgn9a4v1dlgv8l9wcl4kl7vzhh63lbji0q96hv8qz";
+ };
+ };
+ };
+ "psr/container" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "psr-container-b7ce3b176482dbbc1245ebf52b181af44c2cf55f";
+ src = fetchurl {
+ url = https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f;
+ sha256 = "0rkz64vgwb0gfi09klvgay4qnw993l1dc03vyip7d7m2zxi6cy4j";
+ };
+ };
+ };
+ "psr/link" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "psr-link-eea8e8662d5cd3ae4517c9b864493f59fca95562";
+ src = fetchurl {
+ url = https://api.github.com/repos/php-fig/link/zipball/eea8e8662d5cd3ae4517c9b864493f59fca95562;
+ sha256 = "091k4p9irkqnmq9b0p792wz1hb7dm4rafpjilw9im9xhsxgkmr13";
+ };
+ };
+ };
+ "psr/log" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "psr-log-6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd";
+ src = fetchurl {
+ url = https://api.github.com/repos/php-fig/log/zipball/6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd;
+ sha256 = "1i351p3gd1pgjcjxv7mwwkiw79f1xiqr38irq22156h05zlcx80d";
+ };
+ };
+ };
+ "psr/simple-cache" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "psr-simple-cache-408d5eafb83c57f6365a3ca330ff23aa4a5fa39b";
+ src = fetchurl {
+ url = https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b;
+ sha256 = "1djgzclkamjxi9jy4m9ggfzgq1vqxaga2ip7l3cj88p7rwkzjxgw";
+ };
+ };
+ };
+ "robloach/component-installer" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "robloach-component-installer-908a859aa7c4949ba9ad67091e67bac10b66d3d7";
+ src = fetchurl {
+ url = https://api.github.com/repos/RobLoach/component-installer/zipball/908a859aa7c4949ba9ad67091e67bac10b66d3d7;
+ sha256 = "19y5sv4k338bihzmm8iac6q43r18vxhmbpvrdhz8jn39r51ampq9";
+ };
+ };
+ };
+ "sensio/distribution-bundle" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "sensio-distribution-bundle-59eac70f15f97ee945924948a6f5e2f6f86b7a4b";
+ src = fetchurl {
+ url = https://api.github.com/repos/sensiolabs/SensioDistributionBundle/zipball/59eac70f15f97ee945924948a6f5e2f6f86b7a4b;
+ sha256 = "05mj4c0ahwg6l2wipyqfyyjjp1m2vvl7ymp61nvwv7zhvqacvljs";
+ };
+ };
+ };
+ "sensio/framework-extra-bundle" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "sensio-framework-extra-bundle-bb907234df776b68922eb4b25bfa061683597b6a";
+ src = fetchurl {
+ url = https://api.github.com/repos/sensiolabs/SensioFrameworkExtraBundle/zipball/bb907234df776b68922eb4b25bfa061683597b6a;
+ sha256 = "011hcljjcfq5qy4a7mlf0hwqxyb58yci40ini0n5rqandcyk2nck";
+ };
+ };
+ };
+ "sensiolabs/security-checker" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "sensiolabs-security-checker-46be3f58adac13084497961e10eed9a7fb4d44d1";
+ src = fetchurl {
+ url = https://api.github.com/repos/sensiolabs/security-checker/zipball/46be3f58adac13084497961e10eed9a7fb4d44d1;
+ sha256 = "1caqf3hdfsajj9nb8fpinvs6apv90g1srwxcyxdnr6a8d6g0p6qi";
+ };
+ };
+ };
+ "swiftmailer/swiftmailer" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "swiftmailer-swiftmailer-181b89f18a90f8925ef805f950d47a7190e9b950";
+ src = fetchurl {
+ url = https://api.github.com/repos/swiftmailer/swiftmailer/zipball/181b89f18a90f8925ef805f950d47a7190e9b950;
+ sha256 = "0hkmawv3bhbqdavy4wxqhzajg5zqd7chsi8w27y2zdi5r35az75d";
+ };
+ };
+ };
+ "symfony/assetic-bundle" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-assetic-bundle-2e0a23a4874838e26de6f025e02fc63328921a4c";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/assetic-bundle/zipball/2e0a23a4874838e26de6f025e02fc63328921a4c;
+ sha256 = "17rxrkyzxa6x5nn7qhhhdgx4z0nlznnq5fifza4wv9znca8bbwyc";
+ };
+ };
+ };
+ "symfony/monolog-bundle" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-monolog-bundle-572e143afc03419a75ab002c80a2fd99299195ff";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/monolog-bundle/zipball/572e143afc03419a75ab002c80a2fd99299195ff;
+ sha256 = "0g8icydnwfbqcbc56pqyc8bv1vp31331w0r75r3hqh225p2j1nd7";
+ };
+ };
+ };
+ "symfony/polyfill-apcu" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-polyfill-apcu-19e1b73bf255265ad0b568f81766ae2a3266d8d2";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/polyfill-apcu/zipball/19e1b73bf255265ad0b568f81766ae2a3266d8d2;
+ sha256 = "0jg33c81kwkpxk0b18jkslz9jkbkxl5k48h6m5b33dm63p1fj05r";
+ };
+ };
+ };
+ "symfony/polyfill-ctype" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-polyfill-ctype-e3d826245268269cd66f8326bd8bc066687b4a19";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/polyfill-ctype/zipball/e3d826245268269cd66f8326bd8bc066687b4a19;
+ sha256 = "16md0qmy5jvvl7lc6n6r5hxjdr5i30vl6n9rpkm4b11rh2nqh7mh";
+ };
+ };
+ };
+ "symfony/polyfill-intl-icu" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-polyfill-intl-icu-f22a90256d577c7ef7efad8df1f0201663d57644";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/f22a90256d577c7ef7efad8df1f0201663d57644;
+ sha256 = "0x7h8l248l1gc07xmvfixq6p80ifdaa29qympfq3jzfb79k69slq";
+ };
+ };
+ };
+ "symfony/polyfill-mbstring" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-polyfill-mbstring-c79c051f5b3a46be09205c73b80b346e4153e494";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/polyfill-mbstring/zipball/c79c051f5b3a46be09205c73b80b346e4153e494;
+ sha256 = "18v2777cky55ah6xi4dh383mp4iddwzmnvx81qd86y1kgfykwhpi";
+ };
+ };
+ };
+ "symfony/polyfill-php56" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-polyfill-php56-ff208829fe1aa48ab9af356992bb7199fed551af";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/polyfill-php56/zipball/ff208829fe1aa48ab9af356992bb7199fed551af;
+ sha256 = "0vmpiwakc7hpbr6jwpk7cqcy41ybgwl6jkn3q8c4ryxynknn5hfk";
+ };
+ };
+ };
+ "symfony/polyfill-php70" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-polyfill-php70-6b88000cdd431cd2e940caa2cb569201f3f84224";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/polyfill-php70/zipball/6b88000cdd431cd2e940caa2cb569201f3f84224;
+ sha256 = "08h77r1i2q4pwdd0yk3pfhqqgk0z7gwmkzmvykx9bfv1z7a0h8ik";
+ };
+ };
+ };
+ "symfony/polyfill-util" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-polyfill-util-3b58903eae668d348a7126f999b0da0f2f93611c";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/polyfill-util/zipball/3b58903eae668d348a7126f999b0da0f2f93611c;
+ sha256 = "00bb5mgljk6d54nyvd4gmc7mbzfr4b4q7h3rxmv8rzq613wcjp3i";
+ };
+ };
+ };
+ "symfony/swiftmailer-bundle" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-swiftmailer-bundle-c4808f5169efc05567be983909d00f00521c53ec";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/swiftmailer-bundle/zipball/c4808f5169efc05567be983909d00f00521c53ec;
+ sha256 = "0jmd3slhb3gf3c3krmk2a9fi4ixdxvqlimdkfpj0sfaaq0115y01";
+ };
+ };
+ };
+ "symfony/symfony" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-symfony-f6b8ddc362b1cf3fb06548693c3adbb736092412";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/symfony/zipball/f6b8ddc362b1cf3fb06548693c3adbb736092412;
+ sha256 = "0ip7k5xf34w4p1zvv2nkv4nyik3asidk3zlgzyc1v57429z0f28q";
+ };
+ };
+ };
+ "twig/extensions" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "twig-extensions-57873c8b0c1be51caa47df2cdb824490beb16202";
+ src = fetchurl {
+ url = https://api.github.com/repos/twigphp/Twig-extensions/zipball/57873c8b0c1be51caa47df2cdb824490beb16202;
+ sha256 = "1sjajjd6vnczvdrl9b8zhzr06l5dflzqiwg9d33d92q8gli4j7jn";
+ };
+ };
+ };
+ "twig/twig" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "twig-twig-a11dd39f5b6589e14f0ff3b36675d06047c589b1";
+ src = fetchurl {
+ url = https://api.github.com/repos/twigphp/Twig/zipball/a11dd39f5b6589e14f0ff3b36675d06047c589b1;
+ sha256 = "0rnwam9379gj5m4ik0fh6c81dbr7kwj2b3x1gnmpf6awa5fm261n";
+ };
+ };
+ };
+ "zendframework/zend-code" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "zendframework-zend-code-c21db169075c6ec4b342149f446e7b7b724f95eb";
+ src = fetchurl {
+ url = https://api.github.com/repos/zendframework/zend-code/zipball/c21db169075c6ec4b342149f446e7b7b724f95eb;
+ sha256 = "031mfsahjkl63348020wq05273kvszx0dv2766zmzncnd6fcggw1";
+ };
+ };
+ };
+ "zendframework/zend-eventmanager" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "zendframework-zend-eventmanager-a5e2583a211f73604691586b8406ff7296a946dd";
+ src = fetchurl {
+ url = https://api.github.com/repos/zendframework/zend-eventmanager/zipball/a5e2583a211f73604691586b8406ff7296a946dd;
+ sha256 = "08a05gn40hfdy2zhz4gcd3r6q7m7zcaks5kpvb9dx1awgx0pzr8n";
+ };
+ };
+ };
+ };
+ devPackages = {
+ "doctrine/data-fixtures" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-data-fixtures-3a1e2c3c600e615a2dffe56d4ca0875cc5233e0a";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/data-fixtures/zipball/3a1e2c3c600e615a2dffe56d4ca0875cc5233e0a;
+ sha256 = "0wbxhy7hq17laqgnq9x9ygysv0n1kn7s4x3v89pk7iy622pil3sm";
+ };
+ };
+ };
+ "doctrine/doctrine-fixtures-bundle" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-doctrine-fixtures-bundle-74b8cc70a4a25b774628ee59f4cdf3623a146273";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/DoctrineFixturesBundle/zipball/74b8cc70a4a25b774628ee59f4cdf3623a146273;
+ sha256 = "1bbflq8k6izwqgp9ka2gyb5y96a80b4lnlc5wrgc5gnih7hqidlf";
+ };
+ };
+ };
+ "fzaninotto/faker" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "fzaninotto-faker-d0190b156bcca848d401fb80f31f504f37141c8d";
+ src = fetchurl {
+ url = https://api.github.com/repos/fzaninotto/Faker/zipball/d0190b156bcca848d401fb80f31f504f37141c8d;
+ sha256 = "1x7xrxw14x7b0iq7sxi9ynswk8ljga62i77ch7xip4dwgq1dypvi";
+ };
+ };
+ };
+ "league/factory-muffin" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "league-factory-muffin-316ed2bac70178567f995d877b831804c9c58d5a";
+ src = fetchurl {
+ url = https://api.github.com/repos/thephpleague/factory-muffin/zipball/316ed2bac70178567f995d877b831804c9c58d5a;
+ sha256 = "1fxh0hsqifmnhgkwyd460x3w9wn74369lmak3f1m24mn2asiynxq";
+ };
+ };
+ };
+ "league/factory-muffin-faker" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "league-factory-muffin-faker-30dbd11bb6be03b47e52bd60006ae198d20ab426";
+ src = fetchurl {
+ url = https://api.github.com/repos/thephpleague/factory-muffin-faker/zipball/30dbd11bb6be03b47e52bd60006ae198d20ab426;
+ sha256 = "0dsimjdnsmzdd4vwjzw1gz1bb4zlhmv66g3fc9k4nj5bqch6mny1";
+ };
+ };
+ };
+ "mikey179/vfsStream" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "mikey179-vfsStream-d5fec95f541d4d71c4823bb5e30cf9b9e5b96145";
+ src = fetchurl {
+ url = https://api.github.com/repos/mikey179/vfsStream/zipball/d5fec95f541d4d71c4823bb5e30cf9b9e5b96145;
+ sha256 = "034rdds85qr3n7kqz161dqinl909gwnxgjsvychw8m7dyk2dbl99";
+ };
+ };
+ };
+ "phpdocumentor/reflection-common" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "phpdocumentor-reflection-common-21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6";
+ src = fetchurl {
+ url = https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6;
+ sha256 = "1yaf1zg9lnkfnq2ndpviv0hg5bza9vjvv5l4wgcn25lx1p8a94w2";
+ };
+ };
+ };
+ "phpdocumentor/reflection-docblock" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "phpdocumentor-reflection-docblock-94fd0001232e47129dd3504189fa1c7225010d08";
+ src = fetchurl {
+ url = https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/94fd0001232e47129dd3504189fa1c7225010d08;
+ sha256 = "03zvxqb5n9ddvysj8mjdwf59h7sagj5x5z15nhs7mqpcky1w388x";
+ };
+ };
+ };
+ "phpdocumentor/type-resolver" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "phpdocumentor-type-resolver-9c977708995954784726e25d0cd1dddf4e65b0f7";
+ src = fetchurl {
+ url = https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/9c977708995954784726e25d0cd1dddf4e65b0f7;
+ sha256 = "0h888r2iy2290yp9i3fij8wd5b7960yi7yn1rwh26x1xxd83n2mb";
+ };
+ };
+ };
+ "phpspec/prophecy" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "phpspec-prophecy-4ba436b55987b4bf311cb7c6ba82aa528aac0a06";
+ src = fetchurl {
+ url = https://api.github.com/repos/phpspec/prophecy/zipball/4ba436b55987b4bf311cb7c6ba82aa528aac0a06;
+ sha256 = "0sz9fg8r4yvpgrhsh6qaic3p89pafdj8bdf4izbcccq6mdhclxn6";
+ };
+ };
+ };
+ "phpunit/php-code-coverage" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "phpunit-php-code-coverage-eabf68b476ac7d0f73793aada060f1c1a9bf8979";
+ src = fetchurl {
+ url = https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/eabf68b476ac7d0f73793aada060f1c1a9bf8979;
+ sha256 = "0xfkf2kaqrid0ajr8qfh3qnpiqqddl0cmmdy6hd7l9y7ziy6qz8d";
+ };
+ };
+ };
+ "phpunit/php-file-iterator" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "phpunit-php-file-iterator-730b01bc3e867237eaac355e06a36b85dd93a8b4";
+ src = fetchurl {
+ url = https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/730b01bc3e867237eaac355e06a36b85dd93a8b4;
+ sha256 = "0kbg907g9hrx7pv8v0wnf4ifqywdgvigq6y6z00lyhgd0b8is060";
+ };
+ };
+ };
+ "phpunit/php-text-template" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "phpunit-php-text-template-31f8b717e51d9a2afca6c9f046f5d69fc27c8686";
+ src = fetchurl {
+ url = https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686;
+ sha256 = "1y03m38qqvsbvyakd72v4dram81dw3swyn5jpss153i5nmqr4p76";
+ };
+ };
+ };
+ "phpunit/php-timer" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "phpunit-php-timer-3dcf38ca72b158baf0bc245e9184d3fdffa9c46f";
+ src = fetchurl {
+ url = https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3dcf38ca72b158baf0bc245e9184d3fdffa9c46f;
+ sha256 = "1j04r0hqzrv6m1jk5nb92k2nnana72nscqpfk3rgv3fzrrv69ljr";
+ };
+ };
+ };
+ "phpunit/php-token-stream" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "phpunit-php-token-stream-1ce90ba27c42e4e44e6d8458241466380b51fa16";
+ src = fetchurl {
+ url = https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/1ce90ba27c42e4e44e6d8458241466380b51fa16;
+ sha256 = "0j1v83m268cddhyzi8qvqfzhpz12hrm3dyw6skyqvljdp7l9x6lk";
+ };
+ };
+ };
+ "phpunit/phpunit" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "phpunit-phpunit-46023de9a91eec7dfb06cc56cb4e260017298517";
+ src = fetchurl {
+ url = https://api.github.com/repos/sebastianbergmann/phpunit/zipball/46023de9a91eec7dfb06cc56cb4e260017298517;
+ sha256 = "0mxhgcmc575hw3n7czindgqiha8jhdi4p19h883vf15fg6xf5iv6";
+ };
+ };
+ };
+ "phpunit/phpunit-mock-objects" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "phpunit-phpunit-mock-objects-ac8e7a3db35738d56ee9a76e78a4e03d97628983";
+ src = fetchurl {
+ url = https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/ac8e7a3db35738d56ee9a76e78a4e03d97628983;
+ sha256 = "0s7nyyafdqw2hp7wsd2mxnjxpk26630vv3wii6hcdb0q8xy8r78i";
+ };
+ };
+ };
+ "sebastian/comparator" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "sebastian-comparator-2b7424b55f5047b47ac6e5ccb20b2aea4011d9be";
+ src = fetchurl {
+ url = https://api.github.com/repos/sebastianbergmann/comparator/zipball/2b7424b55f5047b47ac6e5ccb20b2aea4011d9be;
+ sha256 = "0ymarxgnr8b3iy0w18h5z13iiv0ja17vjryryzfcwlqqhlc6w7iq";
+ };
+ };
+ };
+ "sebastian/diff" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "sebastian-diff-7f066a26a962dbe58ddea9f72a4e82874a3975a4";
+ src = fetchurl {
+ url = https://api.github.com/repos/sebastianbergmann/diff/zipball/7f066a26a962dbe58ddea9f72a4e82874a3975a4;
+ sha256 = "1ppx21vjj79z6d584ryq451k7kvdc511awmqjkj9g4vxj1s1h3j6";
+ };
+ };
+ };
+ "sebastian/environment" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "sebastian-environment-be2c607e43ce4c89ecd60e75c6a85c126e754aea";
+ src = fetchurl {
+ url = https://api.github.com/repos/sebastianbergmann/environment/zipball/be2c607e43ce4c89ecd60e75c6a85c126e754aea;
+ sha256 = "0gzgnk847kf18krq4ybbi2knzj7i0kdghsdlj6qynzzrlf7idij0";
+ };
+ };
+ };
+ "sebastian/exporter" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "sebastian-exporter-42c4c2eec485ee3e159ec9884f95b431287edde4";
+ src = fetchurl {
+ url = https://api.github.com/repos/sebastianbergmann/exporter/zipball/42c4c2eec485ee3e159ec9884f95b431287edde4;
+ sha256 = "1p5mc4lqwxn79v06jjlgqxynblywcxw2mkhbf6r4jlz0bsrqafxn";
+ };
+ };
+ };
+ "sebastian/global-state" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "sebastian-global-state-bc37d50fea7d017d3d340f230811c9f1d7280af4";
+ src = fetchurl {
+ url = https://api.github.com/repos/sebastianbergmann/global-state/zipball/bc37d50fea7d017d3d340f230811c9f1d7280af4;
+ sha256 = "0y1x16mf9q38s7rlc7k2s6sxn2ccxmyk1q5zgh24hr4yp035f0pb";
+ };
+ };
+ };
+ "sebastian/recursion-context" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "sebastian-recursion-context-b19cc3298482a335a95f3016d2f8a6950f0fbcd7";
+ src = fetchurl {
+ url = https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/b19cc3298482a335a95f3016d2f8a6950f0fbcd7;
+ sha256 = "1i9xdv55nkg1yy5q4lmpq1jsjif69hjrwmr1zha6b5qjf6ivlvjm";
+ };
+ };
+ };
+ "sebastian/version" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "sebastian-version-58b3a85e7999757d6ad81c787a1fbf5ff6c628c6";
+ src = fetchurl {
+ url = https://api.github.com/repos/sebastianbergmann/version/zipball/58b3a85e7999757d6ad81c787a1fbf5ff6c628c6;
+ sha256 = "1s71b6ss29pcsm0120myriwnzla1kpj13f3f739c7k1wfm69h4wz";
+ };
+ };
+ };
+ "sensio/generator-bundle" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "sensio-generator-bundle-28cbaa244bd0816fd8908b93f90380bcd7b67a65";
+ src = fetchurl {
+ url = https://api.github.com/repos/sensiolabs/SensioGeneratorBundle/zipball/28cbaa244bd0816fd8908b93f90380bcd7b67a65;
+ sha256 = "1j09y037xk843q8gcyfmwgy6dmn0h67pd5jnsvhj08h92ssbl0c3";
+ };
+ };
+ };
+ "symfony/phpunit-bridge" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-phpunit-bridge-2155067dfc73e0e77dbc26f236af17e4df552de5";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/phpunit-bridge/zipball/2155067dfc73e0e77dbc26f236af17e4df552de5;
+ sha256 = "1fhqyhvns69pkv086d1sp918bakqq9pk9d16nzck2s4pfdf097pj";
+ };
+ };
+ };
+ "webmozart/assert" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "webmozart-assert-83e253c8e0be5b0257b881e1827274667c5c17a9";
+ src = fetchurl {
+ url = https://api.github.com/repos/webmozart/assert/zipball/83e253c8e0be5b0257b881e1827274667c5c17a9;
+ sha256 = "0d84b0ms9mjpqx368gs7c3qs06mpbx5565j3vs43b1ygnyhhhaqk";
+ };
+ };
+ };
+ };
+}
--- /dev/null
+{ environment ? "prod"
+, varDir ? "/var/lib/piedsjaloux_${environment}"
+, composerEnv, fetchurl, fetchgit, mylibs }:
+let
+ app = composerEnv.buildPackage (
+ import ./php-packages.nix { inherit composerEnv fetchurl fetchgit; } //
+ mylibs.fetchedGitPrivate ./piedsjaloux.json //
+ rec {
+ noDev = (environment == "prod");
+ preInstall = ''
+ export SYMFONY_ENV="${environment}"
+ '';
+ # /!\ miniatures and data need to be in the same physical dir due to a
+ # bug in leapt.im (searches for data/../miniatures)
+ postInstall = ''
+ cd $out
+ rm app/config/parameters.yml
+ ln -sf /var/secrets/webapps/${environment}-piedsjaloux app/config/parameters.yml
+ rm -rf var/{logs,cache,data,miniatures,tmp}
+ ln -sf ${varDir}/{logs,cache,data,miniatures,tmp} var/
+ '';
+ passthru = {
+ inherit varDir environment;
+ webRoot = "${app}/web";
+ };
+ });
+in app
--- /dev/null
+# Generated with composer2nix and adapted to return only the list of
+# packages
+{ composerEnv, fetchurl, fetchgit ? null }:
+{
+ packages = {
+ "behat/transliterator" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "behat-transliterator-826ce7e9c2a6664c0d1f381cbb38b1fb80a7ee2c";
+ src = fetchurl {
+ url = https://api.github.com/repos/Behat/Transliterator/zipball/826ce7e9c2a6664c0d1f381cbb38b1fb80a7ee2c;
+ sha256 = "1mgc9azx79fkrxahji3xwbgqhlcnvh3xk6llqdvhjb7vgzj4bqq0";
+ };
+ };
+ };
+ "components/bootstrap" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "components-bootstrap-5d60b2efd3159e1a9e203901849b3493c5aac61f";
+ src = fetchurl {
+ url = https://api.github.com/repos/components/bootstrap/zipball/5d60b2efd3159e1a9e203901849b3493c5aac61f;
+ sha256 = "0jdyxl86dr2lf8az1vby84i7kdn1qcqkp8fy60rs18gav0aqp4fg";
+ };
+ };
+ };
+ "components/jquery" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "components-jquery-459648cda77875519c5da3ae1dd0ed5d170aa649";
+ src = fetchurl {
+ url = https://api.github.com/repos/components/jquery/zipball/459648cda77875519c5da3ae1dd0ed5d170aa649;
+ sha256 = "04jv8yifhwx0cpkw3y3ng0bs2dv77pzrdd640p59rjxwba6r1lbb";
+ };
+ };
+ };
+ "components/jqueryui" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "components-jqueryui-c34f8dbf3ba57b3784b93f26119f436c0e8288e1";
+ src = fetchurl {
+ url = https://api.github.com/repos/components/jqueryui/zipball/c34f8dbf3ba57b3784b93f26119f436c0e8288e1;
+ sha256 = "00nkg6z8g6l3jysyzsfmfxhxqcdsd3jfqib28j8kn2frzx508xv9";
+ };
+ };
+ };
+ "composer/ca-bundle" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "composer-ca-bundle-8afa52cd417f4ec417b4bfe86b68106538a87660";
+ src = fetchurl {
+ url = https://api.github.com/repos/composer/ca-bundle/zipball/8afa52cd417f4ec417b4bfe86b68106538a87660;
+ sha256 = "18b0gq29frjf4yhl4sl3i3zbz6zr3qjgsjb8cjdhz65vpb50581p";
+ };
+ };
+ };
+ "container-interop/container-interop" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "container-interop-container-interop-79cbf1341c22ec75643d841642dd5d6acd83bdb8";
+ src = fetchurl {
+ url = https://api.github.com/repos/container-interop/container-interop/zipball/79cbf1341c22ec75643d841642dd5d6acd83bdb8;
+ sha256 = "1pxm461g5flcq50yabr01nw8w17n3g7klpman9ps3im4z0604m52";
+ };
+ };
+ };
+ "dmishh/settings-bundle" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "dmishh-settings-bundle-0ee48b015691694a8dcbd3ee654d33386e7bf478";
+ src = fetchurl {
+ url = https://api.github.com/repos/dmishh/SettingsBundle/zipball/0ee48b015691694a8dcbd3ee654d33386e7bf478;
+ sha256 = "0m2fw5shvnkqlz0nm27ggpmkipfh377y1hjsw343zv1nn72nxfqf";
+ };
+ };
+ };
+ "doctrine/annotations" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-annotations-c7f2050c68a9ab0bdb0f98567ec08d80ea7d24d5";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/annotations/zipball/c7f2050c68a9ab0bdb0f98567ec08d80ea7d24d5;
+ sha256 = "0b80xpqd3j99xgm0c41kbgy0k6knrfnd29223c93295sb12112g7";
+ };
+ };
+ };
+ "doctrine/cache" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-cache-d768d58baee9a4862ca783840eca1b9add7a7f57";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/cache/zipball/d768d58baee9a4862ca783840eca1b9add7a7f57;
+ sha256 = "1kljhw4gqp12iz88h6ymsrlfir2fis7icn6dffyizfc1csyb4s2i";
+ };
+ };
+ };
+ "doctrine/collections" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-collections-a01ee38fcd999f34d9bfbcee59dbda5105449cbf";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/collections/zipball/a01ee38fcd999f34d9bfbcee59dbda5105449cbf;
+ sha256 = "0d36zc21ka0pdac9xpkxsgf5zzw9gp0m9lk3r3xs5y70j0lkkkis";
+ };
+ };
+ };
+ "doctrine/common" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-common-30e33f60f64deec87df728c02b107f82cdafad9d";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/common/zipball/30e33f60f64deec87df728c02b107f82cdafad9d;
+ sha256 = "0s4vv14ibyx62a9aj3wn5cs2bbxd72fajmfmi8qb5l11gx0375na";
+ };
+ };
+ };
+ "doctrine/dbal" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-dbal-22800bd651c1d8d2a9719e2a3dc46d5108ebfcc9";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/dbal/zipball/22800bd651c1d8d2a9719e2a3dc46d5108ebfcc9;
+ sha256 = "0kbahs699jd8pxf512dgg7arv49dc7qzi3mx8snxqm4h15n5brnj";
+ };
+ };
+ };
+ "doctrine/doctrine-bundle" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-doctrine-bundle-82d2c63cd09acbde2332f55d9aa7b28aefe4983d";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/DoctrineBundle/zipball/82d2c63cd09acbde2332f55d9aa7b28aefe4983d;
+ sha256 = "0gzrigv360rp50yxpwidbkf8vlagym0w1if010yz5xcfrz37cpn3";
+ };
+ };
+ };
+ "doctrine/doctrine-cache-bundle" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-doctrine-cache-bundle-5514c90d9fb595e1095e6d66ebb98ce9ef049927";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/DoctrineCacheBundle/zipball/5514c90d9fb595e1095e6d66ebb98ce9ef049927;
+ sha256 = "04njrfhw4fc2ifacd9h0wd9i14l7ycv3hanbqrw5ilsai02j6asa";
+ };
+ };
+ };
+ "doctrine/doctrine-migrations-bundle" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-doctrine-migrations-bundle-49fa399181db4bf4f9f725126bd1cb65c4398dce";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/DoctrineMigrationsBundle/zipball/49fa399181db4bf4f9f725126bd1cb65c4398dce;
+ sha256 = "1a73xjhjrjlvkh8d253kfc2rbxd2h4hwafhv5078dy7rg6x9blyn";
+ };
+ };
+ };
+ "doctrine/event-manager" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-event-manager-a520bc093a0170feeb6b14e9d83f3a14452e64b3";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/event-manager/zipball/a520bc093a0170feeb6b14e9d83f3a14452e64b3;
+ sha256 = "165cxvw4idqj01l63nya2whpdb3fz6ld54rx198b71bzwfrydl88";
+ };
+ };
+ };
+ "doctrine/inflector" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-inflector-5527a48b7313d15261292c149e55e26eae771b0a";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/inflector/zipball/5527a48b7313d15261292c149e55e26eae771b0a;
+ sha256 = "0ng6vlwjr8h6hqwa32ynykz1mhlfsff5hirjidlk086ab6njppa5";
+ };
+ };
+ };
+ "doctrine/instantiator" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-instantiator-185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/instantiator/zipball/185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda;
+ sha256 = "1mah9a6mb30qad1zryzjain2dxw29d8h4bjkbcs3srpm3p891msy";
+ };
+ };
+ };
+ "doctrine/lexer" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-lexer-83893c552fd2045dd78aef794c31e694c37c0b8c";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/lexer/zipball/83893c552fd2045dd78aef794c31e694c37c0b8c;
+ sha256 = "0cyh3vwcl163cx1vrcwmhlh5jg9h47xwiqgzc6rwscxw0ppd1v74";
+ };
+ };
+ };
+ "doctrine/migrations" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-migrations-215438c0eef3e5f9b7da7d09c6b90756071b43e6";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/migrations/zipball/215438c0eef3e5f9b7da7d09c6b90756071b43e6;
+ sha256 = "0k6sgw65vji9rgib10mq2m634m41a67inspkrcw4qixig2lnb3ld";
+ };
+ };
+ };
+ "doctrine/orm" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-orm-434820973cadf2da2d66e7184be370084cc32ca8";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/orm/zipball/434820973cadf2da2d66e7184be370084cc32ca8;
+ sha256 = "114fyq8kaf5qzfkp8sdygqflf3z94va1cs5c3scycfpg9cmi4gls";
+ };
+ };
+ };
+ "doctrine/persistence" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-persistence-c0f1c17602afc18b4cbd8e1c8125f264c9cf7d38";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/persistence/zipball/c0f1c17602afc18b4cbd8e1c8125f264c9cf7d38;
+ sha256 = "0xdm5n38rjas1mlyxc15sg1as5h7y012mdb0j9lr6cvphgnaxxv7";
+ };
+ };
+ };
+ "doctrine/reflection" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-reflection-02538d3f95e88eb397a5f86274deb2c6175c2ab6";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/reflection/zipball/02538d3f95e88eb397a5f86274deb2c6175c2ab6;
+ sha256 = "12n9zik4lxb9lx1jf0nbvg9vl9nv958a7z1yjx48scfxd1d1sxjy";
+ };
+ };
+ };
+ "eko/feedbundle" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "eko-feedbundle-d4e626616d9ccf6527212d3bdda15f9af3838e4f";
+ src = fetchurl {
+ url = https://api.github.com/repos/eko/FeedBundle/zipball/d4e626616d9ccf6527212d3bdda15f9af3838e4f;
+ sha256 = "145f4mq2bpsdayaiqmgz1asmjx2is4v327h2ny2wp03knnkjvnfq";
+ };
+ };
+ };
+ "fig/link-util" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "fig-link-util-1a07821801a148be4add11ab0603e4af55a72fac";
+ src = fetchurl {
+ url = https://api.github.com/repos/php-fig/link-util/zipball/1a07821801a148be4add11ab0603e4af55a72fac;
+ sha256 = "0ky1pq4a17br5zvcychjghgwr6wpkgp409hdv0ljdk3ks90w5w64";
+ };
+ };
+ };
+ "gedmo/doctrine-extensions" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "gedmo-doctrine-extensions-87c78ff9fd4b90460386f753d95622f6fbbfcb27";
+ src = fetchurl {
+ url = https://api.github.com/repos/Atlantic18/DoctrineExtensions/zipball/87c78ff9fd4b90460386f753d95622f6fbbfcb27;
+ sha256 = "0jfg0a19lhdv5b3c032ghknxhvc1f0x2n7fcwp47bm1rbz222q0z";
+ };
+ };
+ };
+ "gregwar/captcha" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "gregwar-captcha-cf953dd79748406e0292cea8c565399681e4d345";
+ src = fetchurl {
+ url = https://api.github.com/repos/Gregwar/Captcha/zipball/cf953dd79748406e0292cea8c565399681e4d345;
+ sha256 = "153m7bkhs3drxk0jfbq67a8vr1m13g7isc4ck44k5hyfzpcazb5i";
+ };
+ };
+ };
+ "gregwar/captcha-bundle" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "gregwar-captcha-bundle-c2d5468556890dd25e0b53bd345fc205562c86f7";
+ src = fetchurl {
+ url = https://api.github.com/repos/Gregwar/CaptchaBundle/zipball/c2d5468556890dd25e0b53bd345fc205562c86f7;
+ sha256 = "04wcvqq457h6v7mzmrar946swd9akk27fmfig4qj8hpxzj250cgk";
+ };
+ };
+ };
+ "helios-ag/fm-bbcode-bundle" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "helios-ag-fm-bbcode-bundle-d88ff5ca6c0ab71ec094d5a7d56b0bc8bc100363";
+ src = fetchurl {
+ url = https://api.github.com/repos/helios-ag/FMBbCodeBundle/zipball/d88ff5ca6c0ab71ec094d5a7d56b0bc8bc100363;
+ sha256 = "13g9ddd2p3nf1vrbkf6l00qdqz89rq6d8l20p68dmiy7mb6kpynl";
+ };
+ };
+ };
+ "immae/piedsjaloux-ckeditor-component" = {
+ targetDir = "";
+ src = fetchgit {
+ name = "immae-piedsjaloux-ckeditor-component-9946db9daaa76448d0e43247472cdedd2a5ea22a";
+ url = "https://git.immae.eu/perso/Immae/Projets/packagist/piedsjaloux-ckeditor-component.git";
+ rev = "9946db9daaa76448d0e43247472cdedd2a5ea22a";
+ sha256 = "183rgl23li3bqsynfmvv2s7jvlmqf6a5pskgrcxlaxcrr0d09n8c";
+ };
+ };
+ "incenteev/composer-parameter-handler" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "incenteev-composer-parameter-handler-933c45a34814f27f2345c11c37d46b3ca7303550";
+ src = fetchurl {
+ url = https://api.github.com/repos/Incenteev/ParameterHandler/zipball/933c45a34814f27f2345c11c37d46b3ca7303550;
+ sha256 = "1zqdwlcl790kjyz4rkpva35xkfsp8kslds82fzznj0yigkgnbifm";
+ };
+ };
+ };
+ "jdorn/sql-formatter" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "jdorn-sql-formatter-64990d96e0959dff8e059dfcdc1af130728d92bc";
+ src = fetchurl {
+ url = https://api.github.com/repos/jdorn/sql-formatter/zipball/64990d96e0959dff8e059dfcdc1af130728d92bc;
+ sha256 = "1dnmkm8mxylvxjwi0bdkzrlklncqx92fa4fwqp5bh2ypj8gaagzi";
+ };
+ };
+ };
+ "kriswallsmith/assetic" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "kriswallsmith-assetic-e911c437dbdf006a8f62c2f59b15b2d69a5e0aa1";
+ src = fetchurl {
+ url = https://api.github.com/repos/kriswallsmith/assetic/zipball/e911c437dbdf006a8f62c2f59b15b2d69a5e0aa1;
+ sha256 = "1dqk4zvx8fgqf8rb81sj9bipl5431jib2b9kcvxyig5fw99irpf8";
+ };
+ };
+ };
+ "leapt/im-bundle" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "leapt-im-bundle-83442778d118f6edb537b93f9746c3a97e56c3d1";
+ src = fetchurl {
+ url = https://api.github.com/repos/leapt/im-bundle/zipball/83442778d118f6edb537b93f9746c3a97e56c3d1;
+ sha256 = "1gm4ih3v1j0xjm7mrpspd3yacdwvbqgag22cyqmix0hc9hw3pc6a";
+ };
+ };
+ };
+ "luxifer/doctrine-functions" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "luxifer-doctrine-functions-e1c0bb1a5cb002d9fc82d8b32a5da28c02d34c6c";
+ src = fetchurl {
+ url = https://api.github.com/repos/luxifer/doctrine-functions/zipball/e1c0bb1a5cb002d9fc82d8b32a5da28c02d34c6c;
+ sha256 = "1sw4826nvs5q0y2na9m26rbxfiaw0kfqwhky7x7apicgx5adqfa9";
+ };
+ };
+ };
+ "mjohnson/decoda" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "mjohnson-decoda-8cd0928b78a4bf5ade48b80c934370fc1f5f84a1";
+ src = fetchurl {
+ url = https://api.github.com/repos/milesj/decoda/zipball/8cd0928b78a4bf5ade48b80c934370fc1f5f84a1;
+ sha256 = "0wcxz9yirz4zir06xvnlchqgppmyasymak06gn46jn6v6c9dsykc";
+ };
+ };
+ };
+ "monolog/monolog" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "monolog-monolog-bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266";
+ src = fetchurl {
+ url = https://api.github.com/repos/Seldaek/monolog/zipball/bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266;
+ sha256 = "0h3nnxjf2bdh7nmpqnpij99lqv6bw13r2bx83d8vn5zvblwg5png";
+ };
+ };
+ };
+ "ocramius/package-versions" = {
+ targetDir = "";
+ needsModifyRights = true;
+ src = composerEnv.buildZipPackage {
+ name = "ocramius-package-versions-4489d5002c49d55576fa0ba786f42dbb009be46f";
+ src = fetchurl {
+ url = https://api.github.com/repos/Ocramius/PackageVersions/zipball/4489d5002c49d55576fa0ba786f42dbb009be46f;
+ sha256 = "039c404g9597x45xh04bnn8kmcyknkbnr57yb9s7vf29vfrg4881";
+ };
+ };
+ };
+ "ocramius/proxy-manager" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "ocramius-proxy-manager-14b137b06b0f911944132df9d51e445a35920ab1";
+ src = fetchurl {
+ url = https://api.github.com/repos/Ocramius/ProxyManager/zipball/14b137b06b0f911944132df9d51e445a35920ab1;
+ sha256 = "10y5msgh2jdlw4w075fasv40yq01szjy15m3f0wgc89hlfmqz0sn";
+ };
+ };
+ };
+ "paragonie/random_compat" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "paragonie-random_compat-84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95";
+ src = fetchurl {
+ url = https://api.github.com/repos/paragonie/random_compat/zipball/84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95;
+ sha256 = "03nsccdvcb79l64b7lsmx0n8ldf5z3v8niqr7bpp6wg401qp9p09";
+ };
+ };
+ };
+ "psr/cache" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "psr-cache-d11b50ad223250cf17b86e38383413f5a6764bf8";
+ src = fetchurl {
+ url = https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8;
+ sha256 = "06i2k3dx3b4lgn9a4v1dlgv8l9wcl4kl7vzhh63lbji0q96hv8qz";
+ };
+ };
+ };
+ "psr/container" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "psr-container-b7ce3b176482dbbc1245ebf52b181af44c2cf55f";
+ src = fetchurl {
+ url = https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f;
+ sha256 = "0rkz64vgwb0gfi09klvgay4qnw993l1dc03vyip7d7m2zxi6cy4j";
+ };
+ };
+ };
+ "psr/link" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "psr-link-eea8e8662d5cd3ae4517c9b864493f59fca95562";
+ src = fetchurl {
+ url = https://api.github.com/repos/php-fig/link/zipball/eea8e8662d5cd3ae4517c9b864493f59fca95562;
+ sha256 = "091k4p9irkqnmq9b0p792wz1hb7dm4rafpjilw9im9xhsxgkmr13";
+ };
+ };
+ };
+ "psr/log" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "psr-log-6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd";
+ src = fetchurl {
+ url = https://api.github.com/repos/php-fig/log/zipball/6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd;
+ sha256 = "1i351p3gd1pgjcjxv7mwwkiw79f1xiqr38irq22156h05zlcx80d";
+ };
+ };
+ };
+ "psr/simple-cache" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "psr-simple-cache-408d5eafb83c57f6365a3ca330ff23aa4a5fa39b";
+ src = fetchurl {
+ url = https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b;
+ sha256 = "1djgzclkamjxi9jy4m9ggfzgq1vqxaga2ip7l3cj88p7rwkzjxgw";
+ };
+ };
+ };
+ "robloach/component-installer" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "robloach-component-installer-908a859aa7c4949ba9ad67091e67bac10b66d3d7";
+ src = fetchurl {
+ url = https://api.github.com/repos/RobLoach/component-installer/zipball/908a859aa7c4949ba9ad67091e67bac10b66d3d7;
+ sha256 = "19y5sv4k338bihzmm8iac6q43r18vxhmbpvrdhz8jn39r51ampq9";
+ };
+ };
+ };
+ "sensio/distribution-bundle" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "sensio-distribution-bundle-59eac70f15f97ee945924948a6f5e2f6f86b7a4b";
+ src = fetchurl {
+ url = https://api.github.com/repos/sensiolabs/SensioDistributionBundle/zipball/59eac70f15f97ee945924948a6f5e2f6f86b7a4b;
+ sha256 = "05mj4c0ahwg6l2wipyqfyyjjp1m2vvl7ymp61nvwv7zhvqacvljs";
+ };
+ };
+ };
+ "sensio/framework-extra-bundle" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "sensio-framework-extra-bundle-bb907234df776b68922eb4b25bfa061683597b6a";
+ src = fetchurl {
+ url = https://api.github.com/repos/sensiolabs/SensioFrameworkExtraBundle/zipball/bb907234df776b68922eb4b25bfa061683597b6a;
+ sha256 = "011hcljjcfq5qy4a7mlf0hwqxyb58yci40ini0n5rqandcyk2nck";
+ };
+ };
+ };
+ "sensiolabs/security-checker" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "sensiolabs-security-checker-46be3f58adac13084497961e10eed9a7fb4d44d1";
+ src = fetchurl {
+ url = https://api.github.com/repos/sensiolabs/security-checker/zipball/46be3f58adac13084497961e10eed9a7fb4d44d1;
+ sha256 = "1caqf3hdfsajj9nb8fpinvs6apv90g1srwxcyxdnr6a8d6g0p6qi";
+ };
+ };
+ };
+ "swiftmailer/swiftmailer" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "swiftmailer-swiftmailer-181b89f18a90f8925ef805f950d47a7190e9b950";
+ src = fetchurl {
+ url = https://api.github.com/repos/swiftmailer/swiftmailer/zipball/181b89f18a90f8925ef805f950d47a7190e9b950;
+ sha256 = "0hkmawv3bhbqdavy4wxqhzajg5zqd7chsi8w27y2zdi5r35az75d";
+ };
+ };
+ };
+ "symfony/assetic-bundle" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-assetic-bundle-2e0a23a4874838e26de6f025e02fc63328921a4c";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/assetic-bundle/zipball/2e0a23a4874838e26de6f025e02fc63328921a4c;
+ sha256 = "17rxrkyzxa6x5nn7qhhhdgx4z0nlznnq5fifza4wv9znca8bbwyc";
+ };
+ };
+ };
+ "symfony/monolog-bundle" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-monolog-bundle-572e143afc03419a75ab002c80a2fd99299195ff";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/monolog-bundle/zipball/572e143afc03419a75ab002c80a2fd99299195ff;
+ sha256 = "0g8icydnwfbqcbc56pqyc8bv1vp31331w0r75r3hqh225p2j1nd7";
+ };
+ };
+ };
+ "symfony/polyfill-apcu" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-polyfill-apcu-19e1b73bf255265ad0b568f81766ae2a3266d8d2";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/polyfill-apcu/zipball/19e1b73bf255265ad0b568f81766ae2a3266d8d2;
+ sha256 = "0jg33c81kwkpxk0b18jkslz9jkbkxl5k48h6m5b33dm63p1fj05r";
+ };
+ };
+ };
+ "symfony/polyfill-ctype" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-polyfill-ctype-e3d826245268269cd66f8326bd8bc066687b4a19";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/polyfill-ctype/zipball/e3d826245268269cd66f8326bd8bc066687b4a19;
+ sha256 = "16md0qmy5jvvl7lc6n6r5hxjdr5i30vl6n9rpkm4b11rh2nqh7mh";
+ };
+ };
+ };
+ "symfony/polyfill-intl-icu" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-polyfill-intl-icu-f22a90256d577c7ef7efad8df1f0201663d57644";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/f22a90256d577c7ef7efad8df1f0201663d57644;
+ sha256 = "0x7h8l248l1gc07xmvfixq6p80ifdaa29qympfq3jzfb79k69slq";
+ };
+ };
+ };
+ "symfony/polyfill-mbstring" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-polyfill-mbstring-c79c051f5b3a46be09205c73b80b346e4153e494";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/polyfill-mbstring/zipball/c79c051f5b3a46be09205c73b80b346e4153e494;
+ sha256 = "18v2777cky55ah6xi4dh383mp4iddwzmnvx81qd86y1kgfykwhpi";
+ };
+ };
+ };
+ "symfony/polyfill-php56" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-polyfill-php56-ff208829fe1aa48ab9af356992bb7199fed551af";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/polyfill-php56/zipball/ff208829fe1aa48ab9af356992bb7199fed551af;
+ sha256 = "0vmpiwakc7hpbr6jwpk7cqcy41ybgwl6jkn3q8c4ryxynknn5hfk";
+ };
+ };
+ };
+ "symfony/polyfill-php70" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-polyfill-php70-6b88000cdd431cd2e940caa2cb569201f3f84224";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/polyfill-php70/zipball/6b88000cdd431cd2e940caa2cb569201f3f84224;
+ sha256 = "08h77r1i2q4pwdd0yk3pfhqqgk0z7gwmkzmvykx9bfv1z7a0h8ik";
+ };
+ };
+ };
+ "symfony/polyfill-util" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-polyfill-util-3b58903eae668d348a7126f999b0da0f2f93611c";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/polyfill-util/zipball/3b58903eae668d348a7126f999b0da0f2f93611c;
+ sha256 = "00bb5mgljk6d54nyvd4gmc7mbzfr4b4q7h3rxmv8rzq613wcjp3i";
+ };
+ };
+ };
+ "symfony/swiftmailer-bundle" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-swiftmailer-bundle-c4808f5169efc05567be983909d00f00521c53ec";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/swiftmailer-bundle/zipball/c4808f5169efc05567be983909d00f00521c53ec;
+ sha256 = "0jmd3slhb3gf3c3krmk2a9fi4ixdxvqlimdkfpj0sfaaq0115y01";
+ };
+ };
+ };
+ "symfony/symfony" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-symfony-f6b8ddc362b1cf3fb06548693c3adbb736092412";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/symfony/zipball/f6b8ddc362b1cf3fb06548693c3adbb736092412;
+ sha256 = "0ip7k5xf34w4p1zvv2nkv4nyik3asidk3zlgzyc1v57429z0f28q";
+ };
+ };
+ };
+ "twig/extensions" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "twig-extensions-57873c8b0c1be51caa47df2cdb824490beb16202";
+ src = fetchurl {
+ url = https://api.github.com/repos/twigphp/Twig-extensions/zipball/57873c8b0c1be51caa47df2cdb824490beb16202;
+ sha256 = "1sjajjd6vnczvdrl9b8zhzr06l5dflzqiwg9d33d92q8gli4j7jn";
+ };
+ };
+ };
+ "twig/twig" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "twig-twig-a11dd39f5b6589e14f0ff3b36675d06047c589b1";
+ src = fetchurl {
+ url = https://api.github.com/repos/twigphp/Twig/zipball/a11dd39f5b6589e14f0ff3b36675d06047c589b1;
+ sha256 = "0rnwam9379gj5m4ik0fh6c81dbr7kwj2b3x1gnmpf6awa5fm261n";
+ };
+ };
+ };
+ "zendframework/zend-code" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "zendframework-zend-code-c21db169075c6ec4b342149f446e7b7b724f95eb";
+ src = fetchurl {
+ url = https://api.github.com/repos/zendframework/zend-code/zipball/c21db169075c6ec4b342149f446e7b7b724f95eb;
+ sha256 = "031mfsahjkl63348020wq05273kvszx0dv2766zmzncnd6fcggw1";
+ };
+ };
+ };
+ "zendframework/zend-escaper" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "zendframework-zend-escaper-31d8aafae982f9568287cb4dce987e6aff8fd074";
+ src = fetchurl {
+ url = https://api.github.com/repos/zendframework/zend-escaper/zipball/31d8aafae982f9568287cb4dce987e6aff8fd074;
+ sha256 = "16gwqh9zpclc3fmf89cf738mxfh36ar3wdf9i0wvby0g0nhknkd7";
+ };
+ };
+ };
+ "zendframework/zend-eventmanager" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "zendframework-zend-eventmanager-a5e2583a211f73604691586b8406ff7296a946dd";
+ src = fetchurl {
+ url = https://api.github.com/repos/zendframework/zend-eventmanager/zipball/a5e2583a211f73604691586b8406ff7296a946dd;
+ sha256 = "08a05gn40hfdy2zhz4gcd3r6q7m7zcaks5kpvb9dx1awgx0pzr8n";
+ };
+ };
+ };
+ "zendframework/zend-feed" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "zendframework-zend-feed-6641f4cf3f4586c63f83fd70b6d19966025c8888";
+ src = fetchurl {
+ url = https://api.github.com/repos/zendframework/zend-feed/zipball/6641f4cf3f4586c63f83fd70b6d19966025c8888;
+ sha256 = "0wl2pf4cq0snlp3gbl2ia662i48yils464qlfqf7gdmbn1ryzcpi";
+ };
+ };
+ };
+ "zendframework/zend-http" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "zendframework-zend-http-2c8aed3d25522618573194e7cc51351f8cd4a45b";
+ src = fetchurl {
+ url = https://api.github.com/repos/zendframework/zend-http/zipball/2c8aed3d25522618573194e7cc51351f8cd4a45b;
+ sha256 = "1vy6b24ihwv1g08hjnw4pd7c5171g866jnlr3j6fg0xqv79s4dn9";
+ };
+ };
+ };
+ "zendframework/zend-loader" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "zendframework-zend-loader-78f11749ea340f6ca316bca5958eef80b38f9b6c";
+ src = fetchurl {
+ url = https://api.github.com/repos/zendframework/zend-loader/zipball/78f11749ea340f6ca316bca5958eef80b38f9b6c;
+ sha256 = "056zp0xchc4ckijg969im5him3j4cji6hsy26fiaycwprniaqdmg";
+ };
+ };
+ };
+ "zendframework/zend-servicemanager" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "zendframework-zend-servicemanager-a1ed6140d0d3ee803fec96582593ed024950067b";
+ src = fetchurl {
+ url = https://api.github.com/repos/zendframework/zend-servicemanager/zipball/a1ed6140d0d3ee803fec96582593ed024950067b;
+ sha256 = "0s3aplkilrd8b18xh55h9m1yvnp9b6vnlgby4gqhqv8npnxxqir9";
+ };
+ };
+ };
+ "zendframework/zend-stdlib" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "zendframework-zend-stdlib-66536006722aff9e62d1b331025089b7ec71c065";
+ src = fetchurl {
+ url = https://api.github.com/repos/zendframework/zend-stdlib/zipball/66536006722aff9e62d1b331025089b7ec71c065;
+ sha256 = "0cl0lcgqb5aja6iijp0wrclxra57imwsmhkfpahdl2bsgs1inf2f";
+ };
+ };
+ };
+ "zendframework/zend-uri" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "zendframework-zend-uri-3b6463645c6766f78ce537c70cb4fdabee1e725f";
+ src = fetchurl {
+ url = https://api.github.com/repos/zendframework/zend-uri/zipball/3b6463645c6766f78ce537c70cb4fdabee1e725f;
+ sha256 = "0zkb88y9qbgshm8ys5yjxhz6a7fhxl7waygwn37pqsbvz74mbbvp";
+ };
+ };
+ };
+ "zendframework/zend-validator" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "zendframework-zend-validator-f0789b4c4c099afdd2ecc58cc209a26c64bd4f17";
+ src = fetchurl {
+ url = https://api.github.com/repos/zendframework/zend-validator/zipball/f0789b4c4c099afdd2ecc58cc209a26c64bd4f17;
+ sha256 = "1lwxbr3jlldll4ccw5cn2ny1cbzh279mnfz7m1djqc8qnw16c8jl";
+ };
+ };
+ };
+ };
+ devPackages = {
+ "doctrine/data-fixtures" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-data-fixtures-3a1e2c3c600e615a2dffe56d4ca0875cc5233e0a";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/data-fixtures/zipball/3a1e2c3c600e615a2dffe56d4ca0875cc5233e0a;
+ sha256 = "0wbxhy7hq17laqgnq9x9ygysv0n1kn7s4x3v89pk7iy622pil3sm";
+ };
+ };
+ };
+ "doctrine/doctrine-fixtures-bundle" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-doctrine-fixtures-bundle-74b8cc70a4a25b774628ee59f4cdf3623a146273";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/DoctrineFixturesBundle/zipball/74b8cc70a4a25b774628ee59f4cdf3623a146273;
+ sha256 = "1bbflq8k6izwqgp9ka2gyb5y96a80b4lnlc5wrgc5gnih7hqidlf";
+ };
+ };
+ };
+ "fzaninotto/faker" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "fzaninotto-faker-d0190b156bcca848d401fb80f31f504f37141c8d";
+ src = fetchurl {
+ url = https://api.github.com/repos/fzaninotto/Faker/zipball/d0190b156bcca848d401fb80f31f504f37141c8d;
+ sha256 = "1x7xrxw14x7b0iq7sxi9ynswk8ljga62i77ch7xip4dwgq1dypvi";
+ };
+ };
+ };
+ "league/factory-muffin" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "league-factory-muffin-316ed2bac70178567f995d877b831804c9c58d5a";
+ src = fetchurl {
+ url = https://api.github.com/repos/thephpleague/factory-muffin/zipball/316ed2bac70178567f995d877b831804c9c58d5a;
+ sha256 = "1fxh0hsqifmnhgkwyd460x3w9wn74369lmak3f1m24mn2asiynxq";
+ };
+ };
+ };
+ "league/factory-muffin-faker" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "league-factory-muffin-faker-30dbd11bb6be03b47e52bd60006ae198d20ab426";
+ src = fetchurl {
+ url = https://api.github.com/repos/thephpleague/factory-muffin-faker/zipball/30dbd11bb6be03b47e52bd60006ae198d20ab426;
+ sha256 = "0dsimjdnsmzdd4vwjzw1gz1bb4zlhmv66g3fc9k4nj5bqch6mny1";
+ };
+ };
+ };
+ "mikey179/vfsStream" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "mikey179-vfsStream-d5fec95f541d4d71c4823bb5e30cf9b9e5b96145";
+ src = fetchurl {
+ url = https://api.github.com/repos/mikey179/vfsStream/zipball/d5fec95f541d4d71c4823bb5e30cf9b9e5b96145;
+ sha256 = "034rdds85qr3n7kqz161dqinl909gwnxgjsvychw8m7dyk2dbl99";
+ };
+ };
+ };
+ "phpdocumentor/reflection-common" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "phpdocumentor-reflection-common-21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6";
+ src = fetchurl {
+ url = https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6;
+ sha256 = "1yaf1zg9lnkfnq2ndpviv0hg5bza9vjvv5l4wgcn25lx1p8a94w2";
+ };
+ };
+ };
+ "phpdocumentor/reflection-docblock" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "phpdocumentor-reflection-docblock-94fd0001232e47129dd3504189fa1c7225010d08";
+ src = fetchurl {
+ url = https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/94fd0001232e47129dd3504189fa1c7225010d08;
+ sha256 = "03zvxqb5n9ddvysj8mjdwf59h7sagj5x5z15nhs7mqpcky1w388x";
+ };
+ };
+ };
+ "phpdocumentor/type-resolver" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "phpdocumentor-type-resolver-9c977708995954784726e25d0cd1dddf4e65b0f7";
+ src = fetchurl {
+ url = https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/9c977708995954784726e25d0cd1dddf4e65b0f7;
+ sha256 = "0h888r2iy2290yp9i3fij8wd5b7960yi7yn1rwh26x1xxd83n2mb";
+ };
+ };
+ };
+ "phpspec/prophecy" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "phpspec-prophecy-4ba436b55987b4bf311cb7c6ba82aa528aac0a06";
+ src = fetchurl {
+ url = https://api.github.com/repos/phpspec/prophecy/zipball/4ba436b55987b4bf311cb7c6ba82aa528aac0a06;
+ sha256 = "0sz9fg8r4yvpgrhsh6qaic3p89pafdj8bdf4izbcccq6mdhclxn6";
+ };
+ };
+ };
+ "phpunit/php-code-coverage" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "phpunit-php-code-coverage-eabf68b476ac7d0f73793aada060f1c1a9bf8979";
+ src = fetchurl {
+ url = https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/eabf68b476ac7d0f73793aada060f1c1a9bf8979;
+ sha256 = "0xfkf2kaqrid0ajr8qfh3qnpiqqddl0cmmdy6hd7l9y7ziy6qz8d";
+ };
+ };
+ };
+ "phpunit/php-file-iterator" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "phpunit-php-file-iterator-730b01bc3e867237eaac355e06a36b85dd93a8b4";
+ src = fetchurl {
+ url = https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/730b01bc3e867237eaac355e06a36b85dd93a8b4;
+ sha256 = "0kbg907g9hrx7pv8v0wnf4ifqywdgvigq6y6z00lyhgd0b8is060";
+ };
+ };
+ };
+ "phpunit/php-text-template" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "phpunit-php-text-template-31f8b717e51d9a2afca6c9f046f5d69fc27c8686";
+ src = fetchurl {
+ url = https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686;
+ sha256 = "1y03m38qqvsbvyakd72v4dram81dw3swyn5jpss153i5nmqr4p76";
+ };
+ };
+ };
+ "phpunit/php-timer" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "phpunit-php-timer-3dcf38ca72b158baf0bc245e9184d3fdffa9c46f";
+ src = fetchurl {
+ url = https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3dcf38ca72b158baf0bc245e9184d3fdffa9c46f;
+ sha256 = "1j04r0hqzrv6m1jk5nb92k2nnana72nscqpfk3rgv3fzrrv69ljr";
+ };
+ };
+ };
+ "phpunit/php-token-stream" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "phpunit-php-token-stream-1ce90ba27c42e4e44e6d8458241466380b51fa16";
+ src = fetchurl {
+ url = https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/1ce90ba27c42e4e44e6d8458241466380b51fa16;
+ sha256 = "0j1v83m268cddhyzi8qvqfzhpz12hrm3dyw6skyqvljdp7l9x6lk";
+ };
+ };
+ };
+ "phpunit/phpunit" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "phpunit-phpunit-46023de9a91eec7dfb06cc56cb4e260017298517";
+ src = fetchurl {
+ url = https://api.github.com/repos/sebastianbergmann/phpunit/zipball/46023de9a91eec7dfb06cc56cb4e260017298517;
+ sha256 = "0mxhgcmc575hw3n7czindgqiha8jhdi4p19h883vf15fg6xf5iv6";
+ };
+ };
+ };
+ "phpunit/phpunit-mock-objects" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "phpunit-phpunit-mock-objects-ac8e7a3db35738d56ee9a76e78a4e03d97628983";
+ src = fetchurl {
+ url = https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/ac8e7a3db35738d56ee9a76e78a4e03d97628983;
+ sha256 = "0s7nyyafdqw2hp7wsd2mxnjxpk26630vv3wii6hcdb0q8xy8r78i";
+ };
+ };
+ };
+ "sebastian/comparator" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "sebastian-comparator-2b7424b55f5047b47ac6e5ccb20b2aea4011d9be";
+ src = fetchurl {
+ url = https://api.github.com/repos/sebastianbergmann/comparator/zipball/2b7424b55f5047b47ac6e5ccb20b2aea4011d9be;
+ sha256 = "0ymarxgnr8b3iy0w18h5z13iiv0ja17vjryryzfcwlqqhlc6w7iq";
+ };
+ };
+ };
+ "sebastian/diff" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "sebastian-diff-7f066a26a962dbe58ddea9f72a4e82874a3975a4";
+ src = fetchurl {
+ url = https://api.github.com/repos/sebastianbergmann/diff/zipball/7f066a26a962dbe58ddea9f72a4e82874a3975a4;
+ sha256 = "1ppx21vjj79z6d584ryq451k7kvdc511awmqjkj9g4vxj1s1h3j6";
+ };
+ };
+ };
+ "sebastian/environment" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "sebastian-environment-be2c607e43ce4c89ecd60e75c6a85c126e754aea";
+ src = fetchurl {
+ url = https://api.github.com/repos/sebastianbergmann/environment/zipball/be2c607e43ce4c89ecd60e75c6a85c126e754aea;
+ sha256 = "0gzgnk847kf18krq4ybbi2knzj7i0kdghsdlj6qynzzrlf7idij0";
+ };
+ };
+ };
+ "sebastian/exporter" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "sebastian-exporter-42c4c2eec485ee3e159ec9884f95b431287edde4";
+ src = fetchurl {
+ url = https://api.github.com/repos/sebastianbergmann/exporter/zipball/42c4c2eec485ee3e159ec9884f95b431287edde4;
+ sha256 = "1p5mc4lqwxn79v06jjlgqxynblywcxw2mkhbf6r4jlz0bsrqafxn";
+ };
+ };
+ };
+ "sebastian/global-state" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "sebastian-global-state-bc37d50fea7d017d3d340f230811c9f1d7280af4";
+ src = fetchurl {
+ url = https://api.github.com/repos/sebastianbergmann/global-state/zipball/bc37d50fea7d017d3d340f230811c9f1d7280af4;
+ sha256 = "0y1x16mf9q38s7rlc7k2s6sxn2ccxmyk1q5zgh24hr4yp035f0pb";
+ };
+ };
+ };
+ "sebastian/recursion-context" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "sebastian-recursion-context-b19cc3298482a335a95f3016d2f8a6950f0fbcd7";
+ src = fetchurl {
+ url = https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/b19cc3298482a335a95f3016d2f8a6950f0fbcd7;
+ sha256 = "1i9xdv55nkg1yy5q4lmpq1jsjif69hjrwmr1zha6b5qjf6ivlvjm";
+ };
+ };
+ };
+ "sebastian/version" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "sebastian-version-58b3a85e7999757d6ad81c787a1fbf5ff6c628c6";
+ src = fetchurl {
+ url = https://api.github.com/repos/sebastianbergmann/version/zipball/58b3a85e7999757d6ad81c787a1fbf5ff6c628c6;
+ sha256 = "1s71b6ss29pcsm0120myriwnzla1kpj13f3f739c7k1wfm69h4wz";
+ };
+ };
+ };
+ "sensio/generator-bundle" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "sensio-generator-bundle-28cbaa244bd0816fd8908b93f90380bcd7b67a65";
+ src = fetchurl {
+ url = https://api.github.com/repos/sensiolabs/SensioGeneratorBundle/zipball/28cbaa244bd0816fd8908b93f90380bcd7b67a65;
+ sha256 = "1j09y037xk843q8gcyfmwgy6dmn0h67pd5jnsvhj08h92ssbl0c3";
+ };
+ };
+ };
+ "symfony/phpunit-bridge" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-phpunit-bridge-2155067dfc73e0e77dbc26f236af17e4df552de5";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/phpunit-bridge/zipball/2155067dfc73e0e77dbc26f236af17e4df552de5;
+ sha256 = "1fhqyhvns69pkv086d1sp918bakqq9pk9d16nzck2s4pfdf097pj";
+ };
+ };
+ };
+ "webmozart/assert" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "webmozart-assert-83e253c8e0be5b0257b881e1827274667c5c17a9";
+ src = fetchurl {
+ url = https://api.github.com/repos/webmozart/assert/zipball/83e253c8e0be5b0257b881e1827274667c5c17a9;
+ sha256 = "0d84b0ms9mjpqx368gs7c3qs06mpbx5565j3vs43b1ygnyhhhaqk";
+ };
+ };
+ };
+ };
+}
--- /dev/null
+{
+ "tag": "4ee4538-master",
+ "meta": {
+ "name": "piedsjaloux",
+ "url": "gitolite@git.immae.eu:Pieds_jaloux/NewSite",
+ "branch": "master"
+ },
+ "git": {
+ "url": "gitolite@git.immae.eu:Pieds_jaloux/NewSite",
+ "rev": "4ee45386ad9ec9c081234a2fbde66e5b0c3294be",
+ "sha256": "10a41chh4crn95z6lk6nhkx27089djkngypa9m76bg7ph508mvnq",
+ "fetchSubmodules": true
+ }
+}
--- /dev/null
+{ environment ? "prod"
+, varDir ? "/var/lib/tellesflorian_${environment}"
+, composerEnv, fetchurl, mylibs }:
+let
+ app = composerEnv.buildPackage (
+ import ./php-packages.nix { inherit composerEnv fetchurl; } //
+ mylibs.fetchedGitPrivate ./tellesflorian.json //
+ rec {
+ noDev = (environment == "prod");
+ preInstall = ''
+ export SYMFONY_ENV="${environment}"
+ '';
+ postInstall = ''
+ cd $out
+ rm app/config/parameters.yml
+ ln -sf /var/secrets/webapps/${environment}-tellesflorian app/config/parameters.yml
+ rm -rf var/{logs,cache}
+ ln -sf ${varDir}/var/{logs,cache,sessions} var/
+ '';
+ passthru = {
+ inherit varDir environment;
+ webRoot = "${app}/web";
+ };
+ });
+in app
--- /dev/null
+# Generated with composer2nix and adapted to return only the list of
+# packages
+{ composerEnv, fetchurl }:
+{
+ packages = {
+ "composer/ca-bundle" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "composer-ca-bundle-943b2c4fcad1ef178d16a713c2468bf7e579c288";
+ src = fetchurl {
+ url = https://api.github.com/repos/composer/ca-bundle/zipball/943b2c4fcad1ef178d16a713c2468bf7e579c288;
+ sha256 = "1gljia7akifp57w4rjzyh1km23kwymmvglz0mgafdgqzczcw0m6w";
+ };
+ };
+ };
+ "doctrine/annotations" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-annotations-f25c8aab83e0c3e976fd7d19875f198ccf2f7535";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/annotations/zipball/f25c8aab83e0c3e976fd7d19875f198ccf2f7535;
+ sha256 = "08vm22fqq8r4bg2fk06y4inqnc8x0yfmsss28w5ra2011x2phq4z";
+ };
+ };
+ };
+ "doctrine/cache" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-cache-eb152c5100571c7a45470ff2a35095ab3f3b900b";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/cache/zipball/eb152c5100571c7a45470ff2a35095ab3f3b900b;
+ sha256 = "0iq0qqv1smlqz63jhj2fpjy54c5dwfwxyf5c89iky6i0yb81gwyd";
+ };
+ };
+ };
+ "doctrine/collections" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-collections-6c1e4eef75f310ea1b3e30945e9f06e652128b8a";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/collections/zipball/6c1e4eef75f310ea1b3e30945e9f06e652128b8a;
+ sha256 = "1dkxr2vjycykpcnnmq68rcnn1ww0kbpizd5pxxm6x9i2ilj8cbn7";
+ };
+ };
+ };
+ "doctrine/common" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-common-7bce00698899aa2c06fe7365c76e4d78ddb15fa3";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/common/zipball/7bce00698899aa2c06fe7365c76e4d78ddb15fa3;
+ sha256 = "12yizcsxsbhhi8hwaik4zalr12n5nxbpld05zygqhx6miyr92jyd";
+ };
+ };
+ };
+ "doctrine/dbal" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-dbal-729340d8d1eec8f01bff708e12e449a3415af873";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/dbal/zipball/729340d8d1eec8f01bff708e12e449a3415af873;
+ sha256 = "184p8h0n6mcm0y6vfyh0z6qcxmmf8h5z4vdvxd4ycmx0531lnhj3";
+ };
+ };
+ };
+ "doctrine/doctrine-bundle" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-doctrine-bundle-eb6e4fb904a459be28872765ab6e2d246aac7c87";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/DoctrineBundle/zipball/eb6e4fb904a459be28872765ab6e2d246aac7c87;
+ sha256 = "0kkisgyblc9hf9x3zpbb1wif51fa8mi6svyd44nls38k9k93dp17";
+ };
+ };
+ };
+ "doctrine/doctrine-cache-bundle" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-doctrine-cache-bundle-9baecbd6bfdd1123b0cf8c1b88fee0170a84ddd1";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/DoctrineCacheBundle/zipball/9baecbd6bfdd1123b0cf8c1b88fee0170a84ddd1;
+ sha256 = "08bqz18vk4673pnm2r2pcph6pdchc36zajnma1p9c6dp21sv7iki";
+ };
+ };
+ };
+ "doctrine/inflector" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-inflector-90b2128806bfde671b6952ab8bea493942c1fdae";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/inflector/zipball/90b2128806bfde671b6952ab8bea493942c1fdae;
+ sha256 = "01vmclj3k7xil51jg329fznshh8d07pvm4mr89lvfn1d7fyrq6qw";
+ };
+ };
+ };
+ "doctrine/instantiator" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-instantiator-8e884e78f9f0eb1329e445619e04456e64d8051d";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d;
+ sha256 = "15dcja45rnwya431pcm826l68k1g8f1fabl7rih69alcdyvdlln4";
+ };
+ };
+ };
+ "doctrine/lexer" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-lexer-83893c552fd2045dd78aef794c31e694c37c0b8c";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/lexer/zipball/83893c552fd2045dd78aef794c31e694c37c0b8c;
+ sha256 = "0cyh3vwcl163cx1vrcwmhlh5jg9h47xwiqgzc6rwscxw0ppd1v74";
+ };
+ };
+ };
+ "doctrine/orm" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "doctrine-orm-810a7baf81462a5ddf10e8baa8cb94b6eec02754";
+ src = fetchurl {
+ url = https://api.github.com/repos/doctrine/doctrine2/zipball/810a7baf81462a5ddf10e8baa8cb94b6eec02754;
+ sha256 = "1hmkc7917kgnav9hmlgvlp7qwm3zjj910ci71g9yqwjh6s28wrf1";
+ };
+ };
+ };
+ "fig/link-util" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "fig-link-util-1a07821801a148be4add11ab0603e4af55a72fac";
+ src = fetchurl {
+ url = https://api.github.com/repos/php-fig/link-util/zipball/1a07821801a148be4add11ab0603e4af55a72fac;
+ sha256 = "0ky1pq4a17br5zvcychjghgwr6wpkgp409hdv0ljdk3ks90w5w64";
+ };
+ };
+ };
+ "incenteev/composer-parameter-handler" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "incenteev-composer-parameter-handler-933c45a34814f27f2345c11c37d46b3ca7303550";
+ src = fetchurl {
+ url = https://api.github.com/repos/Incenteev/ParameterHandler/zipball/933c45a34814f27f2345c11c37d46b3ca7303550;
+ sha256 = "1zqdwlcl790kjyz4rkpva35xkfsp8kslds82fzznj0yigkgnbifm";
+ };
+ };
+ };
+ "jdorn/sql-formatter" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "jdorn-sql-formatter-64990d96e0959dff8e059dfcdc1af130728d92bc";
+ src = fetchurl {
+ url = https://api.github.com/repos/jdorn/sql-formatter/zipball/64990d96e0959dff8e059dfcdc1af130728d92bc;
+ sha256 = "1dnmkm8mxylvxjwi0bdkzrlklncqx92fa4fwqp5bh2ypj8gaagzi";
+ };
+ };
+ };
+ "monolog/monolog" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "monolog-monolog-fd8c787753b3a2ad11bc60c063cff1358a32a3b4";
+ src = fetchurl {
+ url = https://api.github.com/repos/Seldaek/monolog/zipball/fd8c787753b3a2ad11bc60c063cff1358a32a3b4;
+ sha256 = "0avf3y8raw23krwdb7kw9qb5bsr5ls4i7qd2vh7hcds3qjixg3h9";
+ };
+ };
+ };
+ "paragonie/random_compat" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "paragonie-random_compat-5da4d3c796c275c55f057af5a643ae297d96b4d8";
+ src = fetchurl {
+ url = https://api.github.com/repos/paragonie/random_compat/zipball/5da4d3c796c275c55f057af5a643ae297d96b4d8;
+ sha256 = "1hp6pin4923c300yi85m7qk04gsrbygv52wv5zm7giyyf0k0g073";
+ };
+ };
+ };
+ "psr/cache" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "psr-cache-d11b50ad223250cf17b86e38383413f5a6764bf8";
+ src = fetchurl {
+ url = https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8;
+ sha256 = "06i2k3dx3b4lgn9a4v1dlgv8l9wcl4kl7vzhh63lbji0q96hv8qz";
+ };
+ };
+ };
+ "psr/container" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "psr-container-b7ce3b176482dbbc1245ebf52b181af44c2cf55f";
+ src = fetchurl {
+ url = https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f;
+ sha256 = "0rkz64vgwb0gfi09klvgay4qnw993l1dc03vyip7d7m2zxi6cy4j";
+ };
+ };
+ };
+ "psr/link" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "psr-link-eea8e8662d5cd3ae4517c9b864493f59fca95562";
+ src = fetchurl {
+ url = https://api.github.com/repos/php-fig/link/zipball/eea8e8662d5cd3ae4517c9b864493f59fca95562;
+ sha256 = "091k4p9irkqnmq9b0p792wz1hb7dm4rafpjilw9im9xhsxgkmr13";
+ };
+ };
+ };
+ "psr/log" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "psr-log-4ebe3a8bf773a19edfe0a84b6585ba3d401b724d";
+ src = fetchurl {
+ url = https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d;
+ sha256 = "1mlcv17fjw39bjpck176ah1z393b6pnbw3jqhhrblj27c70785md";
+ };
+ };
+ };
+ "psr/simple-cache" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "psr-simple-cache-408d5eafb83c57f6365a3ca330ff23aa4a5fa39b";
+ src = fetchurl {
+ url = https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b;
+ sha256 = "1djgzclkamjxi9jy4m9ggfzgq1vqxaga2ip7l3cj88p7rwkzjxgw";
+ };
+ };
+ };
+ "sensio/distribution-bundle" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "sensio-distribution-bundle-eb6266b3b472e4002538610b28a0a04bcf94891a";
+ src = fetchurl {
+ url = https://api.github.com/repos/sensiolabs/SensioDistributionBundle/zipball/eb6266b3b472e4002538610b28a0a04bcf94891a;
+ sha256 = "0wyffqj924lz9cv0vbahyngjw1g850v0p34swygzzgp3cr0ank13";
+ };
+ };
+ };
+ "sensio/framework-extra-bundle" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "sensio-framework-extra-bundle-bf4940572e43af679aaa13be98f3446a1c237bd8";
+ src = fetchurl {
+ url = https://api.github.com/repos/sensiolabs/SensioFrameworkExtraBundle/zipball/bf4940572e43af679aaa13be98f3446a1c237bd8;
+ sha256 = "1kb1n5w3kfc0kf4pslqdx5pgp0g4hmaag0i00wvjj2n3pjfm5lhf";
+ };
+ };
+ };
+ "sensiolabs/security-checker" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "sensiolabs-security-checker-dc270d5fec418cc6ac983671dba5d80ffaffb142";
+ src = fetchurl {
+ url = https://api.github.com/repos/sensiolabs/security-checker/zipball/dc270d5fec418cc6ac983671dba5d80ffaffb142;
+ sha256 = "0fnshyd6f8j91a7y604nh6sqgscjl48mfa0727g2r4hkdfz8hpd1";
+ };
+ };
+ };
+ "swiftmailer/swiftmailer" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "swiftmailer-swiftmailer-7ffc1ea296ed14bf8260b6ef11b80208dbadba91";
+ src = fetchurl {
+ url = https://api.github.com/repos/swiftmailer/swiftmailer/zipball/7ffc1ea296ed14bf8260b6ef11b80208dbadba91;
+ sha256 = "1vl5pzgvr2yfrj1yfs02mi917b0gr56v76ibi40r51a3346zhp6v";
+ };
+ };
+ };
+ "symfony/monolog-bundle" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-monolog-bundle-8781649349fe418d51d194f8c9d212c0b97c40dd";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/monolog-bundle/zipball/8781649349fe418d51d194f8c9d212c0b97c40dd;
+ sha256 = "0wcqhg1vfdj3mxacr3fxpgqwy1rk9znjg9bmzx4jymk8l16i7bq8";
+ };
+ };
+ };
+ "symfony/polyfill-apcu" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-polyfill-apcu-e8ae2136ddb53dea314df56fcd88e318ab936c00";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/polyfill-apcu/zipball/e8ae2136ddb53dea314df56fcd88e318ab936c00;
+ sha256 = "07wdszb9ircnidjk3fp3cvcrggxv3sfm996jzd0a9pm6vfz9hymv";
+ };
+ };
+ };
+ "symfony/polyfill-intl-icu" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-polyfill-intl-icu-254919c03761d46c29291616576ed003f10e91c1";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/254919c03761d46c29291616576ed003f10e91c1;
+ sha256 = "01yivzv7p55fzrkkyvgd57zpyz82zn1qp0h6nzr77k01rkv3w0ds";
+ };
+ };
+ };
+ "symfony/polyfill-mbstring" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-polyfill-mbstring-78be803ce01e55d3491c1397cf1c64beb9c1b63b";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/polyfill-mbstring/zipball/78be803ce01e55d3491c1397cf1c64beb9c1b63b;
+ sha256 = "0cqr8ni6wpbaxa9gyr40y5bsv54pa2g8kdarlfw3qg2rgzmk0yz1";
+ };
+ };
+ };
+ "symfony/polyfill-php56" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-polyfill-php56-ebc999ce5f14204c5150b9bd15f8f04e621409d8";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/polyfill-php56/zipball/ebc999ce5f14204c5150b9bd15f8f04e621409d8;
+ sha256 = "0b2j56l6d6rdggx7vr20d527df4pjfp4lgxpglsgbf5912rcyf83";
+ };
+ };
+ };
+ "symfony/polyfill-php70" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-polyfill-php70-3532bfcd8f933a7816f3a0a59682fc404776600f";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/polyfill-php70/zipball/3532bfcd8f933a7816f3a0a59682fc404776600f;
+ sha256 = "151m76lc9w0kxnnwk4zdcjlmj7fppibnp8jisgpvvq32ml3fizdi";
+ };
+ };
+ };
+ "symfony/polyfill-util" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-polyfill-util-e17c808ec4228026d4f5a8832afa19be85979563";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/polyfill-util/zipball/e17c808ec4228026d4f5a8832afa19be85979563;
+ sha256 = "17sdpdidc0b701f9rippjv1grfci7wrdpy2i1inlwwpr6zy782cq";
+ };
+ };
+ };
+ "symfony/swiftmailer-bundle" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-swiftmailer-bundle-c4808f5169efc05567be983909d00f00521c53ec";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/swiftmailer-bundle/zipball/c4808f5169efc05567be983909d00f00521c53ec;
+ sha256 = "0jmd3slhb3gf3c3krmk2a9fi4ixdxvqlimdkfpj0sfaaq0115y01";
+ };
+ };
+ };
+ "symfony/symfony" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-symfony-874d4d659774d7bab90538072c83ed532dd17dc5";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/symfony/zipball/874d4d659774d7bab90538072c83ed532dd17dc5;
+ sha256 = "02rsn3sc34jh107n576jfbh666k06y44yr7hw61nir0d864k8api";
+ };
+ };
+ };
+ "twig/twig" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "twig-twig-9c24f2cd39dc1906b76879e099970b7e53724601";
+ src = fetchurl {
+ url = https://api.github.com/repos/twigphp/Twig/zipball/9c24f2cd39dc1906b76879e099970b7e53724601;
+ sha256 = "0brfj2lahrrw1322zy6jyd380hjks1ynzzkmq3875a282gzrfkdz";
+ };
+ };
+ };
+ };
+ devPackages = {
+ "sensio/generator-bundle" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "sensio-generator-bundle-28cbaa244bd0816fd8908b93f90380bcd7b67a65";
+ src = fetchurl {
+ url = https://api.github.com/repos/sensiolabs/SensioGeneratorBundle/zipball/28cbaa244bd0816fd8908b93f90380bcd7b67a65;
+ sha256 = "1j09y037xk843q8gcyfmwgy6dmn0h67pd5jnsvhj08h92ssbl0c3";
+ };
+ };
+ };
+ "symfony/phpunit-bridge" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "symfony-phpunit-bridge-32b06d2b0babf3216e55acfce42249321a304f03";
+ src = fetchurl {
+ url = https://api.github.com/repos/symfony/phpunit-bridge/zipball/32b06d2b0babf3216e55acfce42249321a304f03;
+ sha256 = "0vw4q3lvz8gfs0r93ds8yymz8586k0czwa01c7d172rc8x02v0qq";
+ };
+ };
+ };
+ };
+}
--- /dev/null
+{
+ "tag": "1793d5c-master",
+ "meta": {
+ "name": "tellesflorian",
+ "url": "gitolite@git.immae.eu:perso/florian_telles/stabilo",
+ "branch": "master"
+ },
+ "git": {
+ "url": "gitolite@git.immae.eu:perso/florian_telles/stabilo",
+ "rev": "1793d5c7912d1b20ad1df1ac59be9d7f1220e919",
+ "sha256": "1zhxcrbglbjb6xfr8sfm4m2miabbkkb0a7543va3b5akrn6yk0cb",
+ "fetchSubmodules": true
+ }
+}
--- /dev/null
+{ stdenv, fetchurl, openssl, postgresql, openldap }:
+
+stdenv.mkDerivation rec {
+ name = "pure-ftpd-1.0.47";
+
+ src = fetchurl {
+ url = "https://download.pureftpd.org/pub/pure-ftpd/releases/${name}.tar.gz";
+ sha256 = "1b97ixva8m10vln8xrfwwwzi344bkgxqji26d0nrm1yzylbc6h27";
+ };
+
+ preConfigure = ''
+ sed -i -e "s#FTPuid#immaeFtpUid#" src/log_ldap.h
+ sed -i -e "s#FTPgid#immaeFtpGid#" src/log_ldap.h
+ '';
+ postConfigure = ''
+ sed -i 's/define MAX_DATA_SIZE (40/define MAX_DATA_SIZE (70/' src/ftpd.h
+ '';
+ buildInputs = [ openssl postgresql openldap ];
+
+ configureFlags = [ "--with-everything" "--with-tls" "--with-pgsql" "--with-ldap" ];
+
+ meta = with stdenv.lib; {
+ description = "A free, secure, production-quality and standard-conformant FTP server";
+ homepage = https://www.pureftpd.org;
+ license = licenses.isc; # with some parts covered by BSD3(?)
+ maintainers = [ maintainers.lethalman ];
+ platforms = platforms.linux;
+ };
+}
--- /dev/null
+{
+ "tag": "c9b957c-master",
+ "meta": {
+ "name": "apprise",
+ "url": "https://github.com/caronc/apprise",
+ "branch": "master"
+ },
+ "github": {
+ "owner": "caronc",
+ "repo": "apprise",
+ "rev": "c9b957c4341e7d43e5be6463bd317a7401d083d9",
+ "sha256": "01zz4mh3xvplrm5xalzrcncnh0jq5y51pmdxkr4hdd6dz9wx0mbg",
+ "fetchSubmodules": true
+ }
+}
--- /dev/null
+{ mylibs, pythonPackages }: with pythonPackages;
+buildPythonPackage rec {
+ pname = "apprise";
+ version = "0.7.4";
+ src = (mylibs.fetchedGithub ./apprise.json).src;
+ propagatedBuildInputs = [ decorator requests
+ requests_oauthlib oauthlib urllib3 six click markdown pyyaml
+ sleekxmpp
+ ];
+ doChecks = false;
+}
--- /dev/null
+# Generated by bower2nix v3.2.0 (https://github.com/rvl/bower2nix)
+{ fetchbower, buildEnv }:
+buildEnv { name = "bower-env"; ignoreCollisions = true; paths = [
+ (fetchbower "jquery" "2.1.1" "2.1.1" "1qir36vi0bppjr9ckm6303vk1f1dkvq5wandpihb7dxl76s832bd")
+ (fetchbower "angular" "1.5.11" "~1.5.3" "1sw31v3dhmxwgrmncw2f9yl07i9px62ssbj0739zsgi59cq2khl7")
+ (fetchbower "lodash" "2.4.2" "~2.4.1" "0bhqarlvhlrxfvcgnxgsrsjgi6az4c117ffxyfi7gjwr9cvrzz4q")
+ (fetchbower "angular-mocks" "1.5.11" "~1.5.3" "0yv0396fw51i6d9lwiwf241rmc28rnxgg2aa9vsc7dnm4qjkn6gx")
+ (fetchbower "buildbot-data" "2.1.0" "~2.1.0" "0hkmm1byy7d712898lhkxf7i0wshmd1f8cr98iz67679nm6abimk")
+]; }
--- /dev/null
+{
+ "tag": "9e87787-master",
+ "meta": {
+ "name": "buildslist",
+ "url": "https://git.immae.eu/perso/Immae/Projets/Buildbot/buildslist",
+ "branch": "master"
+ },
+ "git": {
+ "url": "https://git.immae.eu/perso/Immae/Projets/Buildbot/buildslist",
+ "rev": "9e87787b40f4d6435218268e516be56eacd8d17b",
+ "sha256": "0bli9w0xwpij23jblggz2zwhb7y3gkjdvsppcy6ia3m0x0siclpi",
+ "fetchSubmodules": true
+ }
+}
--- /dev/null
+{ mylibs, runCommand, buildBowerComponents, pythonPackages, jq, yarn, nodejs }:
+let
+ buildslist_src = mylibs.fetchedGit ./buildslist.json;
+ packagejson = runCommand "package.json" { buildInputs = [ jq ]; } ''
+ cat ${buildslist_src.src}/package.json | jq -r '.version = "${pythonPackages.buildbot-pkg.version}"' > $out
+ '';
+ buildslist_yarn = mylibs.yarn2nixPackage.mkYarnModules rec {
+ name = "buildslist-yarn-modules";
+ pname = name;
+ inherit (pythonPackages.buildbot-pkg) version;
+ packageJSON = packagejson;
+ yarnLock = "${buildslist_src.src}/yarn.lock";
+ yarnNix = ./yarn-packages.nix;
+ pkgConfig = {
+ all = { buildInputs = [ mylibs.yarn2nixPackage.src ]; };
+ };
+ };
+ buildslist_bower = buildBowerComponents {
+ name = "buildslist";
+ generated = ./bower.nix;
+ src = "${buildslist_src.src}/guanlecoja/";
+ };
+in
+pythonPackages.buildPythonPackage rec {
+ pname = "buildbot-buildslist";
+ inherit (pythonPackages.buildbot-pkg) version;
+
+ __noChroot = true;
+ preConfigure = ''
+ export HOME=$PWD
+ cp -a ${buildslist_yarn}/node_modules .
+ chmod -R u+w node_modules
+ cp -a ${buildslist_bower}/bower_components ./libs
+ chmod -R u+w libs
+ '';
+ propagatedBuildInputs = with pythonPackages; [
+ (klein.overridePythonAttrs(old: { checkPhase = ""; }))
+ buildbot-pkg
+ ];
+ nativeBuildInputs = [ yarn nodejs ];
+ buildInputs = [ buildslist_yarn buildslist_bower ];
+
+ doCheck = false;
+ src = buildslist_src.src;
+}
--- /dev/null
+{fetchurl, linkFarm}: rec {
+ offline_cache = linkFarm "offline" packages;
+ packages = [
+
+ {
+ name = "abbrev___abbrev_1.1.1.tgz";
+ path = fetchurl {
+ name = "abbrev___abbrev_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz";
+ sha1 = "f8f2c887ad10bf67f634f005b6987fed3179aac8";
+ };
+ }
+
+ {
+ name = "abbrev___abbrev_1.0.9.tgz";
+ path = fetchurl {
+ name = "abbrev___abbrev_1.0.9.tgz";
+ url = "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz";
+ sha1 = "91b4792588a7738c25f35dd6f63752a2f8776135";
+ };
+ }
+
+ {
+ name = "accepts___accepts_1.3.3.tgz";
+ path = fetchurl {
+ name = "accepts___accepts_1.3.3.tgz";
+ url = "https://registry.yarnpkg.com/accepts/-/accepts-1.3.3.tgz";
+ sha1 = "c3ca7434938648c3e0d9c1e328dd68b622c284ca";
+ };
+ }
+
+ {
+ name = "after___after_0.8.2.tgz";
+ path = fetchurl {
+ name = "after___after_0.8.2.tgz";
+ url = "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz";
+ sha1 = "fedb394f9f0e02aa9768e702bda23b505fae7e1f";
+ };
+ }
+
+ {
+ name = "ajv___ajv_6.10.0.tgz";
+ path = fetchurl {
+ name = "ajv___ajv_6.10.0.tgz";
+ url = "https://registry.yarnpkg.com/ajv/-/ajv-6.10.0.tgz";
+ sha1 = "90d0d54439da587cd7e843bfb7045f50bd22bdf1";
+ };
+ }
+
+ {
+ name = "amdefine___amdefine_1.0.1.tgz";
+ path = fetchurl {
+ name = "amdefine___amdefine_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz";
+ sha1 = "4a5282ac164729e93619bcfd3ad151f817ce91f5";
+ };
+ }
+
+ {
+ name = "ansi_gray___ansi_gray_0.1.1.tgz";
+ path = fetchurl {
+ name = "ansi_gray___ansi_gray_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/ansi-gray/-/ansi-gray-0.1.1.tgz";
+ sha1 = "2962cf54ec9792c48510a3deb524436861ef7251";
+ };
+ }
+
+ {
+ name = "ansi_regex___ansi_regex_0.2.1.tgz";
+ path = fetchurl {
+ name = "ansi_regex___ansi_regex_0.2.1.tgz";
+ url = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-0.2.1.tgz";
+ sha1 = "0d8e946967a3d8143f93e24e298525fc1b2235f9";
+ };
+ }
+
+ {
+ name = "ansi_regex___ansi_regex_2.1.1.tgz";
+ path = fetchurl {
+ name = "ansi_regex___ansi_regex_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz";
+ sha1 = "c3b33ab5ee360d86e0e628f0468ae7ef27d654df";
+ };
+ }
+
+ {
+ name = "ansi_regex___ansi_regex_3.0.0.tgz";
+ path = fetchurl {
+ name = "ansi_regex___ansi_regex_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz";
+ sha1 = "ed0317c322064f79466c02966bddb605ab37d998";
+ };
+ }
+
+ {
+ name = "ansi_styles___ansi_styles_1.1.0.tgz";
+ path = fetchurl {
+ name = "ansi_styles___ansi_styles_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.1.0.tgz";
+ sha1 = "eaecbf66cd706882760b2f4691582b8f55d7a7de";
+ };
+ }
+
+ {
+ name = "ansi_styles___ansi_styles_2.2.1.tgz";
+ path = fetchurl {
+ name = "ansi_styles___ansi_styles_2.2.1.tgz";
+ url = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz";
+ sha1 = "b432dd3358b634cf75e1e4664368240533c1ddbe";
+ };
+ }
+
+ {
+ name = "ansi_wrap___ansi_wrap_0.1.0.tgz";
+ path = fetchurl {
+ name = "ansi_wrap___ansi_wrap_0.1.0.tgz";
+ url = "https://registry.yarnpkg.com/ansi-wrap/-/ansi-wrap-0.1.0.tgz";
+ sha1 = "a82250ddb0015e9a27ca82e82ea603bbfa45efaf";
+ };
+ }
+
+ {
+ name = "anymatch___anymatch_1.3.2.tgz";
+ path = fetchurl {
+ name = "anymatch___anymatch_1.3.2.tgz";
+ url = "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz";
+ sha1 = "553dcb8f91e3c889845dfdba34c77721b90b9d7a";
+ };
+ }
+
+ {
+ name = "aproba___aproba_1.2.0.tgz";
+ path = fetchurl {
+ name = "aproba___aproba_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz";
+ sha1 = "6802e6264efd18c790a1b0d517f0f2627bf2c94a";
+ };
+ }
+
+ {
+ name = "archy___archy_1.0.0.tgz";
+ path = fetchurl {
+ name = "archy___archy_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz";
+ sha1 = "f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40";
+ };
+ }
+
+ {
+ name = "are_we_there_yet___are_we_there_yet_1.1.5.tgz";
+ path = fetchurl {
+ name = "are_we_there_yet___are_we_there_yet_1.1.5.tgz";
+ url = "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz";
+ sha1 = "4b35c2944f062a8bfcda66410760350fe9ddfc21";
+ };
+ }
+
+ {
+ name = "argparse___argparse_1.0.10.tgz";
+ path = fetchurl {
+ name = "argparse___argparse_1.0.10.tgz";
+ url = "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz";
+ sha1 = "bcd6791ea5ae09725e17e5ad988134cd40b3d911";
+ };
+ }
+
+ {
+ name = "arr_diff___arr_diff_2.0.0.tgz";
+ path = fetchurl {
+ name = "arr_diff___arr_diff_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz";
+ sha1 = "8f3b827f955a8bd669697e4a4256ac3ceae356cf";
+ };
+ }
+
+ {
+ name = "arr_diff___arr_diff_4.0.0.tgz";
+ path = fetchurl {
+ name = "arr_diff___arr_diff_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz";
+ sha1 = "d6461074febfec71e7e15235761a329a5dc7c520";
+ };
+ }
+
+ {
+ name = "arr_flatten___arr_flatten_1.1.0.tgz";
+ path = fetchurl {
+ name = "arr_flatten___arr_flatten_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz";
+ sha1 = "36048bbff4e7b47e136644316c99669ea5ae91f1";
+ };
+ }
+
+ {
+ name = "arr_union___arr_union_3.1.0.tgz";
+ path = fetchurl {
+ name = "arr_union___arr_union_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz";
+ sha1 = "e39b09aea9def866a8f206e288af63919bae39c4";
+ };
+ }
+
+ {
+ name = "array_differ___array_differ_1.0.0.tgz";
+ path = fetchurl {
+ name = "array_differ___array_differ_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz";
+ sha1 = "eff52e3758249d33be402b8bb8e564bb2b5d4031";
+ };
+ }
+
+ {
+ name = "array_each___array_each_1.0.1.tgz";
+ path = fetchurl {
+ name = "array_each___array_each_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/array-each/-/array-each-1.0.1.tgz";
+ sha1 = "a794af0c05ab1752846ee753a1f211a05ba0c44f";
+ };
+ }
+
+ {
+ name = "array_find_index___array_find_index_1.0.2.tgz";
+ path = fetchurl {
+ name = "array_find_index___array_find_index_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz";
+ sha1 = "df010aa1287e164bbda6f9723b0a96a1ec4187a1";
+ };
+ }
+
+ {
+ name = "array_slice___array_slice_0.2.3.tgz";
+ path = fetchurl {
+ name = "array_slice___array_slice_0.2.3.tgz";
+ url = "https://registry.yarnpkg.com/array-slice/-/array-slice-0.2.3.tgz";
+ sha1 = "dd3cfb80ed7973a75117cdac69b0b99ec86186f5";
+ };
+ }
+
+ {
+ name = "array_slice___array_slice_1.1.0.tgz";
+ path = fetchurl {
+ name = "array_slice___array_slice_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/array-slice/-/array-slice-1.1.0.tgz";
+ sha1 = "e368ea15f89bc7069f7ffb89aec3a6c7d4ac22d4";
+ };
+ }
+
+ {
+ name = "array_uniq___array_uniq_1.0.3.tgz";
+ path = fetchurl {
+ name = "array_uniq___array_uniq_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz";
+ sha1 = "af6ac877a25cc7f74e058894753858dfdb24fdb6";
+ };
+ }
+
+ {
+ name = "array_unique___array_unique_0.2.1.tgz";
+ path = fetchurl {
+ name = "array_unique___array_unique_0.2.1.tgz";
+ url = "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz";
+ sha1 = "a1d97ccafcbc2625cc70fadceb36a50c58b01a53";
+ };
+ }
+
+ {
+ name = "array_unique___array_unique_0.3.2.tgz";
+ path = fetchurl {
+ name = "array_unique___array_unique_0.3.2.tgz";
+ url = "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz";
+ sha1 = "a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428";
+ };
+ }
+
+ {
+ name = "arraybuffer.slice___arraybuffer.slice_0.0.6.tgz";
+ path = fetchurl {
+ name = "arraybuffer.slice___arraybuffer.slice_0.0.6.tgz";
+ url = "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz";
+ sha1 = "f33b2159f0532a3f3107a272c0ccfbd1ad2979ca";
+ };
+ }
+
+ {
+ name = "asn1___asn1_0.2.4.tgz";
+ path = fetchurl {
+ name = "asn1___asn1_0.2.4.tgz";
+ url = "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz";
+ sha1 = "8d2475dfab553bb33e77b54e59e880bb8ce23136";
+ };
+ }
+
+ {
+ name = "assert_plus___assert_plus_1.0.0.tgz";
+ path = fetchurl {
+ name = "assert_plus___assert_plus_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz";
+ sha1 = "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525";
+ };
+ }
+
+ {
+ name = "assign_symbols___assign_symbols_1.0.0.tgz";
+ path = fetchurl {
+ name = "assign_symbols___assign_symbols_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz";
+ sha1 = "59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367";
+ };
+ }
+
+ {
+ name = "async_each___async_each_1.0.1.tgz";
+ path = fetchurl {
+ name = "async_each___async_each_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz";
+ sha1 = "19d386a1d9edc6e7c1c85d388aedbcc56d33602d";
+ };
+ }
+
+ {
+ name = "async_foreach___async_foreach_0.1.3.tgz";
+ path = fetchurl {
+ name = "async_foreach___async_foreach_0.1.3.tgz";
+ url = "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz";
+ sha1 = "36121f845c0578172de419a97dbeb1d16ec34542";
+ };
+ }
+
+ {
+ name = "async___async_1.5.2.tgz";
+ path = fetchurl {
+ name = "async___async_1.5.2.tgz";
+ url = "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz";
+ sha1 = "ec6a61ae56480c0c3cb241c95618e20892f9672a";
+ };
+ }
+
+ {
+ name = "async___async_2.6.2.tgz";
+ path = fetchurl {
+ name = "async___async_2.6.2.tgz";
+ url = "https://registry.yarnpkg.com/async/-/async-2.6.2.tgz";
+ sha1 = "18330ea7e6e313887f5d2f2a904bac6fe4dd5381";
+ };
+ }
+
+ {
+ name = "asynckit___asynckit_0.4.0.tgz";
+ path = fetchurl {
+ name = "asynckit___asynckit_0.4.0.tgz";
+ url = "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz";
+ sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79";
+ };
+ }
+
+ {
+ name = "atob___atob_2.1.2.tgz";
+ path = fetchurl {
+ name = "atob___atob_2.1.2.tgz";
+ url = "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz";
+ sha1 = "6d9517eb9e030d2436666651e86bd9f6f13533c9";
+ };
+ }
+
+ {
+ name = "aws_sign2___aws_sign2_0.7.0.tgz";
+ path = fetchurl {
+ name = "aws_sign2___aws_sign2_0.7.0.tgz";
+ url = "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz";
+ sha1 = "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8";
+ };
+ }
+
+ {
+ name = "aws4___aws4_1.8.0.tgz";
+ path = fetchurl {
+ name = "aws4___aws4_1.8.0.tgz";
+ url = "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz";
+ sha1 = "f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f";
+ };
+ }
+
+ {
+ name = "backo2___backo2_1.0.2.tgz";
+ path = fetchurl {
+ name = "backo2___backo2_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz";
+ sha1 = "31ab1ac8b129363463e35b3ebb69f4dfcfba7947";
+ };
+ }
+
+ {
+ name = "balanced_match___balanced_match_1.0.0.tgz";
+ path = fetchurl {
+ name = "balanced_match___balanced_match_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz";
+ sha1 = "89b4d199ab2bee49de164ea02b89ce462d71b767";
+ };
+ }
+
+ {
+ name = "base64_arraybuffer___base64_arraybuffer_0.1.5.tgz";
+ path = fetchurl {
+ name = "base64_arraybuffer___base64_arraybuffer_0.1.5.tgz";
+ url = "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz";
+ sha1 = "73926771923b5a19747ad666aa5cd4bf9c6e9ce8";
+ };
+ }
+
+ {
+ name = "base64id___base64id_1.0.0.tgz";
+ path = fetchurl {
+ name = "base64id___base64id_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz";
+ sha1 = "47688cb99bb6804f0e06d3e763b1c32e57d8e6b6";
+ };
+ }
+
+ {
+ name = "base___base_0.11.2.tgz";
+ path = fetchurl {
+ name = "base___base_0.11.2.tgz";
+ url = "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz";
+ sha1 = "7bde5ced145b6d551a90db87f83c558b4eb48a8f";
+ };
+ }
+
+ {
+ name = "batch___batch_0.5.3.tgz";
+ path = fetchurl {
+ name = "batch___batch_0.5.3.tgz";
+ url = "https://registry.yarnpkg.com/batch/-/batch-0.5.3.tgz";
+ sha1 = "3f3414f380321743bfc1042f9a83ff1d5824d464";
+ };
+ }
+
+ {
+ name = "bcrypt_pbkdf___bcrypt_pbkdf_1.0.2.tgz";
+ path = fetchurl {
+ name = "bcrypt_pbkdf___bcrypt_pbkdf_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz";
+ sha1 = "a4301d389b6a43f9b67ff3ca11a3f6637e360e9e";
+ };
+ }
+
+ {
+ name = "beeper___beeper_1.1.1.tgz";
+ path = fetchurl {
+ name = "beeper___beeper_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/beeper/-/beeper-1.1.1.tgz";
+ sha1 = "e6d5ea8c5dad001304a70b22638447f69cb2f809";
+ };
+ }
+
+ {
+ name = "better_assert___better_assert_1.0.2.tgz";
+ path = fetchurl {
+ name = "better_assert___better_assert_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz";
+ sha1 = "40866b9e1b9e0b55b481894311e68faffaebc522";
+ };
+ }
+
+ {
+ name = "binary_extensions___binary_extensions_1.13.0.tgz";
+ path = fetchurl {
+ name = "binary_extensions___binary_extensions_1.13.0.tgz";
+ url = "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.0.tgz";
+ sha1 = "9523e001306a32444b907423f1de2164222f6ab1";
+ };
+ }
+
+ {
+ name = "blob___blob_0.0.4.tgz";
+ path = fetchurl {
+ name = "blob___blob_0.0.4.tgz";
+ url = "https://registry.yarnpkg.com/blob/-/blob-0.0.4.tgz";
+ sha1 = "bcf13052ca54463f30f9fc7e95b9a47630a94921";
+ };
+ }
+
+ {
+ name = "block_stream___block_stream_0.0.9.tgz";
+ path = fetchurl {
+ name = "block_stream___block_stream_0.0.9.tgz";
+ url = "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz";
+ sha1 = "13ebfe778a03205cfe03751481ebb4b3300c126a";
+ };
+ }
+
+ {
+ name = "bluebird___bluebird_2.11.0.tgz";
+ path = fetchurl {
+ name = "bluebird___bluebird_2.11.0.tgz";
+ url = "https://registry.yarnpkg.com/bluebird/-/bluebird-2.11.0.tgz";
+ sha1 = "534b9033c022c9579c56ba3b3e5a5caafbb650e1";
+ };
+ }
+
+ {
+ name = "body_parser___body_parser_1.18.3.tgz";
+ path = fetchurl {
+ name = "body_parser___body_parser_1.18.3.tgz";
+ url = "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.3.tgz";
+ sha1 = "5b292198ffdd553b3a0f20ded0592b956955c8b4";
+ };
+ }
+
+ {
+ name = "body_parser___body_parser_1.14.2.tgz";
+ path = fetchurl {
+ name = "body_parser___body_parser_1.14.2.tgz";
+ url = "https://registry.yarnpkg.com/body-parser/-/body-parser-1.14.2.tgz";
+ sha1 = "1015cb1fe2c443858259581db53332f8d0cf50f9";
+ };
+ }
+
+ {
+ name = "brace_expansion___brace_expansion_1.1.11.tgz";
+ path = fetchurl {
+ name = "brace_expansion___brace_expansion_1.1.11.tgz";
+ url = "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz";
+ sha1 = "3c7fcbf529d87226f3d2f52b966ff5271eb441dd";
+ };
+ }
+
+ {
+ name = "braces___braces_0.1.5.tgz";
+ path = fetchurl {
+ name = "braces___braces_0.1.5.tgz";
+ url = "https://registry.yarnpkg.com/braces/-/braces-0.1.5.tgz";
+ sha1 = "c085711085291d8b75fdd74eab0f8597280711e6";
+ };
+ }
+
+ {
+ name = "braces___braces_1.8.5.tgz";
+ path = fetchurl {
+ name = "braces___braces_1.8.5.tgz";
+ url = "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz";
+ sha1 = "ba77962e12dff969d6b76711e914b737857bf6a7";
+ };
+ }
+
+ {
+ name = "braces___braces_2.3.2.tgz";
+ path = fetchurl {
+ name = "braces___braces_2.3.2.tgz";
+ url = "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz";
+ sha1 = "5979fd3f14cd531565e5fa2df1abfff1dfaee729";
+ };
+ }
+
+ {
+ name = "buffer_alloc_unsafe___buffer_alloc_unsafe_1.1.0.tgz";
+ path = fetchurl {
+ name = "buffer_alloc_unsafe___buffer_alloc_unsafe_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz";
+ sha1 = "bd7dc26ae2972d0eda253be061dba992349c19f0";
+ };
+ }
+
+ {
+ name = "buffer_alloc___buffer_alloc_1.2.0.tgz";
+ path = fetchurl {
+ name = "buffer_alloc___buffer_alloc_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz";
+ sha1 = "890dd90d923a873e08e10e5fd51a57e5b7cce0ec";
+ };
+ }
+
+ {
+ name = "buffer_fill___buffer_fill_1.0.0.tgz";
+ path = fetchurl {
+ name = "buffer_fill___buffer_fill_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz";
+ sha1 = "f8f78b76789888ef39f205cd637f68e702122b2c";
+ };
+ }
+
+ {
+ name = "bytes___bytes_2.2.0.tgz";
+ path = fetchurl {
+ name = "bytes___bytes_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/bytes/-/bytes-2.2.0.tgz";
+ sha1 = "fd35464a403f6f9117c2de3609ecff9cae000588";
+ };
+ }
+
+ {
+ name = "bytes___bytes_2.4.0.tgz";
+ path = fetchurl {
+ name = "bytes___bytes_2.4.0.tgz";
+ url = "https://registry.yarnpkg.com/bytes/-/bytes-2.4.0.tgz";
+ sha1 = "7d97196f9d5baf7f6935e25985549edd2a6c2339";
+ };
+ }
+
+ {
+ name = "bytes___bytes_3.0.0.tgz";
+ path = fetchurl {
+ name = "bytes___bytes_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz";
+ sha1 = "d32815404d689699f85a4ea4fa8755dd13a96048";
+ };
+ }
+
+ {
+ name = "cache_base___cache_base_1.0.1.tgz";
+ path = fetchurl {
+ name = "cache_base___cache_base_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz";
+ sha1 = "0a7f46416831c8b662ee36fe4e7c59d76f666ab2";
+ };
+ }
+
+ {
+ name = "callsite___callsite_1.0.0.tgz";
+ path = fetchurl {
+ name = "callsite___callsite_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz";
+ sha1 = "280398e5d664bd74038b6f0905153e6e8af1bc20";
+ };
+ }
+
+ {
+ name = "camelcase_keys___camelcase_keys_2.1.0.tgz";
+ path = fetchurl {
+ name = "camelcase_keys___camelcase_keys_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz";
+ sha1 = "308beeaffdf28119051efa1d932213c91b8f92e7";
+ };
+ }
+
+ {
+ name = "camelcase___camelcase_2.1.1.tgz";
+ path = fetchurl {
+ name = "camelcase___camelcase_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz";
+ sha1 = "7c1d16d679a1bbe59ca02cacecfb011e201f5a1f";
+ };
+ }
+
+ {
+ name = "camelcase___camelcase_3.0.0.tgz";
+ path = fetchurl {
+ name = "camelcase___camelcase_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz";
+ sha1 = "32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a";
+ };
+ }
+
+ {
+ name = "caseless___caseless_0.12.0.tgz";
+ path = fetchurl {
+ name = "caseless___caseless_0.12.0.tgz";
+ url = "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz";
+ sha1 = "1b681c21ff84033c826543090689420d187151dc";
+ };
+ }
+
+ {
+ name = "chalk___chalk_0.5.1.tgz";
+ path = fetchurl {
+ name = "chalk___chalk_0.5.1.tgz";
+ url = "https://registry.yarnpkg.com/chalk/-/chalk-0.5.1.tgz";
+ sha1 = "663b3a648b68b55d04690d49167aa837858f2174";
+ };
+ }
+
+ {
+ name = "chalk___chalk_1.1.3.tgz";
+ path = fetchurl {
+ name = "chalk___chalk_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz";
+ sha1 = "a8115c55e4a702fe4d150abd3872822a7e09fc98";
+ };
+ }
+
+ {
+ name = "chokidar___chokidar_1.7.0.tgz";
+ path = fetchurl {
+ name = "chokidar___chokidar_1.7.0.tgz";
+ url = "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz";
+ sha1 = "798e689778151c8076b4b360e5edd28cda2bb468";
+ };
+ }
+
+ {
+ name = "chownr___chownr_1.1.1.tgz";
+ path = fetchurl {
+ name = "chownr___chownr_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz";
+ sha1 = "54726b8b8fff4df053c42187e801fb4412df1494";
+ };
+ }
+
+ {
+ name = "class_utils___class_utils_0.3.6.tgz";
+ path = fetchurl {
+ name = "class_utils___class_utils_0.3.6.tgz";
+ url = "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz";
+ sha1 = "f93369ae8b9a7ce02fd41faad0ca83033190c463";
+ };
+ }
+
+ {
+ name = "cliui___cliui_3.2.0.tgz";
+ path = fetchurl {
+ name = "cliui___cliui_3.2.0.tgz";
+ url = "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz";
+ sha1 = "120601537a916d29940f934da3b48d585a39213d";
+ };
+ }
+
+ {
+ name = "clone_stats___clone_stats_0.0.1.tgz";
+ path = fetchurl {
+ name = "clone_stats___clone_stats_0.0.1.tgz";
+ url = "https://registry.yarnpkg.com/clone-stats/-/clone-stats-0.0.1.tgz";
+ sha1 = "b88f94a82cf38b8791d58046ea4029ad88ca99d1";
+ };
+ }
+
+ {
+ name = "clone___clone_0.2.0.tgz";
+ path = fetchurl {
+ name = "clone___clone_0.2.0.tgz";
+ url = "https://registry.yarnpkg.com/clone/-/clone-0.2.0.tgz";
+ sha1 = "c6126a90ad4f72dbf5acdb243cc37724fe93fc1f";
+ };
+ }
+
+ {
+ name = "clone___clone_1.0.4.tgz";
+ path = fetchurl {
+ name = "clone___clone_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz";
+ sha1 = "da309cc263df15994c688ca902179ca3c7cd7c7e";
+ };
+ }
+
+ {
+ name = "code_point_at___code_point_at_1.1.0.tgz";
+ path = fetchurl {
+ name = "code_point_at___code_point_at_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz";
+ sha1 = "0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77";
+ };
+ }
+
+ {
+ name = "coffee_script___coffee_script_1.12.7.tgz";
+ path = fetchurl {
+ name = "coffee_script___coffee_script_1.12.7.tgz";
+ url = "https://registry.yarnpkg.com/coffee-script/-/coffee-script-1.12.7.tgz";
+ sha1 = "c05dae0cb79591d05b3070a8433a98c9a89ccc53";
+ };
+ }
+
+ {
+ name = "coffee_script___coffee_script_1.10.0.tgz";
+ path = fetchurl {
+ name = "coffee_script___coffee_script_1.10.0.tgz";
+ url = "https://registry.yarnpkg.com/coffee-script/-/coffee-script-1.10.0.tgz";
+ sha1 = "12938bcf9be1948fa006f92e0c4c9e81705108c0";
+ };
+ }
+
+ {
+ name = "collection_visit___collection_visit_1.0.0.tgz";
+ path = fetchurl {
+ name = "collection_visit___collection_visit_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz";
+ sha1 = "4bc0373c164bc3291b4d368c829cf1a80a59dca0";
+ };
+ }
+
+ {
+ name = "color_support___color_support_1.1.3.tgz";
+ path = fetchurl {
+ name = "color_support___color_support_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz";
+ sha1 = "93834379a1cc9a0c61f82f52f0d04322251bd5a2";
+ };
+ }
+
+ {
+ name = "colors___colors_1.3.3.tgz";
+ path = fetchurl {
+ name = "colors___colors_1.3.3.tgz";
+ url = "https://registry.yarnpkg.com/colors/-/colors-1.3.3.tgz";
+ sha1 = "39e005d546afe01e01f9c4ca8fa50f686a01205d";
+ };
+ }
+
+ {
+ name = "combined_stream___combined_stream_1.0.7.tgz";
+ path = fetchurl {
+ name = "combined_stream___combined_stream_1.0.7.tgz";
+ url = "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.7.tgz";
+ sha1 = "2d1d24317afb8abe95d6d2c0b07b57813539d828";
+ };
+ }
+
+ {
+ name = "commander___commander_2.17.1.tgz";
+ path = fetchurl {
+ name = "commander___commander_2.17.1.tgz";
+ url = "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz";
+ sha1 = "bd77ab7de6de94205ceacc72f1716d29f20a77bf";
+ };
+ }
+
+ {
+ name = "component_bind___component_bind_1.0.0.tgz";
+ path = fetchurl {
+ name = "component_bind___component_bind_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz";
+ sha1 = "00c608ab7dcd93897c0009651b1d3a8e1e73bbd1";
+ };
+ }
+
+ {
+ name = "component_emitter___component_emitter_1.1.2.tgz";
+ path = fetchurl {
+ name = "component_emitter___component_emitter_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.1.2.tgz";
+ sha1 = "296594f2753daa63996d2af08d15a95116c9aec3";
+ };
+ }
+
+ {
+ name = "component_emitter___component_emitter_1.2.1.tgz";
+ path = fetchurl {
+ name = "component_emitter___component_emitter_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz";
+ sha1 = "137918d6d78283f7df7a6b7c5a63e140e69425e6";
+ };
+ }
+
+ {
+ name = "component_inherit___component_inherit_0.0.3.tgz";
+ path = fetchurl {
+ name = "component_inherit___component_inherit_0.0.3.tgz";
+ url = "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz";
+ sha1 = "645fc4adf58b72b649d5cae65135619db26ff143";
+ };
+ }
+
+ {
+ name = "concat_map___concat_map_0.0.1.tgz";
+ path = fetchurl {
+ name = "concat_map___concat_map_0.0.1.tgz";
+ url = "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz";
+ sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b";
+ };
+ }
+
+ {
+ name = "connect___connect_3.6.6.tgz";
+ path = fetchurl {
+ name = "connect___connect_3.6.6.tgz";
+ url = "https://registry.yarnpkg.com/connect/-/connect-3.6.6.tgz";
+ sha1 = "09eff6c55af7236e137135a72574858b6786f524";
+ };
+ }
+
+ {
+ name = "console_control_strings___console_control_strings_1.1.0.tgz";
+ path = fetchurl {
+ name = "console_control_strings___console_control_strings_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz";
+ sha1 = "3d7cf4464db6446ea644bf4b39507f9851008e8e";
+ };
+ }
+
+ {
+ name = "content_type___content_type_1.0.4.tgz";
+ path = fetchurl {
+ name = "content_type___content_type_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz";
+ sha1 = "e138cc75e040c727b1966fe5e5f8c9aee256fe3b";
+ };
+ }
+
+ {
+ name = "cookie___cookie_0.3.1.tgz";
+ path = fetchurl {
+ name = "cookie___cookie_0.3.1.tgz";
+ url = "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz";
+ sha1 = "e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb";
+ };
+ }
+
+ {
+ name = "copy_descriptor___copy_descriptor_0.1.1.tgz";
+ path = fetchurl {
+ name = "copy_descriptor___copy_descriptor_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz";
+ sha1 = "676f6eb3c39997c2ee1ac3a924fd6124748f578d";
+ };
+ }
+
+ {
+ name = "core_js___core_js_2.6.5.tgz";
+ path = fetchurl {
+ name = "core_js___core_js_2.6.5.tgz";
+ url = "https://registry.yarnpkg.com/core-js/-/core-js-2.6.5.tgz";
+ sha1 = "44bc8d249e7fb2ff5d00e0341a7ffb94fbf67895";
+ };
+ }
+
+ {
+ name = "core_util_is___core_util_is_1.0.2.tgz";
+ path = fetchurl {
+ name = "core_util_is___core_util_is_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz";
+ sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7";
+ };
+ }
+
+ {
+ name = "cross_spawn___cross_spawn_3.0.1.tgz";
+ path = fetchurl {
+ name = "cross_spawn___cross_spawn_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-3.0.1.tgz";
+ sha1 = "1256037ecb9f0c5f79e3d6ef135e30770184b982";
+ };
+ }
+
+ {
+ name = "currently_unhandled___currently_unhandled_0.4.1.tgz";
+ path = fetchurl {
+ name = "currently_unhandled___currently_unhandled_0.4.1.tgz";
+ url = "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz";
+ sha1 = "988df33feab191ef799a61369dd76c17adf957ea";
+ };
+ }
+
+ {
+ name = "custom_event___custom_event_1.0.1.tgz";
+ path = fetchurl {
+ name = "custom_event___custom_event_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/custom-event/-/custom-event-1.0.1.tgz";
+ sha1 = "5d02a46850adf1b4a317946a3928fccb5bfd0425";
+ };
+ }
+
+ {
+ name = "dashdash___dashdash_1.14.1.tgz";
+ path = fetchurl {
+ name = "dashdash___dashdash_1.14.1.tgz";
+ url = "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz";
+ sha1 = "853cfa0f7cbe2fed5de20326b8dd581035f6e2f0";
+ };
+ }
+
+ {
+ name = "dateformat___dateformat_1.0.12.tgz";
+ path = fetchurl {
+ name = "dateformat___dateformat_1.0.12.tgz";
+ url = "https://registry.yarnpkg.com/dateformat/-/dateformat-1.0.12.tgz";
+ sha1 = "9f124b67594c937ff706932e4a642cca8dbbfee9";
+ };
+ }
+
+ {
+ name = "dateformat___dateformat_2.2.0.tgz";
+ path = fetchurl {
+ name = "dateformat___dateformat_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/dateformat/-/dateformat-2.2.0.tgz";
+ sha1 = "4065e2013cf9fb916ddfd82efb506ad4c6769062";
+ };
+ }
+
+ {
+ name = "debug___debug_2.2.0.tgz";
+ path = fetchurl {
+ name = "debug___debug_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz";
+ sha1 = "f87057e995b1a1f6ae6a4960664137bc56f039da";
+ };
+ }
+
+ {
+ name = "debug___debug_2.3.3.tgz";
+ path = fetchurl {
+ name = "debug___debug_2.3.3.tgz";
+ url = "https://registry.yarnpkg.com/debug/-/debug-2.3.3.tgz";
+ sha1 = "40c453e67e6e13c901ddec317af8986cda9eff8c";
+ };
+ }
+
+ {
+ name = "debug___debug_2.6.9.tgz";
+ path = fetchurl {
+ name = "debug___debug_2.6.9.tgz";
+ url = "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz";
+ sha1 = "5d128515df134ff327e90a4c93f4e077a536341f";
+ };
+ }
+
+ {
+ name = "debug___debug_3.2.6.tgz";
+ path = fetchurl {
+ name = "debug___debug_3.2.6.tgz";
+ url = "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz";
+ sha1 = "e83d17de16d8a7efb7717edbe5fb10135eee629b";
+ };
+ }
+
+ {
+ name = "decamelize___decamelize_1.2.0.tgz";
+ path = fetchurl {
+ name = "decamelize___decamelize_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz";
+ sha1 = "f6534d15148269b20352e7bee26f501f9a191290";
+ };
+ }
+
+ {
+ name = "decode_uri_component___decode_uri_component_0.2.0.tgz";
+ path = fetchurl {
+ name = "decode_uri_component___decode_uri_component_0.2.0.tgz";
+ url = "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz";
+ sha1 = "eb3913333458775cb84cd1a1fae062106bb87545";
+ };
+ }
+
+ {
+ name = "deep_extend___deep_extend_0.6.0.tgz";
+ path = fetchurl {
+ name = "deep_extend___deep_extend_0.6.0.tgz";
+ url = "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz";
+ sha1 = "c4fa7c95404a17a9c3e8ca7e1537312b736330ac";
+ };
+ }
+
+ {
+ name = "deep_is___deep_is_0.1.3.tgz";
+ path = fetchurl {
+ name = "deep_is___deep_is_0.1.3.tgz";
+ url = "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz";
+ sha1 = "b369d6fb5dbc13eecf524f91b070feedc357cf34";
+ };
+ }
+
+ {
+ name = "defaults___defaults_1.0.3.tgz";
+ path = fetchurl {
+ name = "defaults___defaults_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz";
+ sha1 = "c656051e9817d9ff08ed881477f3fe4019f3ef7d";
+ };
+ }
+
+ {
+ name = "define_property___define_property_0.2.5.tgz";
+ path = fetchurl {
+ name = "define_property___define_property_0.2.5.tgz";
+ url = "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz";
+ sha1 = "c35b1ef918ec3c990f9a5bc57be04aacec5c8116";
+ };
+ }
+
+ {
+ name = "define_property___define_property_1.0.0.tgz";
+ path = fetchurl {
+ name = "define_property___define_property_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz";
+ sha1 = "769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6";
+ };
+ }
+
+ {
+ name = "define_property___define_property_2.0.2.tgz";
+ path = fetchurl {
+ name = "define_property___define_property_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz";
+ sha1 = "d459689e8d654ba77e02a817f8710d702cb16e9d";
+ };
+ }
+
+ {
+ name = "delayed_stream___delayed_stream_1.0.0.tgz";
+ path = fetchurl {
+ name = "delayed_stream___delayed_stream_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz";
+ sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619";
+ };
+ }
+
+ {
+ name = "delegates___delegates_1.0.0.tgz";
+ path = fetchurl {
+ name = "delegates___delegates_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz";
+ sha1 = "84c6e159b81904fdca59a0ef44cd870d31250f9a";
+ };
+ }
+
+ {
+ name = "depd___depd_1.1.2.tgz";
+ path = fetchurl {
+ name = "depd___depd_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz";
+ sha1 = "9bcd52e14c097763e749b274c4346ed2e560b5a9";
+ };
+ }
+
+ {
+ name = "deprecated___deprecated_0.0.1.tgz";
+ path = fetchurl {
+ name = "deprecated___deprecated_0.0.1.tgz";
+ url = "https://registry.yarnpkg.com/deprecated/-/deprecated-0.0.1.tgz";
+ sha1 = "f9c9af5464afa1e7a971458a8bdef2aa94d5bb19";
+ };
+ }
+
+ {
+ name = "detect_file___detect_file_1.0.0.tgz";
+ path = fetchurl {
+ name = "detect_file___detect_file_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz";
+ sha1 = "f0d66d03672a825cb1b73bdb3fe62310c8e552b7";
+ };
+ }
+
+ {
+ name = "detect_libc___detect_libc_1.0.3.tgz";
+ path = fetchurl {
+ name = "detect_libc___detect_libc_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz";
+ sha1 = "fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b";
+ };
+ }
+
+ {
+ name = "di___di_0.0.1.tgz";
+ path = fetchurl {
+ name = "di___di_0.0.1.tgz";
+ url = "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz";
+ sha1 = "806649326ceaa7caa3306d75d985ea2748ba913c";
+ };
+ }
+
+ {
+ name = "dom_serialize___dom_serialize_2.2.1.tgz";
+ path = fetchurl {
+ name = "dom_serialize___dom_serialize_2.2.1.tgz";
+ url = "https://registry.yarnpkg.com/dom-serialize/-/dom-serialize-2.2.1.tgz";
+ sha1 = "562ae8999f44be5ea3076f5419dcd59eb43ac95b";
+ };
+ }
+
+ {
+ name = "duplexer2___duplexer2_0.0.2.tgz";
+ path = fetchurl {
+ name = "duplexer2___duplexer2_0.0.2.tgz";
+ url = "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.0.2.tgz";
+ sha1 = "c614dcf67e2fb14995a91711e5a617e8a60a31db";
+ };
+ }
+
+ {
+ name = "duplexer___duplexer_0.1.1.tgz";
+ path = fetchurl {
+ name = "duplexer___duplexer_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz";
+ sha1 = "ace6ff808c1ce66b57d1ebf97977acb02334cfc1";
+ };
+ }
+
+ {
+ name = "ecc_jsbn___ecc_jsbn_0.1.2.tgz";
+ path = fetchurl {
+ name = "ecc_jsbn___ecc_jsbn_0.1.2.tgz";
+ url = "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz";
+ sha1 = "3a83a904e54353287874c564b7549386849a98c9";
+ };
+ }
+
+ {
+ name = "ee_first___ee_first_1.1.1.tgz";
+ path = fetchurl {
+ name = "ee_first___ee_first_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz";
+ sha1 = "590c61156b0ae2f4f0255732a158b266bc56b21d";
+ };
+ }
+
+ {
+ name = "encodeurl___encodeurl_1.0.2.tgz";
+ path = fetchurl {
+ name = "encodeurl___encodeurl_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz";
+ sha1 = "ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59";
+ };
+ }
+
+ {
+ name = "end_of_stream___end_of_stream_0.1.5.tgz";
+ path = fetchurl {
+ name = "end_of_stream___end_of_stream_0.1.5.tgz";
+ url = "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-0.1.5.tgz";
+ sha1 = "8e177206c3c80837d85632e8b9359dfe8b2f6eaf";
+ };
+ }
+
+ {
+ name = "engine.io_client___engine.io_client_1.8.5.tgz";
+ path = fetchurl {
+ name = "engine.io_client___engine.io_client_1.8.5.tgz";
+ url = "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-1.8.5.tgz";
+ sha1 = "fe7fb60cb0dcf2fa2859489329cb5968dedeb11f";
+ };
+ }
+
+ {
+ name = "engine.io_parser___engine.io_parser_1.3.2.tgz";
+ path = fetchurl {
+ name = "engine.io_parser___engine.io_parser_1.3.2.tgz";
+ url = "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-1.3.2.tgz";
+ sha1 = "937b079f0007d0893ec56d46cb220b8cb435220a";
+ };
+ }
+
+ {
+ name = "engine.io___engine.io_1.8.5.tgz";
+ path = fetchurl {
+ name = "engine.io___engine.io_1.8.5.tgz";
+ url = "https://registry.yarnpkg.com/engine.io/-/engine.io-1.8.5.tgz";
+ sha1 = "4ebe5e75c6dc123dee4afdce6e5fdced21eb93f6";
+ };
+ }
+
+ {
+ name = "ent___ent_2.2.0.tgz";
+ path = fetchurl {
+ name = "ent___ent_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz";
+ sha1 = "e964219325a21d05f44466a2f686ed6ce5f5dd1d";
+ };
+ }
+
+ {
+ name = "error_ex___error_ex_1.3.2.tgz";
+ path = fetchurl {
+ name = "error_ex___error_ex_1.3.2.tgz";
+ url = "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz";
+ sha1 = "b4ac40648107fdcdcfae242f428bea8a14d4f1bf";
+ };
+ }
+
+ {
+ name = "escape_html___escape_html_1.0.3.tgz";
+ path = fetchurl {
+ name = "escape_html___escape_html_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz";
+ sha1 = "0258eae4d3d0c0974de1c169188ef0051d1d1988";
+ };
+ }
+
+ {
+ name = "escape_string_regexp___escape_string_regexp_1.0.5.tgz";
+ path = fetchurl {
+ name = "escape_string_regexp___escape_string_regexp_1.0.5.tgz";
+ url = "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz";
+ sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4";
+ };
+ }
+
+ {
+ name = "escodegen___escodegen_1.8.1.tgz";
+ path = fetchurl {
+ name = "escodegen___escodegen_1.8.1.tgz";
+ url = "https://registry.yarnpkg.com/escodegen/-/escodegen-1.8.1.tgz";
+ sha1 = "5a5b53af4693110bebb0867aa3430dd3b70a1018";
+ };
+ }
+
+ {
+ name = "esprima___esprima_2.7.3.tgz";
+ path = fetchurl {
+ name = "esprima___esprima_2.7.3.tgz";
+ url = "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz";
+ sha1 = "96e3b70d5779f6ad49cd032673d1c312767ba581";
+ };
+ }
+
+ {
+ name = "esprima___esprima_4.0.1.tgz";
+ path = fetchurl {
+ name = "esprima___esprima_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz";
+ sha1 = "13b04cdb3e6c5d19df91ab6987a8695619b0aa71";
+ };
+ }
+
+ {
+ name = "estraverse___estraverse_1.9.3.tgz";
+ path = fetchurl {
+ name = "estraverse___estraverse_1.9.3.tgz";
+ url = "https://registry.yarnpkg.com/estraverse/-/estraverse-1.9.3.tgz";
+ sha1 = "af67f2dc922582415950926091a4005d29c9bb44";
+ };
+ }
+
+ {
+ name = "esutils___esutils_2.0.2.tgz";
+ path = fetchurl {
+ name = "esutils___esutils_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz";
+ sha1 = "0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b";
+ };
+ }
+
+ {
+ name = "event_stream___event_stream_3.3.5.tgz";
+ path = fetchurl {
+ name = "event_stream___event_stream_3.3.5.tgz";
+ url = "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.5.tgz";
+ sha1 = "e5dd8989543630d94c6cf4d657120341fa31636b";
+ };
+ }
+
+ {
+ name = "eventemitter3___eventemitter3_3.1.0.tgz";
+ path = fetchurl {
+ name = "eventemitter3___eventemitter3_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.0.tgz";
+ sha1 = "090b4d6cdbd645ed10bf750d4b5407942d7ba163";
+ };
+ }
+
+ {
+ name = "expand_braces___expand_braces_0.1.2.tgz";
+ path = fetchurl {
+ name = "expand_braces___expand_braces_0.1.2.tgz";
+ url = "https://registry.yarnpkg.com/expand-braces/-/expand-braces-0.1.2.tgz";
+ sha1 = "488b1d1d2451cb3d3a6b192cfc030f44c5855fea";
+ };
+ }
+
+ {
+ name = "expand_brackets___expand_brackets_0.1.5.tgz";
+ path = fetchurl {
+ name = "expand_brackets___expand_brackets_0.1.5.tgz";
+ url = "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz";
+ sha1 = "df07284e342a807cd733ac5af72411e581d1177b";
+ };
+ }
+
+ {
+ name = "expand_brackets___expand_brackets_2.1.4.tgz";
+ path = fetchurl {
+ name = "expand_brackets___expand_brackets_2.1.4.tgz";
+ url = "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz";
+ sha1 = "b77735e315ce30f6b6eff0f83b04151a22449622";
+ };
+ }
+
+ {
+ name = "expand_range___expand_range_0.1.1.tgz";
+ path = fetchurl {
+ name = "expand_range___expand_range_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/expand-range/-/expand-range-0.1.1.tgz";
+ sha1 = "4cb8eda0993ca56fa4f41fc42f3cbb4ccadff044";
+ };
+ }
+
+ {
+ name = "expand_range___expand_range_1.8.2.tgz";
+ path = fetchurl {
+ name = "expand_range___expand_range_1.8.2.tgz";
+ url = "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz";
+ sha1 = "a299effd335fe2721ebae8e257ec79644fc85337";
+ };
+ }
+
+ {
+ name = "expand_tilde___expand_tilde_2.0.2.tgz";
+ path = fetchurl {
+ name = "expand_tilde___expand_tilde_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz";
+ sha1 = "97e801aa052df02454de46b02bf621642cdc8502";
+ };
+ }
+
+ {
+ name = "extend_shallow___extend_shallow_2.0.1.tgz";
+ path = fetchurl {
+ name = "extend_shallow___extend_shallow_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz";
+ sha1 = "51af7d614ad9a9f610ea1bafbb989d6b1c56890f";
+ };
+ }
+
+ {
+ name = "extend_shallow___extend_shallow_3.0.2.tgz";
+ path = fetchurl {
+ name = "extend_shallow___extend_shallow_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz";
+ sha1 = "26a71aaf073b39fb2127172746131c2704028db8";
+ };
+ }
+
+ {
+ name = "extend___extend_3.0.2.tgz";
+ path = fetchurl {
+ name = "extend___extend_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz";
+ sha1 = "f8b1136b4071fbd8eb140aff858b1019ec2915fa";
+ };
+ }
+
+ {
+ name = "extglob___extglob_0.3.2.tgz";
+ path = fetchurl {
+ name = "extglob___extglob_0.3.2.tgz";
+ url = "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz";
+ sha1 = "2e18ff3d2f49ab2765cec9023f011daa8d8349a1";
+ };
+ }
+
+ {
+ name = "extglob___extglob_2.0.4.tgz";
+ path = fetchurl {
+ name = "extglob___extglob_2.0.4.tgz";
+ url = "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz";
+ sha1 = "ad00fe4dc612a9232e8718711dc5cb5ab0285543";
+ };
+ }
+
+ {
+ name = "extsprintf___extsprintf_1.3.0.tgz";
+ path = fetchurl {
+ name = "extsprintf___extsprintf_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz";
+ sha1 = "96918440e3041a7a414f8c52e3c574eb3c3e1e05";
+ };
+ }
+
+ {
+ name = "extsprintf___extsprintf_1.4.0.tgz";
+ path = fetchurl {
+ name = "extsprintf___extsprintf_1.4.0.tgz";
+ url = "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz";
+ sha1 = "e2689f8f356fad62cca65a3a91c5df5f9551692f";
+ };
+ }
+
+ {
+ name = "fancy_log___fancy_log_1.3.3.tgz";
+ path = fetchurl {
+ name = "fancy_log___fancy_log_1.3.3.tgz";
+ url = "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.3.tgz";
+ sha1 = "dbc19154f558690150a23953a0adbd035be45fc7";
+ };
+ }
+
+ {
+ name = "fast_deep_equal___fast_deep_equal_2.0.1.tgz";
+ path = fetchurl {
+ name = "fast_deep_equal___fast_deep_equal_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz";
+ sha1 = "7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49";
+ };
+ }
+
+ {
+ name = "fast_json_stable_stringify___fast_json_stable_stringify_2.0.0.tgz";
+ path = fetchurl {
+ name = "fast_json_stable_stringify___fast_json_stable_stringify_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz";
+ sha1 = "d5142c0caee6b1189f87d3a76111064f86c8bbf2";
+ };
+ }
+
+ {
+ name = "fast_levenshtein___fast_levenshtein_2.0.6.tgz";
+ path = fetchurl {
+ name = "fast_levenshtein___fast_levenshtein_2.0.6.tgz";
+ url = "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz";
+ sha1 = "3d8a5c66883a16a30ca8643e851f19baa7797917";
+ };
+ }
+
+ {
+ name = "faye_websocket___faye_websocket_0.7.3.tgz";
+ path = fetchurl {
+ name = "faye_websocket___faye_websocket_0.7.3.tgz";
+ url = "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.7.3.tgz";
+ sha1 = "cc4074c7f4a4dfd03af54dd65c354b135132ce11";
+ };
+ }
+
+ {
+ name = "filename_regex___filename_regex_2.0.1.tgz";
+ path = fetchurl {
+ name = "filename_regex___filename_regex_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz";
+ sha1 = "c1c4b9bee3e09725ddb106b75c1e301fe2f18b26";
+ };
+ }
+
+ {
+ name = "fill_range___fill_range_2.2.4.tgz";
+ path = fetchurl {
+ name = "fill_range___fill_range_2.2.4.tgz";
+ url = "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz";
+ sha1 = "eb1e773abb056dcd8df2bfdf6af59b8b3a936565";
+ };
+ }
+
+ {
+ name = "fill_range___fill_range_4.0.0.tgz";
+ path = fetchurl {
+ name = "fill_range___fill_range_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz";
+ sha1 = "d544811d428f98eb06a63dc402d2403c328c38f7";
+ };
+ }
+
+ {
+ name = "finalhandler___finalhandler_1.1.0.tgz";
+ path = fetchurl {
+ name = "finalhandler___finalhandler_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.0.tgz";
+ sha1 = "ce0b6855b45853e791b2fcc680046d88253dd7f5";
+ };
+ }
+
+ {
+ name = "find_index___find_index_0.1.1.tgz";
+ path = fetchurl {
+ name = "find_index___find_index_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/find-index/-/find-index-0.1.1.tgz";
+ sha1 = "675d358b2ca3892d795a1ab47232f8b6e2e0dde4";
+ };
+ }
+
+ {
+ name = "find_up___find_up_1.1.2.tgz";
+ path = fetchurl {
+ name = "find_up___find_up_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz";
+ sha1 = "6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f";
+ };
+ }
+
+ {
+ name = "findup_sync___findup_sync_2.0.0.tgz";
+ path = fetchurl {
+ name = "findup_sync___findup_sync_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/findup-sync/-/findup-sync-2.0.0.tgz";
+ sha1 = "9326b1488c22d1a6088650a86901b2d9a90a2cbc";
+ };
+ }
+
+ {
+ name = "fined___fined_1.1.1.tgz";
+ path = fetchurl {
+ name = "fined___fined_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/fined/-/fined-1.1.1.tgz";
+ sha1 = "95d88ff329123dd1a6950fdfcd321f746271e01f";
+ };
+ }
+
+ {
+ name = "first_chunk_stream___first_chunk_stream_1.0.0.tgz";
+ path = fetchurl {
+ name = "first_chunk_stream___first_chunk_stream_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz";
+ sha1 = "59bfb50cd905f60d7c394cd3d9acaab4e6ad934e";
+ };
+ }
+
+ {
+ name = "flagged_respawn___flagged_respawn_1.0.1.tgz";
+ path = fetchurl {
+ name = "flagged_respawn___flagged_respawn_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/flagged-respawn/-/flagged-respawn-1.0.1.tgz";
+ sha1 = "e7de6f1279ddd9ca9aac8a5971d618606b3aab41";
+ };
+ }
+
+ {
+ name = "follow_redirects___follow_redirects_1.7.0.tgz";
+ path = fetchurl {
+ name = "follow_redirects___follow_redirects_1.7.0.tgz";
+ url = "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.7.0.tgz";
+ sha1 = "489ebc198dc0e7f64167bd23b03c4c19b5784c76";
+ };
+ }
+
+ {
+ name = "for_in___for_in_1.0.2.tgz";
+ path = fetchurl {
+ name = "for_in___for_in_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz";
+ sha1 = "81068d295a8142ec0ac726c6e2200c30fb6d5e80";
+ };
+ }
+
+ {
+ name = "for_own___for_own_0.1.5.tgz";
+ path = fetchurl {
+ name = "for_own___for_own_0.1.5.tgz";
+ url = "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz";
+ sha1 = "5265c681a4f294dabbf17c9509b6763aa84510ce";
+ };
+ }
+
+ {
+ name = "for_own___for_own_1.0.0.tgz";
+ path = fetchurl {
+ name = "for_own___for_own_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/for-own/-/for-own-1.0.0.tgz";
+ sha1 = "c63332f415cedc4b04dbfe70cf836494c53cb44b";
+ };
+ }
+
+ {
+ name = "forever_agent___forever_agent_0.6.1.tgz";
+ path = fetchurl {
+ name = "forever_agent___forever_agent_0.6.1.tgz";
+ url = "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz";
+ sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91";
+ };
+ }
+
+ {
+ name = "form_data___form_data_2.3.3.tgz";
+ path = fetchurl {
+ name = "form_data___form_data_2.3.3.tgz";
+ url = "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz";
+ sha1 = "dcce52c05f644f298c6a7ab936bd724ceffbf3a6";
+ };
+ }
+
+ {
+ name = "fragment_cache___fragment_cache_0.2.1.tgz";
+ path = fetchurl {
+ name = "fragment_cache___fragment_cache_0.2.1.tgz";
+ url = "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz";
+ sha1 = "4290fad27f13e89be7f33799c6bc5a0abfff0d19";
+ };
+ }
+
+ {
+ name = "from___from_0.1.7.tgz";
+ path = fetchurl {
+ name = "from___from_0.1.7.tgz";
+ url = "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz";
+ sha1 = "83c60afc58b9c56997007ed1a768b3ab303a44fe";
+ };
+ }
+
+ {
+ name = "fs_access___fs_access_1.0.1.tgz";
+ path = fetchurl {
+ name = "fs_access___fs_access_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/fs-access/-/fs-access-1.0.1.tgz";
+ sha1 = "d6a87f262271cefebec30c553407fb995da8777a";
+ };
+ }
+
+ {
+ name = "fs_minipass___fs_minipass_1.2.5.tgz";
+ path = fetchurl {
+ name = "fs_minipass___fs_minipass_1.2.5.tgz";
+ url = "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz";
+ sha1 = "06c277218454ec288df77ada54a03b8702aacb9d";
+ };
+ }
+
+ {
+ name = "fs.realpath___fs.realpath_1.0.0.tgz";
+ path = fetchurl {
+ name = "fs.realpath___fs.realpath_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz";
+ sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f";
+ };
+ }
+
+ {
+ name = "fsevents___fsevents_1.2.7.tgz";
+ path = fetchurl {
+ name = "fsevents___fsevents_1.2.7.tgz";
+ url = "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.7.tgz";
+ sha1 = "4851b664a3783e52003b3c66eb0eee1074933aa4";
+ };
+ }
+
+ {
+ name = "fstream___fstream_1.0.11.tgz";
+ path = fetchurl {
+ name = "fstream___fstream_1.0.11.tgz";
+ url = "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz";
+ sha1 = "5c1fb1f117477114f0632a0eb4b71b3cb0fd3171";
+ };
+ }
+
+ {
+ name = "function_bind___function_bind_1.1.1.tgz";
+ path = fetchurl {
+ name = "function_bind___function_bind_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz";
+ sha1 = "a56899d3ea3c9bab874bb9773b7c5ede92f4895d";
+ };
+ }
+
+ {
+ name = "gauge___gauge_2.7.4.tgz";
+ path = fetchurl {
+ name = "gauge___gauge_2.7.4.tgz";
+ url = "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz";
+ sha1 = "2c03405c7538c39d7eb37b317022e325fb018bf7";
+ };
+ }
+
+ {
+ name = "gaze___gaze_0.5.2.tgz";
+ path = fetchurl {
+ name = "gaze___gaze_0.5.2.tgz";
+ url = "https://registry.yarnpkg.com/gaze/-/gaze-0.5.2.tgz";
+ sha1 = "40b709537d24d1d45767db5a908689dfe69ac44f";
+ };
+ }
+
+ {
+ name = "gaze___gaze_1.1.3.tgz";
+ path = fetchurl {
+ name = "gaze___gaze_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/gaze/-/gaze-1.1.3.tgz";
+ sha1 = "c441733e13b927ac8c0ff0b4c3b033f28812924a";
+ };
+ }
+
+ {
+ name = "get_caller_file___get_caller_file_1.0.3.tgz";
+ path = fetchurl {
+ name = "get_caller_file___get_caller_file_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz";
+ sha1 = "f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a";
+ };
+ }
+
+ {
+ name = "get_stdin___get_stdin_4.0.1.tgz";
+ path = fetchurl {
+ name = "get_stdin___get_stdin_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz";
+ sha1 = "b968c6b0a04384324902e8bf1a5df32579a450fe";
+ };
+ }
+
+ {
+ name = "get_value___get_value_2.0.6.tgz";
+ path = fetchurl {
+ name = "get_value___get_value_2.0.6.tgz";
+ url = "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz";
+ sha1 = "dc15ca1c672387ca76bd37ac0a395ba2042a2c28";
+ };
+ }
+
+ {
+ name = "getpass___getpass_0.1.7.tgz";
+ path = fetchurl {
+ name = "getpass___getpass_0.1.7.tgz";
+ url = "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz";
+ sha1 = "5eff8e3e684d569ae4cb2b1282604e8ba62149fa";
+ };
+ }
+
+ {
+ name = "glob_base___glob_base_0.3.0.tgz";
+ path = fetchurl {
+ name = "glob_base___glob_base_0.3.0.tgz";
+ url = "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz";
+ sha1 = "dbb164f6221b1c0b1ccf82aea328b497df0ea3c4";
+ };
+ }
+
+ {
+ name = "glob_parent___glob_parent_2.0.0.tgz";
+ path = fetchurl {
+ name = "glob_parent___glob_parent_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz";
+ sha1 = "81383d72db054fcccf5336daa902f182f6edbb28";
+ };
+ }
+
+ {
+ name = "glob_stream___glob_stream_3.1.18.tgz";
+ path = fetchurl {
+ name = "glob_stream___glob_stream_3.1.18.tgz";
+ url = "https://registry.yarnpkg.com/glob-stream/-/glob-stream-3.1.18.tgz";
+ sha1 = "9170a5f12b790306fdfe598f313f8f7954fd143b";
+ };
+ }
+
+ {
+ name = "glob_watcher___glob_watcher_0.0.6.tgz";
+ path = fetchurl {
+ name = "glob_watcher___glob_watcher_0.0.6.tgz";
+ url = "https://registry.yarnpkg.com/glob-watcher/-/glob-watcher-0.0.6.tgz";
+ sha1 = "b95b4a8df74b39c83298b0c05c978b4d9a3b710b";
+ };
+ }
+
+ {
+ name = "glob2base___glob2base_0.0.12.tgz";
+ path = fetchurl {
+ name = "glob2base___glob2base_0.0.12.tgz";
+ url = "https://registry.yarnpkg.com/glob2base/-/glob2base-0.0.12.tgz";
+ sha1 = "9d419b3e28f12e83a362164a277055922c9c0d56";
+ };
+ }
+
+ {
+ name = "glob___glob_4.5.3.tgz";
+ path = fetchurl {
+ name = "glob___glob_4.5.3.tgz";
+ url = "https://registry.yarnpkg.com/glob/-/glob-4.5.3.tgz";
+ sha1 = "c6cb73d3226c1efef04de3c56d012f03377ee15f";
+ };
+ }
+
+ {
+ name = "glob___glob_5.0.15.tgz";
+ path = fetchurl {
+ name = "glob___glob_5.0.15.tgz";
+ url = "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz";
+ sha1 = "1bc936b9e02f4a603fcc222ecf7633d30b8b93b1";
+ };
+ }
+
+ {
+ name = "glob___glob_7.1.3.tgz";
+ path = fetchurl {
+ name = "glob___glob_7.1.3.tgz";
+ url = "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz";
+ sha1 = "3960832d3f1574108342dafd3a67b332c0969df1";
+ };
+ }
+
+ {
+ name = "glob___glob_3.1.21.tgz";
+ path = fetchurl {
+ name = "glob___glob_3.1.21.tgz";
+ url = "https://registry.yarnpkg.com/glob/-/glob-3.1.21.tgz";
+ sha1 = "d29e0a055dea5138f4d07ed40e8982e83c2066cd";
+ };
+ }
+
+ {
+ name = "global_modules___global_modules_1.0.0.tgz";
+ path = fetchurl {
+ name = "global_modules___global_modules_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz";
+ sha1 = "6d770f0eb523ac78164d72b5e71a8877265cc3ea";
+ };
+ }
+
+ {
+ name = "global_prefix___global_prefix_1.0.2.tgz";
+ path = fetchurl {
+ name = "global_prefix___global_prefix_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz";
+ sha1 = "dbf743c6c14992593c655568cb66ed32c0122ebe";
+ };
+ }
+
+ {
+ name = "globule___globule_1.2.1.tgz";
+ path = fetchurl {
+ name = "globule___globule_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/globule/-/globule-1.2.1.tgz";
+ sha1 = "5dffb1b191f22d20797a9369b49eab4e9839696d";
+ };
+ }
+
+ {
+ name = "globule___globule_0.1.0.tgz";
+ path = fetchurl {
+ name = "globule___globule_0.1.0.tgz";
+ url = "https://registry.yarnpkg.com/globule/-/globule-0.1.0.tgz";
+ sha1 = "d9c8edde1da79d125a151b79533b978676346ae5";
+ };
+ }
+
+ {
+ name = "glogg___glogg_1.0.2.tgz";
+ path = fetchurl {
+ name = "glogg___glogg_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/glogg/-/glogg-1.0.2.tgz";
+ sha1 = "2d7dd702beda22eb3bffadf880696da6d846313f";
+ };
+ }
+
+ {
+ name = "graceful_fs___graceful_fs_3.0.11.tgz";
+ path = fetchurl {
+ name = "graceful_fs___graceful_fs_3.0.11.tgz";
+ url = "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-3.0.11.tgz";
+ sha1 = "7613c778a1afea62f25c630a086d7f3acbbdd818";
+ };
+ }
+
+ {
+ name = "graceful_fs___graceful_fs_4.1.15.tgz";
+ path = fetchurl {
+ name = "graceful_fs___graceful_fs_4.1.15.tgz";
+ url = "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz";
+ sha1 = "ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00";
+ };
+ }
+
+ {
+ name = "graceful_fs___graceful_fs_1.2.3.tgz";
+ path = fetchurl {
+ name = "graceful_fs___graceful_fs_1.2.3.tgz";
+ url = "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-1.2.3.tgz";
+ sha1 = "15a4806a57547cb2d2dbf27f42e89a8c3451b364";
+ };
+ }
+
+ {
+ name = "guanlecoja___guanlecoja_0.8.8.tgz";
+ path = fetchurl {
+ name = "guanlecoja___guanlecoja_0.8.8.tgz";
+ url = "https://registry.yarnpkg.com/guanlecoja/-/guanlecoja-0.8.8.tgz";
+ sha1 = "210099a9f4ea9bf80d78fda730226f7862478a26";
+ };
+ }
+
+ {
+ name = "gulp_livereload___gulp_livereload_3.8.1.tgz";
+ path = fetchurl {
+ name = "gulp_livereload___gulp_livereload_3.8.1.tgz";
+ url = "https://registry.yarnpkg.com/gulp-livereload/-/gulp-livereload-3.8.1.tgz";
+ sha1 = "00f744b2d749d3e9e3746589c8a44acac779b50f";
+ };
+ }
+
+ {
+ name = "gulp_ng_classify___gulp_ng_classify_4.0.1.tgz";
+ path = fetchurl {
+ name = "gulp_ng_classify___gulp_ng_classify_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/gulp-ng-classify/-/gulp-ng-classify-4.0.1.tgz";
+ sha1 = "3019161127c35c317ea08dc2a65ea35b592dbfd7";
+ };
+ }
+
+ {
+ name = "gulp_sass___gulp_sass_3.2.1.tgz";
+ path = fetchurl {
+ name = "gulp_sass___gulp_sass_3.2.1.tgz";
+ url = "https://registry.yarnpkg.com/gulp-sass/-/gulp-sass-3.2.1.tgz";
+ sha1 = "2e3688a96fd8be1c0c01340750c191b2e79fab94";
+ };
+ }
+
+ {
+ name = "gulp_util___gulp_util_3.0.8.tgz";
+ path = fetchurl {
+ name = "gulp_util___gulp_util_3.0.8.tgz";
+ url = "https://registry.yarnpkg.com/gulp-util/-/gulp-util-3.0.8.tgz";
+ sha1 = "0054e1e744502e27c04c187c3ecc505dd54bbb4f";
+ };
+ }
+
+ {
+ name = "gulp___gulp_3.9.0.tgz";
+ path = fetchurl {
+ name = "gulp___gulp_3.9.0.tgz";
+ url = "https://registry.yarnpkg.com/gulp/-/gulp-3.9.0.tgz";
+ sha1 = "cf1fba4cb558bb8c6ae6c9613f583ae2620d214a";
+ };
+ }
+
+ {
+ name = "gulplog___gulplog_1.0.0.tgz";
+ path = fetchurl {
+ name = "gulplog___gulplog_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/gulplog/-/gulplog-1.0.0.tgz";
+ sha1 = "e28c4d45d05ecbbed818363ce8f9c5926229ffe5";
+ };
+ }
+
+ {
+ name = "handlebars___handlebars_4.1.0.tgz";
+ path = fetchurl {
+ name = "handlebars___handlebars_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/handlebars/-/handlebars-4.1.0.tgz";
+ sha1 = "0d6a6f34ff1f63cecec8423aa4169827bf787c3a";
+ };
+ }
+
+ {
+ name = "har_schema___har_schema_2.0.0.tgz";
+ path = fetchurl {
+ name = "har_schema___har_schema_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz";
+ sha1 = "a94c2224ebcac04782a0d9035521f24735b7ec92";
+ };
+ }
+
+ {
+ name = "har_validator___har_validator_5.1.3.tgz";
+ path = fetchurl {
+ name = "har_validator___har_validator_5.1.3.tgz";
+ url = "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz";
+ sha1 = "1ef89ebd3e4996557675eed9893110dc350fa080";
+ };
+ }
+
+ {
+ name = "has_ansi___has_ansi_0.1.0.tgz";
+ path = fetchurl {
+ name = "has_ansi___has_ansi_0.1.0.tgz";
+ url = "https://registry.yarnpkg.com/has-ansi/-/has-ansi-0.1.0.tgz";
+ sha1 = "84f265aae8c0e6a88a12d7022894b7568894c62e";
+ };
+ }
+
+ {
+ name = "has_ansi___has_ansi_2.0.0.tgz";
+ path = fetchurl {
+ name = "has_ansi___has_ansi_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz";
+ sha1 = "34f5049ce1ecdf2b0649af3ef24e45ed35416d91";
+ };
+ }
+
+ {
+ name = "has_binary___has_binary_0.1.7.tgz";
+ path = fetchurl {
+ name = "has_binary___has_binary_0.1.7.tgz";
+ url = "https://registry.yarnpkg.com/has-binary/-/has-binary-0.1.7.tgz";
+ sha1 = "68e61eb16210c9545a0a5cce06a873912fe1e68c";
+ };
+ }
+
+ {
+ name = "has_cors___has_cors_1.1.0.tgz";
+ path = fetchurl {
+ name = "has_cors___has_cors_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz";
+ sha1 = "5e474793f7ea9843d1bb99c23eef49ff126fff39";
+ };
+ }
+
+ {
+ name = "has_flag___has_flag_1.0.0.tgz";
+ path = fetchurl {
+ name = "has_flag___has_flag_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz";
+ sha1 = "9d9e793165ce017a00f00418c43f942a7b1d11fa";
+ };
+ }
+
+ {
+ name = "has_gulplog___has_gulplog_0.1.0.tgz";
+ path = fetchurl {
+ name = "has_gulplog___has_gulplog_0.1.0.tgz";
+ url = "https://registry.yarnpkg.com/has-gulplog/-/has-gulplog-0.1.0.tgz";
+ sha1 = "6414c82913697da51590397dafb12f22967811ce";
+ };
+ }
+
+ {
+ name = "has_unicode___has_unicode_2.0.1.tgz";
+ path = fetchurl {
+ name = "has_unicode___has_unicode_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz";
+ sha1 = "e0e6fe6a28cf51138855e086d1691e771de2a8b9";
+ };
+ }
+
+ {
+ name = "has_value___has_value_0.3.1.tgz";
+ path = fetchurl {
+ name = "has_value___has_value_0.3.1.tgz";
+ url = "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz";
+ sha1 = "7b1f58bada62ca827ec0a2078025654845995e1f";
+ };
+ }
+
+ {
+ name = "has_value___has_value_1.0.0.tgz";
+ path = fetchurl {
+ name = "has_value___has_value_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz";
+ sha1 = "18b281da585b1c5c51def24c930ed29a0be6b177";
+ };
+ }
+
+ {
+ name = "has_values___has_values_0.1.4.tgz";
+ path = fetchurl {
+ name = "has_values___has_values_0.1.4.tgz";
+ url = "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz";
+ sha1 = "6d61de95d91dfca9b9a02089ad384bff8f62b771";
+ };
+ }
+
+ {
+ name = "has_values___has_values_1.0.0.tgz";
+ path = fetchurl {
+ name = "has_values___has_values_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz";
+ sha1 = "95b0b63fec2146619a6fe57fe75628d5a39efe4f";
+ };
+ }
+
+ {
+ name = "has___has_1.0.3.tgz";
+ path = fetchurl {
+ name = "has___has_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz";
+ sha1 = "722d7cbfc1f6aa8241f16dd814e011e1f41e8796";
+ };
+ }
+
+ {
+ name = "homedir_polyfill___homedir_polyfill_1.0.3.tgz";
+ path = fetchurl {
+ name = "homedir_polyfill___homedir_polyfill_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz";
+ sha1 = "743298cef4e5af3e194161fbadcc2151d3a058e8";
+ };
+ }
+
+ {
+ name = "hosted_git_info___hosted_git_info_2.7.1.tgz";
+ path = fetchurl {
+ name = "hosted_git_info___hosted_git_info_2.7.1.tgz";
+ url = "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz";
+ sha1 = "97f236977bd6e125408930ff6de3eec6281ec047";
+ };
+ }
+
+ {
+ name = "http_errors___http_errors_1.6.3.tgz";
+ path = fetchurl {
+ name = "http_errors___http_errors_1.6.3.tgz";
+ url = "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz";
+ sha1 = "8b55680bb4be283a0b5bf4ea2e38580be1d9320d";
+ };
+ }
+
+ {
+ name = "http_errors___http_errors_1.3.1.tgz";
+ path = fetchurl {
+ name = "http_errors___http_errors_1.3.1.tgz";
+ url = "https://registry.yarnpkg.com/http-errors/-/http-errors-1.3.1.tgz";
+ sha1 = "197e22cdebd4198585e8694ef6786197b91ed942";
+ };
+ }
+
+ {
+ name = "http_parser_js___http_parser_js_0.5.0.tgz";
+ path = fetchurl {
+ name = "http_parser_js___http_parser_js_0.5.0.tgz";
+ url = "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.0.tgz";
+ sha1 = "d65edbede84349d0dc30320815a15d39cc3cbbd8";
+ };
+ }
+
+ {
+ name = "http_proxy___http_proxy_1.17.0.tgz";
+ path = fetchurl {
+ name = "http_proxy___http_proxy_1.17.0.tgz";
+ url = "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.17.0.tgz";
+ sha1 = "7ad38494658f84605e2f6db4436df410f4e5be9a";
+ };
+ }
+
+ {
+ name = "http_signature___http_signature_1.2.0.tgz";
+ path = fetchurl {
+ name = "http_signature___http_signature_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz";
+ sha1 = "9aecd925114772f3d95b65a60abb8f7c18fbace1";
+ };
+ }
+
+ {
+ name = "iconv_lite___iconv_lite_0.4.13.tgz";
+ path = fetchurl {
+ name = "iconv_lite___iconv_lite_0.4.13.tgz";
+ url = "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.13.tgz";
+ sha1 = "1f88aba4ab0b1508e8312acc39345f36e992e2f2";
+ };
+ }
+
+ {
+ name = "iconv_lite___iconv_lite_0.4.23.tgz";
+ path = fetchurl {
+ name = "iconv_lite___iconv_lite_0.4.23.tgz";
+ url = "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz";
+ sha1 = "297871f63be507adcfbfca715d0cd0eed84e9a63";
+ };
+ }
+
+ {
+ name = "iconv_lite___iconv_lite_0.4.24.tgz";
+ path = fetchurl {
+ name = "iconv_lite___iconv_lite_0.4.24.tgz";
+ url = "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz";
+ sha1 = "2022b4b25fbddc21d2f524974a474aafe733908b";
+ };
+ }
+
+ {
+ name = "ignore_walk___ignore_walk_3.0.1.tgz";
+ path = fetchurl {
+ name = "ignore_walk___ignore_walk_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz";
+ sha1 = "a83e62e7d272ac0e3b551aaa82831a19b69f82f8";
+ };
+ }
+
+ {
+ name = "in_publish___in_publish_2.0.0.tgz";
+ path = fetchurl {
+ name = "in_publish___in_publish_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/in-publish/-/in-publish-2.0.0.tgz";
+ sha1 = "e20ff5e3a2afc2690320b6dc552682a9c7fadf51";
+ };
+ }
+
+ {
+ name = "indent_string___indent_string_2.1.0.tgz";
+ path = fetchurl {
+ name = "indent_string___indent_string_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz";
+ sha1 = "8e2d48348742121b4a8218b7a137e9a52049dc80";
+ };
+ }
+
+ {
+ name = "indexof___indexof_0.0.1.tgz";
+ path = fetchurl {
+ name = "indexof___indexof_0.0.1.tgz";
+ url = "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz";
+ sha1 = "82dc336d232b9062179d05ab3293a66059fd435d";
+ };
+ }
+
+ {
+ name = "inflight___inflight_1.0.6.tgz";
+ path = fetchurl {
+ name = "inflight___inflight_1.0.6.tgz";
+ url = "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz";
+ sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9";
+ };
+ }
+
+ {
+ name = "inherits___inherits_1.0.2.tgz";
+ path = fetchurl {
+ name = "inherits___inherits_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/inherits/-/inherits-1.0.2.tgz";
+ sha1 = "ca4309dadee6b54cc0b8d247e8d7c7a0975bdc9b";
+ };
+ }
+
+ {
+ name = "inherits___inherits_2.0.3.tgz";
+ path = fetchurl {
+ name = "inherits___inherits_2.0.3.tgz";
+ url = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz";
+ sha1 = "633c2c83e3da42a502f52466022480f4208261de";
+ };
+ }
+
+ {
+ name = "ini___ini_1.3.5.tgz";
+ path = fetchurl {
+ name = "ini___ini_1.3.5.tgz";
+ url = "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz";
+ sha1 = "eee25f56db1c9ec6085e0c22778083f596abf927";
+ };
+ }
+
+ {
+ name = "interpret___interpret_0.6.6.tgz";
+ path = fetchurl {
+ name = "interpret___interpret_0.6.6.tgz";
+ url = "https://registry.yarnpkg.com/interpret/-/interpret-0.6.6.tgz";
+ sha1 = "fecd7a18e7ce5ca6abfb953e1f86213a49f1625b";
+ };
+ }
+
+ {
+ name = "invert_kv___invert_kv_1.0.0.tgz";
+ path = fetchurl {
+ name = "invert_kv___invert_kv_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz";
+ sha1 = "104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6";
+ };
+ }
+
+ {
+ name = "is_absolute___is_absolute_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_absolute___is_absolute_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-absolute/-/is-absolute-1.0.0.tgz";
+ sha1 = "395e1ae84b11f26ad1795e73c17378e48a301576";
+ };
+ }
+
+ {
+ name = "is_accessor_descriptor___is_accessor_descriptor_0.1.6.tgz";
+ path = fetchurl {
+ name = "is_accessor_descriptor___is_accessor_descriptor_0.1.6.tgz";
+ url = "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz";
+ sha1 = "a9e12cb3ae8d876727eeef3843f8a0897b5c98d6";
+ };
+ }
+
+ {
+ name = "is_accessor_descriptor___is_accessor_descriptor_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_accessor_descriptor___is_accessor_descriptor_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz";
+ sha1 = "169c2f6d3df1f992618072365c9b0ea1f6878656";
+ };
+ }
+
+ {
+ name = "is_arrayish___is_arrayish_0.2.1.tgz";
+ path = fetchurl {
+ name = "is_arrayish___is_arrayish_0.2.1.tgz";
+ url = "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz";
+ sha1 = "77c99840527aa8ecb1a8ba697b80645a7a926a9d";
+ };
+ }
+
+ {
+ name = "is_binary_path___is_binary_path_1.0.1.tgz";
+ path = fetchurl {
+ name = "is_binary_path___is_binary_path_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz";
+ sha1 = "75f16642b480f187a711c814161fd3a4a7655898";
+ };
+ }
+
+ {
+ name = "is_buffer___is_buffer_1.1.6.tgz";
+ path = fetchurl {
+ name = "is_buffer___is_buffer_1.1.6.tgz";
+ url = "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz";
+ sha1 = "efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be";
+ };
+ }
+
+ {
+ name = "is_data_descriptor___is_data_descriptor_0.1.4.tgz";
+ path = fetchurl {
+ name = "is_data_descriptor___is_data_descriptor_0.1.4.tgz";
+ url = "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz";
+ sha1 = "0b5ee648388e2c860282e793f1856fec3f301b56";
+ };
+ }
+
+ {
+ name = "is_data_descriptor___is_data_descriptor_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_data_descriptor___is_data_descriptor_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz";
+ sha1 = "d84876321d0e7add03990406abbbbd36ba9268c7";
+ };
+ }
+
+ {
+ name = "is_descriptor___is_descriptor_0.1.6.tgz";
+ path = fetchurl {
+ name = "is_descriptor___is_descriptor_0.1.6.tgz";
+ url = "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz";
+ sha1 = "366d8240dde487ca51823b1ab9f07a10a78251ca";
+ };
+ }
+
+ {
+ name = "is_descriptor___is_descriptor_1.0.2.tgz";
+ path = fetchurl {
+ name = "is_descriptor___is_descriptor_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz";
+ sha1 = "3b159746a66604b04f8c81524ba365c5f14d86ec";
+ };
+ }
+
+ {
+ name = "is_dotfile___is_dotfile_1.0.3.tgz";
+ path = fetchurl {
+ name = "is_dotfile___is_dotfile_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz";
+ sha1 = "a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1";
+ };
+ }
+
+ {
+ name = "is_equal_shallow___is_equal_shallow_0.1.3.tgz";
+ path = fetchurl {
+ name = "is_equal_shallow___is_equal_shallow_0.1.3.tgz";
+ url = "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz";
+ sha1 = "2238098fc221de0bcfa5d9eac4c45d638aa1c534";
+ };
+ }
+
+ {
+ name = "is_extendable___is_extendable_0.1.1.tgz";
+ path = fetchurl {
+ name = "is_extendable___is_extendable_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz";
+ sha1 = "62b110e289a471418e3ec36a617d472e301dfc89";
+ };
+ }
+
+ {
+ name = "is_extendable___is_extendable_1.0.1.tgz";
+ path = fetchurl {
+ name = "is_extendable___is_extendable_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz";
+ sha1 = "a7470f9e426733d81bd81e1155264e3a3507cab4";
+ };
+ }
+
+ {
+ name = "is_extglob___is_extglob_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_extglob___is_extglob_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz";
+ sha1 = "ac468177c4943405a092fc8f29760c6ffc6206c0";
+ };
+ }
+
+ {
+ name = "is_extglob___is_extglob_2.1.1.tgz";
+ path = fetchurl {
+ name = "is_extglob___is_extglob_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz";
+ sha1 = "a88c02535791f02ed37c76a1b9ea9773c833f8c2";
+ };
+ }
+
+ {
+ name = "is_finite___is_finite_1.0.2.tgz";
+ path = fetchurl {
+ name = "is_finite___is_finite_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz";
+ sha1 = "cc6677695602be550ef11e8b4aa6305342b6d0aa";
+ };
+ }
+
+ {
+ name = "is_fullwidth_code_point___is_fullwidth_code_point_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_fullwidth_code_point___is_fullwidth_code_point_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz";
+ sha1 = "ef9e31386f031a7f0d643af82fde50c457ef00cb";
+ };
+ }
+
+ {
+ name = "is_fullwidth_code_point___is_fullwidth_code_point_2.0.0.tgz";
+ path = fetchurl {
+ name = "is_fullwidth_code_point___is_fullwidth_code_point_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz";
+ sha1 = "a3b30a5c4f199183167aaab93beefae3ddfb654f";
+ };
+ }
+
+ {
+ name = "is_glob___is_glob_2.0.1.tgz";
+ path = fetchurl {
+ name = "is_glob___is_glob_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz";
+ sha1 = "d096f926a3ded5600f3fdfd91198cb0888c2d863";
+ };
+ }
+
+ {
+ name = "is_glob___is_glob_3.1.0.tgz";
+ path = fetchurl {
+ name = "is_glob___is_glob_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz";
+ sha1 = "7ba5ae24217804ac70707b96922567486cc3e84a";
+ };
+ }
+
+ {
+ name = "is_number___is_number_0.1.1.tgz";
+ path = fetchurl {
+ name = "is_number___is_number_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/is-number/-/is-number-0.1.1.tgz";
+ sha1 = "69a7af116963d47206ec9bd9b48a14216f1e3806";
+ };
+ }
+
+ {
+ name = "is_number___is_number_2.1.0.tgz";
+ path = fetchurl {
+ name = "is_number___is_number_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz";
+ sha1 = "01fcbbb393463a548f2f466cce16dece49db908f";
+ };
+ }
+
+ {
+ name = "is_number___is_number_3.0.0.tgz";
+ path = fetchurl {
+ name = "is_number___is_number_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz";
+ sha1 = "24fd6201a4782cf50561c810276afc7d12d71195";
+ };
+ }
+
+ {
+ name = "is_number___is_number_4.0.0.tgz";
+ path = fetchurl {
+ name = "is_number___is_number_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz";
+ sha1 = "0026e37f5454d73e356dfe6564699867c6a7f0ff";
+ };
+ }
+
+ {
+ name = "is_plain_object___is_plain_object_2.0.4.tgz";
+ path = fetchurl {
+ name = "is_plain_object___is_plain_object_2.0.4.tgz";
+ url = "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz";
+ sha1 = "2c163b3fafb1b606d9d17928f05c2a1c38e07677";
+ };
+ }
+
+ {
+ name = "is_posix_bracket___is_posix_bracket_0.1.1.tgz";
+ path = fetchurl {
+ name = "is_posix_bracket___is_posix_bracket_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz";
+ sha1 = "3334dc79774368e92f016e6fbc0a88f5cd6e6bc4";
+ };
+ }
+
+ {
+ name = "is_primitive___is_primitive_2.0.0.tgz";
+ path = fetchurl {
+ name = "is_primitive___is_primitive_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz";
+ sha1 = "207bab91638499c07b2adf240a41a87210034575";
+ };
+ }
+
+ {
+ name = "is_relative___is_relative_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_relative___is_relative_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-relative/-/is-relative-1.0.0.tgz";
+ sha1 = "a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d";
+ };
+ }
+
+ {
+ name = "is_typedarray___is_typedarray_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_typedarray___is_typedarray_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz";
+ sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a";
+ };
+ }
+
+ {
+ name = "is_unc_path___is_unc_path_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_unc_path___is_unc_path_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-1.0.0.tgz";
+ sha1 = "d731e8898ed090a12c352ad2eaed5095ad322c9d";
+ };
+ }
+
+ {
+ name = "is_utf8___is_utf8_0.2.1.tgz";
+ path = fetchurl {
+ name = "is_utf8___is_utf8_0.2.1.tgz";
+ url = "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz";
+ sha1 = "4b0da1442104d1b336340e80797e865cf39f7d72";
+ };
+ }
+
+ {
+ name = "is_windows___is_windows_1.0.2.tgz";
+ path = fetchurl {
+ name = "is_windows___is_windows_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz";
+ sha1 = "d1850eb9791ecd18e6182ce12a30f396634bb19d";
+ };
+ }
+
+ {
+ name = "is___is_3.3.0.tgz";
+ path = fetchurl {
+ name = "is___is_3.3.0.tgz";
+ url = "https://registry.yarnpkg.com/is/-/is-3.3.0.tgz";
+ sha1 = "61cff6dd3c4193db94a3d62582072b44e5645d79";
+ };
+ }
+
+ {
+ name = "isarray___isarray_0.0.1.tgz";
+ path = fetchurl {
+ name = "isarray___isarray_0.0.1.tgz";
+ url = "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz";
+ sha1 = "8a18acfca9a8f4177e09abfc6038939b05d1eedf";
+ };
+ }
+
+ {
+ name = "isarray___isarray_1.0.0.tgz";
+ path = fetchurl {
+ name = "isarray___isarray_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz";
+ sha1 = "bb935d48582cba168c06834957a54a3e07124f11";
+ };
+ }
+
+ {
+ name = "isbinaryfile___isbinaryfile_3.0.3.tgz";
+ path = fetchurl {
+ name = "isbinaryfile___isbinaryfile_3.0.3.tgz";
+ url = "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.3.tgz";
+ sha1 = "5d6def3edebf6e8ca8cae9c30183a804b5f8be80";
+ };
+ }
+
+ {
+ name = "isexe___isexe_2.0.0.tgz";
+ path = fetchurl {
+ name = "isexe___isexe_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz";
+ sha1 = "e8fbf374dc556ff8947a10dcb0572d633f2cfa10";
+ };
+ }
+
+ {
+ name = "isobject___isobject_2.1.0.tgz";
+ path = fetchurl {
+ name = "isobject___isobject_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz";
+ sha1 = "f065561096a3f1da2ef46272f815c840d87e0c89";
+ };
+ }
+
+ {
+ name = "isobject___isobject_3.0.1.tgz";
+ path = fetchurl {
+ name = "isobject___isobject_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz";
+ sha1 = "4e431e92b11a9731636aa1f9c8d1ccbcfdab78df";
+ };
+ }
+
+ {
+ name = "isstream___isstream_0.1.2.tgz";
+ path = fetchurl {
+ name = "isstream___isstream_0.1.2.tgz";
+ url = "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz";
+ sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a";
+ };
+ }
+
+ {
+ name = "istanbul___istanbul_0.4.5.tgz";
+ path = fetchurl {
+ name = "istanbul___istanbul_0.4.5.tgz";
+ url = "https://registry.yarnpkg.com/istanbul/-/istanbul-0.4.5.tgz";
+ sha1 = "65c7d73d4c4da84d4f3ac310b918fb0b8033733b";
+ };
+ }
+
+ {
+ name = "jasmine_core___jasmine_core_2.99.1.tgz";
+ path = fetchurl {
+ name = "jasmine_core___jasmine_core_2.99.1.tgz";
+ url = "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-2.99.1.tgz";
+ sha1 = "e6400df1e6b56e130b61c4bcd093daa7f6e8ca15";
+ };
+ }
+
+ {
+ name = "js_base64___js_base64_2.5.1.tgz";
+ path = fetchurl {
+ name = "js_base64___js_base64_2.5.1.tgz";
+ url = "https://registry.yarnpkg.com/js-base64/-/js-base64-2.5.1.tgz";
+ sha1 = "1efa39ef2c5f7980bb1784ade4a8af2de3291121";
+ };
+ }
+
+ {
+ name = "js_yaml___js_yaml_3.12.2.tgz";
+ path = fetchurl {
+ name = "js_yaml___js_yaml_3.12.2.tgz";
+ url = "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.2.tgz";
+ sha1 = "ef1d067c5a9d9cb65bd72f285b5d8105c77f14fc";
+ };
+ }
+
+ {
+ name = "jsbn___jsbn_0.1.1.tgz";
+ path = fetchurl {
+ name = "jsbn___jsbn_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz";
+ sha1 = "a5e654c2e5a2deb5f201d96cefbca80c0ef2f513";
+ };
+ }
+
+ {
+ name = "json_schema_traverse___json_schema_traverse_0.4.1.tgz";
+ path = fetchurl {
+ name = "json_schema_traverse___json_schema_traverse_0.4.1.tgz";
+ url = "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz";
+ sha1 = "69f6a87d9513ab8bb8fe63bdb0979c448e684660";
+ };
+ }
+
+ {
+ name = "json_schema___json_schema_0.2.3.tgz";
+ path = fetchurl {
+ name = "json_schema___json_schema_0.2.3.tgz";
+ url = "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz";
+ sha1 = "b480c892e59a2f05954ce727bd3f2a4e882f9e13";
+ };
+ }
+
+ {
+ name = "json_stringify_safe___json_stringify_safe_5.0.1.tgz";
+ path = fetchurl {
+ name = "json_stringify_safe___json_stringify_safe_5.0.1.tgz";
+ url = "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz";
+ sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb";
+ };
+ }
+
+ {
+ name = "json3___json3_3.3.2.tgz";
+ path = fetchurl {
+ name = "json3___json3_3.3.2.tgz";
+ url = "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz";
+ sha1 = "3c0434743df93e2f5c42aee7b19bcb483575f4e1";
+ };
+ }
+
+ {
+ name = "jsprim___jsprim_1.4.1.tgz";
+ path = fetchurl {
+ name = "jsprim___jsprim_1.4.1.tgz";
+ url = "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz";
+ sha1 = "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2";
+ };
+ }
+
+ {
+ name = "karma_chrome_launcher___karma_chrome_launcher_2.1.1.tgz";
+ path = fetchurl {
+ name = "karma_chrome_launcher___karma_chrome_launcher_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/karma-chrome-launcher/-/karma-chrome-launcher-2.1.1.tgz";
+ sha1 = "216879c68ac04d8d5140e99619ba04b59afd46cf";
+ };
+ }
+
+ {
+ name = "karma_coffee_preprocessor___karma_coffee_preprocessor_0.3.0.tgz";
+ path = fetchurl {
+ name = "karma_coffee_preprocessor___karma_coffee_preprocessor_0.3.0.tgz";
+ url = "https://registry.yarnpkg.com/karma-coffee-preprocessor/-/karma-coffee-preprocessor-0.3.0.tgz";
+ sha1 = "a4d8dc2b145bfef458a203d308b63bc03c9b4259";
+ };
+ }
+
+ {
+ name = "karma_coverage___karma_coverage_0.5.5.tgz";
+ path = fetchurl {
+ name = "karma_coverage___karma_coverage_0.5.5.tgz";
+ url = "https://registry.yarnpkg.com/karma-coverage/-/karma-coverage-0.5.5.tgz";
+ sha1 = "b0d58b1025d59d5c6620263186f1d58f5d5348c5";
+ };
+ }
+
+ {
+ name = "karma_jasmine___karma_jasmine_0.3.8.tgz";
+ path = fetchurl {
+ name = "karma_jasmine___karma_jasmine_0.3.8.tgz";
+ url = "https://registry.yarnpkg.com/karma-jasmine/-/karma-jasmine-0.3.8.tgz";
+ sha1 = "5b6457791ad9b89aa173f079e3ebe1b8c805236c";
+ };
+ }
+
+ {
+ name = "karma_sourcemap_loader___karma_sourcemap_loader_0.3.7.tgz";
+ path = fetchurl {
+ name = "karma_sourcemap_loader___karma_sourcemap_loader_0.3.7.tgz";
+ url = "https://registry.yarnpkg.com/karma-sourcemap-loader/-/karma-sourcemap-loader-0.3.7.tgz";
+ sha1 = "91322c77f8f13d46fed062b042e1009d4c4505d8";
+ };
+ }
+
+ {
+ name = "karma___karma_0.13.22.tgz";
+ path = fetchurl {
+ name = "karma___karma_0.13.22.tgz";
+ url = "https://registry.yarnpkg.com/karma/-/karma-0.13.22.tgz";
+ sha1 = "07750b1bd063d7e7e7b91bcd2e6354d8f2aa8744";
+ };
+ }
+
+ {
+ name = "kind_of___kind_of_3.2.2.tgz";
+ path = fetchurl {
+ name = "kind_of___kind_of_3.2.2.tgz";
+ url = "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz";
+ sha1 = "31ea21a734bab9bbb0f32466d893aea51e4a3c64";
+ };
+ }
+
+ {
+ name = "kind_of___kind_of_4.0.0.tgz";
+ path = fetchurl {
+ name = "kind_of___kind_of_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz";
+ sha1 = "20813df3d712928b207378691a45066fae72dd57";
+ };
+ }
+
+ {
+ name = "kind_of___kind_of_5.1.0.tgz";
+ path = fetchurl {
+ name = "kind_of___kind_of_5.1.0.tgz";
+ url = "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz";
+ sha1 = "729c91e2d857b7a419a1f9aa65685c4c33f5845d";
+ };
+ }
+
+ {
+ name = "kind_of___kind_of_6.0.2.tgz";
+ path = fetchurl {
+ name = "kind_of___kind_of_6.0.2.tgz";
+ url = "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz";
+ sha1 = "01146b36a6218e64e58f3a8d66de5d7fc6f6d051";
+ };
+ }
+
+ {
+ name = "lcid___lcid_1.0.0.tgz";
+ path = fetchurl {
+ name = "lcid___lcid_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz";
+ sha1 = "308accafa0bc483a3867b4b6f2b9506251d1b835";
+ };
+ }
+
+ {
+ name = "levn___levn_0.3.0.tgz";
+ path = fetchurl {
+ name = "levn___levn_0.3.0.tgz";
+ url = "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz";
+ sha1 = "3b09924edf9f083c0490fdd4c0bc4421e04764ee";
+ };
+ }
+
+ {
+ name = "liftoff___liftoff_2.5.0.tgz";
+ path = fetchurl {
+ name = "liftoff___liftoff_2.5.0.tgz";
+ url = "https://registry.yarnpkg.com/liftoff/-/liftoff-2.5.0.tgz";
+ sha1 = "2009291bb31cea861bbf10a7c15a28caf75c31ec";
+ };
+ }
+
+ {
+ name = "livereload_js___livereload_js_2.4.0.tgz";
+ path = fetchurl {
+ name = "livereload_js___livereload_js_2.4.0.tgz";
+ url = "https://registry.yarnpkg.com/livereload-js/-/livereload-js-2.4.0.tgz";
+ sha1 = "447c31cf1ea9ab52fc20db615c5ddf678f78009c";
+ };
+ }
+
+ {
+ name = "load_json_file___load_json_file_1.1.0.tgz";
+ path = fetchurl {
+ name = "load_json_file___load_json_file_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz";
+ sha1 = "956905708d58b4bab4c2261b04f59f31c99374c0";
+ };
+ }
+
+ {
+ name = "lodash._baseassign___lodash._baseassign_3.2.0.tgz";
+ path = fetchurl {
+ name = "lodash._baseassign___lodash._baseassign_3.2.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz";
+ sha1 = "8c38a099500f215ad09e59f1722fd0c52bfe0a4e";
+ };
+ }
+
+ {
+ name = "lodash._basecopy___lodash._basecopy_3.0.1.tgz";
+ path = fetchurl {
+ name = "lodash._basecopy___lodash._basecopy_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz";
+ sha1 = "8da0e6a876cf344c0ad8a54882111dd3c5c7ca36";
+ };
+ }
+
+ {
+ name = "lodash._basetostring___lodash._basetostring_3.0.1.tgz";
+ path = fetchurl {
+ name = "lodash._basetostring___lodash._basetostring_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz";
+ sha1 = "d1861d877f824a52f669832dcaf3ee15566a07d5";
+ };
+ }
+
+ {
+ name = "lodash._basevalues___lodash._basevalues_3.0.0.tgz";
+ path = fetchurl {
+ name = "lodash._basevalues___lodash._basevalues_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz";
+ sha1 = "5b775762802bde3d3297503e26300820fdf661b7";
+ };
+ }
+
+ {
+ name = "lodash._bindcallback___lodash._bindcallback_3.0.1.tgz";
+ path = fetchurl {
+ name = "lodash._bindcallback___lodash._bindcallback_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz";
+ sha1 = "e531c27644cf8b57a99e17ed95b35c748789392e";
+ };
+ }
+
+ {
+ name = "lodash._createassigner___lodash._createassigner_3.1.1.tgz";
+ path = fetchurl {
+ name = "lodash._createassigner___lodash._createassigner_3.1.1.tgz";
+ url = "https://registry.yarnpkg.com/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz";
+ sha1 = "838a5bae2fdaca63ac22dee8e19fa4e6d6970b11";
+ };
+ }
+
+ {
+ name = "lodash._getnative___lodash._getnative_3.9.1.tgz";
+ path = fetchurl {
+ name = "lodash._getnative___lodash._getnative_3.9.1.tgz";
+ url = "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz";
+ sha1 = "570bc7dede46d61cdcde687d65d3eecbaa3aaff5";
+ };
+ }
+
+ {
+ name = "lodash._isiterateecall___lodash._isiterateecall_3.0.9.tgz";
+ path = fetchurl {
+ name = "lodash._isiterateecall___lodash._isiterateecall_3.0.9.tgz";
+ url = "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz";
+ sha1 = "5203ad7ba425fae842460e696db9cf3e6aac057c";
+ };
+ }
+
+ {
+ name = "lodash._reescape___lodash._reescape_3.0.0.tgz";
+ path = fetchurl {
+ name = "lodash._reescape___lodash._reescape_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash._reescape/-/lodash._reescape-3.0.0.tgz";
+ sha1 = "2b1d6f5dfe07c8a355753e5f27fac7f1cde1616a";
+ };
+ }
+
+ {
+ name = "lodash._reevaluate___lodash._reevaluate_3.0.0.tgz";
+ path = fetchurl {
+ name = "lodash._reevaluate___lodash._reevaluate_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz";
+ sha1 = "58bc74c40664953ae0b124d806996daca431e2ed";
+ };
+ }
+
+ {
+ name = "lodash._reinterpolate___lodash._reinterpolate_3.0.0.tgz";
+ path = fetchurl {
+ name = "lodash._reinterpolate___lodash._reinterpolate_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz";
+ sha1 = "0ccf2d89166af03b3663c796538b75ac6e114d9d";
+ };
+ }
+
+ {
+ name = "lodash._root___lodash._root_3.0.1.tgz";
+ path = fetchurl {
+ name = "lodash._root___lodash._root_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz";
+ sha1 = "fba1c4524c19ee9a5f8136b4609f017cf4ded692";
+ };
+ }
+
+ {
+ name = "lodash.assign___lodash.assign_3.2.0.tgz";
+ path = fetchurl {
+ name = "lodash.assign___lodash.assign_3.2.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-3.2.0.tgz";
+ sha1 = "3ce9f0234b4b2223e296b8fa0ac1fee8ebca64fa";
+ };
+ }
+
+ {
+ name = "lodash.assign___lodash.assign_4.2.0.tgz";
+ path = fetchurl {
+ name = "lodash.assign___lodash.assign_4.2.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz";
+ sha1 = "0d99f3ccd7a6d261d19bdaeb9245005d285808e7";
+ };
+ }
+
+ {
+ name = "lodash.clonedeep___lodash.clonedeep_4.5.0.tgz";
+ path = fetchurl {
+ name = "lodash.clonedeep___lodash.clonedeep_4.5.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz";
+ sha1 = "e23f3f9c4f8fbdde872529c1071857a086e5ccef";
+ };
+ }
+
+ {
+ name = "lodash.escape___lodash.escape_3.2.0.tgz";
+ path = fetchurl {
+ name = "lodash.escape___lodash.escape_3.2.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-3.2.0.tgz";
+ sha1 = "995ee0dc18c1b48cc92effae71a10aab5b487698";
+ };
+ }
+
+ {
+ name = "lodash.isarguments___lodash.isarguments_3.1.0.tgz";
+ path = fetchurl {
+ name = "lodash.isarguments___lodash.isarguments_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz";
+ sha1 = "2f573d85c6a24289ff00663b491c1d338ff3458a";
+ };
+ }
+
+ {
+ name = "lodash.isarray___lodash.isarray_3.0.4.tgz";
+ path = fetchurl {
+ name = "lodash.isarray___lodash.isarray_3.0.4.tgz";
+ url = "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz";
+ sha1 = "79e4eb88c36a8122af86f844aa9bcd851b5fbb55";
+ };
+ }
+
+ {
+ name = "lodash.keys___lodash.keys_3.1.2.tgz";
+ path = fetchurl {
+ name = "lodash.keys___lodash.keys_3.1.2.tgz";
+ url = "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz";
+ sha1 = "4dbc0472b156be50a0b286855d1bd0b0c656098a";
+ };
+ }
+
+ {
+ name = "lodash.mergewith___lodash.mergewith_4.6.1.tgz";
+ path = fetchurl {
+ name = "lodash.mergewith___lodash.mergewith_4.6.1.tgz";
+ url = "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz";
+ sha1 = "639057e726c3afbdb3e7d42741caa8d6e4335927";
+ };
+ }
+
+ {
+ name = "lodash.restparam___lodash.restparam_3.6.1.tgz";
+ path = fetchurl {
+ name = "lodash.restparam___lodash.restparam_3.6.1.tgz";
+ url = "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz";
+ sha1 = "936a4e309ef330a7645ed4145986c85ae5b20805";
+ };
+ }
+
+ {
+ name = "lodash.template___lodash.template_3.6.2.tgz";
+ path = fetchurl {
+ name = "lodash.template___lodash.template_3.6.2.tgz";
+ url = "https://registry.yarnpkg.com/lodash.template/-/lodash.template-3.6.2.tgz";
+ sha1 = "f8cdecc6169a255be9098ae8b0c53d378931d14f";
+ };
+ }
+
+ {
+ name = "lodash.templatesettings___lodash.templatesettings_3.1.1.tgz";
+ path = fetchurl {
+ name = "lodash.templatesettings___lodash.templatesettings_3.1.1.tgz";
+ url = "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz";
+ sha1 = "fb307844753b66b9f1afa54e262c745307dba8e5";
+ };
+ }
+
+ {
+ name = "lodash___lodash_3.10.1.tgz";
+ path = fetchurl {
+ name = "lodash___lodash_3.10.1.tgz";
+ url = "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz";
+ sha1 = "5bf45e8e49ba4189e17d482789dfd15bd140b7b6";
+ };
+ }
+
+ {
+ name = "lodash___lodash_4.17.11.tgz";
+ path = fetchurl {
+ name = "lodash___lodash_4.17.11.tgz";
+ url = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz";
+ sha1 = "b39ea6229ef607ecd89e2c8df12536891cac9b8d";
+ };
+ }
+
+ {
+ name = "lodash___lodash_1.0.2.tgz";
+ path = fetchurl {
+ name = "lodash___lodash_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/lodash/-/lodash-1.0.2.tgz";
+ sha1 = "8f57560c83b59fc270bd3d561b690043430e2551";
+ };
+ }
+
+ {
+ name = "log4js___log4js_0.6.38.tgz";
+ path = fetchurl {
+ name = "log4js___log4js_0.6.38.tgz";
+ url = "https://registry.yarnpkg.com/log4js/-/log4js-0.6.38.tgz";
+ sha1 = "2c494116695d6fb25480943d3fc872e662a522fd";
+ };
+ }
+
+ {
+ name = "loophole___loophole_1.1.0.tgz";
+ path = fetchurl {
+ name = "loophole___loophole_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/loophole/-/loophole-1.1.0.tgz";
+ sha1 = "37949fea453b6256acc725c320ce0c5a7f70a2bd";
+ };
+ }
+
+ {
+ name = "loud_rejection___loud_rejection_1.6.0.tgz";
+ path = fetchurl {
+ name = "loud_rejection___loud_rejection_1.6.0.tgz";
+ url = "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz";
+ sha1 = "5b46f80147edee578870f086d04821cf998e551f";
+ };
+ }
+
+ {
+ name = "lru_cache___lru_cache_2.7.3.tgz";
+ path = fetchurl {
+ name = "lru_cache___lru_cache_2.7.3.tgz";
+ url = "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.7.3.tgz";
+ sha1 = "6d4524e8b955f95d4f5b58851ce21dd72fb4e952";
+ };
+ }
+
+ {
+ name = "lru_cache___lru_cache_4.1.5.tgz";
+ path = fetchurl {
+ name = "lru_cache___lru_cache_4.1.5.tgz";
+ url = "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz";
+ sha1 = "8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd";
+ };
+ }
+
+ {
+ name = "make_iterator___make_iterator_1.0.1.tgz";
+ path = fetchurl {
+ name = "make_iterator___make_iterator_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/make-iterator/-/make-iterator-1.0.1.tgz";
+ sha1 = "29b33f312aa8f547c4a5e490f56afcec99133ad6";
+ };
+ }
+
+ {
+ name = "map_cache___map_cache_0.2.2.tgz";
+ path = fetchurl {
+ name = "map_cache___map_cache_0.2.2.tgz";
+ url = "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz";
+ sha1 = "c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf";
+ };
+ }
+
+ {
+ name = "map_obj___map_obj_1.0.1.tgz";
+ path = fetchurl {
+ name = "map_obj___map_obj_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz";
+ sha1 = "d933ceb9205d82bdcf4886f6742bdc2b4dea146d";
+ };
+ }
+
+ {
+ name = "map_stream___map_stream_0.0.7.tgz";
+ path = fetchurl {
+ name = "map_stream___map_stream_0.0.7.tgz";
+ url = "https://registry.yarnpkg.com/map-stream/-/map-stream-0.0.7.tgz";
+ sha1 = "8a1f07896d82b10926bd3744a2420009f88974a8";
+ };
+ }
+
+ {
+ name = "map_visit___map_visit_1.0.0.tgz";
+ path = fetchurl {
+ name = "map_visit___map_visit_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz";
+ sha1 = "ecdca8f13144e660f1b5bd41f12f3479d98dfb8f";
+ };
+ }
+
+ {
+ name = "math_random___math_random_1.0.4.tgz";
+ path = fetchurl {
+ name = "math_random___math_random_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/math-random/-/math-random-1.0.4.tgz";
+ sha1 = "5dd6943c938548267016d4e34f057583080c514c";
+ };
+ }
+
+ {
+ name = "media_typer___media_typer_0.3.0.tgz";
+ path = fetchurl {
+ name = "media_typer___media_typer_0.3.0.tgz";
+ url = "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz";
+ sha1 = "8710d7af0aa626f8fffa1ce00168545263255748";
+ };
+ }
+
+ {
+ name = "meow___meow_3.7.0.tgz";
+ path = fetchurl {
+ name = "meow___meow_3.7.0.tgz";
+ url = "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz";
+ sha1 = "72cb668b425228290abbfa856892587308a801fb";
+ };
+ }
+
+ {
+ name = "micromatch___micromatch_2.3.11.tgz";
+ path = fetchurl {
+ name = "micromatch___micromatch_2.3.11.tgz";
+ url = "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz";
+ sha1 = "86677c97d1720b363431d04d0d15293bd38c1565";
+ };
+ }
+
+ {
+ name = "micromatch___micromatch_3.1.10.tgz";
+ path = fetchurl {
+ name = "micromatch___micromatch_3.1.10.tgz";
+ url = "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz";
+ sha1 = "70859bc95c9840952f359a068a3fc49f9ecfac23";
+ };
+ }
+
+ {
+ name = "mime_db___mime_db_1.38.0.tgz";
+ path = fetchurl {
+ name = "mime_db___mime_db_1.38.0.tgz";
+ url = "https://registry.yarnpkg.com/mime-db/-/mime-db-1.38.0.tgz";
+ sha1 = "1a2aab16da9eb167b49c6e4df2d9c68d63d8e2ad";
+ };
+ }
+
+ {
+ name = "mime_types___mime_types_2.1.22.tgz";
+ path = fetchurl {
+ name = "mime_types___mime_types_2.1.22.tgz";
+ url = "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.22.tgz";
+ sha1 = "fe6b355a190926ab7698c9a0556a11199b2199bd";
+ };
+ }
+
+ {
+ name = "mime___mime_1.6.0.tgz";
+ path = fetchurl {
+ name = "mime___mime_1.6.0.tgz";
+ url = "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz";
+ sha1 = "32cd9e5c64553bd58d19a568af452acff04981b1";
+ };
+ }
+
+ {
+ name = "mini_lr___mini_lr_0.1.9.tgz";
+ path = fetchurl {
+ name = "mini_lr___mini_lr_0.1.9.tgz";
+ url = "https://registry.yarnpkg.com/mini-lr/-/mini-lr-0.1.9.tgz";
+ sha1 = "02199d27347953d1fd1d6dbded4261f187b2d0f6";
+ };
+ }
+
+ {
+ name = "minimatch___minimatch_3.0.4.tgz";
+ path = fetchurl {
+ name = "minimatch___minimatch_3.0.4.tgz";
+ url = "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz";
+ sha1 = "5166e286457f03306064be5497e8dbb0c3d32083";
+ };
+ }
+
+ {
+ name = "minimatch___minimatch_2.0.10.tgz";
+ path = fetchurl {
+ name = "minimatch___minimatch_2.0.10.tgz";
+ url = "https://registry.yarnpkg.com/minimatch/-/minimatch-2.0.10.tgz";
+ sha1 = "8d087c39c6b38c001b97fca7ce6d0e1e80afbac7";
+ };
+ }
+
+ {
+ name = "minimatch___minimatch_0.2.14.tgz";
+ path = fetchurl {
+ name = "minimatch___minimatch_0.2.14.tgz";
+ url = "https://registry.yarnpkg.com/minimatch/-/minimatch-0.2.14.tgz";
+ sha1 = "c74e780574f63c6f9a090e90efbe6ef53a6a756a";
+ };
+ }
+
+ {
+ name = "minimist___minimist_0.0.8.tgz";
+ path = fetchurl {
+ name = "minimist___minimist_0.0.8.tgz";
+ url = "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz";
+ sha1 = "857fcabfc3397d2625b8228262e86aa7a011b05d";
+ };
+ }
+
+ {
+ name = "minimist___minimist_1.2.0.tgz";
+ path = fetchurl {
+ name = "minimist___minimist_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz";
+ sha1 = "a35008b20f41383eec1fb914f4cd5df79a264284";
+ };
+ }
+
+ {
+ name = "minimist___minimist_0.0.10.tgz";
+ path = fetchurl {
+ name = "minimist___minimist_0.0.10.tgz";
+ url = "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz";
+ sha1 = "de3f98543dbf96082be48ad1a0c7cda836301dcf";
+ };
+ }
+
+ {
+ name = "minipass___minipass_2.3.5.tgz";
+ path = fetchurl {
+ name = "minipass___minipass_2.3.5.tgz";
+ url = "https://registry.yarnpkg.com/minipass/-/minipass-2.3.5.tgz";
+ sha1 = "cacebe492022497f656b0f0f51e2682a9ed2d848";
+ };
+ }
+
+ {
+ name = "minizlib___minizlib_1.2.1.tgz";
+ path = fetchurl {
+ name = "minizlib___minizlib_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/minizlib/-/minizlib-1.2.1.tgz";
+ sha1 = "dd27ea6136243c7c880684e8672bb3a45fd9b614";
+ };
+ }
+
+ {
+ name = "mixin_deep___mixin_deep_1.3.1.tgz";
+ path = fetchurl {
+ name = "mixin_deep___mixin_deep_1.3.1.tgz";
+ url = "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz";
+ sha1 = "a49e7268dce1a0d9698e45326c5626df3543d0fe";
+ };
+ }
+
+ {
+ name = "mkdirp___mkdirp_0.5.1.tgz";
+ path = fetchurl {
+ name = "mkdirp___mkdirp_0.5.1.tgz";
+ url = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz";
+ sha1 = "30057438eac6cf7f8c4767f38648d6697d75c903";
+ };
+ }
+
+ {
+ name = "ms___ms_0.7.1.tgz";
+ path = fetchurl {
+ name = "ms___ms_0.7.1.tgz";
+ url = "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz";
+ sha1 = "9cd13c03adbff25b65effde7ce864ee952017098";
+ };
+ }
+
+ {
+ name = "ms___ms_0.7.2.tgz";
+ path = fetchurl {
+ name = "ms___ms_0.7.2.tgz";
+ url = "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz";
+ sha1 = "ae25cf2512b3885a1d95d7f037868d8431124765";
+ };
+ }
+
+ {
+ name = "ms___ms_2.0.0.tgz";
+ path = fetchurl {
+ name = "ms___ms_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz";
+ sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8";
+ };
+ }
+
+ {
+ name = "ms___ms_2.1.1.tgz";
+ path = fetchurl {
+ name = "ms___ms_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz";
+ sha1 = "30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a";
+ };
+ }
+
+ {
+ name = "multipipe___multipipe_0.1.2.tgz";
+ path = fetchurl {
+ name = "multipipe___multipipe_0.1.2.tgz";
+ url = "https://registry.yarnpkg.com/multipipe/-/multipipe-0.1.2.tgz";
+ sha1 = "2a8f2ddf70eed564dff2d57f1e1a137d9f05078b";
+ };
+ }
+
+ {
+ name = "nan___nan_2.12.1.tgz";
+ path = fetchurl {
+ name = "nan___nan_2.12.1.tgz";
+ url = "https://registry.yarnpkg.com/nan/-/nan-2.12.1.tgz";
+ sha1 = "7b1aa193e9aa86057e3c7bbd0ac448e770925552";
+ };
+ }
+
+ {
+ name = "nanomatch___nanomatch_1.2.13.tgz";
+ path = fetchurl {
+ name = "nanomatch___nanomatch_1.2.13.tgz";
+ url = "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz";
+ sha1 = "b87a8aa4fc0de8fe6be88895b38983ff265bd119";
+ };
+ }
+
+ {
+ name = "natives___natives_1.1.6.tgz";
+ path = fetchurl {
+ name = "natives___natives_1.1.6.tgz";
+ url = "https://registry.yarnpkg.com/natives/-/natives-1.1.6.tgz";
+ sha1 = "a603b4a498ab77173612b9ea1acdec4d980f00bb";
+ };
+ }
+
+ {
+ name = "needle___needle_2.2.4.tgz";
+ path = fetchurl {
+ name = "needle___needle_2.2.4.tgz";
+ url = "https://registry.yarnpkg.com/needle/-/needle-2.2.4.tgz";
+ sha1 = "51931bff82533b1928b7d1d69e01f1b00ffd2a4e";
+ };
+ }
+
+ {
+ name = "negotiator___negotiator_0.6.1.tgz";
+ path = fetchurl {
+ name = "negotiator___negotiator_0.6.1.tgz";
+ url = "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz";
+ sha1 = "2b327184e8992101177b28563fb5e7102acd0ca9";
+ };
+ }
+
+ {
+ name = "ng_classify___ng_classify_4.1.1.tgz";
+ path = fetchurl {
+ name = "ng_classify___ng_classify_4.1.1.tgz";
+ url = "https://registry.yarnpkg.com/ng-classify/-/ng-classify-4.1.1.tgz";
+ sha1 = "6688b924c3c9b5f94da5f8fbc0d55176f3dda122";
+ };
+ }
+
+ {
+ name = "node_gyp___node_gyp_3.8.0.tgz";
+ path = fetchurl {
+ name = "node_gyp___node_gyp_3.8.0.tgz";
+ url = "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.8.0.tgz";
+ sha1 = "540304261c330e80d0d5edce253a68cb3964218c";
+ };
+ }
+
+ {
+ name = "node_pre_gyp___node_pre_gyp_0.10.3.tgz";
+ path = fetchurl {
+ name = "node_pre_gyp___node_pre_gyp_0.10.3.tgz";
+ url = "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.10.3.tgz";
+ sha1 = "3070040716afdc778747b61b6887bf78880b80fc";
+ };
+ }
+
+ {
+ name = "node_sass___node_sass_4.11.0.tgz";
+ path = fetchurl {
+ name = "node_sass___node_sass_4.11.0.tgz";
+ url = "https://registry.yarnpkg.com/node-sass/-/node-sass-4.11.0.tgz";
+ sha1 = "183faec398e9cbe93ba43362e2768ca988a6369a";
+ };
+ }
+
+ {
+ name = "node.extend___node.extend_1.1.8.tgz";
+ path = fetchurl {
+ name = "node.extend___node.extend_1.1.8.tgz";
+ url = "https://registry.yarnpkg.com/node.extend/-/node.extend-1.1.8.tgz";
+ sha1 = "0aab3e63789f4e6d68b42bc00073ad1881243cf0";
+ };
+ }
+
+ {
+ name = "nopt___nopt_3.0.6.tgz";
+ path = fetchurl {
+ name = "nopt___nopt_3.0.6.tgz";
+ url = "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz";
+ sha1 = "c6465dbf08abcd4db359317f79ac68a646b28ff9";
+ };
+ }
+
+ {
+ name = "nopt___nopt_4.0.1.tgz";
+ path = fetchurl {
+ name = "nopt___nopt_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz";
+ sha1 = "d0d4685afd5415193c8c7505602d0d17cd64474d";
+ };
+ }
+
+ {
+ name = "normalize_package_data___normalize_package_data_2.5.0.tgz";
+ path = fetchurl {
+ name = "normalize_package_data___normalize_package_data_2.5.0.tgz";
+ url = "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz";
+ sha1 = "e66db1838b200c1dfc233225d12cb36520e234a8";
+ };
+ }
+
+ {
+ name = "normalize_path___normalize_path_2.1.1.tgz";
+ path = fetchurl {
+ name = "normalize_path___normalize_path_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz";
+ sha1 = "1ab28b556e198363a8c1a6f7e6fa20137fe6aed9";
+ };
+ }
+
+ {
+ name = "npm_bundled___npm_bundled_1.0.6.tgz";
+ path = fetchurl {
+ name = "npm_bundled___npm_bundled_1.0.6.tgz";
+ url = "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.6.tgz";
+ sha1 = "e7ba9aadcef962bb61248f91721cd932b3fe6bdd";
+ };
+ }
+
+ {
+ name = "npm_packlist___npm_packlist_1.4.1.tgz";
+ path = fetchurl {
+ name = "npm_packlist___npm_packlist_1.4.1.tgz";
+ url = "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.1.tgz";
+ sha1 = "19064cdf988da80ea3cee45533879d90192bbfbc";
+ };
+ }
+
+ {
+ name = "npmlog___npmlog_4.1.2.tgz";
+ path = fetchurl {
+ name = "npmlog___npmlog_4.1.2.tgz";
+ url = "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz";
+ sha1 = "08a7f2a8bf734604779a9efa4ad5cc717abb954b";
+ };
+ }
+
+ {
+ name = "null_check___null_check_1.0.0.tgz";
+ path = fetchurl {
+ name = "null_check___null_check_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/null-check/-/null-check-1.0.0.tgz";
+ sha1 = "977dffd7176012b9ec30d2a39db5cf72a0439edd";
+ };
+ }
+
+ {
+ name = "number_is_nan___number_is_nan_1.0.1.tgz";
+ path = fetchurl {
+ name = "number_is_nan___number_is_nan_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz";
+ sha1 = "097b602b53422a522c1afb8790318336941a011d";
+ };
+ }
+
+ {
+ name = "oauth_sign___oauth_sign_0.9.0.tgz";
+ path = fetchurl {
+ name = "oauth_sign___oauth_sign_0.9.0.tgz";
+ url = "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz";
+ sha1 = "47a7b016baa68b5fa0ecf3dee08a85c679ac6455";
+ };
+ }
+
+ {
+ name = "object_assign___object_assign_4.1.0.tgz";
+ path = fetchurl {
+ name = "object_assign___object_assign_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.0.tgz";
+ sha1 = "7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0";
+ };
+ }
+
+ {
+ name = "object_assign___object_assign_3.0.0.tgz";
+ path = fetchurl {
+ name = "object_assign___object_assign_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz";
+ sha1 = "9bedd5ca0897949bca47e7ff408062d549f587f2";
+ };
+ }
+
+ {
+ name = "object_assign___object_assign_4.1.1.tgz";
+ path = fetchurl {
+ name = "object_assign___object_assign_4.1.1.tgz";
+ url = "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz";
+ sha1 = "2109adc7965887cfc05cbbd442cac8bfbb360863";
+ };
+ }
+
+ {
+ name = "object_component___object_component_0.0.3.tgz";
+ path = fetchurl {
+ name = "object_component___object_component_0.0.3.tgz";
+ url = "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz";
+ sha1 = "f0c69aa50efc95b866c186f400a33769cb2f1291";
+ };
+ }
+
+ {
+ name = "object_copy___object_copy_0.1.0.tgz";
+ path = fetchurl {
+ name = "object_copy___object_copy_0.1.0.tgz";
+ url = "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz";
+ sha1 = "7e7d858b781bd7c991a41ba975ed3812754e998c";
+ };
+ }
+
+ {
+ name = "object_visit___object_visit_1.0.1.tgz";
+ path = fetchurl {
+ name = "object_visit___object_visit_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz";
+ sha1 = "f79c4493af0c5377b59fe39d395e41042dd045bb";
+ };
+ }
+
+ {
+ name = "object.defaults___object.defaults_1.1.0.tgz";
+ path = fetchurl {
+ name = "object.defaults___object.defaults_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/object.defaults/-/object.defaults-1.1.0.tgz";
+ sha1 = "3a7f868334b407dea06da16d88d5cd29e435fecf";
+ };
+ }
+
+ {
+ name = "object.map___object.map_1.0.1.tgz";
+ path = fetchurl {
+ name = "object.map___object.map_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/object.map/-/object.map-1.0.1.tgz";
+ sha1 = "cf83e59dc8fcc0ad5f4250e1f78b3b81bd801d37";
+ };
+ }
+
+ {
+ name = "object.omit___object.omit_2.0.1.tgz";
+ path = fetchurl {
+ name = "object.omit___object.omit_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz";
+ sha1 = "1a9c744829f39dbb858c76ca3579ae2a54ebd1fa";
+ };
+ }
+
+ {
+ name = "object.pick___object.pick_1.3.0.tgz";
+ path = fetchurl {
+ name = "object.pick___object.pick_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz";
+ sha1 = "87a10ac4c1694bd2e1cbf53591a66141fb5dd747";
+ };
+ }
+
+ {
+ name = "on_finished___on_finished_2.3.0.tgz";
+ path = fetchurl {
+ name = "on_finished___on_finished_2.3.0.tgz";
+ url = "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz";
+ sha1 = "20f1336481b083cd75337992a16971aa2d906947";
+ };
+ }
+
+ {
+ name = "once___once_1.4.0.tgz";
+ path = fetchurl {
+ name = "once___once_1.4.0.tgz";
+ url = "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz";
+ sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1";
+ };
+ }
+
+ {
+ name = "once___once_1.3.3.tgz";
+ path = fetchurl {
+ name = "once___once_1.3.3.tgz";
+ url = "https://registry.yarnpkg.com/once/-/once-1.3.3.tgz";
+ sha1 = "b2e261557ce4c314ec8304f3fa82663e4297ca20";
+ };
+ }
+
+ {
+ name = "optimist___optimist_0.6.1.tgz";
+ path = fetchurl {
+ name = "optimist___optimist_0.6.1.tgz";
+ url = "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz";
+ sha1 = "da3ea74686fa21a19a111c326e90eb15a0196686";
+ };
+ }
+
+ {
+ name = "optionator___optionator_0.8.2.tgz";
+ path = fetchurl {
+ name = "optionator___optionator_0.8.2.tgz";
+ url = "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz";
+ sha1 = "364c5e409d3f4d6301d6c0b4c05bba50180aeb64";
+ };
+ }
+
+ {
+ name = "options___options_0.0.6.tgz";
+ path = fetchurl {
+ name = "options___options_0.0.6.tgz";
+ url = "https://registry.yarnpkg.com/options/-/options-0.0.6.tgz";
+ sha1 = "ec22d312806bb53e731773e7cdaefcf1c643128f";
+ };
+ }
+
+ {
+ name = "orchestrator___orchestrator_0.3.8.tgz";
+ path = fetchurl {
+ name = "orchestrator___orchestrator_0.3.8.tgz";
+ url = "https://registry.yarnpkg.com/orchestrator/-/orchestrator-0.3.8.tgz";
+ sha1 = "14e7e9e2764f7315fbac184e506c7aa6df94ad7e";
+ };
+ }
+
+ {
+ name = "ordered_read_streams___ordered_read_streams_0.1.0.tgz";
+ path = fetchurl {
+ name = "ordered_read_streams___ordered_read_streams_0.1.0.tgz";
+ url = "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz";
+ sha1 = "fd565a9af8eb4473ba69b6ed8a34352cb552f126";
+ };
+ }
+
+ {
+ name = "os_homedir___os_homedir_1.0.2.tgz";
+ path = fetchurl {
+ name = "os_homedir___os_homedir_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz";
+ sha1 = "ffbc4988336e0e833de0c168c7ef152121aa7fb3";
+ };
+ }
+
+ {
+ name = "os_locale___os_locale_1.4.0.tgz";
+ path = fetchurl {
+ name = "os_locale___os_locale_1.4.0.tgz";
+ url = "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz";
+ sha1 = "20f9f17ae29ed345e8bde583b13d2009803c14d9";
+ };
+ }
+
+ {
+ name = "os_tmpdir___os_tmpdir_1.0.2.tgz";
+ path = fetchurl {
+ name = "os_tmpdir___os_tmpdir_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz";
+ sha1 = "bbe67406c79aa85c5cfec766fe5734555dfa1274";
+ };
+ }
+
+ {
+ name = "osenv___osenv_0.1.5.tgz";
+ path = fetchurl {
+ name = "osenv___osenv_0.1.5.tgz";
+ url = "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz";
+ sha1 = "85cdfafaeb28e8677f416e287592b5f3f49ea410";
+ };
+ }
+
+ {
+ name = "parse_filepath___parse_filepath_1.0.2.tgz";
+ path = fetchurl {
+ name = "parse_filepath___parse_filepath_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/parse-filepath/-/parse-filepath-1.0.2.tgz";
+ sha1 = "a632127f53aaf3d15876f5872f3ffac763d6c891";
+ };
+ }
+
+ {
+ name = "parse_glob___parse_glob_3.0.4.tgz";
+ path = fetchurl {
+ name = "parse_glob___parse_glob_3.0.4.tgz";
+ url = "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz";
+ sha1 = "b2c376cfb11f35513badd173ef0bb6e3a388391c";
+ };
+ }
+
+ {
+ name = "parse_json___parse_json_2.2.0.tgz";
+ path = fetchurl {
+ name = "parse_json___parse_json_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz";
+ sha1 = "f480f40434ef80741f8469099f8dea18f55a4dc9";
+ };
+ }
+
+ {
+ name = "parse_node_version___parse_node_version_1.0.1.tgz";
+ path = fetchurl {
+ name = "parse_node_version___parse_node_version_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/parse-node-version/-/parse-node-version-1.0.1.tgz";
+ sha1 = "e2b5dbede00e7fa9bc363607f53327e8b073189b";
+ };
+ }
+
+ {
+ name = "parse_passwd___parse_passwd_1.0.0.tgz";
+ path = fetchurl {
+ name = "parse_passwd___parse_passwd_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz";
+ sha1 = "6d5b934a456993b23d37f40a382d6f1666a8e5c6";
+ };
+ }
+
+ {
+ name = "parsejson___parsejson_0.0.3.tgz";
+ path = fetchurl {
+ name = "parsejson___parsejson_0.0.3.tgz";
+ url = "https://registry.yarnpkg.com/parsejson/-/parsejson-0.0.3.tgz";
+ sha1 = "ab7e3759f209ece99437973f7d0f1f64ae0e64ab";
+ };
+ }
+
+ {
+ name = "parseqs___parseqs_0.0.5.tgz";
+ path = fetchurl {
+ name = "parseqs___parseqs_0.0.5.tgz";
+ url = "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz";
+ sha1 = "d5208a3738e46766e291ba2ea173684921a8b89d";
+ };
+ }
+
+ {
+ name = "parseuri___parseuri_0.0.5.tgz";
+ path = fetchurl {
+ name = "parseuri___parseuri_0.0.5.tgz";
+ url = "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz";
+ sha1 = "80204a50d4dbb779bfdc6ebe2778d90e4bce320a";
+ };
+ }
+
+ {
+ name = "parseurl___parseurl_1.3.2.tgz";
+ path = fetchurl {
+ name = "parseurl___parseurl_1.3.2.tgz";
+ url = "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz";
+ sha1 = "fc289d4ed8993119460c156253262cdc8de65bf3";
+ };
+ }
+
+ {
+ name = "pascalcase___pascalcase_0.1.1.tgz";
+ path = fetchurl {
+ name = "pascalcase___pascalcase_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz";
+ sha1 = "b363e55e8006ca6fe21784d2db22bd15d7917f14";
+ };
+ }
+
+ {
+ name = "path_exists___path_exists_2.1.0.tgz";
+ path = fetchurl {
+ name = "path_exists___path_exists_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz";
+ sha1 = "0feb6c64f0fc518d9a754dd5efb62c7022761f4b";
+ };
+ }
+
+ {
+ name = "path_is_absolute___path_is_absolute_1.0.1.tgz";
+ path = fetchurl {
+ name = "path_is_absolute___path_is_absolute_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz";
+ sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f";
+ };
+ }
+
+ {
+ name = "path_parse___path_parse_1.0.6.tgz";
+ path = fetchurl {
+ name = "path_parse___path_parse_1.0.6.tgz";
+ url = "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz";
+ sha1 = "d62dbb5679405d72c4737ec58600e9ddcf06d24c";
+ };
+ }
+
+ {
+ name = "path_root_regex___path_root_regex_0.1.2.tgz";
+ path = fetchurl {
+ name = "path_root_regex___path_root_regex_0.1.2.tgz";
+ url = "https://registry.yarnpkg.com/path-root-regex/-/path-root-regex-0.1.2.tgz";
+ sha1 = "bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d";
+ };
+ }
+
+ {
+ name = "path_root___path_root_0.1.1.tgz";
+ path = fetchurl {
+ name = "path_root___path_root_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/path-root/-/path-root-0.1.1.tgz";
+ sha1 = "9a4a6814cac1c0cd73360a95f32083c8ea4745b7";
+ };
+ }
+
+ {
+ name = "path_type___path_type_1.1.0.tgz";
+ path = fetchurl {
+ name = "path_type___path_type_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz";
+ sha1 = "59c44f7ee491da704da415da5a4070ba4f8fe441";
+ };
+ }
+
+ {
+ name = "pause_stream___pause_stream_0.0.11.tgz";
+ path = fetchurl {
+ name = "pause_stream___pause_stream_0.0.11.tgz";
+ url = "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz";
+ sha1 = "fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445";
+ };
+ }
+
+ {
+ name = "performance_now___performance_now_2.1.0.tgz";
+ path = fetchurl {
+ name = "performance_now___performance_now_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz";
+ sha1 = "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b";
+ };
+ }
+
+ {
+ name = "pify___pify_2.3.0.tgz";
+ path = fetchurl {
+ name = "pify___pify_2.3.0.tgz";
+ url = "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz";
+ sha1 = "ed141a6ac043a849ea588498e7dca8b15330e90c";
+ };
+ }
+
+ {
+ name = "pinkie_promise___pinkie_promise_2.0.1.tgz";
+ path = fetchurl {
+ name = "pinkie_promise___pinkie_promise_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz";
+ sha1 = "2135d6dfa7a358c069ac9b178776288228450ffa";
+ };
+ }
+
+ {
+ name = "pinkie___pinkie_2.0.4.tgz";
+ path = fetchurl {
+ name = "pinkie___pinkie_2.0.4.tgz";
+ url = "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz";
+ sha1 = "72556b80cfa0d48a974e80e77248e80ed4f7f870";
+ };
+ }
+
+ {
+ name = "posix_character_classes___posix_character_classes_0.1.1.tgz";
+ path = fetchurl {
+ name = "posix_character_classes___posix_character_classes_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz";
+ sha1 = "01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab";
+ };
+ }
+
+ {
+ name = "prelude_ls___prelude_ls_1.1.2.tgz";
+ path = fetchurl {
+ name = "prelude_ls___prelude_ls_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz";
+ sha1 = "21932a549f5e52ffd9a827f570e04be62a97da54";
+ };
+ }
+
+ {
+ name = "preserve___preserve_0.2.0.tgz";
+ path = fetchurl {
+ name = "preserve___preserve_0.2.0.tgz";
+ url = "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz";
+ sha1 = "815ed1f6ebc65926f865b310c0713bcb3315ce4b";
+ };
+ }
+
+ {
+ name = "pretty_hrtime___pretty_hrtime_1.0.3.tgz";
+ path = fetchurl {
+ name = "pretty_hrtime___pretty_hrtime_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz";
+ sha1 = "b7e3ea42435a4c9b2759d99e0f201eb195802ee1";
+ };
+ }
+
+ {
+ name = "process_nextick_args___process_nextick_args_2.0.0.tgz";
+ path = fetchurl {
+ name = "process_nextick_args___process_nextick_args_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz";
+ sha1 = "a37d732f4271b4ab1ad070d35508e8290788ffaa";
+ };
+ }
+
+ {
+ name = "pseudomap___pseudomap_1.0.2.tgz";
+ path = fetchurl {
+ name = "pseudomap___pseudomap_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz";
+ sha1 = "f052a28da70e618917ef0a8ac34c1ae5a68286b3";
+ };
+ }
+
+ {
+ name = "psl___psl_1.1.31.tgz";
+ path = fetchurl {
+ name = "psl___psl_1.1.31.tgz";
+ url = "https://registry.yarnpkg.com/psl/-/psl-1.1.31.tgz";
+ sha1 = "e9aa86d0101b5b105cbe93ac6b784cd547276184";
+ };
+ }
+
+ {
+ name = "punycode___punycode_1.4.1.tgz";
+ path = fetchurl {
+ name = "punycode___punycode_1.4.1.tgz";
+ url = "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz";
+ sha1 = "c0d5a63b2718800ad8e1eb0fa5269c84dd41845e";
+ };
+ }
+
+ {
+ name = "punycode___punycode_2.1.1.tgz";
+ path = fetchurl {
+ name = "punycode___punycode_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz";
+ sha1 = "b58b010ac40c22c5657616c8d2c2c02c7bf479ec";
+ };
+ }
+
+ {
+ name = "qs___qs_5.2.0.tgz";
+ path = fetchurl {
+ name = "qs___qs_5.2.0.tgz";
+ url = "https://registry.yarnpkg.com/qs/-/qs-5.2.0.tgz";
+ sha1 = "a9f31142af468cb72b25b30136ba2456834916be";
+ };
+ }
+
+ {
+ name = "qs___qs_6.5.2.tgz";
+ path = fetchurl {
+ name = "qs___qs_6.5.2.tgz";
+ url = "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz";
+ sha1 = "cb3ae806e8740444584ef154ce8ee98d403f3e36";
+ };
+ }
+
+ {
+ name = "qs___qs_2.2.5.tgz";
+ path = fetchurl {
+ name = "qs___qs_2.2.5.tgz";
+ url = "https://registry.yarnpkg.com/qs/-/qs-2.2.5.tgz";
+ sha1 = "1088abaf9dcc0ae5ae45b709e6c6b5888b23923c";
+ };
+ }
+
+ {
+ name = "randomatic___randomatic_3.1.1.tgz";
+ path = fetchurl {
+ name = "randomatic___randomatic_3.1.1.tgz";
+ url = "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.1.tgz";
+ sha1 = "b776efc59375984e36c537b2f51a1f0aff0da1ed";
+ };
+ }
+
+ {
+ name = "raw_body___raw_body_2.3.3.tgz";
+ path = fetchurl {
+ name = "raw_body___raw_body_2.3.3.tgz";
+ url = "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.3.tgz";
+ sha1 = "1b324ece6b5706e153855bc1148c65bb7f6ea0c3";
+ };
+ }
+
+ {
+ name = "raw_body___raw_body_2.1.7.tgz";
+ path = fetchurl {
+ name = "raw_body___raw_body_2.1.7.tgz";
+ url = "https://registry.yarnpkg.com/raw-body/-/raw-body-2.1.7.tgz";
+ sha1 = "adfeace2e4fb3098058014d08c072dcc59758774";
+ };
+ }
+
+ {
+ name = "rc___rc_1.2.8.tgz";
+ path = fetchurl {
+ name = "rc___rc_1.2.8.tgz";
+ url = "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz";
+ sha1 = "cd924bf5200a075b83c188cd6b9e211b7fc0d3ed";
+ };
+ }
+
+ {
+ name = "read_pkg_up___read_pkg_up_1.0.1.tgz";
+ path = fetchurl {
+ name = "read_pkg_up___read_pkg_up_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz";
+ sha1 = "9d63c13276c065918d57f002a57f40a1b643fb02";
+ };
+ }
+
+ {
+ name = "read_pkg___read_pkg_1.1.0.tgz";
+ path = fetchurl {
+ name = "read_pkg___read_pkg_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz";
+ sha1 = "f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28";
+ };
+ }
+
+ {
+ name = "readable_stream___readable_stream_1.0.34.tgz";
+ path = fetchurl {
+ name = "readable_stream___readable_stream_1.0.34.tgz";
+ url = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz";
+ sha1 = "125820e34bc842d2f2aaafafe4c2916ee32c157c";
+ };
+ }
+
+ {
+ name = "readable_stream___readable_stream_2.3.6.tgz";
+ path = fetchurl {
+ name = "readable_stream___readable_stream_2.3.6.tgz";
+ url = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz";
+ sha1 = "b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf";
+ };
+ }
+
+ {
+ name = "readable_stream___readable_stream_1.1.14.tgz";
+ path = fetchurl {
+ name = "readable_stream___readable_stream_1.1.14.tgz";
+ url = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz";
+ sha1 = "7cf4c54ef648e3813084c636dd2079e166c081d9";
+ };
+ }
+
+ {
+ name = "readdirp___readdirp_2.2.1.tgz";
+ path = fetchurl {
+ name = "readdirp___readdirp_2.2.1.tgz";
+ url = "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz";
+ sha1 = "0e87622a3325aa33e892285caf8b4e846529a525";
+ };
+ }
+
+ {
+ name = "rechoir___rechoir_0.6.2.tgz";
+ path = fetchurl {
+ name = "rechoir___rechoir_0.6.2.tgz";
+ url = "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz";
+ sha1 = "85204b54dba82d5742e28c96756ef43af50e3384";
+ };
+ }
+
+ {
+ name = "redent___redent_1.0.0.tgz";
+ path = fetchurl {
+ name = "redent___redent_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz";
+ sha1 = "cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde";
+ };
+ }
+
+ {
+ name = "regex_cache___regex_cache_0.4.4.tgz";
+ path = fetchurl {
+ name = "regex_cache___regex_cache_0.4.4.tgz";
+ url = "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz";
+ sha1 = "75bdc58a2a1496cec48a12835bc54c8d562336dd";
+ };
+ }
+
+ {
+ name = "regex_not___regex_not_1.0.2.tgz";
+ path = fetchurl {
+ name = "regex_not___regex_not_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz";
+ sha1 = "1f4ece27e00b0b65e0247a6810e6a85d83a5752c";
+ };
+ }
+
+ {
+ name = "remove_trailing_separator___remove_trailing_separator_1.1.0.tgz";
+ path = fetchurl {
+ name = "remove_trailing_separator___remove_trailing_separator_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz";
+ sha1 = "c24bce2a283adad5bc3f58e0d48249b92379d8ef";
+ };
+ }
+
+ {
+ name = "repeat_element___repeat_element_1.1.3.tgz";
+ path = fetchurl {
+ name = "repeat_element___repeat_element_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz";
+ sha1 = "782e0d825c0c5a3bb39731f84efee6b742e6b1ce";
+ };
+ }
+
+ {
+ name = "repeat_string___repeat_string_0.2.2.tgz";
+ path = fetchurl {
+ name = "repeat_string___repeat_string_0.2.2.tgz";
+ url = "https://registry.yarnpkg.com/repeat-string/-/repeat-string-0.2.2.tgz";
+ sha1 = "c7a8d3236068362059a7e4651fc6884e8b1fb4ae";
+ };
+ }
+
+ {
+ name = "repeat_string___repeat_string_1.6.1.tgz";
+ path = fetchurl {
+ name = "repeat_string___repeat_string_1.6.1.tgz";
+ url = "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz";
+ sha1 = "8dcae470e1c88abc2d600fff4a776286da75e637";
+ };
+ }
+
+ {
+ name = "repeating___repeating_2.0.1.tgz";
+ path = fetchurl {
+ name = "repeating___repeating_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz";
+ sha1 = "5214c53a926d3552707527fbab415dbc08d06dda";
+ };
+ }
+
+ {
+ name = "replace_ext___replace_ext_0.0.1.tgz";
+ path = fetchurl {
+ name = "replace_ext___replace_ext_0.0.1.tgz";
+ url = "https://registry.yarnpkg.com/replace-ext/-/replace-ext-0.0.1.tgz";
+ sha1 = "29bbd92078a739f0bcce2b4ee41e837953522924";
+ };
+ }
+
+ {
+ name = "request___request_2.88.0.tgz";
+ path = fetchurl {
+ name = "request___request_2.88.0.tgz";
+ url = "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz";
+ sha1 = "9c2fca4f7d35b592efe57c7f0a55e81052124fef";
+ };
+ }
+
+ {
+ name = "require_directory___require_directory_2.1.1.tgz";
+ path = fetchurl {
+ name = "require_directory___require_directory_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz";
+ sha1 = "8c64ad5fd30dab1c976e2344ffe7f792a6a6df42";
+ };
+ }
+
+ {
+ name = "require_main_filename___require_main_filename_1.0.1.tgz";
+ path = fetchurl {
+ name = "require_main_filename___require_main_filename_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz";
+ sha1 = "97f717b69d48784f5f526a6c5aa8ffdda055a4d1";
+ };
+ }
+
+ {
+ name = "requires_port___requires_port_1.0.0.tgz";
+ path = fetchurl {
+ name = "requires_port___requires_port_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz";
+ sha1 = "925d2601d39ac485e091cf0da5c6e694dc3dcaff";
+ };
+ }
+
+ {
+ name = "resolve_dir___resolve_dir_1.0.1.tgz";
+ path = fetchurl {
+ name = "resolve_dir___resolve_dir_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz";
+ sha1 = "79a40644c362be82f26effe739c9bb5382046f43";
+ };
+ }
+
+ {
+ name = "resolve_url___resolve_url_0.2.1.tgz";
+ path = fetchurl {
+ name = "resolve_url___resolve_url_0.2.1.tgz";
+ url = "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz";
+ sha1 = "2c637fe77c893afd2a663fe21aa9080068e2052a";
+ };
+ }
+
+ {
+ name = "resolve___resolve_1.1.7.tgz";
+ path = fetchurl {
+ name = "resolve___resolve_1.1.7.tgz";
+ url = "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz";
+ sha1 = "203114d82ad2c5ed9e8e0411b3932875e889e97b";
+ };
+ }
+
+ {
+ name = "resolve___resolve_1.10.0.tgz";
+ path = fetchurl {
+ name = "resolve___resolve_1.10.0.tgz";
+ url = "https://registry.yarnpkg.com/resolve/-/resolve-1.10.0.tgz";
+ sha1 = "3bdaaeaf45cc07f375656dfd2e54ed0810b101ba";
+ };
+ }
+
+ {
+ name = "ret___ret_0.1.15.tgz";
+ path = fetchurl {
+ name = "ret___ret_0.1.15.tgz";
+ url = "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz";
+ sha1 = "b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc";
+ };
+ }
+
+ {
+ name = "rimraf___rimraf_2.6.3.tgz";
+ path = fetchurl {
+ name = "rimraf___rimraf_2.6.3.tgz";
+ url = "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz";
+ sha1 = "b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab";
+ };
+ }
+
+ {
+ name = "safe_buffer___safe_buffer_5.1.2.tgz";
+ path = fetchurl {
+ name = "safe_buffer___safe_buffer_5.1.2.tgz";
+ url = "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz";
+ sha1 = "991ec69d296e0313747d59bdfd2b745c35f8828d";
+ };
+ }
+
+ {
+ name = "safe_regex___safe_regex_1.1.0.tgz";
+ path = fetchurl {
+ name = "safe_regex___safe_regex_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz";
+ sha1 = "40a3669f3b077d1e943d44629e157dd48023bf2e";
+ };
+ }
+
+ {
+ name = "safer_buffer___safer_buffer_2.1.2.tgz";
+ path = fetchurl {
+ name = "safer_buffer___safer_buffer_2.1.2.tgz";
+ url = "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz";
+ sha1 = "44fa161b0187b9549dd84bb91802f9bd8385cd6a";
+ };
+ }
+
+ {
+ name = "sass_graph___sass_graph_2.2.4.tgz";
+ path = fetchurl {
+ name = "sass_graph___sass_graph_2.2.4.tgz";
+ url = "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.2.4.tgz";
+ sha1 = "13fbd63cd1caf0908b9fd93476ad43a51d1e0b49";
+ };
+ }
+
+ {
+ name = "sax___sax_1.2.4.tgz";
+ path = fetchurl {
+ name = "sax___sax_1.2.4.tgz";
+ url = "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz";
+ sha1 = "2816234e2378bddc4e5354fab5caa895df7100d9";
+ };
+ }
+
+ {
+ name = "scss_tokenizer___scss_tokenizer_0.2.3.tgz";
+ path = fetchurl {
+ name = "scss_tokenizer___scss_tokenizer_0.2.3.tgz";
+ url = "https://registry.yarnpkg.com/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz";
+ sha1 = "8eb06db9a9723333824d3f5530641149847ce5d1";
+ };
+ }
+
+ {
+ name = "semver___semver_5.6.0.tgz";
+ path = fetchurl {
+ name = "semver___semver_5.6.0.tgz";
+ url = "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz";
+ sha1 = "7e74256fbaa49c75aa7c7a205cc22799cac80004";
+ };
+ }
+
+ {
+ name = "semver___semver_4.3.6.tgz";
+ path = fetchurl {
+ name = "semver___semver_4.3.6.tgz";
+ url = "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz";
+ sha1 = "300bc6e0e86374f7ba61068b5b1ecd57fc6532da";
+ };
+ }
+
+ {
+ name = "semver___semver_5.3.0.tgz";
+ path = fetchurl {
+ name = "semver___semver_5.3.0.tgz";
+ url = "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz";
+ sha1 = "9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f";
+ };
+ }
+
+ {
+ name = "sequencify___sequencify_0.0.7.tgz";
+ path = fetchurl {
+ name = "sequencify___sequencify_0.0.7.tgz";
+ url = "https://registry.yarnpkg.com/sequencify/-/sequencify-0.0.7.tgz";
+ sha1 = "90cff19d02e07027fd767f5ead3e7b95d1e7380c";
+ };
+ }
+
+ {
+ name = "set_blocking___set_blocking_2.0.0.tgz";
+ path = fetchurl {
+ name = "set_blocking___set_blocking_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz";
+ sha1 = "045f9782d011ae9a6803ddd382b24392b3d890f7";
+ };
+ }
+
+ {
+ name = "set_value___set_value_0.4.3.tgz";
+ path = fetchurl {
+ name = "set_value___set_value_0.4.3.tgz";
+ url = "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz";
+ sha1 = "7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1";
+ };
+ }
+
+ {
+ name = "set_value___set_value_2.0.0.tgz";
+ path = fetchurl {
+ name = "set_value___set_value_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz";
+ sha1 = "71ae4a88f0feefbbf52d1ea604f3fb315ebb6274";
+ };
+ }
+
+ {
+ name = "setprototypeof___setprototypeof_1.1.0.tgz";
+ path = fetchurl {
+ name = "setprototypeof___setprototypeof_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz";
+ sha1 = "d0bd85536887b6fe7c0d818cb962d9d91c54e656";
+ };
+ }
+
+ {
+ name = "sigmund___sigmund_1.0.1.tgz";
+ path = fetchurl {
+ name = "sigmund___sigmund_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz";
+ sha1 = "3ff21f198cad2175f9f3b781853fd94d0d19b590";
+ };
+ }
+
+ {
+ name = "signal_exit___signal_exit_3.0.2.tgz";
+ path = fetchurl {
+ name = "signal_exit___signal_exit_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz";
+ sha1 = "b5fdc08f1287ea1178628e415e25132b73646c6d";
+ };
+ }
+
+ {
+ name = "snapdragon_node___snapdragon_node_2.1.1.tgz";
+ path = fetchurl {
+ name = "snapdragon_node___snapdragon_node_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz";
+ sha1 = "6c175f86ff14bdb0724563e8f3c1b021a286853b";
+ };
+ }
+
+ {
+ name = "snapdragon_util___snapdragon_util_3.0.1.tgz";
+ path = fetchurl {
+ name = "snapdragon_util___snapdragon_util_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz";
+ sha1 = "f956479486f2acd79700693f6f7b805e45ab56e2";
+ };
+ }
+
+ {
+ name = "snapdragon___snapdragon_0.8.2.tgz";
+ path = fetchurl {
+ name = "snapdragon___snapdragon_0.8.2.tgz";
+ url = "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz";
+ sha1 = "64922e7c565b0e14204ba1aa7d6964278d25182d";
+ };
+ }
+
+ {
+ name = "socket.io_adapter___socket.io_adapter_0.5.0.tgz";
+ path = fetchurl {
+ name = "socket.io_adapter___socket.io_adapter_0.5.0.tgz";
+ url = "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-0.5.0.tgz";
+ sha1 = "cb6d4bb8bec81e1078b99677f9ced0046066bb8b";
+ };
+ }
+
+ {
+ name = "socket.io_client___socket.io_client_1.7.4.tgz";
+ path = fetchurl {
+ name = "socket.io_client___socket.io_client_1.7.4.tgz";
+ url = "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-1.7.4.tgz";
+ sha1 = "ec9f820356ed99ef6d357f0756d648717bdd4281";
+ };
+ }
+
+ {
+ name = "socket.io_parser___socket.io_parser_2.3.1.tgz";
+ path = fetchurl {
+ name = "socket.io_parser___socket.io_parser_2.3.1.tgz";
+ url = "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-2.3.1.tgz";
+ sha1 = "dd532025103ce429697326befd64005fcfe5b4a0";
+ };
+ }
+
+ {
+ name = "socket.io___socket.io_1.7.4.tgz";
+ path = fetchurl {
+ name = "socket.io___socket.io_1.7.4.tgz";
+ url = "https://registry.yarnpkg.com/socket.io/-/socket.io-1.7.4.tgz";
+ sha1 = "2f7ecedc3391bf2d5c73e291fe233e6e34d4dd00";
+ };
+ }
+
+ {
+ name = "source_map_resolve___source_map_resolve_0.5.2.tgz";
+ path = fetchurl {
+ name = "source_map_resolve___source_map_resolve_0.5.2.tgz";
+ url = "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz";
+ sha1 = "72e2cc34095543e43b2c62b2c4c10d4a9054f259";
+ };
+ }
+
+ {
+ name = "source_map_url___source_map_url_0.4.0.tgz";
+ path = fetchurl {
+ name = "source_map_url___source_map_url_0.4.0.tgz";
+ url = "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz";
+ sha1 = "3e935d7ddd73631b97659956d55128e87b5084a3";
+ };
+ }
+
+ {
+ name = "source_map___source_map_0.4.4.tgz";
+ path = fetchurl {
+ name = "source_map___source_map_0.4.4.tgz";
+ url = "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz";
+ sha1 = "eba4f5da9c0dc999de68032d8b4f76173652036b";
+ };
+ }
+
+ {
+ name = "source_map___source_map_0.5.7.tgz";
+ path = fetchurl {
+ name = "source_map___source_map_0.5.7.tgz";
+ url = "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz";
+ sha1 = "8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc";
+ };
+ }
+
+ {
+ name = "source_map___source_map_0.6.1.tgz";
+ path = fetchurl {
+ name = "source_map___source_map_0.6.1.tgz";
+ url = "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz";
+ sha1 = "74722af32e9614e9c287a8d0bbde48b5e2f1a263";
+ };
+ }
+
+ {
+ name = "source_map___source_map_0.2.0.tgz";
+ path = fetchurl {
+ name = "source_map___source_map_0.2.0.tgz";
+ url = "https://registry.yarnpkg.com/source-map/-/source-map-0.2.0.tgz";
+ sha1 = "dab73fbcfc2ba819b4de03bd6f6eaa48164b3f9d";
+ };
+ }
+
+ {
+ name = "sparkles___sparkles_1.0.1.tgz";
+ path = fetchurl {
+ name = "sparkles___sparkles_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/sparkles/-/sparkles-1.0.1.tgz";
+ sha1 = "008db65edce6c50eec0c5e228e1945061dd0437c";
+ };
+ }
+
+ {
+ name = "spdx_correct___spdx_correct_3.1.0.tgz";
+ path = fetchurl {
+ name = "spdx_correct___spdx_correct_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz";
+ sha1 = "fb83e504445268f154b074e218c87c003cd31df4";
+ };
+ }
+
+ {
+ name = "spdx_exceptions___spdx_exceptions_2.2.0.tgz";
+ path = fetchurl {
+ name = "spdx_exceptions___spdx_exceptions_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz";
+ sha1 = "2ea450aee74f2a89bfb94519c07fcd6f41322977";
+ };
+ }
+
+ {
+ name = "spdx_expression_parse___spdx_expression_parse_3.0.0.tgz";
+ path = fetchurl {
+ name = "spdx_expression_parse___spdx_expression_parse_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz";
+ sha1 = "99e119b7a5da00e05491c9fa338b7904823b41d0";
+ };
+ }
+
+ {
+ name = "spdx_license_ids___spdx_license_ids_3.0.3.tgz";
+ path = fetchurl {
+ name = "spdx_license_ids___spdx_license_ids_3.0.3.tgz";
+ url = "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.3.tgz";
+ sha1 = "81c0ce8f21474756148bbb5f3bfc0f36bf15d76e";
+ };
+ }
+
+ {
+ name = "split_string___split_string_3.1.0.tgz";
+ path = fetchurl {
+ name = "split_string___split_string_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz";
+ sha1 = "7cb09dda3a86585705c64b39a6466038682e8fe2";
+ };
+ }
+
+ {
+ name = "split___split_1.0.1.tgz";
+ path = fetchurl {
+ name = "split___split_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz";
+ sha1 = "605bd9be303aa59fb35f9229fbea0ddec9ea07d9";
+ };
+ }
+
+ {
+ name = "sprintf_js___sprintf_js_1.0.3.tgz";
+ path = fetchurl {
+ name = "sprintf_js___sprintf_js_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz";
+ sha1 = "04e6926f662895354f3dd015203633b857297e2c";
+ };
+ }
+
+ {
+ name = "sshpk___sshpk_1.16.1.tgz";
+ path = fetchurl {
+ name = "sshpk___sshpk_1.16.1.tgz";
+ url = "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz";
+ sha1 = "fb661c0bef29b39db40769ee39fa70093d6f6877";
+ };
+ }
+
+ {
+ name = "static_extend___static_extend_0.1.2.tgz";
+ path = fetchurl {
+ name = "static_extend___static_extend_0.1.2.tgz";
+ url = "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz";
+ sha1 = "60809c39cbff55337226fd5e0b520f341f1fb5c6";
+ };
+ }
+
+ {
+ name = "statuses___statuses_1.5.0.tgz";
+ path = fetchurl {
+ name = "statuses___statuses_1.5.0.tgz";
+ url = "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz";
+ sha1 = "161c7dac177659fd9811f43771fa99381478628c";
+ };
+ }
+
+ {
+ name = "statuses___statuses_1.3.1.tgz";
+ path = fetchurl {
+ name = "statuses___statuses_1.3.1.tgz";
+ url = "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz";
+ sha1 = "faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e";
+ };
+ }
+
+ {
+ name = "stdout_stream___stdout_stream_1.4.1.tgz";
+ path = fetchurl {
+ name = "stdout_stream___stdout_stream_1.4.1.tgz";
+ url = "https://registry.yarnpkg.com/stdout-stream/-/stdout-stream-1.4.1.tgz";
+ sha1 = "5ac174cdd5cd726104aa0c0b2bd83815d8d535de";
+ };
+ }
+
+ {
+ name = "stream_combiner___stream_combiner_0.2.2.tgz";
+ path = fetchurl {
+ name = "stream_combiner___stream_combiner_0.2.2.tgz";
+ url = "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.2.2.tgz";
+ sha1 = "aec8cbac177b56b6f4fa479ced8c1912cee52858";
+ };
+ }
+
+ {
+ name = "stream_consume___stream_consume_0.1.1.tgz";
+ path = fetchurl {
+ name = "stream_consume___stream_consume_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/stream-consume/-/stream-consume-0.1.1.tgz";
+ sha1 = "d3bdb598c2bd0ae82b8cac7ac50b1107a7996c48";
+ };
+ }
+
+ {
+ name = "string_width___string_width_1.0.2.tgz";
+ path = fetchurl {
+ name = "string_width___string_width_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz";
+ sha1 = "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3";
+ };
+ }
+
+ {
+ name = "string_width___string_width_2.1.1.tgz";
+ path = fetchurl {
+ name = "string_width___string_width_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz";
+ sha1 = "ab93f27a8dc13d28cac815c462143a6d9012ae9e";
+ };
+ }
+
+ {
+ name = "string_decoder___string_decoder_0.10.31.tgz";
+ path = fetchurl {
+ name = "string_decoder___string_decoder_0.10.31.tgz";
+ url = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz";
+ sha1 = "62e203bc41766c6c28c9fc84301dab1c5310fa94";
+ };
+ }
+
+ {
+ name = "string_decoder___string_decoder_1.1.1.tgz";
+ path = fetchurl {
+ name = "string_decoder___string_decoder_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz";
+ sha1 = "9cf1611ba62685d7030ae9e4ba34149c3af03fc8";
+ };
+ }
+
+ {
+ name = "strip_ansi___strip_ansi_0.3.0.tgz";
+ path = fetchurl {
+ name = "strip_ansi___strip_ansi_0.3.0.tgz";
+ url = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.3.0.tgz";
+ sha1 = "25f48ea22ca79187f3174a4db8759347bb126220";
+ };
+ }
+
+ {
+ name = "strip_ansi___strip_ansi_3.0.1.tgz";
+ path = fetchurl {
+ name = "strip_ansi___strip_ansi_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz";
+ sha1 = "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf";
+ };
+ }
+
+ {
+ name = "strip_ansi___strip_ansi_4.0.0.tgz";
+ path = fetchurl {
+ name = "strip_ansi___strip_ansi_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz";
+ sha1 = "a8479022eb1ac368a871389b635262c505ee368f";
+ };
+ }
+
+ {
+ name = "strip_bom___strip_bom_1.0.0.tgz";
+ path = fetchurl {
+ name = "strip_bom___strip_bom_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/strip-bom/-/strip-bom-1.0.0.tgz";
+ sha1 = "85b8862f3844b5a6d5ec8467a93598173a36f794";
+ };
+ }
+
+ {
+ name = "strip_bom___strip_bom_2.0.0.tgz";
+ path = fetchurl {
+ name = "strip_bom___strip_bom_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz";
+ sha1 = "6219a85616520491f35788bdbf1447a99c7e6b0e";
+ };
+ }
+
+ {
+ name = "strip_indent___strip_indent_1.0.1.tgz";
+ path = fetchurl {
+ name = "strip_indent___strip_indent_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz";
+ sha1 = "0c7962a6adefa7bbd4ac366460a638552ae1a0a2";
+ };
+ }
+
+ {
+ name = "strip_json_comments___strip_json_comments_2.0.1.tgz";
+ path = fetchurl {
+ name = "strip_json_comments___strip_json_comments_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz";
+ sha1 = "3c531942e908c2697c0ec344858c286c7ca0a60a";
+ };
+ }
+
+ {
+ name = "supports_color___supports_color_0.2.0.tgz";
+ path = fetchurl {
+ name = "supports_color___supports_color_0.2.0.tgz";
+ url = "https://registry.yarnpkg.com/supports-color/-/supports-color-0.2.0.tgz";
+ sha1 = "d92de2694eb3f67323973d7ae3d8b55b4c22190a";
+ };
+ }
+
+ {
+ name = "supports_color___supports_color_2.0.0.tgz";
+ path = fetchurl {
+ name = "supports_color___supports_color_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz";
+ sha1 = "535d045ce6b6363fa40117084629995e9df324c7";
+ };
+ }
+
+ {
+ name = "supports_color___supports_color_3.2.3.tgz";
+ path = fetchurl {
+ name = "supports_color___supports_color_3.2.3.tgz";
+ url = "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz";
+ sha1 = "65ac0504b3954171d8a64946b2ae3cbb8a5f54f6";
+ };
+ }
+
+ {
+ name = "tar___tar_2.2.1.tgz";
+ path = fetchurl {
+ name = "tar___tar_2.2.1.tgz";
+ url = "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz";
+ sha1 = "8e4d2a256c0e2185c6b18ad694aec968b83cb1d1";
+ };
+ }
+
+ {
+ name = "tar___tar_4.4.8.tgz";
+ path = fetchurl {
+ name = "tar___tar_4.4.8.tgz";
+ url = "https://registry.yarnpkg.com/tar/-/tar-4.4.8.tgz";
+ sha1 = "b19eec3fde2a96e64666df9fdb40c5ca1bc3747d";
+ };
+ }
+
+ {
+ name = "through2___through2_0.6.5.tgz";
+ path = fetchurl {
+ name = "through2___through2_0.6.5.tgz";
+ url = "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz";
+ sha1 = "41ab9c67b29d57209071410e1d7a7a968cd3ad48";
+ };
+ }
+
+ {
+ name = "through2___through2_2.0.5.tgz";
+ path = fetchurl {
+ name = "through2___through2_2.0.5.tgz";
+ url = "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz";
+ sha1 = "01c1e39eb31d07cb7d03a96a70823260b23132cd";
+ };
+ }
+
+ {
+ name = "through___through_2.3.8.tgz";
+ path = fetchurl {
+ name = "through___through_2.3.8.tgz";
+ url = "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz";
+ sha1 = "0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5";
+ };
+ }
+
+ {
+ name = "tildify___tildify_1.2.0.tgz";
+ path = fetchurl {
+ name = "tildify___tildify_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/tildify/-/tildify-1.2.0.tgz";
+ sha1 = "dcec03f55dca9b7aa3e5b04f21817eb56e63588a";
+ };
+ }
+
+ {
+ name = "time_stamp___time_stamp_1.1.0.tgz";
+ path = fetchurl {
+ name = "time_stamp___time_stamp_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.1.0.tgz";
+ sha1 = "764a5a11af50561921b133f3b44e618687e0f5c3";
+ };
+ }
+
+ {
+ name = "tmp___tmp_0.0.33.tgz";
+ path = fetchurl {
+ name = "tmp___tmp_0.0.33.tgz";
+ url = "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz";
+ sha1 = "6d34335889768d21b2bcda0aa277ced3b1bfadf9";
+ };
+ }
+
+ {
+ name = "to_array___to_array_0.1.4.tgz";
+ path = fetchurl {
+ name = "to_array___to_array_0.1.4.tgz";
+ url = "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz";
+ sha1 = "17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890";
+ };
+ }
+
+ {
+ name = "to_object_path___to_object_path_0.3.0.tgz";
+ path = fetchurl {
+ name = "to_object_path___to_object_path_0.3.0.tgz";
+ url = "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz";
+ sha1 = "297588b7b0e7e0ac08e04e672f85c1f4999e17af";
+ };
+ }
+
+ {
+ name = "to_regex_range___to_regex_range_2.1.1.tgz";
+ path = fetchurl {
+ name = "to_regex_range___to_regex_range_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz";
+ sha1 = "7c80c17b9dfebe599e27367e0d4dd5590141db38";
+ };
+ }
+
+ {
+ name = "to_regex___to_regex_3.0.2.tgz";
+ path = fetchurl {
+ name = "to_regex___to_regex_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz";
+ sha1 = "13cfdd9b336552f30b51f33a8ae1b42a7a7599ce";
+ };
+ }
+
+ {
+ name = "tough_cookie___tough_cookie_2.4.3.tgz";
+ path = fetchurl {
+ name = "tough_cookie___tough_cookie_2.4.3.tgz";
+ url = "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz";
+ sha1 = "53f36da3f47783b0925afa06ff9f3b165280f781";
+ };
+ }
+
+ {
+ name = "trim_newlines___trim_newlines_1.0.0.tgz";
+ path = fetchurl {
+ name = "trim_newlines___trim_newlines_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz";
+ sha1 = "5887966bb582a4503a41eb524f7d35011815a613";
+ };
+ }
+
+ {
+ name = "true_case_path___true_case_path_1.0.3.tgz";
+ path = fetchurl {
+ name = "true_case_path___true_case_path_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/true-case-path/-/true-case-path-1.0.3.tgz";
+ sha1 = "f813b5a8c86b40da59606722b144e3225799f47d";
+ };
+ }
+
+ {
+ name = "tunnel_agent___tunnel_agent_0.6.0.tgz";
+ path = fetchurl {
+ name = "tunnel_agent___tunnel_agent_0.6.0.tgz";
+ url = "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz";
+ sha1 = "27a5dea06b36b04a0a9966774b290868f0fc40fd";
+ };
+ }
+
+ {
+ name = "tweetnacl___tweetnacl_0.14.5.tgz";
+ path = fetchurl {
+ name = "tweetnacl___tweetnacl_0.14.5.tgz";
+ url = "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz";
+ sha1 = "5ae68177f192d4456269d108afa93ff8743f4f64";
+ };
+ }
+
+ {
+ name = "type_check___type_check_0.3.2.tgz";
+ path = fetchurl {
+ name = "type_check___type_check_0.3.2.tgz";
+ url = "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz";
+ sha1 = "5884cab512cf1d355e3fb784f30804b2b520db72";
+ };
+ }
+
+ {
+ name = "type_is___type_is_1.6.16.tgz";
+ path = fetchurl {
+ name = "type_is___type_is_1.6.16.tgz";
+ url = "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz";
+ sha1 = "f89ce341541c672b25ee7ae3c73dee3b2be50194";
+ };
+ }
+
+ {
+ name = "uglify_js___uglify_js_3.4.9.tgz";
+ path = fetchurl {
+ name = "uglify_js___uglify_js_3.4.9.tgz";
+ url = "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.9.tgz";
+ sha1 = "af02f180c1207d76432e473ed24a28f4a782bae3";
+ };
+ }
+
+ {
+ name = "ultron___ultron_1.0.2.tgz";
+ path = fetchurl {
+ name = "ultron___ultron_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/ultron/-/ultron-1.0.2.tgz";
+ sha1 = "ace116ab557cd197386a4e88f4685378c8b2e4fa";
+ };
+ }
+
+ {
+ name = "unc_path_regex___unc_path_regex_0.1.2.tgz";
+ path = fetchurl {
+ name = "unc_path_regex___unc_path_regex_0.1.2.tgz";
+ url = "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz";
+ sha1 = "e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa";
+ };
+ }
+
+ {
+ name = "union_value___union_value_1.0.0.tgz";
+ path = fetchurl {
+ name = "union_value___union_value_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz";
+ sha1 = "5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4";
+ };
+ }
+
+ {
+ name = "unique_stream___unique_stream_1.0.0.tgz";
+ path = fetchurl {
+ name = "unique_stream___unique_stream_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/unique-stream/-/unique-stream-1.0.0.tgz";
+ sha1 = "d59a4a75427447d9aa6c91e70263f8d26a4b104b";
+ };
+ }
+
+ {
+ name = "unpipe___unpipe_1.0.0.tgz";
+ path = fetchurl {
+ name = "unpipe___unpipe_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz";
+ sha1 = "b2bf4ee8514aae6165b4817829d21b2ef49904ec";
+ };
+ }
+
+ {
+ name = "unset_value___unset_value_1.0.0.tgz";
+ path = fetchurl {
+ name = "unset_value___unset_value_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz";
+ sha1 = "8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559";
+ };
+ }
+
+ {
+ name = "uri_js___uri_js_4.2.2.tgz";
+ path = fetchurl {
+ name = "uri_js___uri_js_4.2.2.tgz";
+ url = "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz";
+ sha1 = "94c540e1ff772956e2299507c010aea6c8838eb0";
+ };
+ }
+
+ {
+ name = "urix___urix_0.1.0.tgz";
+ path = fetchurl {
+ name = "urix___urix_0.1.0.tgz";
+ url = "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz";
+ sha1 = "da937f7a62e21fec1fd18d49b35c2935067a6c72";
+ };
+ }
+
+ {
+ name = "use___use_3.1.1.tgz";
+ path = fetchurl {
+ name = "use___use_3.1.1.tgz";
+ url = "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz";
+ sha1 = "d50c8cac79a19fbc20f2911f56eb973f4e10070f";
+ };
+ }
+
+ {
+ name = "user_home___user_home_1.1.1.tgz";
+ path = fetchurl {
+ name = "user_home___user_home_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz";
+ sha1 = "2b5be23a32b63a7c9deb8d0f28d485724a3df190";
+ };
+ }
+
+ {
+ name = "useragent___useragent_2.3.0.tgz";
+ path = fetchurl {
+ name = "useragent___useragent_2.3.0.tgz";
+ url = "https://registry.yarnpkg.com/useragent/-/useragent-2.3.0.tgz";
+ sha1 = "217f943ad540cb2128658ab23fc960f6a88c9972";
+ };
+ }
+
+ {
+ name = "util_deprecate___util_deprecate_1.0.2.tgz";
+ path = fetchurl {
+ name = "util_deprecate___util_deprecate_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz";
+ sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf";
+ };
+ }
+
+ {
+ name = "utils_merge___utils_merge_1.0.1.tgz";
+ path = fetchurl {
+ name = "utils_merge___utils_merge_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz";
+ sha1 = "9f95710f50a267947b2ccc124741c1028427e713";
+ };
+ }
+
+ {
+ name = "uuid___uuid_3.3.2.tgz";
+ path = fetchurl {
+ name = "uuid___uuid_3.3.2.tgz";
+ url = "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz";
+ sha1 = "1b4af4955eb3077c501c23872fc6513811587131";
+ };
+ }
+
+ {
+ name = "v8flags___v8flags_2.1.1.tgz";
+ path = fetchurl {
+ name = "v8flags___v8flags_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz";
+ sha1 = "aab1a1fa30d45f88dd321148875ac02c0b55e5b4";
+ };
+ }
+
+ {
+ name = "validate_npm_package_license___validate_npm_package_license_3.0.4.tgz";
+ path = fetchurl {
+ name = "validate_npm_package_license___validate_npm_package_license_3.0.4.tgz";
+ url = "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz";
+ sha1 = "fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a";
+ };
+ }
+
+ {
+ name = "verror___verror_1.10.0.tgz";
+ path = fetchurl {
+ name = "verror___verror_1.10.0.tgz";
+ url = "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz";
+ sha1 = "3a105ca17053af55d6e270c1f8288682e18da400";
+ };
+ }
+
+ {
+ name = "vinyl_fs___vinyl_fs_0.3.14.tgz";
+ path = fetchurl {
+ name = "vinyl_fs___vinyl_fs_0.3.14.tgz";
+ url = "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-0.3.14.tgz";
+ sha1 = "9a6851ce1cac1c1cea5fe86c0931d620c2cfa9e6";
+ };
+ }
+
+ {
+ name = "vinyl_sourcemaps_apply___vinyl_sourcemaps_apply_0.2.1.tgz";
+ path = fetchurl {
+ name = "vinyl_sourcemaps_apply___vinyl_sourcemaps_apply_0.2.1.tgz";
+ url = "https://registry.yarnpkg.com/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz";
+ sha1 = "ab6549d61d172c2b1b87be5c508d239c8ef87705";
+ };
+ }
+
+ {
+ name = "vinyl___vinyl_0.4.6.tgz";
+ path = fetchurl {
+ name = "vinyl___vinyl_0.4.6.tgz";
+ url = "https://registry.yarnpkg.com/vinyl/-/vinyl-0.4.6.tgz";
+ sha1 = "2f356c87a550a255461f36bbeb2a5ba8bf784847";
+ };
+ }
+
+ {
+ name = "vinyl___vinyl_0.5.3.tgz";
+ path = fetchurl {
+ name = "vinyl___vinyl_0.5.3.tgz";
+ url = "https://registry.yarnpkg.com/vinyl/-/vinyl-0.5.3.tgz";
+ sha1 = "b0455b38fc5e0cf30d4325132e461970c2091cde";
+ };
+ }
+
+ {
+ name = "void_elements___void_elements_2.0.1.tgz";
+ path = fetchurl {
+ name = "void_elements___void_elements_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz";
+ sha1 = "c066afb582bb1cb4128d60ea92392e94d5e9dbec";
+ };
+ }
+
+ {
+ name = "websocket_driver___websocket_driver_0.7.0.tgz";
+ path = fetchurl {
+ name = "websocket_driver___websocket_driver_0.7.0.tgz";
+ url = "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.0.tgz";
+ sha1 = "0caf9d2d755d93aee049d4bdd0d3fe2cca2a24eb";
+ };
+ }
+
+ {
+ name = "websocket_extensions___websocket_extensions_0.1.3.tgz";
+ path = fetchurl {
+ name = "websocket_extensions___websocket_extensions_0.1.3.tgz";
+ url = "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz";
+ sha1 = "5d2ff22977003ec687a4b87073dfbbac146ccf29";
+ };
+ }
+
+ {
+ name = "which_module___which_module_1.0.0.tgz";
+ path = fetchurl {
+ name = "which_module___which_module_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz";
+ sha1 = "bba63ca861948994ff307736089e3b96026c2a4f";
+ };
+ }
+
+ {
+ name = "which___which_1.3.1.tgz";
+ path = fetchurl {
+ name = "which___which_1.3.1.tgz";
+ url = "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz";
+ sha1 = "a45043d54f5805316da8d62f9f50918d3da70b0a";
+ };
+ }
+
+ {
+ name = "wide_align___wide_align_1.1.3.tgz";
+ path = fetchurl {
+ name = "wide_align___wide_align_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz";
+ sha1 = "ae074e6bdc0c14a431e804e624549c633b000457";
+ };
+ }
+
+ {
+ name = "wordwrap___wordwrap_1.0.0.tgz";
+ path = fetchurl {
+ name = "wordwrap___wordwrap_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz";
+ sha1 = "27584810891456a4171c8d0226441ade90cbcaeb";
+ };
+ }
+
+ {
+ name = "wordwrap___wordwrap_0.0.3.tgz";
+ path = fetchurl {
+ name = "wordwrap___wordwrap_0.0.3.tgz";
+ url = "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz";
+ sha1 = "a3d5da6cd5c0bc0008d37234bbaf1bed63059107";
+ };
+ }
+
+ {
+ name = "wrap_ansi___wrap_ansi_2.1.0.tgz";
+ path = fetchurl {
+ name = "wrap_ansi___wrap_ansi_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz";
+ sha1 = "d8fc3d284dd05794fe84973caecdd1cf824fdd85";
+ };
+ }
+
+ {
+ name = "wrappy___wrappy_1.0.2.tgz";
+ path = fetchurl {
+ name = "wrappy___wrappy_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz";
+ sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f";
+ };
+ }
+
+ {
+ name = "ws___ws_1.1.5.tgz";
+ path = fetchurl {
+ name = "ws___ws_1.1.5.tgz";
+ url = "https://registry.yarnpkg.com/ws/-/ws-1.1.5.tgz";
+ sha1 = "cbd9e6e75e09fc5d2c90015f21f0c40875e0dd51";
+ };
+ }
+
+ {
+ name = "wtf_8___wtf_8_1.0.0.tgz";
+ path = fetchurl {
+ name = "wtf_8___wtf_8_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/wtf-8/-/wtf-8-1.0.0.tgz";
+ sha1 = "392d8ba2d0f1c34d1ee2d630f15d0efb68e1048a";
+ };
+ }
+
+ {
+ name = "xmlhttprequest_ssl___xmlhttprequest_ssl_1.5.3.tgz";
+ path = fetchurl {
+ name = "xmlhttprequest_ssl___xmlhttprequest_ssl_1.5.3.tgz";
+ url = "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz";
+ sha1 = "185a888c04eca46c3e4070d99f7b49de3528992d";
+ };
+ }
+
+ {
+ name = "xtend___xtend_4.0.1.tgz";
+ path = fetchurl {
+ name = "xtend___xtend_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz";
+ sha1 = "a5c6d532be656e23db820efb943a1f04998d63af";
+ };
+ }
+
+ {
+ name = "y18n___y18n_3.2.1.tgz";
+ path = fetchurl {
+ name = "y18n___y18n_3.2.1.tgz";
+ url = "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz";
+ sha1 = "6d15fba884c08679c0d77e88e7759e811e07fa41";
+ };
+ }
+
+ {
+ name = "yallist___yallist_2.1.2.tgz";
+ path = fetchurl {
+ name = "yallist___yallist_2.1.2.tgz";
+ url = "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz";
+ sha1 = "1c11f9218f076089a47dd512f93c6699a6a81d52";
+ };
+ }
+
+ {
+ name = "yallist___yallist_3.0.3.tgz";
+ path = fetchurl {
+ name = "yallist___yallist_3.0.3.tgz";
+ url = "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz";
+ sha1 = "b4b049e314be545e3ce802236d6cd22cd91c3de9";
+ };
+ }
+
+ {
+ name = "yargs_parser___yargs_parser_5.0.0.tgz";
+ path = fetchurl {
+ name = "yargs_parser___yargs_parser_5.0.0.tgz";
+ url = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz";
+ sha1 = "275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a";
+ };
+ }
+
+ {
+ name = "yargs___yargs_7.1.0.tgz";
+ path = fetchurl {
+ name = "yargs___yargs_7.1.0.tgz";
+ url = "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz";
+ sha1 = "6ba318eb16961727f5d284f8ea003e8d6154d0c8";
+ };
+ }
+
+ {
+ name = "yeast___yeast_0.1.2.tgz";
+ path = fetchurl {
+ name = "yeast___yeast_0.1.2.tgz";
+ url = "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz";
+ sha1 = "008e06d8094320c372dbc2f8ed76a0ca6c8ac419";
+ };
+ }
+ ];
+}
--- /dev/null
+{ mylibs, callPackage, python }:
+{
+ buildslist = callPackage ./buildslist {
+ inherit mylibs;
+ pythonPackages = python.pkgs;
+ };
+}
--- /dev/null
+{ mylibs, callPackage, python }:
+{
+ apprise = callPackage ./apprise { inherit mylibs; pythonPackages = python.pkgs; };
+ buildbot-plugins = callPackage ./buildbot/plugins { inherit mylibs python; };
+ wokkel = callPackage ./wokkel.nix { pythonPackages = python.pkgs; };
+}
--- /dev/null
+{ pythonPackages }: with pythonPackages;
+buildPythonPackage rec {
+ pname = "wokkel";
+ version = "18.0.0";
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "1spq44gg8gsviqx1dvlmjpgfc0wk0jpyx4ap01y2pad1ai9cw016";
+ };
+ propagatedBuildInputs = [ twisted.extras.tls twisted incremental dateutil ];
+ doChecks = false;
+}
--- /dev/null
+{ stdenv, fetchpatch, fetchurl }:
+stdenv.mkDerivation rec {
+ name = "slang-debian-patched-${version}";
+ version = "1.4.9";
+ src = fetchurl {
+ url = "ftp://space.mit.edu/pub/davis/slang/v1.4/slang-1.4.9.tar.gz";
+ sha256 = "1y2mg0whqh4b3acd0k17i4biz55bimxg8aaxhmwd165cvspxns9r";
+ };
+ patches = [
+ (fetchpatch {
+ name = "slang_1.4.9dbs-8.diff.gz";
+ url = "http://archive.debian.org/debian-archive/debian-amd64/pool/main/s/slang/slang_1.4.9dbs-8.diff.gz";
+ sha256 = "0xdq14k5ynqfwpmis1rcggs7m4n921i3bs27icbmbhfg5gb2hap2";
+ })
+ ];
+ preConfigure = ''
+ for i in debian/patches/*; do
+ patch -p1 < $i
+ done
+ makeFlagsArray=(CFLAGS=" -g -O2 -fno-strength-reduce -DUTF8 -D_REENTRANT -D_XOPEN_SOURCE=500")
+ '';
+ postBuild = ''
+ sed -i "1i#ifndef UTF8\n#define UTF8\n#endif" src/slang.h
+ '';
+}
--- /dev/null
+{ stdenv, mylibs, pkgconfig, libevent, lua, jansson, openssl, readline, zlib, libconfig }:
+stdenv.mkDerivation (mylibs.fetchedGithub ./telegram-cli.json // {
+ patches = [
+ ./telegram-cli.patch
+ ];
+ buildInputs = [ pkgconfig libevent lua jansson openssl readline zlib libconfig ];
+ preBuild = ''
+ sed -i -e 's@"/etc/" PROG_NAME "/server.pub"@"'$out'/etc/server.pub"@' main.c
+ '';
+ installPhase = ''
+ mkdir -p $out
+ install -Dm755 bin/telegram-cli $out/bin/telegram-cli
+ install -Dm644 tg-server.pub $out/etc/server.pub
+ install -Dm644 debian/telegram-cli.8 $out/man/man8/telegram-cli.8
+ '';
+})
--- /dev/null
+{
+ "tag": "6547c0b-master",
+ "meta": {
+ "name": "telegram-cli",
+ "url": "https://github.com/vysheng/tg",
+ "branch": "master"
+ },
+ "github": {
+ "owner": "vysheng",
+ "repo": "tg",
+ "rev": "6547c0b21b977b327b3c5e8142963f4bc246187a",
+ "sha256": "07sss5cnw2ygd7mp8f5532lmj7qm6ywqf4cjaq5g13i8igzqzwzj",
+ "fetchSubmodules": true
+ }
+}
--- /dev/null
+diff --git a/tgl/crypto/rsa_pem_openssl.c b/tgl/crypto/rsa_pem_openssl.c
+index db653f2..5e6a697 100644
+--- a/tgl/crypto/rsa_pem_openssl.c
++++ b/tgl/crypto/rsa_pem_openssl.c
+@@ -36,6 +36,12 @@ TGLC_WRAPPER_ASSOC(rsa,RSA)
+ // TODO: Refactor crucial struct-identity into its own header.
+ TGLC_WRAPPER_ASSOC(bn,BIGNUM)
+
++/*
++ * Since OpenSSL version 1.1.0 the RSA struct (rsa_st) is opaque,
++ * see also https://wiki.openssl.org/index.php/OpenSSL_1.1.0_Changes
++ */
++#if (OPENSSL_VERSION_NUMBER < 0x10100000L)
++
+ TGLC_rsa *TGLC_rsa_new (unsigned long e, int n_bytes, const unsigned char *n) {
+ RSA *ret = RSA_new ();
+ ret->e = unwrap_bn (TGLC_bn_new ());
+@@ -47,7 +53,30 @@ TGLC_rsa *TGLC_rsa_new (unsigned long e, int n_bytes, const unsigned char *n) {
+ #define RSA_GETTER(M) \
+ TGLC_bn *TGLC_rsa_ ## M (TGLC_rsa *key) { \
+ return wrap_bn (unwrap_rsa (key)->M); \
+- } \
++ }
++
++#else // OPENSSL_VERSION_NUMBER
++
++TGLC_rsa *TGLC_rsa_new (unsigned long e, int n_bytes, const unsigned char *n) {
++ RSA *ret = RSA_new ();
++ BIGNUM *ret_e = unwrap_bn (TGLC_bn_new ());
++ BIGNUM *ret_n = unwrap_bn (TGLC_bn_bin2bn (n, n_bytes, NULL));
++ RSA_set0_key (ret, ret_n, ret_e, NULL);
++ TGLC_bn_set_word (wrap_bn (ret_e), e);
++ return wrap_rsa (ret);
++}
++
++#define RSA_GETTER(M) \
++TGLC_bn *TGLC_rsa_ ## M (TGLC_rsa *key) { \
++ BIGNUM *rsa_n, *rsa_e, *rsa_d; \
++ RSA_get0_key(unwrap_rsa (key), \
++ (const BIGNUM **) &rsa_n, \
++ (const BIGNUM **) &rsa_e, \
++ (const BIGNUM **) &rsa_d); \
++ return wrap_bn (rsa_ ## M); \
++}
++
++#endif // OPENSSL_VERSION_NUMBER
+
+ RSA_GETTER(n);
+ RSA_GETTER(e);
+@@ -60,4 +89,4 @@ TGLC_rsa *TGLC_pem_read_RSAPublicKey (FILE *fp) {
+ return wrap_rsa (PEM_read_RSAPublicKey (fp, NULL, NULL, NULL));
+ }
+
+-#endif
++#endif // TGL_AVOID_OPENSSL
+diff --git a/tgl/mtproto-utils.c b/tgl/mtproto-utils.c
+index 0948bc8..cfdb216 100644
+--- a/tgl/mtproto-utils.c
++++ b/tgl/mtproto-utils.c
+@@ -98,7 +98,7 @@ static unsigned long long BN2ull (TGLC_bn *b) {
+ if (sizeof (unsigned long) == 8) {
+ return TGLC_bn_get_word (b);
+ } else if (sizeof (unsigned long long) == 8) {
+- assert (0); // As long as nobody ever uses this code, assume it is broken.
++// assert (0); // As long as nobody ever uses this code, assume it is broken.
+ unsigned long long tmp;
+ /* Here be dragons, but it should be okay due to be64toh */
+ TGLC_bn_bn2bin (b, (unsigned char *) &tmp);
+@@ -112,7 +112,7 @@ static void ull2BN (TGLC_bn *b, unsigned long long val) {
+ if (sizeof (unsigned long) == 8 || val < (1ll << 32)) {
+ TGLC_bn_set_word (b, val);
+ } else if (sizeof (unsigned long long) == 8) {
+- assert (0); // As long as nobody ever uses this code, assume it is broken.
++// assert (0); // As long as nobody ever uses this code, assume it is broken.
+ htobe64(val);
+ /* Here be dragons, but it should be okay due to htobe64 */
+ TGLC_bn_bin2bn ((unsigned char *) &val, 8, b);
+diff --git a/tgl/tl-parser/tl-parser.c b/tgl/tl-parser/tl-parser.c
+index 524b196..aeadbd2 100644
+--- a/tgl/tl-parser/tl-parser.c
++++ b/tgl/tl-parser/tl-parser.c
+@@ -1903,7 +1903,7 @@ struct tl_combinator_tree *tl_parse_args134 (struct tree *T) {
+ //assert (S->data);
+ char *name = S->data;
+ if (!name) {
+- static char s[20];
++ static char s[21];
+ sprintf (s, "%lld", lrand48 () * (1ll << 32) + lrand48 ());
+ name = s;
+ }
--- /dev/null
+{ stdenv, ruby, mylibs }:
+stdenv.mkDerivation (mylibs.fetchedGithub ./telegram-history-dump.json // {
+ installPhase = ''
+ mkdir -p $out/lib $out/bin
+ cp -a $src $out/lib/telegram-history-dump
+ ln -s $out/lib/telegram-history-dump/telegram-history-dump.rb $out/bin/telegram-history-dump
+ '';
+ buildInputs = [ ruby ];
+})
--- /dev/null
+{
+ "tag": "468ea91-master",
+ "meta": {
+ "name": "telegram-history-dump",
+ "url": "https://github.com/tvdstaaij/telegram-history-dump",
+ "branch": "master"
+ },
+ "github": {
+ "owner": "tvdstaaij",
+ "repo": "telegram-history-dump",
+ "rev": "468ea91e543529b54bc2c5ea28b1ea17f362fd3e",
+ "sha256": "1wmwiqacfa56bmwx50njnb15cg0fy6rbdrmrjd4xfbh8bs6yp0gh",
+ "fetchSubmodules": true
+ }
+}
--- /dev/null
+{ openssl, telethon, python3Packages, mylibs }:
+with python3Packages;
+buildPythonApplication rec {
+ format = "other";
+ pname = "telegramircd";
+ version = "master";
+ propagatedBuildInputs = [ telethon aiohttp ConfigArgParse openssl ];
+ src = (mylibs.fetchedGithub ./telegramircd.json).src;
+ LD_LIBRARY_PATH = "${openssl.out}/lib";
+ installPhase = ''
+ install -D $src/telegramircd.py $out/bin/telegramircd
+ wrapProgram "$out/bin/telegramircd" \
+ --prefix LD_LIBRARY_PATH : "${openssl.out}/lib"
+ install -Dm644 "$src/config" -t "$out/etc/telegramircd/"
+ '';
+}
--- /dev/null
+{
+ "tag": "40a0c7c-master",
+ "meta": {
+ "name": "telegramircd",
+ "url": "https://github.com/MaskRay/telegramircd",
+ "branch": "master"
+ },
+ "github": {
+ "owner": "MaskRay",
+ "repo": "telegramircd",
+ "rev": "40a0c7cf60492bde3f44d43f06f62e3792480139",
+ "sha256": "123fjhgxq2fzn0ar8274jv7jjbxnlpidrj5333kbch7rpcipks0y",
+ "fetchSubmodules": true
+ }
+}
--- /dev/null
+{ lib, python3Packages }:
+with python3Packages;
+buildPythonPackage rec {
+ pname = "Telethon-sync";
+ version = "1.1.1";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 =
+ "01z8fzqn0qs5pxhvzq891r3mwffq1ga3f8xvm7qdn6kvmxjni9fy";
+ };
+
+ propagatedBuildInputs = [
+ rsa pyaes async_generator
+ ];
+ doCheck = false;
+
+ meta = with lib; {
+ homepage = https://github.com/LonamiWebs/Telethon;
+ description = "Full-featured Telegram client library for Python 3";
+ license = licenses.mit;
+ };
+}
--- /dev/null
+{ python36Packages }:
+with python36Packages;
+buildPythonApplication rec {
+ pname = "terminal-velocity-git";
+ version = "0.2.0";
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "13yrkcmvh5h5fwnai61sbmqkrjyisz08n62pq0ada2lyyqf7g6b9";
+ };
+
+ patches = [
+ ./sort_found_notes.patch
+ ./python3_support.patch
+ # FIXME: update this patch when version changes
+ ./fix_build.patch
+ ];
+
+ propagatedBuildInputs = [
+ chardet
+ urwid
+ (sh.overridePythonAttrs { doCheck = false; })
+ pyyaml
+ ];
+ buildInputs = [
+ m2r
+ (restructuredtext_lint.overridePythonAttrs { doCheck = false; })
+ pygments
+ ];
+
+ postInstall = ''
+ rm $out/bin/terminal_velocity
+ '';
+}
--- /dev/null
+commit a64bf3d58f6ba7f5fa72fe5b89a3973cac0c1a99
+Author: Ismaël Bouya <ismael.bouya@normalesup.org>
+Date: Sat Mar 9 20:13:52 2019 +0100
+
+ Remove mister_bump dependency
+
+diff --git a/setup.py b/setup.py
+index 84a99e9..a783dff 100644
+--- a/setup.py
++++ b/setup.py
+@@ -1,7 +1,9 @@
+ from setuptools import setup
+ from m2r import parse_from_file
+ import restructuredtext_lint
+-from mister_bump import bump
++
++def bump():
++ return "0.2.0"
+
+ # Parser README.md into reStructuredText format
+ rst_readme = parse_from_file('README.md')
--- /dev/null
+commit 6ca19964b9e8a7866fd7e21a3dac9ccd35f0d434
+Author: Ismaël Bouya <ismael.bouya@normalesup.org>
+Date: Sat Mar 9 20:13:18 2019 +0100
+
+ Add python3 support
+
+diff --git a/terminal_velocity/notebook.py b/terminal_velocity/notebook.py
+index b6226dc..11f76de 100644
+--- a/terminal_velocity/notebook.py
++++ b/terminal_velocity/notebook.py
+@@ -60,51 +60,6 @@ import sys
+ import chardet
+
+
+-def unicode_or_bust(raw_text):
+- """Return the given raw text data decoded to unicode.
+-
+- If the text cannot be decoded, return None.
+-
+- """
+- encodings = ["utf-8"]
+- for encoding in (sys.getfilesystemencoding(), sys.getdefaultencoding()):
+- # I would use a set for this, but they don't maintain order.
+- if encoding not in encodings:
+- encodings.append(encoding)
+-
+- for encoding in encodings:
+- if encoding: # getfilesystemencoding() may return None
+- try:
+- decoded = unicode(raw_text, encoding=encoding)
+- return decoded
+- except UnicodeDecodeError:
+- pass
+-
+- # If none of those guesses worked, let chardet have a go.
+- encoding = chardet.detect(raw_text)["encoding"]
+- if encoding and encoding not in encodings:
+- try:
+- decoded = unicode(raw_text, encoding=encoding)
+- logger.debug("File decoded with chardet, encoding was {0}".format(
+- encoding))
+- return decoded
+- except UnicodeDecodeError:
+- pass
+- except LookupError:
+- pass
+-
+- # I've heard that decoding with cp1252 never fails, so try that last.
+- try:
+- decoded = unicode(raw_text, encoding="cp1252")
+- logger.debug("File decoded with encoding cp1252")
+- return decoded
+- except UnicodeDecodeError:
+- pass
+-
+- # If nothing worked then give up.
+- return None
+-
+-
+ class Error(Exception):
+ """Base class for exceptions in this module."""
+ pass
+@@ -192,12 +147,12 @@ class PlainTextNote(object):
+ # subdirs) if they don't exist.
+ directory = os.path.split(self.abspath)[0]
+ if not os.path.isdir(directory):
+- logger.debug(u"'{0} doesn't exist, creating it".format(directory))
++ logger.debug("'{0} doesn't exist, creating it".format(directory))
+ try:
+ os.makedirs(directory)
+ except os.error as e:
+ raise NewNoteError(
+- u"{0} could not be created: {1}".format(directory, e))
++ "{0} could not be created: {1}".format(directory, e))
+
+ # Create an empty file if the file doesn't exist.
+ open(self.abspath, 'a')
+@@ -217,11 +172,11 @@ class PlainTextNote(object):
+
+ @property
+ def contents(self):
+- contents = unicode_or_bust(open(self.abspath, "r").read())
++ contents = open(self.abspath, "rb").read().decode(errors='ignore')
+ if contents is None:
+ logger.error(
+- u"Could not decode file contents: {0}".format(self.abspath))
+- return u""
++ "Could not decode file contents: {0}".format(self.abspath))
++ return ""
+ else:
+ return contents
+
+@@ -322,12 +277,12 @@ class PlainTextNoteBook(object):
+
+ # Create notebook_dir if it doesn't exist.
+ if not os.path.isdir(self.path):
+- logger.debug(u"'{0} doesn't exist, creating it".format(self.path))
++ logger.debug("'{0} doesn't exist, creating it".format(self.path))
+ try:
+ os.makedirs(self.path)
+ except os.error as e:
+ raise NewNoteBookError(
+- u"{0} could not be created: {1}".format(self.path, e))
++ "{0} could not be created: {1}".format(self.path, e))
+ else:
+ # TODO: Check that self.path is a directory, if not raise.
+ pass
+@@ -358,13 +313,12 @@ class PlainTextNoteBook(object):
+ abspath = os.path.join(root, filename)
+ relpath = os.path.relpath(abspath, self.path)
+ relpath, ext = os.path.splitext(relpath)
+- unicode_relpath = unicode_or_bust(relpath)
+ if relpath is None:
+ # The filename could not be decoded.
+ logger.error(
+ "Could not decode filename: {0}".format(relpath))
+ else:
+- self.add_new(title=unicode_relpath, extension=ext)
++ self.add_new(title=relpath, extension=ext)
+
+ @property
+ def path(self):
+@@ -418,7 +372,7 @@ class PlainTextNoteBook(object):
+ for note in self._notes:
+ if note.title == title and note.extension == extension:
+ raise NoteAlreadyExistsError(
+- u"Note already in NoteBook: {0}".format(note.title))
++ "Note already in NoteBook: {0}".format(note.title))
+
+ # Ok, add the note.
+ note = PlainTextNote(title, self, extension)
+diff --git a/terminal_velocity/terminal_velocity.py b/terminal_velocity/terminal_velocity.py
+index 5f0e213..9234bea 100755
+--- a/terminal_velocity/terminal_velocity.py
++++ b/terminal_velocity/terminal_velocity.py
+@@ -1,7 +1,7 @@
+-#!/usr/bin/env python2
++#!/usr/bin/env python3
+ """A fast note-taking app for the UNIX terminal"""
+ from __future__ import print_function
+-import ConfigParser
++import configparser
+ import argparse
+ import os
+ import logging
+@@ -9,9 +9,9 @@ import logging.handlers
+ import sys
+
+ #import terminal_velocity.urwid_ui as urwid_ui
+-import urwid_ui
++from . import urwid_ui
+
+-from git import get_git_project_config, git_project_is_configured, fetch_changes, push_changes
++from .git import get_git_project_config, git_project_is_configured, fetch_changes, push_changes
+
+
+ def startup():
+@@ -37,7 +37,7 @@ def main():
+
+ # Parse the config file.
+ config_file = os.path.abspath(os.path.expanduser(args.config))
+- config = ConfigParser.SafeConfigParser()
++ config = configparser.ConfigParser()
+ config.read(config_file)
+ defaults = dict(config.items('DEFAULT'))
+
+diff --git a/terminal_velocity/urwid_ui.py b/terminal_velocity/urwid_ui.py
+index caebcb9..89bab35 100644
+--- a/terminal_velocity/urwid_ui.py
++++ b/terminal_velocity/urwid_ui.py
+@@ -10,7 +10,7 @@ import logging
+ logger = logging.getLogger(__name__)
+
+ import urwid
+-import notebook
++from . import notebook
+
+
+ palette = [
+@@ -27,8 +27,6 @@ def system(cmd, loop):
+
+ loop.screen.stop()
+
+- cmd = u"{0}".format(cmd)
+- cmd = cmd.encode("utf-8") # FIXME: Correct encoding?
+ safe_cmd = shlex.split(cmd)
+
+ logger.debug("System command: {0}".format(safe_cmd))
+@@ -114,7 +112,7 @@ class AutocompleteWidget(urwid.Edit):
+
+ # When search bar is empty show placeholder text.
+ if not self.edit_text and not self.autocomplete_text:
+- placeholder_text = u"Find or Create"
++ placeholder_text = "Find or Create"
+ return (placeholder_text,
+ [("placeholder", len(placeholder_text))])
+
+@@ -186,7 +184,7 @@ class NoteFilterListBox(urwid.ListBox):
+
+ def render(self, size, focus=False):
+ if len(self.list_walker) == 0:
+- placeholder = placeholder_text(u"No matching notes, press Enter "
++ placeholder = placeholder_text("No matching notes, press Enter "
+ "to create a new note")
+ return placeholder.render(size)
+ return super(NoteFilterListBox, self).render(size, self.fake_focus)
+@@ -399,7 +397,7 @@ class MainFrame(urwid.Frame):
+ # If the user has no notes yet show some placeholder text, otherwise
+ # show the note list.
+ if len(self.notebook) == 0:
+- self.body = placeholder_text(u"You have no notes yet, to create "
++ self.body = placeholder_text("You have no notes yet, to create "
+ "a note type a note title then press Enter")
+ else:
+ self.body = urwid.Padding(self.list_box, left=1, right=1)
--- /dev/null
+commit 0f9df37046e58c8963aff93c649e5d3dbf2202bd
+Author: Ismaël Bouya <ismael.bouya@normalesup.org>
+Date: Sat Mar 9 20:11:46 2019 +0100
+
+ Add sorting option
+
+diff --git a/terminal_velocity/terminal_velocity.py b/terminal_velocity/terminal_velocity.py
+index a53eda3..5f0e213 100755
+--- a/terminal_velocity/terminal_velocity.py
++++ b/terminal_velocity/terminal_velocity.py
+@@ -90,6 +90,10 @@ the default default will be used"""
+ default=defaults.get("log_file", "~/.tvlog"),
+ help="the file to log to (default: %(default)s)")
+
++ parser.add_argument("-s", "--sort", dest="sort", action="store",
++ default=defaults.get("sort", "date"),
++ help="the note sorting rules. Possible values: date, title (default: %(default)s)")
++
+ parser.add_argument("-p", "--print-config", dest="print_config",
+ action="store_true", default=False,
+ help="print your configuration settings then exit")
+@@ -138,7 +142,7 @@ the default default will be used"""
+ try:
+ urwid_ui.launch(notes_dir=args.notes_dir, editor=args.editor,
+ extension=args.extension, extensions=args.extensions,
+- exclude=args.exclude)
++ exclude=args.exclude, sort=args.sort)
+ except KeyboardInterrupt:
+ # Run the shutdown hook
+ shutdown()
+diff --git a/terminal_velocity/urwid_ui.py b/terminal_velocity/urwid_ui.py
+index 34cf4f6..caebcb9 100644
+--- a/terminal_velocity/urwid_ui.py
++++ b/terminal_velocity/urwid_ui.py
+@@ -237,11 +237,12 @@ class NoteFilterListBox(urwid.ListBox):
+ class MainFrame(urwid.Frame):
+ """The topmost urwid widget."""
+
+- def __init__(self, notes_dir, editor, extension, extensions, exclude=None):
++ def __init__(self, notes_dir, editor, extension, extensions, exclude=None, sort="date"):
+
+ self.editor = editor
+ self.notebook = notebook.PlainTextNoteBook(notes_dir, extension,
+ extensions, exclude=exclude)
++ self.sort = sort
+
+ # Don't filter the note list when the text in the search box changes.
+ self.suppress_filter = False
+@@ -408,7 +409,10 @@ class MainFrame(urwid.Frame):
+
+ # Sort the notes.
+ # TODO: Support different sort orderings.
+- matching_notes.sort(key=lambda x: x.mtime, reverse=True)
++ if self.sort == "title":
++ matching_notes.sort(key=lambda x: x.title)
++ else:
++ matching_notes.sort(key=lambda x: x.mtime, reverse=True)
+
+ # Tell the list box to show only the matching notes.
+ self.list_box.filter(matching_notes)
+@@ -433,10 +437,10 @@ class MainFrame(urwid.Frame):
+ self.selected_note = note
+
+
+-def launch(notes_dir, editor, extension, extensions, exclude=None):
++def launch(notes_dir, editor, extension, extensions, exclude=None, sort="date"):
+ """Launch the user interface."""
+
+- frame = MainFrame(notes_dir, editor, extension, extensions, exclude=exclude)
++ frame = MainFrame(notes_dir, editor, extension, extensions, exclude=exclude, sort=sort)
+ loop = urwid.MainLoop(frame, palette)
+ frame.loop = loop
+ loop.run()
--- /dev/null
+{ buildPerlPackage, fetchurl, perlPackages }:
+buildPerlPackage rec {
+ name = "tiv-${version}";
+ version = "2015";
+ src = fetchurl {
+ url = "http://xyne.archlinux.ca/projects/tiv/src/tiv-${version}.tar.xz";
+ sha256 = "1vq073v7z7vmcd57lhs4rf4jasji69cpjgkz4dykp94a77p1qq90";
+ };
+
+ outputs = ["out"];
+ buildInputs = with perlPackages; [ PerlMagick ];
+ perlPreHookScript = ./tiv_builder.sh;
+ perlPreHook = ''
+ source $perlPreHookScript
+ '';
+ installPhase = ''
+ install -Dm755 tiv "$out/bin/tiv"
+ '';
+}
--- /dev/null
+orig=$(declare -f preConfigure)
+new_name="preConfigure2 ${orig#preConfigure}"
+eval "$new_name"
+
+preConfigure() {
+ preConfigure2 || true
+}
+
--- /dev/null
+{ lib, fetchurl, runCommand, libarchive }:
+with lib.attrsets;
+let
+ version = "12.0";
+ version-full = "${version}.0";
+ files = {
+ emoji-data = fetchurl {
+ url = "http://www.unicode.org/Public/emoji/${version}/emoji-data.txt";
+ sha256 = "03sf7h1d6kb9m5s02lif88jsi5kjszpkfvcymaqxj8ds70ar9pgv";
+ };
+ emoji-sequences = fetchurl {
+ url = "http://www.unicode.org/Public/emoji/${version}/emoji-sequences.txt";
+ sha256 = "1hghki2rn3n7m4lwpwi2a5wrsf2nij4bxga9ldabx4g0g2k23svs";
+ };
+ emoji-test = fetchurl {
+ url = "http://www.unicode.org/Public/emoji/${version}/emoji-test.txt";
+ sha256 = "1dqd0fh999mh6naj816ni113m9dimfy3ih9nffjq2lrv9mmlgdck";
+ };
+ emoji-variation-sequences = fetchurl {
+ url = "http://www.unicode.org/Public/emoji/${version}/emoji-variation-sequences.txt";
+ sha256 = "1cccwx5bl79w4c19vi5dhjqxrph92s8hihp9y8s2cqvdzmgbln7a";
+ };
+ emoji-zwj-sequences = fetchurl {
+ url = "http://www.unicode.org/Public/emoji/${version}/emoji-zwj-sequences.txt";
+ sha256 = "1l791nbijmmhwa7kmvfn8gp26ban512l6mgqpz1mnbq3xm19181n";
+ };
+ };
+ zippedFiles = {
+ UCD = fetchurl {
+ url = "http://www.unicode.org/Public/zipped/${version-full}/UCD.zip";
+ sha256 = "1ighy39cjkmqnv1797wrxjz76mv1fdw7zp5j04q55bkwxsdkvrmh";
+ };
+ Unihan = fetchurl {
+ url = "http://www.unicode.org/Public/zipped/${version-full}/Unihan.zip";
+ sha256 = "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf";
+ };
+ };
+in
+ runCommand "unicode" {
+ buildInputs = [ libarchive ];
+ } ''
+ mkdir -p $out/share/unicode
+ ${builtins.concatStringsSep "\n" (mapAttrsToList (n: u: "install -Dm644 ${u} $out/share/unicode/emoji/${n}.txt") files)}
+ ${builtins.concatStringsSep "\n" (mapAttrsToList (n: u: ''
+ install -Dm644 ${u} $out/share/unicode/${n}.zip
+ bsdtar -C "$out/share/unicode" -x -f "$out/share/unicode/${n}.zip"
+ '') zippedFiles)}
+ ''
--- /dev/null
+{ stdenv, fetchurl }:
+stdenv.mkDerivation rec {
+ version = "4.7.1";
+ name = "adminer-${version}";
+ src = fetchurl {
+ url = "https://www.adminer.org/static/download/${version}/${name}.php";
+ sha256 = "00gnck9vd44wc6ihf7hh4ma6jvdsw69xgjlkbrdf6irnni6rnvhn";
+ };
+ phases = "installPhase";
+ installPhase = ''
+ mkdir -p $out
+ cp $src $out/index.php
+ '';
+}
--- /dev/null
+{ theme_root ? null }:
+rec {
+ theme = ./theme;
+ apacheConfig = let
+ theme_root' = if isNull theme_root then theme else theme_root;
+ in ''
+ <Macro Apaxy %{folder} %{ignored}>
+ Alias /theme ${theme_root'}
+ <Directory ${theme_root'}>
+ Options -Indexes
+ AllowOverride None
+ Require all granted
+ </Directory>
+
+ # mod_autoindex
+ <Directory %{folder}>
+ Options Indexes
+ AllowOverride None
+ Require all granted
+
+ # Inspired from Apaxy by @adamwhitcroft
+
+ IndexOptions +Charset=UTF-8 +FancyIndexing +IgnoreCase +FoldersFirst +XHTML +HTMLTable +SuppressRules +SuppressDescription +NameWidth=* +IconsAreLinks +ShowForbidden
+
+ IndexHeadInsert "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />"
+
+ IndexIgnoreReset ON
+ IndexIgnore /theme .htaccess %{ignored}
+
+ AddIcon /theme/icons/blank.png ^^BLANKICON^^
+ AddIcon /theme/icons/folder.png ^^DIRECTORY^^
+ AddIcon /theme/icons/folder-home.png ..
+
+ AddIconByType (TXT,/theme/icons/text.png) text/*
+ AddIconByType (IMG,/theme/icons/image.png) image/*
+ AddIconByType (SND,/theme/icons/audio.png) audio/*
+ AddIconByType (VID,/theme/icons/video.png) video/*
+
+ AddIcon /theme/icons/archive.png .7z .bz2 .cab .gz .tar
+ AddIcon /theme/icons/audio.png .aac .aif .aifc .aiff .ape .au .flac .iff .m4a .mid .mp3 .mpa .ra .wav .wma .f4a .f4b .oga .ogg .xm .it .s3m .mod
+ AddIcon /theme/icons/bin.png .bin .hex
+ AddIcon /theme/icons/bmp.png .bmp
+ AddIcon /theme/icons/c.png .c
+ AddIcon /theme/icons/calc.png .xlsx .xlsm .xltx .xltm .xlam .xlr .xls .csv
+ AddIcon /theme/icons/cd.png .iso
+ AddIcon /theme/icons/cpp.png .cpp
+ AddIcon /theme/icons/css.png .css .sass .scss
+ AddIcon /theme/icons/deb.png .deb
+ AddIcon /theme/icons/doc.png .doc .docx .docm .dot .dotx .dotm .log .msg .odt .pages .rtf .tex .wpd .wps
+ AddIcon /theme/icons/draw.png .svg .svgz
+ AddIcon /theme/icons/eps.png .ai .eps
+ AddIcon /theme/icons/exe.png .exe
+ AddIcon /theme/icons/gif.png .gif
+ AddIcon /theme/icons/h.png .h
+ AddIcon /theme/icons/html.png .html .xhtml .shtml .htm .URL .url
+ AddIcon /theme/icons/ico.png .ico
+ AddIcon /theme/icons/java.png .jar
+ AddIcon /theme/icons/jpg.png .jpg .jpeg .jpe
+ AddIcon /theme/icons/js.png .js .json
+ AddIcon /theme/icons/markdown.png .md
+ AddIcon /theme/icons/package.png .pkg .dmg
+ AddIcon /theme/icons/pdf.png .pdf
+ AddIcon /theme/icons/php.png .php .phtml
+ AddIcon /theme/icons/playlist.png .m3u .m3u8 .pls .pls8
+ AddIcon /theme/icons/png.png .png
+ AddIcon /theme/icons/ps.png .ps
+ AddIcon /theme/icons/psd.png .psd
+ AddIcon /theme/icons/py.png .py
+ AddIcon /theme/icons/rar.png .rar
+ AddIcon /theme/icons/rb.png .rb
+ AddIcon /theme/icons/rpm.png .rpm
+ AddIcon /theme/icons/rss.png .rss
+ AddIcon /theme/icons/script.png .bat .cmd .sh
+ AddIcon /theme/icons/sql.png .sql
+ AddIcon /theme/icons/tiff.png .tiff .tif
+ AddIcon /theme/icons/text.png .txt .nfo
+ AddIcon /theme/icons/video.png .asf .asx .avi .flv .mkv .mov .mp4 .mpg .rm .srt .swf .vob .wmv .m4v .f4v .f4p .ogv
+ AddIcon /theme/icons/xml.png .xml
+ AddIcon /theme/icons/zip.png .zip
+ DefaultIcon /theme/icons/default.png
+
+ HeaderName /theme/header.html
+ ReadmeName /theme/footer.html
+ IndexStyleSheet /theme/style.css
+ </Directory>
+ </Macro>
+ '';
+}
--- /dev/null
+#
+# Apaxy by @adamwhitcroft
+#
+# For a full breakdown of the mod_autoindex module
+# http://apache.org/docs/2.2/mod/mod_autoindex.html
+#
+
+# Don't index this folder
+Options -Indexes
--- /dev/null
+</div><!--/.wrapper-->
+
+<script type="text/javascript">
+// grab the 2nd child and add the parent class. tr:nth-child(2)
+document.getElementsByTagName('tr')[1].className = 'parent';
+// fix links when not adding a / at the end of the URI
+var uri = window.location.pathname.substr(1);
+if (uri.length > 0 && uri.substring(uri.length-1) != '/'){
+ var indexes = document.getElementsByClassName('indexcolname'),
+ i = indexes.length;
+ while (i--){
+ var a = indexes[i].getElementsByTagName('a')[0];
+ a.href = '/' + uri + '/' + a.getAttribute('href',2);
+ }
+}
+
+function getAjax(url, success) {
+ var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP');
+ xhr.open('GET', url);
+ xhr.onreadystatechange = function() {
+ if (xhr.readyState>3 && xhr.status==200)
+ success(xhr.responseText);
+ };
+ xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
+ xhr.send();
+ return xhr;
+}
+getAjax("title", function(data) {
+ document.getElementById('pagetitle').innerHTML = data;
+});
+</script>
--- /dev/null
+<div class="wrapper">
+ <h1 id="pagetitle"></h1>
+<!-- we open the `wrapper` element here, but close it in the `footer.html` file -->
--- /dev/null
+/*------------------------------------*\
+ Apaxy
+ by @adamwhitcroft
+
+ Theme name: Apaxy
+ Theme author: @adamwhitcroft
+\*------------------------------------*/
+@import url('//fonts.googleapis.com/css?family=Open+Sans');
+/* Have to use @import for the font, as you can only specify a single stylesheet */
+* {
+ margin:0;
+ padding:0;
+ -webkit-box-sizing:border-box;
+ -moz-box-sizing:border-box;
+ box-sizing: border-box;
+}
+
+html {
+ min-height:100%;
+ border-top:10px solid #ECEEF1;
+ border-bottom:10px solid #ECEEF1;
+ color:#61666c;
+ font-weight:400;
+ font-size:1em;
+ font-family:'Open Sans', sans-serif;
+ line-height:2em;
+}
+body {
+ padding:20px;
+ -webkit-backface-visibility:hidden;
+}
+code {
+ font-family:consolas,monospace;
+}
+a {
+ color:#61666c;
+ text-decoration:none;
+}
+a, img {
+ border:none;
+ outline:none
+}
+a:hover {
+ color:#2a2a2a;
+}
+/*------------------------------------*\
+ Wrapper
+\*------------------------------------*/
+.wrapper {
+ margin:0 auto;
+ padding-top:20px;
+ max-width:80%;
+}
+/*------------------------------------*\
+ Demo block
+\*------------------------------------*/
+.block {
+ font-size:.875em;
+ margin:20px 0;
+ padding:20px;
+ color:#9099A3;
+}
+/*------------------------------------*\
+ Table (directory listing)
+\*------------------------------------*/
+table {
+ width:100%;
+ border-collapse:collapse;
+ font-size:.875em;
+}
+tr {
+ outline:0;
+ border:0;
+}
+tr:hover td {
+ background:#f6f6f6;
+}
+th {
+ text-align:left;
+ font-size:.75em;
+ padding-right:20px;
+}
+/* 2nd Column: Filename */
+th + th {
+ width:65%;
+}
+/* 3rd Column: Last Modified */
+th + th + th {
+}
+/* 4th Column: Size */
+th + th + th + th {
+ width:5%;
+}
+tr td:first-of-type {
+ padding-left:10px;
+ padding-right:10px;
+}
+td {
+ padding:5px 0;
+ outline:0;
+ border:0;
+ border-bottom:1px solid #edf1f5;
+ vertical-align:middle;
+ text-align:left;
+ -webkit-transition:background 300ms ease;
+ -moz-transition:background 300ms ease;
+ -ms-transition:background 300ms ease;
+ -o-transition:background 300ms ease;
+ transition:background 300ms ease;
+}
+td a{
+ display: block;
+}
+tr.parent a[href^="/"] {
+ color:#9099A3;
+}
+ .parent a[href^="/"]:hover {
+ color:#2281d0;
+ }
+/*------------------------------------*\
+ Footer
+\*------------------------------------*/
+.footer {
+ text-align:center;
+ font-size:.75em;
+}
+
+h1#pagetitle {
+ text-align: center;
+}
+tr.parent a[href="/"]{
+ display: none;
+}
+
+tr.indexhead {
+ visibility: hidden;
+}
+
+th.indexcollastmod, td.indexcollastmod, th.indexcolsize, td.indexcolsize {
+ visibility: hidden;
+}
+
+.instructions a {
+ text-decoration: underline;
+}
+
+.instructions h2 {
+ margin-top: 10px;
+}
+.instructions em.important:before {
+ content: "⚠ Important ⚠ ";
+ color: red;
+}
+.instructions pre {
+ width: 50em;
+ padding: 10px 15px;
+ display: table;
+ border: 1px inset black;
+ line-height: 1em;
+}
--- /dev/null
+{ stdenv, fetchurl }:
+stdenv.mkDerivation rec {
+ version = "0.59";
+ name = "awl-${version}";
+ src = fetchurl {
+ url = "https://www.davical.org/downloads/awl_${version}.orig.tar.xz";
+ sha256 = "01b7km7ga3ggbpp8axkc55nizgk5c35fl2z93iydb3hwbxmsvnjp";
+ };
+ unpackCmd = ''
+ tar --one-top-level -xf $curSrc
+ '';
+ installPhase = ''
+ mkdir -p $out
+ cp -ra dba docs inc scripts tests $out
+ '';
+}
--- /dev/null
+diff --git a/inc/ui/collection-edit.php b/inc/ui/collection-edit.php
+index 3af9edd3b8c4ad9074113273175098841af6a28e..8c1d84012b035f7bc7faedcb24916581a02a5d3e 100644
+--- a/inc/ui/collection-edit.php
++++ b/inc/ui/collection-edit.php
+@@ -190,7 +190,7 @@ $privilege_xlate = array(
+ * @param dbrow $row The row object we read from the database.
+ * @return string The formatted privileges.
+ */
+-function collection_privilege_format_function( $value, $column, $row ) {
++function collection_privilege_format_function( $value, $column = NULL, $row = NULL ) {
+ global $privilege_xlate;
+
+ $privs = bits_to_privilege($value, 'calendar');
+diff --git a/inc/ui/principal-edit.php b/inc/ui/principal-edit.php
+index 20dee7fa4ca2235ff2f74be0dfb52cbe937ef822..2e37cd596b597bcce1e59d7c02a1c5fc2a7f88ce 100644
+--- a/inc/ui/principal-edit.php
++++ b/inc/ui/principal-edit.php
+@@ -454,7 +454,7 @@ EOTEMPLATE;
+ * @param dbrow $row The row object we read from the database.
+ * @return string The formatted privileges.
+ */
+-function principal_privilege_format_function( $value, $column, $row ) {
++function principal_privilege_format_function( $value, $column = NULL, $row = NULL ) {
+ global $privilege_xlate;
+
+ $privs = bits_to_privilege($value,'*');
--- /dev/null
+{ davical_config ? "/etc/davical/config.php", stdenv, fetchurl, gettext }:
+stdenv.mkDerivation rec {
+ version = "1.1.7";
+ name = "davical-${version}";
+ src = fetchurl {
+ url = "https://www.davical.org/downloads/davical_${version}.orig.tar.xz";
+ sha256 = "1ar5m2dxr92b204wkdi8z33ir9vz2jbh5k1p74icpv9ywifvjjp9";
+ };
+ unpackCmd = ''
+ tar --one-top-level -xf $curSrc
+ '';
+ makeFlags = "all";
+ patches = [ ./davical_19eb79ebf9250e5f339675319902458c40ed1755.patch ];
+ installPhase = ''
+ mkdir -p $out
+ cp -ra config dba docs htdocs inc locale po scripts testing zonedb $out
+ ln -s ${davical_config} $out/config/config.php
+ '';
+ buildInputs = [ gettext ];
+}
--- /dev/null
+{ callPackage, mylibs, composerEnv, lib, private }:
+rec {
+ adminer = callPackage ./adminer {};
+ apache-theme = callPackage ./apache-theme {};
+ awl = callPackage ./awl {};
+ davical = callPackage ./davical {};
+ diaspora = callPackage ./diaspora { inherit mylibs; };
+
+ dokuwiki = callPackage ./dokuwiki { inherit mylibs; };
+ dokuwiki-with-plugins = dokuwiki.withPlugins (builtins.attrValues dokuwiki-plugins);
+ dokuwiki-plugins = let
+ names = [ "farmer" "todo" ];
+ in
+ lib.attrsets.genAttrs names
+ (name: callPackage (./dokuwiki/plugins + "/${name}.nix") {});
+
+ etherpad-lite = callPackage ./etherpad-lite {};
+ etherpad-lite-with-modules = etherpad-lite.withModules (builtins.attrValues etherpad-lite-modules);
+ etherpad-lite-modules = let
+ nodeEnv = callPackage mylibs.nodeEnv {};
+ names = [
+ "ep_aa_file_menu_toolbar" "ep_adminpads" "ep_align" "ep_bookmark"
+ "ep_clear_formatting" "ep_colors" "ep_copy_paste_select_all"
+ "ep_cursortrace" "ep_embedmedia" "ep_font_family" "ep_font_size"
+ "ep_headings2" "ep_ldapauth" "ep_line_height" "ep_markdown"
+ "ep_previewimages" "ep_ruler" "ep_scrollto" "ep_set_title_on_pad"
+ "ep_subscript_and_superscript" "ep_timesliderdiff"
+ ];
+ in
+ # nix files are built using node2nix -i node-packages.json
+ lib.attrsets.genAttrs names
+ (name: (callPackage (./etherpad-lite/modules + "/${name}/node-packages.nix") { inherit nodeEnv; })
+ .${name}.overrideAttrs(old: { passthru = (old.passthru or {}) // { moduleName = name; }; }));
+
+ infcloud = callPackage ./infcloud {};
+
+ mantisbt_2 = callPackage ./mantisbt_2 {};
+ mantisbt_2-with-plugins = mantisbt_2.withPlugins (builtins.attrValues mantisbt_2-plugins);
+ mantisbt_2-plugins = let
+ names = [ "slack" "source-integration" ];
+ in
+ lib.attrsets.genAttrs names
+ (name: callPackage (./mantisbt_2/plugins + "/${name}") {});
+
+ mastodon = callPackage ./mastodon { inherit mylibs; };
+
+ mediagoblin = callPackage ./mediagoblin { inherit mylibs; };
+ mediagoblin-with-plugins = mediagoblin.withPlugins (builtins.attrValues mediagoblin-plugins);
+ mediagoblin-plugins = let
+ names = [ "basicsearch" ];
+ in
+ lib.attrsets.genAttrs names
+ (name: callPackage (./mediagoblin/plugins + "/${name}") {});
+
+ nextcloud = callPackage ./nextcloud {};
+ nextcloud-with-apps = nextcloud.withPlugins (builtins.attrValues nextcloud-apps);
+ nextcloud-apps = let
+ names = [
+ "audioplayer" "bookmarks" "calendar" "contacts" "deck"
+ "files_markdown" "gpxedit" "gpxpod" "keeweb" "music"
+ "notes" "ocsms" "passman" "spreed" "tasks"
+ "flowupload" "carnet"
+ # FIXME: fix passman for NC 16
+ ];
+ in
+ lib.attrsets.genAttrs names
+ (name: callPackage (./nextcloud/apps + "/${name}.nix") { buildApp = nextcloud.buildApp; });
+
+ peertube = callPackage ./peertube { inherit mylibs; };
+ phpldapadmin = callPackage ./phpldapadmin {};
+ rompr = callPackage ./rompr { inherit mylibs; };
+
+ roundcubemail = callPackage ./roundcubemail {};
+ roundcubemail-with-plugins-skins = roundcubemail.withPlugins (builtins.attrValues roundcubemail-plugins) (builtins.attrValues roundcubemail-skins);
+ roundcubemail-skins = let
+ names = [];
+ in
+ lib.attrsets.genAttrs names
+ (name: callPackage (./roundcubemail/skins + "/${name}") {});
+ roundcubemail-plugins = let
+ names = [
+ "automatic_addressbook" "carddav" "contextmenu"
+ "contextmenu_folder" "html5_notifier" "ident_switch"
+ "message_highlight" "thunderbird_labels"
+ ];
+ in
+ lib.attrsets.genAttrs names
+ (name: callPackage (./roundcubemail/plugins + "/${name}") { buildPlugin = roundcubemail.buildPlugin; });
+
+ spip = callPackage ./spip {};
+ taskwarrior-web = callPackage ./taskwarrior-web { inherit mylibs; };
+
+ ttrss = callPackage ./ttrss { inherit mylibs; };
+ ttrss-with-plugins = ttrss.withPlugins (builtins.attrValues ttrss-plugins);
+ ttrss-plugins = let
+ names = [ "auth_ldap" "af_feedmod" "feediron" "ff_instagram" "tumblr_gdpr_ua" ];
+ patched = [ "af_feedmod" "feediron" ];
+ in
+ lib.attrsets.genAttrs names
+ (name: callPackage (./ttrss/plugins + "/${name}") (
+ { inherit mylibs; } //
+ (if builtins.elem name patched then { patched = true; } else {})
+ )
+ );
+
+ wallabag = callPackage ./wallabag { inherit composerEnv; };
+ yourls = callPackage ./yourls { inherit mylibs; };
+ yourls-with-plugins = yourls.withPlugins (builtins.attrValues yourls-plugins);
+ yourls-plugins = let
+ names = [ "ldap" ];
+ in
+ lib.attrsets.genAttrs names
+ (name: callPackage (./yourls/plugins + "/${name}") { inherit mylibs; });
+} // private.webapps
--- /dev/null
+{ ldap ? false, varDir ? "/var/lib/diaspora", podmin_email ? null, config_dir ? "/etc/diaspora",
+ mylibs, stdenv, bundlerEnv, writeText,
+ cacert, defaultGemConfig, perl, ruby_2_4, nodejs, which, git }:
+let
+ diaspora_src = stdenv.mkDerivation (mylibs.fetchedGithub ./diaspora.json // rec {
+ buildPhase = ''
+ ${if ldap then "patch -p1 < ${./ldap.patch}" else ""}
+ # FIXME: bundlerEnv below doesn't take postgresql group for some
+ # reason
+ echo 'gem "pg", "1.1.3"' >> Gemfile
+ '';
+ installPhase = ''
+ cp -a . $out
+ '';
+ });
+ gems = bundlerEnv {
+ name = "diaspora-env";
+ # https://git.immae.eu/mantisbt/view.php?id=131
+ ruby = ruby_2_4.overrideAttrs(old: {
+ postInstall = builtins.replaceStrings [" --destdir $GEM_HOME"] [""] old.postInstall;
+ });
+ gemfile = "${diaspora_src}/Gemfile";
+ lockfile = "${diaspora_src}/Gemfile.lock";
+ gemset = if ldap then ./gemset_ldap.nix else ./gemset.nix;
+ groups = [ "postgresql" "default" "production" ];
+ gemConfig = defaultGemConfig // {
+ kostya-sigar = attrs: {
+ buildInputs = [ perl ];
+ };
+ };
+ };
+ build_config = writeText "diaspora.yml" ''
+ configuration:
+ environment:
+ certificate_authorities: '${cacert}/etc/ssl/certs/ca-bundle.crt'
+ ${if podmin_email != null then ''
+ # dummy comment for indentation
+ admins:
+ podmin_email: '${podmin_email}'
+ '' else ""}
+ production:
+ environment:
+ '';
+ dummy_token = writeText "secret_token.rb" ''
+ Diaspora::Application.config.secret_key_base = 'dummy'
+ '';
+in
+stdenv.mkDerivation {
+ name = "diaspora";
+ inherit diaspora_src;
+ builder = writeText "build_diaspora" ''
+ source $stdenv/setup
+ cp -a $diaspora_src $out
+ cd $out
+ chmod -R u+rwX .
+ tar -czf public/source.tar.gz ./{app,db,lib,script,Gemfile,Gemfile.lock,Rakefile,config.ru}
+ ln -s database.yml.example config/database.yml
+ ln -s ${build_config} config/diaspora.yml
+ ln -s ${dummy_token} config/initializers/secret_token.rb
+ ln -sf ${varDir}/schedule.yml config/schedule.yml
+ ln -sf ${varDir}/oidc_key.pem config/oidc_key.pem
+ ln -sf ${varDir}/uploads public/uploads
+ RAILS_ENV=production ${gems}/bin/rake assets:precompile
+ ln -sf ${config_dir}/database.yml config/database.yml
+ ln -sf ${config_dir}/diaspora.yml config/diaspora.yml
+ ln -sf ${config_dir}/secret_token.rb config/initializers/secret_token.rb
+ rm -rf tmp log
+ ln -sf ${varDir}/tmp tmp
+ ln -sf ${varDir}/log log
+ '';
+ propagatedBuildInputs = [ gems nodejs which git ];
+ passthru = { inherit gems varDir; };
+}
--- /dev/null
+{
+ "tag": "v0.7.10.0",
+ "meta": {
+ "name": "diaspora",
+ "url": "https://github.com/diaspora/diaspora",
+ "branch": "refs/tags/v0.7.10.0"
+ },
+ "github": {
+ "owner": "diaspora",
+ "repo": "diaspora",
+ "rev": "f0085cf5bb1c45bdfba866f628153d299e56eca8",
+ "sha256": "02mnb40rdkk6jlnvpy61fad59gbpgnlwz1k35w4wfqdwzq0znaqp",
+ "fetchSubmodules": true
+ }
+}
--- /dev/null
+{
+ actioncable = {
+ dependencies = ["actionpack" "nio4r" "websocket-driver"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "07r6hnh05db84yr9419mbhyzp20hr8yy9m50jxc2w91ghm2qnrrf";
+ type = "gem";
+ };
+ version = "5.1.6";
+ };
+ actionmailer = {
+ dependencies = ["actionpack" "actionview" "activejob" "mail" "rails-dom-testing"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1s9xcqfx97q4yva2zc4qzb567mwzhry6v3x3zc318aqhcrz31g7c";
+ type = "gem";
+ };
+ version = "5.1.6";
+ };
+ actionpack = {
+ dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0vz2ms80nqw21c304g3w2vkbs80gadzhi3mcwwym7smxccr37kcd";
+ type = "gem";
+ };
+ version = "5.1.6";
+ };
+ actionview = {
+ dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1kfxlz9v7b47pdyy1whb4zzhvaj8h4sp1ajhbih2ax1hkldyg081";
+ type = "gem";
+ };
+ version = "5.1.6";
+ };
+ active_model_serializers = {
+ dependencies = ["activemodel" "concurrent-ruby"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "19zr5pp84q4ya7mfrcanakjv86lv4wfmbcbbd2xnd4bkyprw5w7z";
+ type = "gem";
+ };
+ version = "0.9.7";
+ };
+ activejob = {
+ dependencies = ["activesupport" "globalid"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "02lssq8ps98mfg20dyhcpd16f9c0v4zzy7gfbb6ksbs06wrrd4d2";
+ type = "gem";
+ };
+ version = "5.1.6";
+ };
+ activemodel = {
+ dependencies = ["activesupport"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "10f8cpv4sl1w3m1qj8hl6sd2f1n7x91h45qaf57qr894ll22jgby";
+ type = "gem";
+ };
+ version = "5.1.6";
+ };
+ activerecord = {
+ dependencies = ["activemodel" "activesupport" "arel"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1iqkvxzx5bfp8rmlccww0cj1xr6iaxmn3hhbj1dv5j9c8mnm980x";
+ type = "gem";
+ };
+ version = "5.1.6";
+ };
+ activerecord-import = {
+ dependencies = ["activerecord"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1bxpbrcwc9k6khizwdikvfbhw9pcvs4sp3h4grpcww5k7bgpliz6";
+ type = "gem";
+ };
+ version = "0.27.0";
+ };
+ activesupport = {
+ dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "08dm0mgmj31ggk7ib66wfagj4bgbr2jfl500bqb22x0szslz5lll";
+ type = "gem";
+ };
+ version = "5.1.6";
+ };
+ acts-as-taggable-on = {
+ dependencies = ["activerecord"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0hl52pjgfzy3acdwnbxfqy08m808vlv9dmsyp03d5x7x0y499kvl";
+ type = "gem";
+ };
+ version = "6.0.0";
+ };
+ acts_as_api = {
+ dependencies = ["activemodel" "activesupport" "rack"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "06miad13nnfr2gslc203ahsbvj499s9lngxxvfizwp964vglygsc";
+ type = "gem";
+ };
+ version = "1.0.1";
+ };
+ addressable = {
+ dependencies = ["public_suffix"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0viqszpkggqi8hq87pqp0xykhvz60g99nwmkwsb0v45kc2liwxvk";
+ type = "gem";
+ };
+ version = "2.5.2";
+ };
+ aes_key_wrap = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0li86k0g812jkzrppb2fvqngvzp09nygywjpn81nx90s01wxqw07";
+ type = "gem";
+ };
+ version = "1.0.1";
+ };
+ arel = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0nw0qbc6ph625p6n3maqq9f527vz3nbl0hk72fbyka8jzsmplxzl";
+ type = "gem";
+ };
+ version = "8.0.0";
+ };
+ asset_sync = {
+ dependencies = ["activemodel" "fog-core" "mime-types" "unf"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0mfz51g8rzk5h5fpdhfkycnm7y4dpfhx46wm7fygna7nd4w9ixdx";
+ type = "gem";
+ };
+ version = "2.5.0";
+ };
+ ast = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "184ssy3w93nkajlz2c70ifm79jp3j737294kbc5fjw69v1w0n9x7";
+ type = "gem";
+ };
+ version = "2.4.0";
+ };
+ attr_required = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1g22axmi2rhhy7w8c3x6gppsawxqavbrnxpnmphh22fk7cwi0kh2";
+ type = "gem";
+ };
+ version = "1.0.1";
+ };
+ autoprefixer-rails = {
+ dependencies = ["execjs"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "08irrl1mz6skagr1lygq79l34lc0dghgva0v9q7nng76dpiglgj3";
+ type = "gem";
+ };
+ version = "8.6.5";
+ };
+ backports = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1hshjxww2h7s0dk57njrygq4zpp0nlqrjfya7zwm27iq3rhc3y8g";
+ type = "gem";
+ };
+ version = "3.11.4";
+ };
+ bcrypt = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0ysblqxkclmnhrd0kmb5mr8p38mbar633gdsb14b7dhkhgawgzfy";
+ type = "gem";
+ };
+ version = "3.1.12";
+ };
+ bindata = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0kz42nvxnk1j9cj0i8lcnhprcgdqsqska92g6l19ziadydfk2gqy";
+ type = "gem";
+ };
+ version = "2.4.4";
+ };
+ bootstrap-sass = {
+ dependencies = ["autoprefixer-rails" "sass"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1bc9bf6caddqn1rv15b5x56yczmbjzaxzl9lk5zbwrg1bfph4bx9";
+ type = "gem";
+ };
+ version = "3.3.7";
+ };
+ bootstrap-switch-rails = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1zkwc1hfmihnm0n9lkva5zk0cmqpfcpnrwnmaniyvgx7rac2r14l";
+ type = "gem";
+ };
+ version = "3.3.3";
+ };
+ buftok = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1rzsy1vy50v55x9z0nivf23y0r9jkmq6i130xa75pq9i8qrn1mxs";
+ type = "gem";
+ };
+ version = "0.2.0";
+ };
+ builder = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0qibi5s67lpdv1wgcj66wcymcr04q6j4mzws6a479n0mlrmh5wr1";
+ type = "gem";
+ };
+ version = "3.2.3";
+ };
+ byebug = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "10znc1hjv8n686hhpl08f3m2g6h08a4b83nxblqwy2kqamkxcqf8";
+ type = "gem";
+ };
+ version = "10.0.2";
+ };
+ capybara = {
+ dependencies = ["addressable" "mini_mime" "nokogiri" "rack" "rack-test" "regexp_parser" "xpath"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "10zj8syak12xd1kqywr35bkr2hkdjq18kij54x1ys8c26h6j4d0m";
+ type = "gem";
+ };
+ version = "3.11.1";
+ };
+ carrierwave = {
+ dependencies = ["activemodel" "activesupport" "mime-types"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1k9kla5ncygm97vn33lsrs7ch5zy4qqhhvc8m3khm986yaqh75qs";
+ type = "gem";
+ };
+ version = "1.2.3";
+ };
+ celluloid = {
+ dependencies = ["celluloid-essentials" "celluloid-extras" "celluloid-fsm" "celluloid-pool" "celluloid-supervision" "timers"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "10i29q7kkdlrhf5rg43xygdfm795a02vp28k2ca3nklmqna57qmg";
+ type = "gem";
+ };
+ version = "0.17.3";
+ };
+ celluloid-essentials = {
+ dependencies = ["timers"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1l4p3p73wjdj07ww124q0db5k1cyzggbndzmcb12xbsf2dnj121k";
+ type = "gem";
+ };
+ version = "0.20.5";
+ };
+ celluloid-extras = {
+ dependencies = ["timers"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "078agvnsfp78jv343kn5g1cz50147dk0q46blwh5r8lk6whag7ng";
+ type = "gem";
+ };
+ version = "0.20.5";
+ };
+ celluloid-fsm = {
+ dependencies = ["timers"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1pmpi6h4abpkczp46rd6llk1mldpx19i9hll8mkxp3kxin9slivc";
+ type = "gem";
+ };
+ version = "0.20.5";
+ };
+ celluloid-io = {
+ dependencies = ["celluloid" "nio4r" "timers"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1frcpja7h9vcxsw7w7ff550x54rfx514fpv2n6kawbk1j4zrm314";
+ type = "gem";
+ };
+ version = "0.17.3";
+ };
+ celluloid-pool = {
+ dependencies = ["timers"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1bfr54ijl95bnhqlabhf5p4ff9n0y2sslc91f49jjn33n2zm755c";
+ type = "gem";
+ };
+ version = "0.20.5";
+ };
+ celluloid-supervision = {
+ dependencies = ["timers"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1b41gg1rsmms0m5mshy6h66y5rydl3nv6x9wf050ixfa1s2c8vzw";
+ type = "gem";
+ };
+ version = "0.20.6";
+ };
+ chunky_png = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "05g2xli9wbjylkmblln3bhvjalziwb92q452q8ibjagmb853424w";
+ type = "gem";
+ };
+ version = "1.3.10";
+ };
+ cliver = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "096f4rj7virwvqxhkavy0v55rax10r4jqf8cymbvn4n631948xc7";
+ type = "gem";
+ };
+ version = "0.3.2";
+ };
+ coderay = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "15vav4bhcc2x3jmi3izb11l4d9f3xv8hp2fszb7iqmpsccv1pz4y";
+ type = "gem";
+ };
+ version = "1.1.2";
+ };
+ compass = {
+ dependencies = ["chunky_png" "compass-core" "compass-import-once" "rb-fsevent" "rb-inotify" "sass"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0lfi83w8z75czr0pf0rmj9hda22082h3cmvczl8r1ma9agf88y2c";
+ type = "gem";
+ };
+ version = "1.0.3";
+ };
+ compass-core = {
+ dependencies = ["multi_json" "sass"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0yaspqwdmzwdcqviclbs3blq7an16pysrfzylz8q1gxmmd6bpj3a";
+ type = "gem";
+ };
+ version = "1.0.3";
+ };
+ compass-import-once = {
+ dependencies = ["sass"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0bn7gwbfz7jvvdd0qdfqlx67fcb83gyvxqc7dr9fhcnks3z8z5rq";
+ type = "gem";
+ };
+ version = "1.0.5";
+ };
+ compass-rails = {
+ dependencies = ["compass" "sass-rails" "sprockets"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "02ydlbl1qb80myjv5xrpwzhmmj6qd80jf5izvpqhq2bikv84j9wr";
+ type = "gem";
+ };
+ version = "3.1.0";
+ };
+ concurrent-ruby = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "18q9skp5pfq4jwbxzmw8q2rn4cpw6mf4561i2hsjcl1nxdag2jvb";
+ type = "gem";
+ };
+ version = "1.1.3";
+ };
+ configurate = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1m6cppb4jf7liwc3f5dvgn2v2nhp2jq8ixb9papaqz24f4s8dnd1";
+ type = "gem";
+ };
+ version = "0.3.1";
+ };
+ connection_pool = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0lflx29mlznf1hn0nihkgllzbj8xp5qasn8j7h838465pi399k68";
+ type = "gem";
+ };
+ version = "2.2.2";
+ };
+ coveralls = {
+ dependencies = ["json" "simplecov" "term-ansicolor" "thor" "tins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "022kc16np6w4mv17hq3m9hhw9l8hjl78ld3fzqqx6337vwvwvwcg";
+ type = "gem";
+ };
+ version = "0.8.22";
+ };
+ crack = {
+ dependencies = ["safe_yaml"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0abb0fvgw00akyik1zxnq7yv391va148151qxdghnzngv66bl62k";
+ type = "gem";
+ };
+ version = "0.4.3";
+ };
+ crass = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0bpxzy6gjw9ggjynlxschbfsgmx8lv3zw1azkjvnb8b9i895dqfi";
+ type = "gem";
+ };
+ version = "1.0.4";
+ };
+ cucumber = {
+ dependencies = ["builder" "cucumber-core" "cucumber-expressions" "cucumber-wire" "diff-lcs" "gherkin" "multi_json" "multi_test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1s2brssrpal8hyhcgg974x3xyhpmvpwps5ypd9p8w2lg01l1pp3j";
+ type = "gem";
+ };
+ version = "3.1.2";
+ };
+ cucumber-api-steps = {
+ dependencies = ["cucumber" "jsonpath"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0fij6bgzshda68jp7kac0hs5n6xsmv49g8ynqhy6s3znc9d4qjbw";
+ type = "gem";
+ };
+ version = "0.14.0";
+ };
+ cucumber-core = {
+ dependencies = ["backports" "cucumber-tag_expressions" "gherkin"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1iavlh8hqj9lwljbpkw06259gdicbr1bdb6pbj5yy3n8szgr8k3c";
+ type = "gem";
+ };
+ version = "3.2.1";
+ };
+ cucumber-expressions = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0zwmv6hznyz9vk81f5dhwcr9jhxx2vmbk8yyazayvllvhy0fkpdw";
+ type = "gem";
+ };
+ version = "6.0.1";
+ };
+ cucumber-rails = {
+ dependencies = ["capybara" "cucumber" "mime-types" "nokogiri" "railties"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0pmlza6r2601k1i7v3z8gj4apdcq6qa830bzwkj1pnfjzn4z12n7";
+ type = "gem";
+ };
+ version = "1.6.0";
+ };
+ cucumber-tag_expressions = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0cvmbljybws0qzjs1l67fvr9gqr005l8jk1ni5gcsis9pfmqh3vc";
+ type = "gem";
+ };
+ version = "1.1.1";
+ };
+ cucumber-wire = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "09ymvqb0sbw2if1nxg8rcj33sf0va88ancq5nmp8g01dfwzwma2f";
+ type = "gem";
+ };
+ version = "0.0.1";
+ };
+ database_cleaner = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "05i0nf2aj70m61y3fspypdkc6d1qgibf5kav05a71b5gjz0k7y5x";
+ type = "gem";
+ };
+ version = "1.7.0";
+ };
+ devise = {
+ dependencies = ["bcrypt" "orm_adapter" "railties" "responders" "warden"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1vs8nibl568ghm6a7hbw6xgcv8zbm4gykprcxpnzi7bz5d4gvcjx";
+ type = "gem";
+ };
+ version = "4.5.0";
+ };
+ devise_lastseenable = {
+ dependencies = ["devise" "rails"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1h83h73qjh8fc7lmr089shky8lc3wm4xn653rjdbb0cddflvrx8y";
+ type = "gem";
+ };
+ version = "0.0.6";
+ };
+ diaspora-prosody-config = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1976ijqjf5jcq1jwr6vi0srjadhbqfa9y3nxyipzcv91pzskl2lp";
+ type = "gem";
+ };
+ version = "0.0.7";
+ };
+ diaspora_federation = {
+ dependencies = ["faraday" "faraday_middleware" "nokogiri" "typhoeus" "valid"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1xxy6ahlhgyr00qkfmmq0h3nqm6gjkr9i6hsqr0nkb3l6qg0m0yc";
+ type = "gem";
+ };
+ version = "0.2.5";
+ };
+ diaspora_federation-json_schema = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0hfv4cq5wfdg86xmbp5y0h50b11326ymzks1yr9dvr4wa7di00hr";
+ type = "gem";
+ };
+ version = "0.2.5";
+ };
+ diaspora_federation-rails = {
+ dependencies = ["actionpack" "diaspora_federation"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1wrni7d9084v3pqd3sq8j532wx5ym6kmd959bw29bzwxc3zidd9h";
+ type = "gem";
+ };
+ version = "0.2.5";
+ };
+ diaspora_federation-test = {
+ dependencies = ["diaspora_federation" "fabrication" "uuid"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1b09y78pyl9kix8slbybnks2cbq0ac9wml31j2s6qwjixranjsm4";
+ type = "gem";
+ };
+ version = "0.2.5";
+ };
+ diff-lcs = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "18w22bjz424gzafv6nzv98h0aqkwz3d9xhm7cbr1wfbyas8zayza";
+ type = "gem";
+ };
+ version = "1.3";
+ };
+ docile = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "04d2izkna3ahfn6fwq4xrcafa715d3bbqczxm16fq40fqy87xn17";
+ type = "gem";
+ };
+ version = "1.3.1";
+ };
+ domain_name = {
+ dependencies = ["unf"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0abdlwb64ns7ssmiqhdwgl27ly40x2l27l8hs8hn0z4kb3zd2x3v";
+ type = "gem";
+ };
+ version = "0.5.20180417";
+ };
+ entypo-rails = {
+ dependencies = ["railties"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "124x0jszg6n0k2lcacd627ndlp1fv7cbgnv4scwy5s3czp0qwip6";
+ type = "gem";
+ };
+ version = "3.0.0";
+ };
+ equalizer = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1kjmx3fygx8njxfrwcmn7clfhjhb6bvv3scy2lyyi0wqyi3brra4";
+ type = "gem";
+ };
+ version = "0.0.11";
+ };
+ erubi = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0bws86na9k565raiz0kk61yy5pxxp0fmwyzpibdwjkq0xzx8q6q1";
+ type = "gem";
+ };
+ version = "1.7.1";
+ };
+ eslintrb = {
+ dependencies = ["execjs" "multi_json" "rake"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0kx9sbs7pnl436zyczylnqqb1858hffy66fwdqfmcn18q8xdqwkx";
+ type = "gem";
+ };
+ version = "2.1.0";
+ };
+ et-orbi = {
+ dependencies = ["tzinfo"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0wk7i0bmsy46la8gcvbmdns0ni8lmdqas838phj97bdwykxw8m4b";
+ type = "gem";
+ };
+ version = "1.1.6";
+ };
+ ethon = {
+ dependencies = ["ffi"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0y70szwm2p0b9qfvpqrzjrgm3jz0ig65vlbfr6ppc3z0m1h7kv48";
+ type = "gem";
+ };
+ version = "0.11.0";
+ };
+ excon = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "15l9w0938c19nxmrp09n75qpmm64k12xj69h47yvxzcxcpbgnkb2";
+ type = "gem";
+ };
+ version = "0.62.0";
+ };
+ execjs = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1yz55sf2nd3l666ms6xr18sm2aggcvmb8qr3v53lr4rir32y1yp1";
+ type = "gem";
+ };
+ version = "2.7.0";
+ };
+ eye = {
+ dependencies = ["celluloid" "celluloid-io" "kostya-sigar" "state_machines" "thor"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0gqrrrisy492m6sczq775dyg9sxkl926r8lkr6z33kfb4cnimfzk";
+ type = "gem";
+ };
+ version = "0.10.0";
+ };
+ fabrication = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0an28kjand4mjbkmnwd9fmgq3y5vf717zpmiijavar3sxqj52zri";
+ type = "gem";
+ };
+ version = "2.20.1";
+ };
+ factory_girl = {
+ dependencies = ["activesupport"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0cc60v28r7w1gp34p4amzdnq7cyip6qhffvxywsj3ypilyf8jqla";
+ type = "gem";
+ };
+ version = "4.8.0";
+ };
+ factory_girl_rails = {
+ dependencies = ["factory_girl" "railties"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0hw8qqp30vm4yf4a36r1r65wk78ihxmas7jg5fyl6fcf705z9fvv";
+ type = "gem";
+ };
+ version = "4.8.0";
+ };
+ faraday = {
+ dependencies = ["multipart-post"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "16hwxc8v0z6gkanckjhx0ffgqmzpc4ywz4dfhxpjlz2mbz8d5m52";
+ type = "gem";
+ };
+ version = "0.15.3";
+ };
+ faraday-cookie_jar = {
+ dependencies = ["faraday" "http-cookie"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1di4gx6446a6zdkrpj679m5k515i53wvb4yxcsqvy8d8zacxiiv6";
+ type = "gem";
+ };
+ version = "0.0.6";
+ };
+ faraday_middleware = {
+ dependencies = ["faraday"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1p7icfl28nvl8qqdsngryz1snqic9l8x6bk0dxd7ygn230y0k41d";
+ type = "gem";
+ };
+ version = "0.12.2";
+ };
+ ffi = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0jpm2dis1j7zvvy3lg7axz9jml316zrn7s0j59vyq3qr127z0m7q";
+ type = "gem";
+ };
+ version = "1.9.25";
+ };
+ fixture_builder = {
+ dependencies = ["activerecord" "activesupport" "hashdiff"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1qlq0nyfhjvz09hm0jankl9bgs9672k31b3lmsfq8p135x3xs627";
+ type = "gem";
+ };
+ version = "0.5.2.rc3";
+ };
+ fog-aws = {
+ dependencies = ["fog-core" "fog-json" "fog-xml" "ipaddress"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1zprxg0spvkkri1jf40zg3rfr5h2gq6009d7l36lifpvhjn658cs";
+ type = "gem";
+ };
+ version = "3.3.0";
+ };
+ fog-core = {
+ dependencies = ["builder" "excon" "formatador" "mime-types"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1fsama04wlxhv537bm4b7rr4zzn0mvisy87m3qzv6f0mhlrq3zp8";
+ type = "gem";
+ };
+ version = "2.1.2";
+ };
+ fog-json = {
+ dependencies = ["fog-core" "multi_json"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1zj8llzc119zafbmfa4ai3z5s7c4vp9akfs0f9l2piyvcarmlkyx";
+ type = "gem";
+ };
+ version = "1.2.0";
+ };
+ fog-xml = {
+ dependencies = ["fog-core" "nokogiri"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "043lwdw2wsi6d55ifk0w3izi5l1d1h0alwyr3fixic7b94kc812n";
+ type = "gem";
+ };
+ version = "0.1.3";
+ };
+ formatador = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1gc26phrwlmlqrmz4bagq1wd5b7g64avpx0ghxr9xdxcvmlii0l0";
+ type = "gem";
+ };
+ version = "0.2.5";
+ };
+ fugit = {
+ dependencies = ["et-orbi" "raabro"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1szijawzdii668z5is9xi849399gy786951dx0l5r2z5mbfqvl9i";
+ type = "gem";
+ };
+ version = "1.1.6";
+ };
+ fuubar = {
+ dependencies = ["rspec-core" "ruby-progressbar"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1sqkr1nh49rlm86l3qyrgsdqavgqii4pnrjn7855z6dfavh3spxr";
+ type = "gem";
+ };
+ version = "2.3.2";
+ };
+ get_process_mem = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1bvfjdign16r0zwm2rlfrq0sk1licvmlgbnlpnyckniv5r7i080g";
+ type = "gem";
+ };
+ version = "0.2.3";
+ };
+ gherkin = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1cgcdchwwdm10rsk44frjwqd4ihprhxjbm799nscqy2q1raqfj5s";
+ type = "gem";
+ };
+ version = "5.1.0";
+ };
+ gitlab = {
+ dependencies = ["httparty" "terminal-table"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1nncjmk71ivjxmgkpv100yybry5c7ld6xjgi1b5zsfv4g3mz0v34";
+ type = "gem";
+ };
+ version = "4.7.0";
+ };
+ globalid = {
+ dependencies = ["activesupport"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "02smrgdi11kziqi9zhnsy9i6yr2fnxrqlv3lllsvdjki3cd4is38";
+ type = "gem";
+ };
+ version = "0.4.1";
+ };
+ gon = {
+ dependencies = ["actionpack" "multi_json" "request_store"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "07sm7fd94pfscrbs4lyprs0das8s1yn32cw521ch738jaqb388xl";
+ type = "gem";
+ };
+ version = "6.2.1";
+ };
+ guard = {
+ dependencies = ["formatador" "listen" "lumberjack" "nenv" "notiffany" "pry" "shellany" "thor"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0h84ja6qvii3hx86w9l4vjpbgl4m8ma8fbawwp7s8l791cgkdcmk";
+ type = "gem";
+ };
+ version = "2.15.0";
+ };
+ guard-compat = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1zj6sr1k8w59mmi27rsii0v8xyy2rnsi09nqvwpgj1q10yq1mlis";
+ type = "gem";
+ };
+ version = "1.2.1";
+ };
+ guard-rspec = {
+ dependencies = ["guard" "guard-compat" "rspec"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1jkm5xp90gm4c5s51pmf92i9hc10gslwwic6mvk72g0yplya0yx4";
+ type = "gem";
+ };
+ version = "4.7.3";
+ };
+ guard-rubocop = {
+ dependencies = ["guard" "rubocop"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1p97zkzasghl1md13rh57n3s2rr2kqly8w4vfn6vaj89igjpagdp";
+ type = "gem";
+ };
+ version = "1.3.0";
+ };
+ haml = {
+ dependencies = ["temple" "tilt"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1q0a9fvqh8kn6wm97fcks6qzbjd400bv8bx748w8v87m7p4klhac";
+ type = "gem";
+ };
+ version = "5.0.4";
+ };
+ haml_lint = {
+ dependencies = ["haml" "rainbow" "rake" "rubocop" "sysexits"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "125aj0j84nx5gqm42hfx5d8486higlra423ahgfpsdjwbp399rwv";
+ type = "gem";
+ };
+ version = "0.28.0";
+ };
+ hamlit = {
+ dependencies = ["temple" "thor" "tilt"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "14fsc208qsf46cflk23vs2fdw435dk65fwv55zhziciwn96ld8sf";
+ type = "gem";
+ };
+ version = "2.9.1";
+ };
+ handlebars_assets = {
+ dependencies = ["execjs" "sprockets" "tilt"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "18pyksz4jb0n28acqxv14ahy8mkc9ldqbbn73gcj28m0l9wjzsca";
+ type = "gem";
+ };
+ version = "0.23.2";
+ };
+ hashdiff = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0yj5l2rw8i8jc725hbcpc4wks0qlaaimr3dpaqamfjkjkxl0hjp9";
+ type = "gem";
+ };
+ version = "0.3.7";
+ };
+ hashie = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1hh5lybf8hm7d7xs4xm8hxvm8xqrs2flc8fnwkrclaj746izw6xb";
+ type = "gem";
+ };
+ version = "3.5.7";
+ };
+ http = {
+ dependencies = ["addressable" "http-cookie" "http-form_data" "http_parser.rb"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1jlm5prw437wqpfxcigh88lfap3m7g8mnmj5as7qw6dzqnvrxwmc";
+ type = "gem";
+ };
+ version = "3.3.0";
+ };
+ http-cookie = {
+ dependencies = ["domain_name"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "004cgs4xg5n6byjs7qld0xhsjq3n6ydfh897myr2mibvh6fjc49g";
+ type = "gem";
+ };
+ version = "1.0.3";
+ };
+ http-form_data = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "15lpn604byf7cyxnw949xz4rvpcknqp7a48q73nm630gqxsa76f3";
+ type = "gem";
+ };
+ version = "2.1.1";
+ };
+ http_accept_language = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0d0nlfz9vm4jr1l6q0chx4rp2hrnrfbx3gadc1dz930lbbaz0hq0";
+ type = "gem";
+ };
+ version = "2.1.1";
+ };
+ "http_parser.rb" = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "15nidriy0v5yqfjsgsra51wmknxci2n2grliz78sf9pga3n0l7gi";
+ type = "gem";
+ };
+ version = "0.6.0";
+ };
+ httparty = {
+ dependencies = ["mime-types" "multi_xml"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1xmm7pxmz3pblkdr76dg7qm5s60kpp3yvh46c2i0bn1dm0zgl730";
+ type = "gem";
+ };
+ version = "0.16.3";
+ };
+ httpclient = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "19mxmvghp7ki3klsxwrlwr431li7hm1lczhhj8z4qihl2acy8l99";
+ type = "gem";
+ };
+ version = "2.8.3";
+ };
+ i18n = {
+ dependencies = ["concurrent-ruby"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1gcp1m1p6dpasycfz2sj82ci9ggz7lsskz9c9q6gvfwxrl8y9dx7";
+ type = "gem";
+ };
+ version = "1.1.1";
+ };
+ i18n-inflector = {
+ dependencies = ["i18n"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "081jr7z947aqjfmpbfs10w9jxi205jwgk4mgd8jds1b4m4i8mc7g";
+ type = "gem";
+ };
+ version = "2.6.7";
+ };
+ i18n-inflector-rails = {
+ dependencies = ["actionpack" "i18n-inflector" "railties"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0c04jm657akp5n14syhcwnn3hnsvx7harvg97768bvf3f9a37hyk";
+ type = "gem";
+ };
+ version = "1.0.7";
+ };
+ ipaddress = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1x86s0s11w202j6ka40jbmywkrx8fhq8xiy8mwvnkhllj57hqr45";
+ type = "gem";
+ };
+ version = "0.8.3";
+ };
+ jaro_winkler = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0rr797nqz081bfk30m2apj5h24bg5d1jr1c8p3xwx4hbwsrbclah";
+ type = "gem";
+ };
+ version = "1.5.1";
+ };
+ jasmine = {
+ dependencies = ["jasmine-core" "phantomjs" "rack" "rake"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1xfwf163wi5a9i0vlm564cqi6k30h15wnrwd15ph95jfa5516kv1";
+ type = "gem";
+ };
+ version = "3.3.0";
+ };
+ jasmine-core = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1b12bjfrxvb8mwjwlfyngykd80lz956glcpfz7rhhw7n75b2rdlv";
+ type = "gem";
+ };
+ version = "3.3.0";
+ };
+ jasmine-jquery-rails = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0cq5zd4ng5dlza45whd6sa7bzd60rlddk9760271mybdqyd96jlv";
+ type = "gem";
+ };
+ version = "2.0.3";
+ };
+ jquery-rails = {
+ dependencies = ["rails-dom-testing" "railties" "thor"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "17201sb8ddwy4yprizmqabq1kfx3m9c53p0yqngn63m07jjcpnh8";
+ type = "gem";
+ };
+ version = "4.3.3";
+ };
+ js-routes = {
+ dependencies = ["railties" "sprockets-rails"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "14yx3jrd4sgcwgj8yrrqdwl691mci1hcjqyyvp0v15jbzis1bclm";
+ type = "gem";
+ };
+ version = "1.4.4";
+ };
+ js_image_paths = {
+ dependencies = ["rails" "sprockets"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1d4kq8895i61a338ddk5f2k16l5lvmnkby9cdjwnmm2jddw4q7nf";
+ type = "gem";
+ };
+ version = "0.1.1";
+ };
+ json = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "01v6jjpvh3gnq6sgllpfqahlgxzj50ailwhj9b3cd20hi2dx0vxp";
+ type = "gem";
+ };
+ version = "2.1.0";
+ };
+ json-jwt = {
+ dependencies = ["activesupport" "aes_key_wrap" "bindata"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "065k7vffdki73f4nz89lxi6wxmcw5dlf593831pgvlbralll6x3r";
+ type = "gem";
+ };
+ version = "1.9.4";
+ };
+ json-schema = {
+ dependencies = ["addressable"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1yv5lfmr2nzd14af498xqd5p89f3g080q8wk0klr3vxgypsikkb5";
+ type = "gem";
+ };
+ version = "2.8.1";
+ };
+ json-schema-rspec = {
+ dependencies = ["json-schema" "rspec"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1ip30yjzyigqqp9jwkrw9x9vrfpnmwi160zmk2vkrwlv9pby0wr9";
+ type = "gem";
+ };
+ version = "0.0.4";
+ };
+ jsonpath = {
+ dependencies = ["multi_json" "to_regexp"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "06i41lwpj0dwvbxcpqrad5pjn2gmcv0srv0zw0ap7irwc21ifd7d";
+ type = "gem";
+ };
+ version = "0.9.6";
+ };
+ jwt = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1w0kaqrbl71cq9sbnixc20x5lqah3hs2i93xmhlfdg2y3by7yzky";
+ type = "gem";
+ };
+ version = "2.1.0";
+ };
+ kgio = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1528pyj1szzzp3pgj05fzjd36qjrxm9yj2x5radc9p1z7vl67y50";
+ type = "gem";
+ };
+ version = "2.11.2";
+ };
+ kostya-sigar = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0z0pcykhjyrb7kq76jfcyxc1qq23gj5zmgy3miy87v85ydrxiqwb";
+ type = "gem";
+ };
+ version = "2.0.4";
+ };
+ leaflet-rails = {
+ dependencies = ["rails"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0dy7vhsjj1fhbbqm2s7pw57vgysd31qqi4y0hm91325hmvq75grb";
+ type = "gem";
+ };
+ version = "1.3.1";
+ };
+ listen = {
+ dependencies = ["rb-fsevent" "rb-inotify" "ruby_dep"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "01v5mrnfqm6sgm8xn2v5swxsn1wlmq7rzh2i48d4jzjsc7qvb6mx";
+ type = "gem";
+ };
+ version = "3.1.5";
+ };
+ little-plugger = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1frilv82dyxnlg8k1jhrvyd73l6k17mxc5vwxx080r4x1p04gwym";
+ type = "gem";
+ };
+ version = "1.1.4";
+ };
+ logging = {
+ dependencies = ["little-plugger" "multi_json"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "06j6iaj89h9jhkx1x3hlswqrfnqds8br05xb1qra69dpvbdmjcwn";
+ type = "gem";
+ };
+ version = "2.2.2";
+ };
+ logging-rails = {
+ dependencies = ["logging"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "022cnj9v177282kadd9ygzjpvlvbq9k5z0xhdbbmgypi05z4i239";
+ type = "gem";
+ };
+ version = "0.6.0";
+ };
+ loofah = {
+ dependencies = ["crass" "nokogiri"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1ccsid33xjajd0im2xv941aywi58z7ihwkvaf1w2bv89vn5bhsjg";
+ type = "gem";
+ };
+ version = "2.2.3";
+ };
+ lumberjack = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "06im7gcg42x77yhz2w5da2ly9xz0n0c36y5ks7xs53v0l9g0vf5n";
+ type = "gem";
+ };
+ version = "1.0.13";
+ };
+ macaddr = {
+ dependencies = ["systemu"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1clii8mvhmh5lmnm95ljnjygyiyhdpja85c5vy487rhxn52scn0b";
+ type = "gem";
+ };
+ version = "1.7.1";
+ };
+ mail = {
+ dependencies = ["mini_mime"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "00wwz6ys0502dpk8xprwcqfwyf3hmnx6lgxaiq6vj43mkx43sapc";
+ type = "gem";
+ };
+ version = "2.7.1";
+ };
+ markdown-it-html5-embed = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "10n2z6j0whc6makxvcf2jhpwb8xrj4s6vyywijsaaxs0cn490a5c";
+ type = "gem";
+ };
+ version = "1.0.0";
+ };
+ markerb = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "08sm3kafc3086l0a9is2cysk7j2k71mxy6ba295pwwzyvy734y76";
+ type = "gem";
+ };
+ version = "1.1.0";
+ };
+ memoizable = {
+ dependencies = ["thread_safe"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0v42bvghsvfpzybfazl14qhkrjvx0xlmxz0wwqc960ga1wld5x5c";
+ type = "gem";
+ };
+ version = "0.4.2";
+ };
+ method_source = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1pviwzvdqd90gn6y7illcdd9adapw8fczml933p5vl739dkvl3lq";
+ type = "gem";
+ };
+ version = "0.9.2";
+ };
+ mime-types = {
+ dependencies = ["mime-types-data"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0fjxy1jm52ixpnv3vg9ld9pr9f35gy0jp66i1njhqjvmnvq0iwwk";
+ type = "gem";
+ };
+ version = "3.2.2";
+ };
+ mime-types-data = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "07wvp0aw2gjm4njibb70as6rh5hi1zzri5vky1q6jx95h8l56idc";
+ type = "gem";
+ };
+ version = "3.2018.0812";
+ };
+ mini_magick = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0sisx59mr5kydmxmx5vr8spmrxhrjkfqv35zhsqdlyzmp1z5px9p";
+ type = "gem";
+ };
+ version = "4.9.2";
+ };
+ mini_mime = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1q4pshq387lzv9m39jv32vwb8wrq3wc4jwgl4jk209r4l33v09d3";
+ type = "gem";
+ };
+ version = "1.0.1";
+ };
+ mini_portile2 = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "13d32jjadpjj6d2wdhkfpsmy68zjx90p49bgf8f7nkpz86r1fr11";
+ type = "gem";
+ };
+ version = "2.3.0";
+ };
+ minitest = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0icglrhghgwdlnzzp4jf76b0mbc71s80njn5afyfjn4wqji8mqbq";
+ type = "gem";
+ };
+ version = "5.11.3";
+ };
+ mobile-fu = {
+ dependencies = ["rack-mobile-detect" "rails"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0lxfcsd7dwwcpa1j2jbl382anmv6kksf5q1wqj14gc6jxxjq9s4i";
+ type = "gem";
+ };
+ version = "1.4.0";
+ };
+ multi_json = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1rl0qy4inf1mp8mybfk56dfga0mvx97zwpmq5xmiwl5r770171nv";
+ type = "gem";
+ };
+ version = "1.13.1";
+ };
+ multi_test = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1sx356q81plr67hg16jfwz9hcqvnk03bd9n75pmdw8pfxjfy1yxd";
+ type = "gem";
+ };
+ version = "0.1.2";
+ };
+ multi_xml = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0lmd4f401mvravi1i1yq7b2qjjli0yq7dfc4p1nj5nwajp7r6hyj";
+ type = "gem";
+ };
+ version = "0.6.0";
+ };
+ multipart-post = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "09k0b3cybqilk1gwrwwain95rdypixb2q9w65gd44gfzsd84xi1x";
+ type = "gem";
+ };
+ version = "2.0.0";
+ };
+ mysql2 = {
+ groups = ["mysql"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1a2kdjgzwh1p2rkcmxaawy6ibi32b04wbdd5d4wr8i342pq76di4";
+ type = "gem";
+ };
+ version = "0.5.2";
+ };
+ naught = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1wwjx35zgbc0nplp8a866iafk4zsrbhwwz4pav5gydr2wm26nksg";
+ type = "gem";
+ };
+ version = "1.1.0";
+ };
+ nenv = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0r97jzknll9bhd8yyg2bngnnkj8rjhal667n7d32h8h7ny7nvpnr";
+ type = "gem";
+ };
+ version = "0.3.0";
+ };
+ nio4r = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1a41ca1kpdmrypjp9xbgvckpy8g26zxphkja9vk7j5wl4n8yvlyr";
+ type = "gem";
+ };
+ version = "2.3.1";
+ };
+ nokogiri = {
+ dependencies = ["mini_portile2"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0byyxrazkfm29ypcx5q4syrv126nvjnf7z6bqi01sqkv4llsi4qz";
+ type = "gem";
+ };
+ version = "1.8.5";
+ };
+ notiffany = {
+ dependencies = ["nenv" "shellany"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0x838fa5il0dd9zbm3lxkpbfxcf5fxv9556mayc2mxsdl5ghv8nx";
+ type = "gem";
+ };
+ version = "0.1.1";
+ };
+ oauth = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1zszdg8q1b135z7l7crjj234k4j0m347hywp5kj6zsq7q78pw09y";
+ type = "gem";
+ };
+ version = "0.5.4";
+ };
+ oauth2 = {
+ dependencies = ["faraday" "jwt" "multi_json" "multi_xml" "rack"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0av6nlb5y2sm6m8fx669ywrqa9858yqaqfqzny75nqp3anag89qh";
+ type = "gem";
+ };
+ version = "1.4.1";
+ };
+ octokit = {
+ dependencies = ["sawyer"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1yh0yzzqg575ix3y2l2261b9ag82gv2v4f1wczdhcmfbxcz755x6";
+ type = "gem";
+ };
+ version = "4.13.0";
+ };
+ omniauth = {
+ dependencies = ["hashie" "rack"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1msqr4qq7mfdvl3rg89529isrv595hvjpj2gi0say4b8nwqfggmg";
+ type = "gem";
+ };
+ version = "1.8.1";
+ };
+ omniauth-oauth = {
+ dependencies = ["oauth" "omniauth"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1n5vk4by7hkyc09d9blrw2argry5awpw4gbw1l4n2s9b3j4qz037";
+ type = "gem";
+ };
+ version = "1.1.0";
+ };
+ omniauth-oauth2 = {
+ dependencies = ["oauth2" "omniauth"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0kscjf1y0lnggsl4z3w5bwllqshqjlsl5kmcya5haydajdnzvdjr";
+ type = "gem";
+ };
+ version = "1.5.0";
+ };
+ omniauth-tumblr = {
+ dependencies = ["multi_json" "omniauth-oauth"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "10ncmfym4l6k6aqp402g7mqxahbggcj5xkpsjxgngs746s82y97w";
+ type = "gem";
+ };
+ version = "1.2";
+ };
+ omniauth-twitter = {
+ dependencies = ["omniauth-oauth" "rack"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0r5j65hkpgzhvvbs90id3nfsjgsad6ymzggbm7zlaxvnrmvnrk65";
+ type = "gem";
+ };
+ version = "1.4.0";
+ };
+ omniauth-wordpress = {
+ dependencies = ["omniauth-oauth2"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "008zx4zwrbzyvlgv6hy68k1d05zskiwvcgwvxxbxhbl0mvlmh303";
+ type = "gem";
+ };
+ version = "0.2.2";
+ };
+ open_graph_reader = {
+ dependencies = ["faraday" "nokogiri"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0af4yldyb0d8zglw73s13pyn0g90gs4m5zf7bwy8r4kym9zbvc21";
+ type = "gem";
+ };
+ version = "0.6.2";
+ };
+ openid_connect = {
+ dependencies = ["activemodel" "attr_required" "json-jwt" "rack-oauth2" "swd" "tzinfo" "validate_email" "validate_url" "webfinger"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1r13bv18nyvw0g1nw3fzffvv2si99zj24w0k5zgawf4q6nn5f7vd";
+ type = "gem";
+ };
+ version = "1.1.6";
+ };
+ orm_adapter = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1fg9jpjlzf5y49qs9mlpdrgs5rpcyihq1s4k79nv9js0spjhnpda";
+ type = "gem";
+ };
+ version = "0.5.0";
+ };
+ parallel = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "01hj8v1qnyl5ndrs33g8ld8ibk0rbcqdpkpznr04gkbxd11pqn67";
+ type = "gem";
+ };
+ version = "1.12.1";
+ };
+ parser = {
+ dependencies = ["ast"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1zjk0w1kjj3xk8ymy1430aa4gg0k8ckphfj88br6il4pm83f0n1f";
+ type = "gem";
+ };
+ version = "2.5.3.0";
+ };
+ pg = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1pnjw3rspdfjssxyf42jnbsdlgri8ylysimp0s28wxb93k6ff2qb";
+ type = "gem";
+ };
+ version = "1.1.3";
+ };
+ phantomjs = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0y8pbbyq9dirxb7igkb2s5limz2895qmr41c09fjhx6k6fxcz4mk";
+ type = "gem";
+ };
+ version = "2.1.1.0";
+ };
+ poltergeist = {
+ dependencies = ["capybara" "cliver" "websocket-driver"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0il80p97psmhs6scl0grq031gv7kws4ylvvd6zyr8xv91qadga95";
+ type = "gem";
+ };
+ version = "1.18.1";
+ };
+ powerpack = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1r51d67wd467rpdfl6x43y84vwm8f5ql9l9m85ak1s2sp3nc5hyv";
+ type = "gem";
+ };
+ version = "0.1.2";
+ };
+ pronto = {
+ dependencies = ["gitlab" "httparty" "octokit" "rainbow" "rugged" "thor"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "13xbg1pm3kz5zbzxad5qgqnkzkp3ddajj7wxx16aqbfr7rqggvhz";
+ type = "gem";
+ };
+ version = "0.9.5";
+ };
+ pronto-eslint = {
+ dependencies = ["eslintrb" "pronto"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1cxyx6mlcdgv4ykliaizkx9cps68xf7qvy8lzxmv7pcqzkxaq7xc";
+ type = "gem";
+ };
+ version = "0.9.1";
+ };
+ pronto-haml = {
+ dependencies = ["haml_lint" "pronto"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "116iln1whwiqy55f86q33lnnic0awnqm415xvxwnhwlagcbwmnkg";
+ type = "gem";
+ };
+ version = "0.9.0";
+ };
+ pronto-rubocop = {
+ dependencies = ["pronto" "rubocop"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0bcm34qlpp02wf69why5lpi5p53h5r4fq36f4b1fwi621fwzlgsy";
+ type = "gem";
+ };
+ version = "0.9.1";
+ };
+ pronto-scss = {
+ dependencies = ["pronto" "scss_lint"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0kgaqd6l2w3brdsp5231fpfr6fwajciz2hdr925l1zhh6ni1y2za";
+ type = "gem";
+ };
+ version = "0.9.1";
+ };
+ pry = {
+ dependencies = ["coderay" "method_source"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "00rm71x0r1jdycwbs83lf9l6p494m99asakbvqxh8rz7zwnlzg69";
+ type = "gem";
+ };
+ version = "0.12.2";
+ };
+ pry-byebug = {
+ dependencies = ["byebug" "pry"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0y2758593i2ij0nhmv0j1pbdfx2cgi52ns6wkij0frgnk2lf650g";
+ type = "gem";
+ };
+ version = "3.6.0";
+ };
+ public_suffix = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "08q64b5br692dd3v0a9wq9q5dvycc6kmiqmjbdxkxbfizggsvx6l";
+ type = "gem";
+ };
+ version = "3.0.3";
+ };
+ raabro = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0xzdmbn48753f6k0ckirp8ja5p0xn1a92wbwxfyggyhj0hza9ylq";
+ type = "gem";
+ };
+ version = "1.1.6";
+ };
+ rack = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1pcgv8dv4vkaczzlix8q3j68capwhk420cddzijwqgi2qb4lm1zm";
+ type = "gem";
+ };
+ version = "2.0.6";
+ };
+ rack-cors = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1j27vy1bmhbqcyzhxg8d07qassmax769xjalfwcwz6qfiq8cf013";
+ type = "gem";
+ };
+ version = "1.0.2";
+ };
+ rack-google-analytics = {
+ dependencies = ["actionpack" "activesupport"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "09pv0z5dhjjrlhi9qj5qy48hi66f7iix337qrapg7mvwwz6czcvj";
+ type = "gem";
+ };
+ version = "1.2.0";
+ };
+ rack-mobile-detect = {
+ dependencies = ["rack"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0bagli6ldhkpd1yym775sxy7w5n4jds6gbcjm3gmcl37vggvm8a5";
+ type = "gem";
+ };
+ version = "0.4.0";
+ };
+ rack-oauth2 = {
+ dependencies = ["activesupport" "attr_required" "httpclient" "json-jwt" "rack"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0kmxj9hbjhhcs3yyb433s82hkpmzb536m0mwfadjiaisganx1cii";
+ type = "gem";
+ };
+ version = "1.9.3";
+ };
+ rack-piwik = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0raxrckapqh693lpid0cnx1j1v2i3mz5cyssg7grgrilgrn9318z";
+ type = "gem";
+ };
+ version = "0.3.0";
+ };
+ rack-protection = {
+ dependencies = ["rack"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0ylx74ravz7nvnyygq0nk3v86qdzrmqxpwpayhppyy50l72rcajq";
+ type = "gem";
+ };
+ version = "2.0.4";
+ };
+ rack-rewrite = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0milw71dv96wnc6i48vbzypws51dgf415kkp8c4air0mkdhpj838";
+ type = "gem";
+ };
+ version = "1.5.1";
+ };
+ rack-ssl = {
+ dependencies = ["rack"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0c21xqkjyl10fngq6dy8082vmn2png8cwkiyzv83ymixq5cx7ygp";
+ type = "gem";
+ };
+ version = "1.4.1";
+ };
+ rack-test = {
+ dependencies = ["rack"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0rh8h376mx71ci5yklnpqqn118z3bl67nnv5k801qaqn1zs62h8m";
+ type = "gem";
+ };
+ version = "1.1.0";
+ };
+ rails = {
+ dependencies = ["actioncable" "actionmailer" "actionpack" "actionview" "activejob" "activemodel" "activerecord" "activesupport" "railties" "sprockets-rails"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0lb07cbwgm371zyn9i6fyj9q8rmv89lacmyzrfvzxqqx2n3ilc5q";
+ type = "gem";
+ };
+ version = "5.1.6";
+ };
+ rails-assets-autosize = {
+ platforms = [];
+ source = {
+ remotes = ["https://rails-assets.org"];
+ sha256 = "0hr72mfprb9678lf7dj9lh801lm7p98nzkrnrz764sy9lmbpzcib";
+ type = "gem";
+ };
+ version = "4.0.2";
+ };
+ rails-assets-backbone = {
+ dependencies = ["rails-assets-underscore"];
+ platforms = [];
+ source = {
+ remotes = ["https://rails-assets.org"];
+ sha256 = "0zjgwhgfmg1jyyds7zfjp6g4bz8vw56qvhlrpj943wcqpdxm93id";
+ type = "gem";
+ };
+ version = "1.3.3";
+ };
+ rails-assets-blueimp-gallery = {
+ platforms = [];
+ source = {
+ remotes = ["https://rails-assets.org"];
+ sha256 = "18b7xvvkdnd39xlbkyw46i86w3wzj349s8iv5wdiypa5qdcql8mq";
+ type = "gem";
+ };
+ version = "2.33.0";
+ };
+ rails-assets-bootstrap = {
+ dependencies = ["rails-assets-jquery"];
+ platforms = [];
+ source = {
+ remotes = ["https://rails-assets.org"];
+ sha256 = "0x4i11132qcmghmqb061iq47yksrr7i0la5hzzdm38dxybh87x5v";
+ type = "gem";
+ };
+ version = "3.3.7";
+ };
+ rails-assets-bootstrap-markdown = {
+ dependencies = ["rails-assets-bootstrap"];
+ platforms = [];
+ source = {
+ remotes = ["https://rails-assets.org"];
+ sha256 = "1nxirs9wx5jxrjmxjwvsqlf2rsypjn3ajg7fs28c4ib7wwpabwj3";
+ type = "gem";
+ };
+ version = "2.10.0";
+ };
+ rails-assets-corejs-typeahead = {
+ dependencies = ["rails-assets-jquery"];
+ platforms = [];
+ source = {
+ remotes = ["https://rails-assets.org"];
+ sha256 = "1p5i6afd156rakrin99c2ryaz3zykx21ir6y10l34jnw03rikcfg";
+ type = "gem";
+ };
+ version = "1.2.1";
+ };
+ rails-assets-diaspora_jsxc = {
+ dependencies = ["rails-assets-emojione" "rails-assets-favico.js" "rails-assets-jquery-colorbox" "rails-assets-jquery-fullscreen-plugin" "rails-assets-jquery.slimscroll" "rails-assets-jquery.ui"];
+ platforms = [];
+ source = {
+ remotes = ["https://rails-assets.org"];
+ sha256 = "07vqdj0l8fsj4fd2sschba2jgfbimyfad56009ldzlcvb6ml5nhi";
+ type = "gem";
+ };
+ version = "0.1.5.develop.7";
+ };
+ rails-assets-emojione = {
+ platforms = [];
+ source = {
+ remotes = ["https://rails-assets.org"];
+ sha256 = "1j29vbsf6v9ikiqlmnfgzxys4xsa1glvmfky8id5xfyymnjx2c52";
+ type = "gem";
+ };
+ version = "2.0.1";
+ };
+ "rails-assets-favico.js" = {
+ platforms = [];
+ source = {
+ remotes = ["https://rails-assets.org"];
+ sha256 = "19yndhljmqlvarf49h5v71zq0p0ngvspjr2v0m6lac0q9ni7r5bv";
+ type = "gem";
+ };
+ version = "0.3.10";
+ };
+ rails-assets-fine-uploader = {
+ platforms = [];
+ source = {
+ remotes = ["https://rails-assets.org"];
+ sha256 = "1vxj78x2vvlchpapxpaawysc9wn8alzdd3gxhwfwy11xv8ka9mdv";
+ type = "gem";
+ };
+ version = "5.13.0";
+ };
+ rails-assets-highlightjs = {
+ platforms = [];
+ source = {
+ remotes = ["https://rails-assets.org"];
+ sha256 = "0spmb0gkfs13fmljjv1n53r53q69fhb6r573ndbxnhgb3izqgnqp";
+ type = "gem";
+ };
+ version = "9.12.0";
+ };
+ rails-assets-jasmine = {
+ platforms = [];
+ source = {
+ remotes = ["https://rails-assets.org"];
+ sha256 = "1n6yixrl9cgq5kckay75b44p878s1kqi69mhgyw99w8dsq8i2vy5";
+ type = "gem";
+ };
+ version = "3.3.0";
+ };
+ rails-assets-jasmine-ajax = {
+ dependencies = ["rails-assets-jasmine"];
+ platforms = [];
+ source = {
+ remotes = ["https://rails-assets.org"];
+ sha256 = "0l8z0p75x1yzk1l1ryfvdlvq8yq4w2xngp4icz478axd5jcqx6kg";
+ type = "gem";
+ };
+ version = "3.4.0";
+ };
+ rails-assets-jquery = {
+ platforms = [];
+ source = {
+ remotes = ["https://rails-assets.org"];
+ sha256 = "1wcaappk12w300733lrqb571cir9nw35d9q6d2i52wwdvhv2fx2y";
+ type = "gem";
+ };
+ version = "3.3.1";
+ };
+ rails-assets-jquery-colorbox = {
+ dependencies = ["rails-assets-jquery"];
+ platforms = [];
+ source = {
+ remotes = ["https://rails-assets.org"];
+ sha256 = "19ws3r1zfviwnfr9s0jh6iqss50iwqkf4a78zhrk0p3bb4lvmmsp";
+ type = "gem";
+ };
+ version = "1.6.4";
+ };
+ rails-assets-jquery-fullscreen-plugin = {
+ platforms = [];
+ source = {
+ remotes = ["https://rails-assets.org"];
+ sha256 = "0ldvq4s15lap9p6w7d1yw6dajn2gh6p75dbkp79p0d8ylzapsd58";
+ type = "gem";
+ };
+ version = "0.5.0";
+ };
+ rails-assets-jquery-placeholder = {
+ dependencies = ["rails-assets-jquery"];
+ platforms = [];
+ source = {
+ remotes = ["https://rails-assets.org"];
+ sha256 = "0h17gjazc27pj4cm2ig232ww4d4ppq9bcginwzjss95pl63richi";
+ type = "gem";
+ };
+ version = "2.3.1";
+ };
+ rails-assets-jquery-textchange = {
+ dependencies = ["rails-assets-jquery"];
+ platforms = [];
+ source = {
+ remotes = ["https://rails-assets.org"];
+ sha256 = "0rsw3cn9a5njv80zy53339kmrmv60b8fqcrr7bacapbagb2rd4dj";
+ type = "gem";
+ };
+ version = "0.2.3";
+ };
+ "rails-assets-jquery.are-you-sure" = {
+ dependencies = ["rails-assets-jquery"];
+ platforms = [];
+ source = {
+ remotes = ["https://rails-assets.org"];
+ sha256 = "0nj04aqh9jpcg57xbjxpm2vn7mkd5clnpma907515a1nxy40bym0";
+ type = "gem";
+ };
+ version = "1.9.0";
+ };
+ "rails-assets-jquery.slimscroll" = {
+ platforms = [];
+ source = {
+ remotes = ["https://rails-assets.org"];
+ sha256 = "1rymmd2rxy1vjjj70v88abmdlfs55276rs3rksj300dgirnnj998";
+ type = "gem";
+ };
+ version = "1.3.8";
+ };
+ "rails-assets-jquery.ui" = {
+ dependencies = ["rails-assets-jquery"];
+ platforms = [];
+ source = {
+ remotes = ["https://rails-assets.org"];
+ sha256 = "0xc9kfb29hi441irj49b7aawxkddk1dxzy938rpqv9ylpsj7knaa";
+ type = "gem";
+ };
+ version = "1.11.4";
+ };
+ rails-assets-markdown-it = {
+ platforms = [];
+ source = {
+ remotes = ["https://rails-assets.org"];
+ sha256 = "0fxx7ldszsdqr5ry21bnxmv33byz7abpk9lcp100q5cqsjx091r9";
+ type = "gem";
+ };
+ version = "8.4.2";
+ };
+ rails-assets-markdown-it--markdown-it-for-inline = {
+ platforms = [];
+ source = {
+ remotes = ["https://rails-assets.org"];
+ sha256 = "0fznv2x7ndadr3wb4dzhh86bpcpwz8f4d8rfhz4sfbqlai40j3jl";
+ type = "gem";
+ };
+ version = "0.1.1";
+ };
+ rails-assets-markdown-it-diaspora-mention = {
+ platforms = [];
+ source = {
+ remotes = ["https://rails-assets.org"];
+ sha256 = "0asggm7wgmdll8x94291p2w6icmp2izi914dlh3b7vb7dpjq3jig";
+ type = "gem";
+ };
+ version = "1.2.0";
+ };
+ rails-assets-markdown-it-hashtag = {
+ platforms = [];
+ source = {
+ remotes = ["https://rails-assets.org"];
+ sha256 = "0dr8fwaxgkfqm7z4rl4jdym0i1ycqw1sgkxshkd9k0849ry12cdk";
+ type = "gem";
+ };
+ version = "0.4.0";
+ };
+ rails-assets-markdown-it-sanitizer = {
+ platforms = [];
+ source = {
+ remotes = ["https://rails-assets.org"];
+ sha256 = "0fkpffh83fc257zkzaia93j4hw2baz90lg10s5yxsxww06q5dn36";
+ type = "gem";
+ };
+ version = "0.4.3";
+ };
+ rails-assets-markdown-it-sub = {
+ platforms = [];
+ source = {
+ remotes = ["https://rails-assets.org"];
+ sha256 = "08hjij5fqvhvg7s27n4g8qqsks974g3kc5k7xl2qmh41k7f4hcrk";
+ type = "gem";
+ };
+ version = "1.0.0";
+ };
+ rails-assets-markdown-it-sup = {
+ platforms = [];
+ source = {
+ remotes = ["https://rails-assets.org"];
+ sha256 = "17nnnvky7zy0yiwwl6dm8ibbkyvvf63xfp3snch4dzmras05lmig";
+ type = "gem";
+ };
+ version = "1.0.0";
+ };
+ rails-assets-underscore = {
+ platforms = [];
+ source = {
+ remotes = ["https://rails-assets.org"];
+ sha256 = "1ccnzj7aqrvngcs915y290pijryqmjygimdwlrykpyj8vwzifdnc";
+ type = "gem";
+ };
+ version = "1.9.1";
+ };
+ rails-assets-utatti-perfect-scrollbar = {
+ platforms = [];
+ source = {
+ remotes = ["https://rails-assets.org"];
+ sha256 = "0m8syfv8p5bnwm8nrba6mpjnhrd29ffwzi6awhiw537jqw42b12v";
+ type = "gem";
+ };
+ version = "1.4.0";
+ };
+ rails-controller-testing = {
+ dependencies = ["actionpack" "actionview" "activesupport"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "16kdkk73mhhs73iz3i1i0ryjm84dadiyh817b3nh8acdi490jyhy";
+ type = "gem";
+ };
+ version = "1.0.2";
+ };
+ rails-dom-testing = {
+ dependencies = ["activesupport" "nokogiri"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1lfq2a7kp2x64dzzi5p4cjcbiv62vxh9lyqk2f0rqq3fkzrw8h5i";
+ type = "gem";
+ };
+ version = "2.0.3";
+ };
+ rails-html-sanitizer = {
+ dependencies = ["loofah"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1gv7vr5d9g2xmgpjfq4nxsqr70r9pr042r9ycqqnfvw5cz9c7jwr";
+ type = "gem";
+ };
+ version = "1.0.4";
+ };
+ rails-i18n = {
+ dependencies = ["i18n" "railties"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "05lkhc737a9dw0hd5ljmja0yp4cw39r3200s1r0n4bs7z1g3ka7l";
+ type = "gem";
+ };
+ version = "5.1.2";
+ };
+ rails-timeago = {
+ dependencies = ["actionpack" "activesupport"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "01x1vs9hni9wn8dc4fmyqzkrn651chzsi2mhmk0pxdrfx9md0lxv";
+ type = "gem";
+ };
+ version = "2.16.0";
+ };
+ railties = {
+ dependencies = ["actionpack" "activesupport" "method_source" "rake" "thor"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0ycy2gdaj0px1vfaghskvl6qkczwaigrli2zxn54w7zn1z29faj8";
+ type = "gem";
+ };
+ version = "5.1.6";
+ };
+ rainbow = {
+ dependencies = ["rake"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "08w2ghc5nv0kcq5b257h7dwjzjz1pqcavajfdx2xjyxqsvh2y34w";
+ type = "gem";
+ };
+ version = "2.2.2";
+ };
+ raindrops = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1qpbd9jif40c53fz2r0l8khfl016y8s8bkx37ibcaafclbl3xygp";
+ type = "gem";
+ };
+ version = "0.19.0";
+ };
+ rake = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1idi53jay34ba9j68c3mfr9wwkg3cd9qh0fn9cg42hv72c6q8dyg";
+ type = "gem";
+ };
+ version = "12.3.1";
+ };
+ rb-fsevent = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1lm1k7wpz69jx7jrc92w3ggczkjyjbfziq5mg62vjnxmzs383xx8";
+ type = "gem";
+ };
+ version = "0.10.3";
+ };
+ rb-inotify = {
+ dependencies = ["ffi"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0yfsgw5n7pkpyky6a9wkf1g9jafxb0ja7gz0qw0y14fd2jnzfh71";
+ type = "gem";
+ };
+ version = "0.9.10";
+ };
+ redcarpet = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0h9qz2hik4s9knpmbwrzb3jcp3vc5vygp9ya8lcpl7f1l9khmcd7";
+ type = "gem";
+ };
+ version = "3.4.0";
+ };
+ redis = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0i415x8gi0c5vsiy6ikvx5js6fhc4x80a5lqv8iidy2iymd20irv";
+ type = "gem";
+ };
+ version = "3.3.5";
+ };
+ regexp_parser = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "18g5jyg3blsdrz3mc8d87bms6qqn6gcdh1nvdhvgbjdpk9pw21dq";
+ type = "gem";
+ };
+ version = "1.3.0";
+ };
+ request_store = {
+ dependencies = ["rack"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1963330z03fk382fi8y231ygcbnh86m91dqlp5rh1mwy9ihzzl6d";
+ type = "gem";
+ };
+ version = "1.4.1";
+ };
+ responders = {
+ dependencies = ["actionpack" "railties"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1rhdyyvvm26f2l3fgwdp6xasfl2y0whwgy766bhdwz697mf78zfn";
+ type = "gem";
+ };
+ version = "2.4.0";
+ };
+ rspec = {
+ dependencies = ["rspec-core" "rspec-expectations" "rspec-mocks"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "15ppasvb9qrscwlyjz67ppw1lnxiqnkzx5vkx1bd8x5n3dhikxc3";
+ type = "gem";
+ };
+ version = "3.8.0";
+ };
+ rspec-core = {
+ dependencies = ["rspec-support"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1p1s5bnbqp3sxk67y0fh0x884jjym527r0vgmhbm81w7aq6b7l4p";
+ type = "gem";
+ };
+ version = "3.8.0";
+ };
+ rspec-expectations = {
+ dependencies = ["diff-lcs" "rspec-support"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "18l21hy1zdc2pgc2yb17k3n2al1khpfr0z6pijlm852iz6vj0dkm";
+ type = "gem";
+ };
+ version = "3.8.2";
+ };
+ rspec-json_expectations = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0l3dhvkb95zwyg72wz33azxigc9cisqgg3z16ksns1sx0b93nnbn";
+ type = "gem";
+ };
+ version = "2.1.0";
+ };
+ rspec-mocks = {
+ dependencies = ["diff-lcs" "rspec-support"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "06y508cjqycb4yfhxmb3nxn0v9xqf17qbd46l1dh4xhncinr4fyp";
+ type = "gem";
+ };
+ version = "3.8.0";
+ };
+ rspec-rails = {
+ dependencies = ["actionpack" "activesupport" "railties" "rspec-core" "rspec-expectations" "rspec-mocks" "rspec-support"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0sqj5da2kc937j5jb18jcf0hrmmzwgj7pk62j0q3qndhc2kvx88p";
+ type = "gem";
+ };
+ version = "3.8.1";
+ };
+ rspec-support = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0p3m7drixrlhvj2zpc38b11x145bvm311x6f33jjcxmvcm0wq609";
+ type = "gem";
+ };
+ version = "3.8.0";
+ };
+ rubocop = {
+ dependencies = ["jaro_winkler" "parallel" "parser" "powerpack" "rainbow" "ruby-progressbar" "unicode-display_width"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1ivk049z3mp12nc6v1wn35bsq1g7nz1i2r4xwzqf0v25hm2v7n1i";
+ type = "gem";
+ };
+ version = "0.60.0";
+ };
+ ruby-oembed = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1kw4aplb3m13z3kchhb79wf87qb3prn1m99s6vl5cyp0xqwyymv0";
+ type = "gem";
+ };
+ version = "0.12.0";
+ };
+ ruby-progressbar = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1cv2ym3rl09svw8940ny67bav7b2db4ms39i4raaqzkf59jmhglk";
+ type = "gem";
+ };
+ version = "1.10.0";
+ };
+ ruby_dep = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1c1bkl97i9mkcvkn1jks346ksnvnnp84cs22gwl0vd7radybrgy5";
+ type = "gem";
+ };
+ version = "1.5.0";
+ };
+ rubyzip = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1n1lb2sdwh9h27y244hxzg1lrxxg2m53pk1vq7p33bna003qkyrj";
+ type = "gem";
+ };
+ version = "1.2.2";
+ };
+ rugged = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1jv4nw9hvlxp8hhhlllrfcznki82i50fp1sj65zsjllfl2bvz8x6";
+ type = "gem";
+ };
+ version = "0.27.5";
+ };
+ safe_yaml = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1hly915584hyi9q9vgd968x2nsi5yag9jyf5kq60lwzi5scr7094";
+ type = "gem";
+ };
+ version = "1.0.4";
+ };
+ sass = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0kfpcwh8dgw4lc81qglkvjl73689jy3g7196zkxm4fpskg1p5lkw";
+ type = "gem";
+ };
+ version = "3.4.25";
+ };
+ sass-rails = {
+ dependencies = ["railties" "sass" "sprockets" "sprockets-rails" "tilt"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1wa63sbsimrsf7nfm8h0m1wbsllkfxvd7naph5d1j6pbc555ma7s";
+ type = "gem";
+ };
+ version = "5.0.7";
+ };
+ sawyer = {
+ dependencies = ["addressable" "faraday"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0sv1463r7bqzvx4drqdmd36m7rrv6sf1v3c6vswpnq3k6vdw2dvd";
+ type = "gem";
+ };
+ version = "0.8.1";
+ };
+ scss_lint = {
+ dependencies = ["rake" "sass"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "11rl8kj32p34mqlkhxvlwfrwl8gdl0iha8q9xsrr3sjxjagzv8yp";
+ type = "gem";
+ };
+ version = "0.55.0";
+ };
+ secure_headers = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "17cxci8jyvlgssix0cy7kbm5m2h7s8ym9caj8nilrbd21jis9pc5";
+ type = "gem";
+ };
+ version = "6.0.0";
+ };
+ shellany = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1ryyzrj1kxmnpdzhlv4ys3dnl2r5r3d2rs2jwzbnd1v96a8pl4hf";
+ type = "gem";
+ };
+ version = "0.0.1";
+ };
+ shoulda-matchers = {
+ dependencies = ["activesupport"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1zvv94pqk5b5my3w1shdz7h34xf2ldhg5k4qfdpbwi2iy0j9zw2a";
+ type = "gem";
+ };
+ version = "3.1.2";
+ };
+ sidekiq = {
+ dependencies = ["connection_pool" "rack-protection" "redis"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1zyf9y3rvzizbwh68i2g1lzd40lalrdc4iyjmaa74gnfwsf92i26";
+ type = "gem";
+ };
+ version = "5.2.3";
+ };
+ sidekiq-cron = {
+ dependencies = ["fugit" "sidekiq"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1aliswahmpxn1ib2brn4126gk97ac3zdnwr71mn8vzbr3vdd7fl0";
+ type = "gem";
+ };
+ version = "1.0.4";
+ };
+ simple_captcha2 = {
+ dependencies = ["rails"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0vdjydym8sjpa8c1q0n2hanj3n9vzi4ycdw2p6bbm6qqmm1f3fq3";
+ type = "gem";
+ };
+ version = "0.4.3";
+ };
+ simple_oauth = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0dw9ii6m7wckml100xhjc6vxpjcry174lbi9jz5v7ibjr3i94y8l";
+ type = "gem";
+ };
+ version = "0.3.1";
+ };
+ simplecov = {
+ dependencies = ["docile" "json" "simplecov-html"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1sfyfgf7zrp2n42v7rswkqgk3bbwk1bnsphm24y7laxv3f8z0947";
+ type = "gem";
+ };
+ version = "0.16.1";
+ };
+ simplecov-html = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1lihraa4rgxk8wbfl77fy9sf0ypk31iivly8vl3w04srd7i0clzn";
+ type = "gem";
+ };
+ version = "0.10.2";
+ };
+ sinon-rails = {
+ dependencies = ["railties"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1b7996hb8vfky29b0zcql90x8i6vhdg2zy9nfzmhh820gjv3kggb";
+ type = "gem";
+ };
+ version = "1.15.0";
+ };
+ spring = {
+ dependencies = ["activesupport"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "168yz9c1fv21wc5i8q7n43b9nk33ivg3ws1fn6x0afgryz3ssx75";
+ type = "gem";
+ };
+ version = "2.0.2";
+ };
+ spring-commands-cucumber = {
+ dependencies = ["spring"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0mw81gvms2svn4k4pc6ly7smkmf0j9r2xbf0d38vygbyhiwd1c9a";
+ type = "gem";
+ };
+ version = "1.0.1";
+ };
+ spring-commands-rspec = {
+ dependencies = ["spring"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0b0svpq3md1pjz5drpa5pxwg8nk48wrshq8lckim4x3nli7ya0k2";
+ type = "gem";
+ };
+ version = "1.0.4";
+ };
+ sprockets = {
+ dependencies = ["concurrent-ruby" "rack"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "182jw5a0fbqah5w9jancvfmjbk88h8bxdbwnl4d3q809rpxdg8ay";
+ type = "gem";
+ };
+ version = "3.7.2";
+ };
+ sprockets-rails = {
+ dependencies = ["actionpack" "activesupport" "sprockets"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0ab42pm8p5zxpv3sfraq45b9lj39cz9mrpdirm30vywzrwwkm5p1";
+ type = "gem";
+ };
+ version = "3.2.1";
+ };
+ state_machines = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "00mi16hg3rhkxz4y58s173cbnjlba41y9bfcim90p4ja6yfj9ri3";
+ type = "gem";
+ };
+ version = "0.5.0";
+ };
+ string-direction = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0iyddwmkj425c6xbn5pmlr2yzwcq4snzlan7rky5b1yp2pvf70jj";
+ type = "gem";
+ };
+ version = "1.2.1";
+ };
+ swd = {
+ dependencies = ["activesupport" "attr_required" "httpclient"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1s2vjb6f13za7p1iycl2p73d3p202xa6xny9fjrp8ynwsqix7lyd";
+ type = "gem";
+ };
+ version = "1.1.2";
+ };
+ sysexits = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0qjng6pllznmprzx8vb0zg0c86hdrkyjs615q41s9fjpmv2430jr";
+ type = "gem";
+ };
+ version = "1.2.0";
+ };
+ systemu = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0gmkbakhfci5wnmbfx5i54f25j9zsvbw858yg3jjhfs5n4ad1xq1";
+ type = "gem";
+ };
+ version = "2.6.5";
+ };
+ temple = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "00nxf610nzi4n1i2lkby43nrnarvl89fcl6lg19406msr0k3ycmq";
+ type = "gem";
+ };
+ version = "0.8.0";
+ };
+ term-ansicolor = {
+ dependencies = ["tins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "079hbagd9mk0839rkajsdrbzkn992gj8ah2n45qd64v25ml27i6d";
+ type = "gem";
+ };
+ version = "1.7.0";
+ };
+ terminal-table = {
+ dependencies = ["unicode-display_width"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1512cngw35hsmhvw4c05rscihc59mnj09m249sm9p3pik831ydqk";
+ type = "gem";
+ };
+ version = "1.8.0";
+ };
+ thor = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "01n5dv9kql60m6a00zc0r66jvaxx98qhdny3klyj0p3w34pad2ns";
+ type = "gem";
+ };
+ version = "0.19.4";
+ };
+ thread_safe = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy";
+ type = "gem";
+ };
+ version = "0.3.6";
+ };
+ tilt = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0020mrgdf11q23hm1ddd6fv691l51vi10af00f137ilcdb2ycfra";
+ type = "gem";
+ };
+ version = "2.0.8";
+ };
+ timecop = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0d7mm786180v4kzvn1f77rhfppsg5n0sq2bdx63x9nv114zm8jrp";
+ type = "gem";
+ };
+ version = "0.9.1";
+ };
+ timers = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "04zbs9wyzajn7g9xfgg2zqz5kzf0qa7jgh4hgry4pfcxfmlnwdwx";
+ type = "gem";
+ };
+ version = "4.2.0";
+ };
+ tins = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1pqj45n216zrz7yckdbdknlmhh187iqzx8fp76y2h0jrgqjfkxmj";
+ type = "gem";
+ };
+ version = "1.20.2";
+ };
+ to_regexp = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1rgabfhnql6l4fx09mmj5d0vza924iczqf2blmn82l782b6qqi9v";
+ type = "gem";
+ };
+ version = "0.2.1";
+ };
+ turbo_dev_assets = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "08yp7gpishjfj8b7d61hxs677288ycv6yg78a7hfzn631gxczipx";
+ type = "gem";
+ };
+ version = "0.0.2";
+ };
+ twitter = {
+ dependencies = ["addressable" "buftok" "equalizer" "http" "http-form_data" "http_parser.rb" "memoizable" "multipart-post" "naught" "simple_oauth"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0fjyz3viabz3xs5d9aad18zgdbhfwm51jsnzigc8kxk77p1x58n5";
+ type = "gem";
+ };
+ version = "6.2.0";
+ };
+ twitter-text = {
+ dependencies = ["unf"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1732h7hy1k152w8wfvjsx7b79alk45i5imwd37ia4qcx8hfm3gvg";
+ type = "gem";
+ };
+ version = "1.14.7";
+ };
+ typhoeus = {
+ dependencies = ["ethon"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0cni8b1idcp0dk8kybmxydadhfpaj3lbs99w5kjibv8bsmip2zi5";
+ type = "gem";
+ };
+ version = "1.3.1";
+ };
+ tzinfo = {
+ dependencies = ["thread_safe"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1fjx9j327xpkkdlxwmkl3a8wqj7i4l4jwlrv3z13mg95z9wl253z";
+ type = "gem";
+ };
+ version = "1.2.5";
+ };
+ uglifier = {
+ dependencies = ["execjs"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1g203kly5wp4qlkc7371skyvyin6iinc8i0p5wrpiqgblqxxgcf1";
+ type = "gem";
+ };
+ version = "4.1.19";
+ };
+ unf = {
+ dependencies = ["unf_ext"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0bh2cf73i2ffh4fcpdn9ir4mhq8zi50ik0zqa1braahzadx536a9";
+ type = "gem";
+ };
+ version = "0.1.4";
+ };
+ unf_ext = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "06p1i6qhy34bpb8q8ms88y6f2kz86azwm098yvcc0nyqk9y729j1";
+ type = "gem";
+ };
+ version = "0.0.7.5";
+ };
+ unicode-display_width = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0040bsdpcmvp8w31lqi2s9s4p4h031zv52401qidmh25cgyh4a57";
+ type = "gem";
+ };
+ version = "1.4.0";
+ };
+ unicorn = {
+ dependencies = ["kgio" "raindrops"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1qfhvzs4i6ja1s43j8p1kfbzm10n7a02ngki30a38y5m46a2qrak";
+ type = "gem";
+ };
+ version = "5.4.1";
+ };
+ unicorn-worker-killer = {
+ dependencies = ["get_process_mem" "unicorn"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0rrdxpwdsapx47axjin8ymxb4f685qlpx8a26bql4ay1559c3gva";
+ type = "gem";
+ };
+ version = "0.4.4";
+ };
+ uuid = {
+ dependencies = ["macaddr"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1mr405vg4ccnndkyf7pb49gp1fha8i6gj7iwq43nxkak41cwzh5f";
+ type = "gem";
+ };
+ version = "2.3.9";
+ };
+ valid = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0vxrgik9gxyh5j2w16nz5azjk0cbzmvv883hq9pvxm9anfbbj8d3";
+ type = "gem";
+ };
+ version = "1.2.0";
+ };
+ validate_email = {
+ dependencies = ["activemodel" "mail"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1r1fz29l699arka177c9xw7409d1a3ff95bf7a6pmc97slb91zlx";
+ type = "gem";
+ };
+ version = "0.1.6";
+ };
+ validate_url = {
+ dependencies = ["activemodel" "addressable"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1df4gch8dizimpbl185vfgw95yb8ffr6zwj6whzbxfil95c3f2qh";
+ type = "gem";
+ };
+ version = "1.0.2";
+ };
+ versionist = {
+ dependencies = ["activesupport" "railties" "yard"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1p8wizg6jml7gz1qiqk7d77hy0w5650g812jhgd0zzkwwdmzm38m";
+ type = "gem";
+ };
+ version = "1.7.0";
+ };
+ warden = {
+ dependencies = ["rack"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1fr9n9i9r82xb6i61fdw4xgc7zjv7fsdrr4k0njchy87iw9fl454";
+ type = "gem";
+ };
+ version = "1.2.8";
+ };
+ webfinger = {
+ dependencies = ["activesupport" "httpclient"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0m0jh8k7c0ifh2jhbn7ihqrmn5fi754wflva97zgy70hpdvxyjar";
+ type = "gem";
+ };
+ version = "1.1.0";
+ };
+ webmock = {
+ dependencies = ["addressable" "crack" "hashdiff"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "03994dxs4xayvkxqp01dd1ivhg4xxx7z35f7cxw7y2mwj3xn24ib";
+ type = "gem";
+ };
+ version = "3.4.2";
+ };
+ websocket-driver = {
+ dependencies = ["websocket-extensions"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1943442yllhldh9dbp374x2q39cxa49xrm28nb78b7mfbv3y195l";
+ type = "gem";
+ };
+ version = "0.6.5";
+ };
+ websocket-extensions = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "034sdr7fd34yag5l6y156rkbhiqgmy395m231dwhlpcswhs6d270";
+ type = "gem";
+ };
+ version = "0.1.3";
+ };
+ will_paginate = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0ihf15yaj8883ddhkxq7q60zrg3zfsvqaf5853gybhcg18zq8bn9";
+ type = "gem";
+ };
+ version = "3.1.6";
+ };
+ xpath = {
+ dependencies = ["nokogiri"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0bh8lk9hvlpn7vmi6h4hkcwjzvs2y0cmkk3yjjdr8fxvj6fsgzbd";
+ type = "gem";
+ };
+ version = "3.2.0";
+ };
+ yard = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0lmmr1839qgbb3zxfa7jf5mzy17yjl1yirwlgzdhws4452gqhn67";
+ type = "gem";
+ };
+ version = "0.9.16";
+ };
+}
--- /dev/null
+{
+ actioncable = {
+ dependencies = ["actionpack" "nio4r" "websocket-driver"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "07r6hnh05db84yr9419mbhyzp20hr8yy9m50jxc2w91ghm2qnrrf";
+ type = "gem";
+ };
+ version = "5.1.6";
+ };
+ actionmailer = {
+ dependencies = ["actionpack" "actionview" "activejob" "mail" "rails-dom-testing"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1s9xcqfx97q4yva2zc4qzb567mwzhry6v3x3zc318aqhcrz31g7c";
+ type = "gem";
+ };
+ version = "5.1.6";
+ };
+ actionpack = {
+ dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0vz2ms80nqw21c304g3w2vkbs80gadzhi3mcwwym7smxccr37kcd";
+ type = "gem";
+ };
+ version = "5.1.6";
+ };
+ actionview = {
+ dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1kfxlz9v7b47pdyy1whb4zzhvaj8h4sp1ajhbih2ax1hkldyg081";
+ type = "gem";
+ };
+ version = "5.1.6";
+ };
+ active_model_serializers = {
+ dependencies = ["activemodel" "concurrent-ruby"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "19zr5pp84q4ya7mfrcanakjv86lv4wfmbcbbd2xnd4bkyprw5w7z";
+ type = "gem";
+ };
+ version = "0.9.7";
+ };
+ activejob = {
+ dependencies = ["activesupport" "globalid"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "02lssq8ps98mfg20dyhcpd16f9c0v4zzy7gfbb6ksbs06wrrd4d2";
+ type = "gem";
+ };
+ version = "5.1.6";
+ };
+ activemodel = {
+ dependencies = ["activesupport"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "10f8cpv4sl1w3m1qj8hl6sd2f1n7x91h45qaf57qr894ll22jgby";
+ type = "gem";
+ };
+ version = "5.1.6";
+ };
+ activerecord = {
+ dependencies = ["activemodel" "activesupport" "arel"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1iqkvxzx5bfp8rmlccww0cj1xr6iaxmn3hhbj1dv5j9c8mnm980x";
+ type = "gem";
+ };
+ version = "5.1.6";
+ };
+ activerecord-import = {
+ dependencies = ["activerecord"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1bxpbrcwc9k6khizwdikvfbhw9pcvs4sp3h4grpcww5k7bgpliz6";
+ type = "gem";
+ };
+ version = "0.27.0";
+ };
+ activesupport = {
+ dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "08dm0mgmj31ggk7ib66wfagj4bgbr2jfl500bqb22x0szslz5lll";
+ type = "gem";
+ };
+ version = "5.1.6";
+ };
+ acts-as-taggable-on = {
+ dependencies = ["activerecord"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0hl52pjgfzy3acdwnbxfqy08m808vlv9dmsyp03d5x7x0y499kvl";
+ type = "gem";
+ };
+ version = "6.0.0";
+ };
+ acts_as_api = {
+ dependencies = ["activemodel" "activesupport" "rack"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "06miad13nnfr2gslc203ahsbvj499s9lngxxvfizwp964vglygsc";
+ type = "gem";
+ };
+ version = "1.0.1";
+ };
+ addressable = {
+ dependencies = ["public_suffix"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0viqszpkggqi8hq87pqp0xykhvz60g99nwmkwsb0v45kc2liwxvk";
+ type = "gem";
+ };
+ version = "2.5.2";
+ };
+ aes_key_wrap = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0li86k0g812jkzrppb2fvqngvzp09nygywjpn81nx90s01wxqw07";
+ type = "gem";
+ };
+ version = "1.0.1";
+ };
+ arel = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0nw0qbc6ph625p6n3maqq9f527vz3nbl0hk72fbyka8jzsmplxzl";
+ type = "gem";
+ };
+ version = "8.0.0";
+ };
+ asset_sync = {
+ dependencies = ["activemodel" "fog-core" "mime-types" "unf"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0mfz51g8rzk5h5fpdhfkycnm7y4dpfhx46wm7fygna7nd4w9ixdx";
+ type = "gem";
+ };
+ version = "2.5.0";
+ };
+ ast = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "184ssy3w93nkajlz2c70ifm79jp3j737294kbc5fjw69v1w0n9x7";
+ type = "gem";
+ };
+ version = "2.4.0";
+ };
+ attr_required = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1g22axmi2rhhy7w8c3x6gppsawxqavbrnxpnmphh22fk7cwi0kh2";
+ type = "gem";
+ };
+ version = "1.0.1";
+ };
+ autoprefixer-rails = {
+ dependencies = ["execjs"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "08irrl1mz6skagr1lygq79l34lc0dghgva0v9q7nng76dpiglgj3";
+ type = "gem";
+ };
+ version = "8.6.5";
+ };
+ backports = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1hshjxww2h7s0dk57njrygq4zpp0nlqrjfya7zwm27iq3rhc3y8g";
+ type = "gem";
+ };
+ version = "3.11.4";
+ };
+ bcrypt = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0ysblqxkclmnhrd0kmb5mr8p38mbar633gdsb14b7dhkhgawgzfy";
+ type = "gem";
+ };
+ version = "3.1.12";
+ };
+ bindata = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0kz42nvxnk1j9cj0i8lcnhprcgdqsqska92g6l19ziadydfk2gqy";
+ type = "gem";
+ };
+ version = "2.4.4";
+ };
+ bootstrap-sass = {
+ dependencies = ["autoprefixer-rails" "sass"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1bc9bf6caddqn1rv15b5x56yczmbjzaxzl9lk5zbwrg1bfph4bx9";
+ type = "gem";
+ };
+ version = "3.3.7";
+ };
+ bootstrap-switch-rails = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1zkwc1hfmihnm0n9lkva5zk0cmqpfcpnrwnmaniyvgx7rac2r14l";
+ type = "gem";
+ };
+ version = "3.3.3";
+ };
+ buftok = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1rzsy1vy50v55x9z0nivf23y0r9jkmq6i130xa75pq9i8qrn1mxs";
+ type = "gem";
+ };
+ version = "0.2.0";
+ };
+ builder = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0qibi5s67lpdv1wgcj66wcymcr04q6j4mzws6a479n0mlrmh5wr1";
+ type = "gem";
+ };
+ version = "3.2.3";
+ };
+ byebug = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "10znc1hjv8n686hhpl08f3m2g6h08a4b83nxblqwy2kqamkxcqf8";
+ type = "gem";
+ };
+ version = "10.0.2";
+ };
+ capybara = {
+ dependencies = ["addressable" "mini_mime" "nokogiri" "rack" "rack-test" "regexp_parser" "xpath"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "10zj8syak12xd1kqywr35bkr2hkdjq18kij54x1ys8c26h6j4d0m";
+ type = "gem";
+ };
+ version = "3.11.1";
+ };
+ carrierwave = {
+ dependencies = ["activemodel" "activesupport" "mime-types"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1k9kla5ncygm97vn33lsrs7ch5zy4qqhhvc8m3khm986yaqh75qs";
+ type = "gem";
+ };
+ version = "1.2.3";
+ };
+ celluloid = {
+ dependencies = ["celluloid-essentials" "celluloid-extras" "celluloid-fsm" "celluloid-pool" "celluloid-supervision" "timers"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "10i29q7kkdlrhf5rg43xygdfm795a02vp28k2ca3nklmqna57qmg";
+ type = "gem";
+ };
+ version = "0.17.3";
+ };
+ celluloid-essentials = {
+ dependencies = ["timers"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1l4p3p73wjdj07ww124q0db5k1cyzggbndzmcb12xbsf2dnj121k";
+ type = "gem";
+ };
+ version = "0.20.5";
+ };
+ celluloid-extras = {
+ dependencies = ["timers"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "078agvnsfp78jv343kn5g1cz50147dk0q46blwh5r8lk6whag7ng";
+ type = "gem";
+ };
+ version = "0.20.5";
+ };
+ celluloid-fsm = {
+ dependencies = ["timers"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1pmpi6h4abpkczp46rd6llk1mldpx19i9hll8mkxp3kxin9slivc";
+ type = "gem";
+ };
+ version = "0.20.5";
+ };
+ celluloid-io = {
+ dependencies = ["celluloid" "nio4r" "timers"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1frcpja7h9vcxsw7w7ff550x54rfx514fpv2n6kawbk1j4zrm314";
+ type = "gem";
+ };
+ version = "0.17.3";
+ };
+ celluloid-pool = {
+ dependencies = ["timers"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1bfr54ijl95bnhqlabhf5p4ff9n0y2sslc91f49jjn33n2zm755c";
+ type = "gem";
+ };
+ version = "0.20.5";
+ };
+ celluloid-supervision = {
+ dependencies = ["timers"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1b41gg1rsmms0m5mshy6h66y5rydl3nv6x9wf050ixfa1s2c8vzw";
+ type = "gem";
+ };
+ version = "0.20.6";
+ };
+ chunky_png = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "05g2xli9wbjylkmblln3bhvjalziwb92q452q8ibjagmb853424w";
+ type = "gem";
+ };
+ version = "1.3.10";
+ };
+ cliver = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "096f4rj7virwvqxhkavy0v55rax10r4jqf8cymbvn4n631948xc7";
+ type = "gem";
+ };
+ version = "0.3.2";
+ };
+ coderay = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "15vav4bhcc2x3jmi3izb11l4d9f3xv8hp2fszb7iqmpsccv1pz4y";
+ type = "gem";
+ };
+ version = "1.1.2";
+ };
+ compass = {
+ dependencies = ["chunky_png" "compass-core" "compass-import-once" "rb-fsevent" "rb-inotify" "sass"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0lfi83w8z75czr0pf0rmj9hda22082h3cmvczl8r1ma9agf88y2c";
+ type = "gem";
+ };
+ version = "1.0.3";
+ };
+ compass-core = {
+ dependencies = ["multi_json" "sass"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0yaspqwdmzwdcqviclbs3blq7an16pysrfzylz8q1gxmmd6bpj3a";
+ type = "gem";
+ };
+ version = "1.0.3";
+ };
+ compass-import-once = {
+ dependencies = ["sass"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0bn7gwbfz7jvvdd0qdfqlx67fcb83gyvxqc7dr9fhcnks3z8z5rq";
+ type = "gem";
+ };
+ version = "1.0.5";
+ };
+ compass-rails = {
+ dependencies = ["compass" "sass-rails" "sprockets"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "02ydlbl1qb80myjv5xrpwzhmmj6qd80jf5izvpqhq2bikv84j9wr";
+ type = "gem";
+ };
+ version = "3.1.0";
+ };
+ concurrent-ruby = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "18q9skp5pfq4jwbxzmw8q2rn4cpw6mf4561i2hsjcl1nxdag2jvb";
+ type = "gem";
+ };
+ version = "1.1.3";
+ };
+ configurate = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1m6cppb4jf7liwc3f5dvgn2v2nhp2jq8ixb9papaqz24f4s8dnd1";
+ type = "gem";
+ };
+ version = "0.3.1";
+ };
+ connection_pool = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0lflx29mlznf1hn0nihkgllzbj8xp5qasn8j7h838465pi399k68";
+ type = "gem";
+ };
+ version = "2.2.2";
+ };
+ coveralls = {
+ dependencies = ["json" "simplecov" "term-ansicolor" "thor" "tins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "022kc16np6w4mv17hq3m9hhw9l8hjl78ld3fzqqx6337vwvwvwcg";
+ type = "gem";
+ };
+ version = "0.8.22";
+ };
+ crack = {
+ dependencies = ["safe_yaml"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0abb0fvgw00akyik1zxnq7yv391va148151qxdghnzngv66bl62k";
+ type = "gem";
+ };
+ version = "0.4.3";
+ };
+ crass = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0bpxzy6gjw9ggjynlxschbfsgmx8lv3zw1azkjvnb8b9i895dqfi";
+ type = "gem";
+ };
+ version = "1.0.4";
+ };
+ cucumber = {
+ dependencies = ["builder" "cucumber-core" "cucumber-expressions" "cucumber-wire" "diff-lcs" "gherkin" "multi_json" "multi_test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1s2brssrpal8hyhcgg974x3xyhpmvpwps5ypd9p8w2lg01l1pp3j";
+ type = "gem";
+ };
+ version = "3.1.2";
+ };
+ cucumber-api-steps = {
+ dependencies = ["cucumber" "jsonpath"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0fij6bgzshda68jp7kac0hs5n6xsmv49g8ynqhy6s3znc9d4qjbw";
+ type = "gem";
+ };
+ version = "0.14.0";
+ };
+ cucumber-core = {
+ dependencies = ["backports" "cucumber-tag_expressions" "gherkin"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1iavlh8hqj9lwljbpkw06259gdicbr1bdb6pbj5yy3n8szgr8k3c";
+ type = "gem";
+ };
+ version = "3.2.1";
+ };
+ cucumber-expressions = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0zwmv6hznyz9vk81f5dhwcr9jhxx2vmbk8yyazayvllvhy0fkpdw";
+ type = "gem";
+ };
+ version = "6.0.1";
+ };
+ cucumber-rails = {
+ dependencies = ["capybara" "cucumber" "mime-types" "nokogiri" "railties"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0pmlza6r2601k1i7v3z8gj4apdcq6qa830bzwkj1pnfjzn4z12n7";
+ type = "gem";
+ };
+ version = "1.6.0";
+ };
+ cucumber-tag_expressions = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0cvmbljybws0qzjs1l67fvr9gqr005l8jk1ni5gcsis9pfmqh3vc";
+ type = "gem";
+ };
+ version = "1.1.1";
+ };
+ cucumber-wire = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "09ymvqb0sbw2if1nxg8rcj33sf0va88ancq5nmp8g01dfwzwma2f";
+ type = "gem";
+ };
+ version = "0.0.1";
+ };
+ database_cleaner = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "05i0nf2aj70m61y3fspypdkc6d1qgibf5kav05a71b5gjz0k7y5x";
+ type = "gem";
+ };
+ version = "1.7.0";
+ };
+ devise = {
+ dependencies = ["bcrypt" "orm_adapter" "railties" "responders" "warden"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1vs8nibl568ghm6a7hbw6xgcv8zbm4gykprcxpnzi7bz5d4gvcjx";
+ type = "gem";
+ };
+ version = "4.5.0";
+ };
+ devise_lastseenable = {
+ dependencies = ["devise" "rails"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1h83h73qjh8fc7lmr089shky8lc3wm4xn653rjdbb0cddflvrx8y";
+ type = "gem";
+ };
+ version = "0.0.6";
+ };
+ diaspora-prosody-config = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1976ijqjf5jcq1jwr6vi0srjadhbqfa9y3nxyipzcv91pzskl2lp";
+ type = "gem";
+ };
+ version = "0.0.7";
+ };
+ diaspora_federation = {
+ dependencies = ["faraday" "faraday_middleware" "nokogiri" "typhoeus" "valid"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1xxy6ahlhgyr00qkfmmq0h3nqm6gjkr9i6hsqr0nkb3l6qg0m0yc";
+ type = "gem";
+ };
+ version = "0.2.5";
+ };
+ diaspora_federation-json_schema = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0hfv4cq5wfdg86xmbp5y0h50b11326ymzks1yr9dvr4wa7di00hr";
+ type = "gem";
+ };
+ version = "0.2.5";
+ };
+ diaspora_federation-rails = {
+ dependencies = ["actionpack" "diaspora_federation"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1wrni7d9084v3pqd3sq8j532wx5ym6kmd959bw29bzwxc3zidd9h";
+ type = "gem";
+ };
+ version = "0.2.5";
+ };
+ diaspora_federation-test = {
+ dependencies = ["diaspora_federation" "fabrication" "uuid"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1b09y78pyl9kix8slbybnks2cbq0ac9wml31j2s6qwjixranjsm4";
+ type = "gem";
+ };
+ version = "0.2.5";
+ };
+ diff-lcs = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "18w22bjz424gzafv6nzv98h0aqkwz3d9xhm7cbr1wfbyas8zayza";
+ type = "gem";
+ };
+ version = "1.3";
+ };
+ docile = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "04d2izkna3ahfn6fwq4xrcafa715d3bbqczxm16fq40fqy87xn17";
+ type = "gem";
+ };
+ version = "1.3.1";
+ };
+ domain_name = {
+ dependencies = ["unf"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0abdlwb64ns7ssmiqhdwgl27ly40x2l27l8hs8hn0z4kb3zd2x3v";
+ type = "gem";
+ };
+ version = "0.5.20180417";
+ };
+ entypo-rails = {
+ dependencies = ["railties"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "124x0jszg6n0k2lcacd627ndlp1fv7cbgnv4scwy5s3czp0qwip6";
+ type = "gem";
+ };
+ version = "3.0.0";
+ };
+ equalizer = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1kjmx3fygx8njxfrwcmn7clfhjhb6bvv3scy2lyyi0wqyi3brra4";
+ type = "gem";
+ };
+ version = "0.0.11";
+ };
+ erubi = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0bws86na9k565raiz0kk61yy5pxxp0fmwyzpibdwjkq0xzx8q6q1";
+ type = "gem";
+ };
+ version = "1.7.1";
+ };
+ eslintrb = {
+ dependencies = ["execjs" "multi_json" "rake"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0kx9sbs7pnl436zyczylnqqb1858hffy66fwdqfmcn18q8xdqwkx";
+ type = "gem";
+ };
+ version = "2.1.0";
+ };
+ et-orbi = {
+ dependencies = ["tzinfo"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0wk7i0bmsy46la8gcvbmdns0ni8lmdqas838phj97bdwykxw8m4b";
+ type = "gem";
+ };
+ version = "1.1.6";
+ };
+ ethon = {
+ dependencies = ["ffi"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0y70szwm2p0b9qfvpqrzjrgm3jz0ig65vlbfr6ppc3z0m1h7kv48";
+ type = "gem";
+ };
+ version = "0.11.0";
+ };
+ excon = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "15l9w0938c19nxmrp09n75qpmm64k12xj69h47yvxzcxcpbgnkb2";
+ type = "gem";
+ };
+ version = "0.62.0";
+ };
+ execjs = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1yz55sf2nd3l666ms6xr18sm2aggcvmb8qr3v53lr4rir32y1yp1";
+ type = "gem";
+ };
+ version = "2.7.0";
+ };
+ eye = {
+ dependencies = ["celluloid" "celluloid-io" "kostya-sigar" "state_machines" "thor"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0gqrrrisy492m6sczq775dyg9sxkl926r8lkr6z33kfb4cnimfzk";
+ type = "gem";
+ };
+ version = "0.10.0";
+ };
+ fabrication = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0an28kjand4mjbkmnwd9fmgq3y5vf717zpmiijavar3sxqj52zri";
+ type = "gem";
+ };
+ version = "2.20.1";
+ };
+ factory_girl = {
+ dependencies = ["activesupport"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0cc60v28r7w1gp34p4amzdnq7cyip6qhffvxywsj3ypilyf8jqla";
+ type = "gem";
+ };
+ version = "4.8.0";
+ };
+ factory_girl_rails = {
+ dependencies = ["factory_girl" "railties"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0hw8qqp30vm4yf4a36r1r65wk78ihxmas7jg5fyl6fcf705z9fvv";
+ type = "gem";
+ };
+ version = "4.8.0";
+ };
+ faraday = {
+ dependencies = ["multipart-post"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "16hwxc8v0z6gkanckjhx0ffgqmzpc4ywz4dfhxpjlz2mbz8d5m52";
+ type = "gem";
+ };
+ version = "0.15.3";
+ };
+ faraday-cookie_jar = {
+ dependencies = ["faraday" "http-cookie"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1di4gx6446a6zdkrpj679m5k515i53wvb4yxcsqvy8d8zacxiiv6";
+ type = "gem";
+ };
+ version = "0.0.6";
+ };
+ faraday_middleware = {
+ dependencies = ["faraday"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1p7icfl28nvl8qqdsngryz1snqic9l8x6bk0dxd7ygn230y0k41d";
+ type = "gem";
+ };
+ version = "0.12.2";
+ };
+ ffi = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0jpm2dis1j7zvvy3lg7axz9jml316zrn7s0j59vyq3qr127z0m7q";
+ type = "gem";
+ };
+ version = "1.9.25";
+ };
+ fixture_builder = {
+ dependencies = ["activerecord" "activesupport" "hashdiff"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1qlq0nyfhjvz09hm0jankl9bgs9672k31b3lmsfq8p135x3xs627";
+ type = "gem";
+ };
+ version = "0.5.2.rc3";
+ };
+ fog-aws = {
+ dependencies = ["fog-core" "fog-json" "fog-xml" "ipaddress"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1zprxg0spvkkri1jf40zg3rfr5h2gq6009d7l36lifpvhjn658cs";
+ type = "gem";
+ };
+ version = "3.3.0";
+ };
+ fog-core = {
+ dependencies = ["builder" "excon" "formatador" "mime-types"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1fsama04wlxhv537bm4b7rr4zzn0mvisy87m3qzv6f0mhlrq3zp8";
+ type = "gem";
+ };
+ version = "2.1.2";
+ };
+ fog-json = {
+ dependencies = ["fog-core" "multi_json"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1zj8llzc119zafbmfa4ai3z5s7c4vp9akfs0f9l2piyvcarmlkyx";
+ type = "gem";
+ };
+ version = "1.2.0";
+ };
+ fog-xml = {
+ dependencies = ["fog-core" "nokogiri"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "043lwdw2wsi6d55ifk0w3izi5l1d1h0alwyr3fixic7b94kc812n";
+ type = "gem";
+ };
+ version = "0.1.3";
+ };
+ formatador = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1gc26phrwlmlqrmz4bagq1wd5b7g64avpx0ghxr9xdxcvmlii0l0";
+ type = "gem";
+ };
+ version = "0.2.5";
+ };
+ fugit = {
+ dependencies = ["et-orbi" "raabro"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1szijawzdii668z5is9xi849399gy786951dx0l5r2z5mbfqvl9i";
+ type = "gem";
+ };
+ version = "1.1.6";
+ };
+ fuubar = {
+ dependencies = ["rspec-core" "ruby-progressbar"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1sqkr1nh49rlm86l3qyrgsdqavgqii4pnrjn7855z6dfavh3spxr";
+ type = "gem";
+ };
+ version = "2.3.2";
+ };
+ get_process_mem = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1bvfjdign16r0zwm2rlfrq0sk1licvmlgbnlpnyckniv5r7i080g";
+ type = "gem";
+ };
+ version = "0.2.3";
+ };
+ gherkin = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1cgcdchwwdm10rsk44frjwqd4ihprhxjbm799nscqy2q1raqfj5s";
+ type = "gem";
+ };
+ version = "5.1.0";
+ };
+ gitlab = {
+ dependencies = ["httparty" "terminal-table"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1nncjmk71ivjxmgkpv100yybry5c7ld6xjgi1b5zsfv4g3mz0v34";
+ type = "gem";
+ };
+ version = "4.7.0";
+ };
+ globalid = {
+ dependencies = ["activesupport"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "02smrgdi11kziqi9zhnsy9i6yr2fnxrqlv3lllsvdjki3cd4is38";
+ type = "gem";
+ };
+ version = "0.4.1";
+ };
+ gon = {
+ dependencies = ["actionpack" "multi_json" "request_store"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "07sm7fd94pfscrbs4lyprs0das8s1yn32cw521ch738jaqb388xl";
+ type = "gem";
+ };
+ version = "6.2.1";
+ };
+ guard = {
+ dependencies = ["formatador" "listen" "lumberjack" "nenv" "notiffany" "pry" "shellany" "thor"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0h84ja6qvii3hx86w9l4vjpbgl4m8ma8fbawwp7s8l791cgkdcmk";
+ type = "gem";
+ };
+ version = "2.15.0";
+ };
+ guard-compat = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1zj6sr1k8w59mmi27rsii0v8xyy2rnsi09nqvwpgj1q10yq1mlis";
+ type = "gem";
+ };
+ version = "1.2.1";
+ };
+ guard-rspec = {
+ dependencies = ["guard" "guard-compat" "rspec"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1jkm5xp90gm4c5s51pmf92i9hc10gslwwic6mvk72g0yplya0yx4";
+ type = "gem";
+ };
+ version = "4.7.3";
+ };
+ guard-rubocop = {
+ dependencies = ["guard" "rubocop"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1p97zkzasghl1md13rh57n3s2rr2kqly8w4vfn6vaj89igjpagdp";
+ type = "gem";
+ };
+ version = "1.3.0";
+ };
+ haml = {
+ dependencies = ["temple" "tilt"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1q0a9fvqh8kn6wm97fcks6qzbjd400bv8bx748w8v87m7p4klhac";
+ type = "gem";
+ };
+ version = "5.0.4";
+ };
+ haml_lint = {
+ dependencies = ["haml" "rainbow" "rake" "rubocop" "sysexits"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "125aj0j84nx5gqm42hfx5d8486higlra423ahgfpsdjwbp399rwv";
+ type = "gem";
+ };
+ version = "0.28.0";
+ };
+ hamlit = {
+ dependencies = ["temple" "thor" "tilt"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "14fsc208qsf46cflk23vs2fdw435dk65fwv55zhziciwn96ld8sf";
+ type = "gem";
+ };
+ version = "2.9.1";
+ };
+ handlebars_assets = {
+ dependencies = ["execjs" "sprockets" "tilt"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "18pyksz4jb0n28acqxv14ahy8mkc9ldqbbn73gcj28m0l9wjzsca";
+ type = "gem";
+ };
+ version = "0.23.2";
+ };
+ hashdiff = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0yj5l2rw8i8jc725hbcpc4wks0qlaaimr3dpaqamfjkjkxl0hjp9";
+ type = "gem";
+ };
+ version = "0.3.7";
+ };
+ hashie = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1hh5lybf8hm7d7xs4xm8hxvm8xqrs2flc8fnwkrclaj746izw6xb";
+ type = "gem";
+ };
+ version = "3.5.7";
+ };
+ http = {
+ dependencies = ["addressable" "http-cookie" "http-form_data" "http_parser.rb"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1jlm5prw437wqpfxcigh88lfap3m7g8mnmj5as7qw6dzqnvrxwmc";
+ type = "gem";
+ };
+ version = "3.3.0";
+ };
+ http-cookie = {
+ dependencies = ["domain_name"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "004cgs4xg5n6byjs7qld0xhsjq3n6ydfh897myr2mibvh6fjc49g";
+ type = "gem";
+ };
+ version = "1.0.3";
+ };
+ http-form_data = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "15lpn604byf7cyxnw949xz4rvpcknqp7a48q73nm630gqxsa76f3";
+ type = "gem";
+ };
+ version = "2.1.1";
+ };
+ http_accept_language = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0d0nlfz9vm4jr1l6q0chx4rp2hrnrfbx3gadc1dz930lbbaz0hq0";
+ type = "gem";
+ };
+ version = "2.1.1";
+ };
+ "http_parser.rb" = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "15nidriy0v5yqfjsgsra51wmknxci2n2grliz78sf9pga3n0l7gi";
+ type = "gem";
+ };
+ version = "0.6.0";
+ };
+ httparty = {
+ dependencies = ["mime-types" "multi_xml"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1xmm7pxmz3pblkdr76dg7qm5s60kpp3yvh46c2i0bn1dm0zgl730";
+ type = "gem";
+ };
+ version = "0.16.3";
+ };
+ httpclient = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "19mxmvghp7ki3klsxwrlwr431li7hm1lczhhj8z4qihl2acy8l99";
+ type = "gem";
+ };
+ version = "2.8.3";
+ };
+ i18n = {
+ dependencies = ["concurrent-ruby"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1gcp1m1p6dpasycfz2sj82ci9ggz7lsskz9c9q6gvfwxrl8y9dx7";
+ type = "gem";
+ };
+ version = "1.1.1";
+ };
+ i18n-inflector = {
+ dependencies = ["i18n"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "081jr7z947aqjfmpbfs10w9jxi205jwgk4mgd8jds1b4m4i8mc7g";
+ type = "gem";
+ };
+ version = "2.6.7";
+ };
+ i18n-inflector-rails = {
+ dependencies = ["actionpack" "i18n-inflector" "railties"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0c04jm657akp5n14syhcwnn3hnsvx7harvg97768bvf3f9a37hyk";
+ type = "gem";
+ };
+ version = "1.0.7";
+ };
+ ipaddress = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1x86s0s11w202j6ka40jbmywkrx8fhq8xiy8mwvnkhllj57hqr45";
+ type = "gem";
+ };
+ version = "0.8.3";
+ };
+ jaro_winkler = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0rr797nqz081bfk30m2apj5h24bg5d1jr1c8p3xwx4hbwsrbclah";
+ type = "gem";
+ };
+ version = "1.5.1";
+ };
+ jasmine = {
+ dependencies = ["jasmine-core" "phantomjs" "rack" "rake"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1xfwf163wi5a9i0vlm564cqi6k30h15wnrwd15ph95jfa5516kv1";
+ type = "gem";
+ };
+ version = "3.3.0";
+ };
+ jasmine-core = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1b12bjfrxvb8mwjwlfyngykd80lz956glcpfz7rhhw7n75b2rdlv";
+ type = "gem";
+ };
+ version = "3.3.0";
+ };
+ jasmine-jquery-rails = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0cq5zd4ng5dlza45whd6sa7bzd60rlddk9760271mybdqyd96jlv";
+ type = "gem";
+ };
+ version = "2.0.3";
+ };
+ jquery-rails = {
+ dependencies = ["rails-dom-testing" "railties" "thor"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "17201sb8ddwy4yprizmqabq1kfx3m9c53p0yqngn63m07jjcpnh8";
+ type = "gem";
+ };
+ version = "4.3.3";
+ };
+ js-routes = {
+ dependencies = ["railties" "sprockets-rails"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "14yx3jrd4sgcwgj8yrrqdwl691mci1hcjqyyvp0v15jbzis1bclm";
+ type = "gem";
+ };
+ version = "1.4.4";
+ };
+ js_image_paths = {
+ dependencies = ["rails" "sprockets"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1d4kq8895i61a338ddk5f2k16l5lvmnkby9cdjwnmm2jddw4q7nf";
+ type = "gem";
+ };
+ version = "0.1.1";
+ };
+ json = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "01v6jjpvh3gnq6sgllpfqahlgxzj50ailwhj9b3cd20hi2dx0vxp";
+ type = "gem";
+ };
+ version = "2.1.0";
+ };
+ json-jwt = {
+ dependencies = ["activesupport" "aes_key_wrap" "bindata"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "065k7vffdki73f4nz89lxi6wxmcw5dlf593831pgvlbralll6x3r";
+ type = "gem";
+ };
+ version = "1.9.4";
+ };
+ json-schema = {
+ dependencies = ["addressable"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1yv5lfmr2nzd14af498xqd5p89f3g080q8wk0klr3vxgypsikkb5";
+ type = "gem";
+ };
+ version = "2.8.1";
+ };
+ json-schema-rspec = {
+ dependencies = ["json-schema" "rspec"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1ip30yjzyigqqp9jwkrw9x9vrfpnmwi160zmk2vkrwlv9pby0wr9";
+ type = "gem";
+ };
+ version = "0.0.4";
+ };
+ jsonpath = {
+ dependencies = ["multi_json" "to_regexp"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "06i41lwpj0dwvbxcpqrad5pjn2gmcv0srv0zw0ap7irwc21ifd7d";
+ type = "gem";
+ };
+ version = "0.9.6";
+ };
+ jwt = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1w0kaqrbl71cq9sbnixc20x5lqah3hs2i93xmhlfdg2y3by7yzky";
+ type = "gem";
+ };
+ version = "2.1.0";
+ };
+ kgio = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1528pyj1szzzp3pgj05fzjd36qjrxm9yj2x5radc9p1z7vl67y50";
+ type = "gem";
+ };
+ version = "2.11.2";
+ };
+ kostya-sigar = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0z0pcykhjyrb7kq76jfcyxc1qq23gj5zmgy3miy87v85ydrxiqwb";
+ type = "gem";
+ };
+ version = "2.0.4";
+ };
+ leaflet-rails = {
+ dependencies = ["rails"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0dy7vhsjj1fhbbqm2s7pw57vgysd31qqi4y0hm91325hmvq75grb";
+ type = "gem";
+ };
+ version = "1.3.1";
+ };
+ listen = {
+ dependencies = ["rb-fsevent" "rb-inotify" "ruby_dep"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "01v5mrnfqm6sgm8xn2v5swxsn1wlmq7rzh2i48d4jzjsc7qvb6mx";
+ type = "gem";
+ };
+ version = "3.1.5";
+ };
+ little-plugger = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1frilv82dyxnlg8k1jhrvyd73l6k17mxc5vwxx080r4x1p04gwym";
+ type = "gem";
+ };
+ version = "1.1.4";
+ };
+ logging = {
+ dependencies = ["little-plugger" "multi_json"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "06j6iaj89h9jhkx1x3hlswqrfnqds8br05xb1qra69dpvbdmjcwn";
+ type = "gem";
+ };
+ version = "2.2.2";
+ };
+ logging-rails = {
+ dependencies = ["logging"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "022cnj9v177282kadd9ygzjpvlvbq9k5z0xhdbbmgypi05z4i239";
+ type = "gem";
+ };
+ version = "0.6.0";
+ };
+ loofah = {
+ dependencies = ["crass" "nokogiri"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1ccsid33xjajd0im2xv941aywi58z7ihwkvaf1w2bv89vn5bhsjg";
+ type = "gem";
+ };
+ version = "2.2.3";
+ };
+ lumberjack = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "06im7gcg42x77yhz2w5da2ly9xz0n0c36y5ks7xs53v0l9g0vf5n";
+ type = "gem";
+ };
+ version = "1.0.13";
+ };
+ macaddr = {
+ dependencies = ["systemu"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1clii8mvhmh5lmnm95ljnjygyiyhdpja85c5vy487rhxn52scn0b";
+ type = "gem";
+ };
+ version = "1.7.1";
+ };
+ mail = {
+ dependencies = ["mini_mime"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "00wwz6ys0502dpk8xprwcqfwyf3hmnx6lgxaiq6vj43mkx43sapc";
+ type = "gem";
+ };
+ version = "2.7.1";
+ };
+ markdown-it-html5-embed = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "10n2z6j0whc6makxvcf2jhpwb8xrj4s6vyywijsaaxs0cn490a5c";
+ type = "gem";
+ };
+ version = "1.0.0";
+ };
+ markerb = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "08sm3kafc3086l0a9is2cysk7j2k71mxy6ba295pwwzyvy734y76";
+ type = "gem";
+ };
+ version = "1.1.0";
+ };
+ memoizable = {
+ dependencies = ["thread_safe"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0v42bvghsvfpzybfazl14qhkrjvx0xlmxz0wwqc960ga1wld5x5c";
+ type = "gem";
+ };
+ version = "0.4.2";
+ };
+ method_source = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1pviwzvdqd90gn6y7illcdd9adapw8fczml933p5vl739dkvl3lq";
+ type = "gem";
+ };
+ version = "0.9.2";
+ };
+ mime-types = {
+ dependencies = ["mime-types-data"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0fjxy1jm52ixpnv3vg9ld9pr9f35gy0jp66i1njhqjvmnvq0iwwk";
+ type = "gem";
+ };
+ version = "3.2.2";
+ };
+ mime-types-data = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "07wvp0aw2gjm4njibb70as6rh5hi1zzri5vky1q6jx95h8l56idc";
+ type = "gem";
+ };
+ version = "3.2018.0812";
+ };
+ mini_magick = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0sisx59mr5kydmxmx5vr8spmrxhrjkfqv35zhsqdlyzmp1z5px9p";
+ type = "gem";
+ };
+ version = "4.9.2";
+ };
+ mini_mime = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1q4pshq387lzv9m39jv32vwb8wrq3wc4jwgl4jk209r4l33v09d3";
+ type = "gem";
+ };
+ version = "1.0.1";
+ };
+ mini_portile2 = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "13d32jjadpjj6d2wdhkfpsmy68zjx90p49bgf8f7nkpz86r1fr11";
+ type = "gem";
+ };
+ version = "2.3.0";
+ };
+ minitest = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0icglrhghgwdlnzzp4jf76b0mbc71s80njn5afyfjn4wqji8mqbq";
+ type = "gem";
+ };
+ version = "5.11.3";
+ };
+ mobile-fu = {
+ dependencies = ["rack-mobile-detect" "rails"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0lxfcsd7dwwcpa1j2jbl382anmv6kksf5q1wqj14gc6jxxjq9s4i";
+ type = "gem";
+ };
+ version = "1.4.0";
+ };
+ multi_json = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1rl0qy4inf1mp8mybfk56dfga0mvx97zwpmq5xmiwl5r770171nv";
+ type = "gem";
+ };
+ version = "1.13.1";
+ };
+ multi_test = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1sx356q81plr67hg16jfwz9hcqvnk03bd9n75pmdw8pfxjfy1yxd";
+ type = "gem";
+ };
+ version = "0.1.2";
+ };
+ multi_xml = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0lmd4f401mvravi1i1yq7b2qjjli0yq7dfc4p1nj5nwajp7r6hyj";
+ type = "gem";
+ };
+ version = "0.6.0";
+ };
+ multipart-post = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "09k0b3cybqilk1gwrwwain95rdypixb2q9w65gd44gfzsd84xi1x";
+ type = "gem";
+ };
+ version = "2.0.0";
+ };
+ mysql2 = {
+ groups = ["mysql"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1a2kdjgzwh1p2rkcmxaawy6ibi32b04wbdd5d4wr8i342pq76di4";
+ type = "gem";
+ };
+ version = "0.5.2";
+ };
+ naught = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1wwjx35zgbc0nplp8a866iafk4zsrbhwwz4pav5gydr2wm26nksg";
+ type = "gem";
+ };
+ version = "1.1.0";
+ };
+ nenv = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0r97jzknll9bhd8yyg2bngnnkj8rjhal667n7d32h8h7ny7nvpnr";
+ type = "gem";
+ };
+ version = "0.3.0";
+ };
+ net-ldap = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "016igqz81a8zcwqzp5bbhryqmb2skmyf57ij3nb5z8sxwhw22jgh";
+ type = "gem";
+ };
+ version = "0.16.1";
+ };
+ nio4r = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1a41ca1kpdmrypjp9xbgvckpy8g26zxphkja9vk7j5wl4n8yvlyr";
+ type = "gem";
+ };
+ version = "2.3.1";
+ };
+ nokogiri = {
+ dependencies = ["mini_portile2"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0byyxrazkfm29ypcx5q4syrv126nvjnf7z6bqi01sqkv4llsi4qz";
+ type = "gem";
+ };
+ version = "1.8.5";
+ };
+ notiffany = {
+ dependencies = ["nenv" "shellany"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0x838fa5il0dd9zbm3lxkpbfxcf5fxv9556mayc2mxsdl5ghv8nx";
+ type = "gem";
+ };
+ version = "0.1.1";
+ };
+ oauth = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1zszdg8q1b135z7l7crjj234k4j0m347hywp5kj6zsq7q78pw09y";
+ type = "gem";
+ };
+ version = "0.5.4";
+ };
+ oauth2 = {
+ dependencies = ["faraday" "jwt" "multi_json" "multi_xml" "rack"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0av6nlb5y2sm6m8fx669ywrqa9858yqaqfqzny75nqp3anag89qh";
+ type = "gem";
+ };
+ version = "1.4.1";
+ };
+ octokit = {
+ dependencies = ["sawyer"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1yh0yzzqg575ix3y2l2261b9ag82gv2v4f1wczdhcmfbxcz755x6";
+ type = "gem";
+ };
+ version = "4.13.0";
+ };
+ omniauth = {
+ dependencies = ["hashie" "rack"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1msqr4qq7mfdvl3rg89529isrv595hvjpj2gi0say4b8nwqfggmg";
+ type = "gem";
+ };
+ version = "1.8.1";
+ };
+ omniauth-oauth = {
+ dependencies = ["oauth" "omniauth"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1n5vk4by7hkyc09d9blrw2argry5awpw4gbw1l4n2s9b3j4qz037";
+ type = "gem";
+ };
+ version = "1.1.0";
+ };
+ omniauth-oauth2 = {
+ dependencies = ["oauth2" "omniauth"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0kscjf1y0lnggsl4z3w5bwllqshqjlsl5kmcya5haydajdnzvdjr";
+ type = "gem";
+ };
+ version = "1.5.0";
+ };
+ omniauth-tumblr = {
+ dependencies = ["multi_json" "omniauth-oauth"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "10ncmfym4l6k6aqp402g7mqxahbggcj5xkpsjxgngs746s82y97w";
+ type = "gem";
+ };
+ version = "1.2";
+ };
+ omniauth-twitter = {
+ dependencies = ["omniauth-oauth" "rack"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0r5j65hkpgzhvvbs90id3nfsjgsad6ymzggbm7zlaxvnrmvnrk65";
+ type = "gem";
+ };
+ version = "1.4.0";
+ };
+ omniauth-wordpress = {
+ dependencies = ["omniauth-oauth2"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "008zx4zwrbzyvlgv6hy68k1d05zskiwvcgwvxxbxhbl0mvlmh303";
+ type = "gem";
+ };
+ version = "0.2.2";
+ };
+ open_graph_reader = {
+ dependencies = ["faraday" "nokogiri"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0af4yldyb0d8zglw73s13pyn0g90gs4m5zf7bwy8r4kym9zbvc21";
+ type = "gem";
+ };
+ version = "0.6.2";
+ };
+ openid_connect = {
+ dependencies = ["activemodel" "attr_required" "json-jwt" "rack-oauth2" "swd" "tzinfo" "validate_email" "validate_url" "webfinger"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1r13bv18nyvw0g1nw3fzffvv2si99zj24w0k5zgawf4q6nn5f7vd";
+ type = "gem";
+ };
+ version = "1.1.6";
+ };
+ orm_adapter = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1fg9jpjlzf5y49qs9mlpdrgs5rpcyihq1s4k79nv9js0spjhnpda";
+ type = "gem";
+ };
+ version = "0.5.0";
+ };
+ parallel = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "01hj8v1qnyl5ndrs33g8ld8ibk0rbcqdpkpznr04gkbxd11pqn67";
+ type = "gem";
+ };
+ version = "1.12.1";
+ };
+ parser = {
+ dependencies = ["ast"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1zjk0w1kjj3xk8ymy1430aa4gg0k8ckphfj88br6il4pm83f0n1f";
+ type = "gem";
+ };
+ version = "2.5.3.0";
+ };
+ pg = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1pnjw3rspdfjssxyf42jnbsdlgri8ylysimp0s28wxb93k6ff2qb";
+ type = "gem";
+ };
+ version = "1.1.3";
+ };
+ phantomjs = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0y8pbbyq9dirxb7igkb2s5limz2895qmr41c09fjhx6k6fxcz4mk";
+ type = "gem";
+ };
+ version = "2.1.1.0";
+ };
+ poltergeist = {
+ dependencies = ["capybara" "cliver" "websocket-driver"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0il80p97psmhs6scl0grq031gv7kws4ylvvd6zyr8xv91qadga95";
+ type = "gem";
+ };
+ version = "1.18.1";
+ };
+ powerpack = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1r51d67wd467rpdfl6x43y84vwm8f5ql9l9m85ak1s2sp3nc5hyv";
+ type = "gem";
+ };
+ version = "0.1.2";
+ };
+ pronto = {
+ dependencies = ["gitlab" "httparty" "octokit" "rainbow" "rugged" "thor"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "13xbg1pm3kz5zbzxad5qgqnkzkp3ddajj7wxx16aqbfr7rqggvhz";
+ type = "gem";
+ };
+ version = "0.9.5";
+ };
+ pronto-eslint = {
+ dependencies = ["eslintrb" "pronto"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1cxyx6mlcdgv4ykliaizkx9cps68xf7qvy8lzxmv7pcqzkxaq7xc";
+ type = "gem";
+ };
+ version = "0.9.1";
+ };
+ pronto-haml = {
+ dependencies = ["haml_lint" "pronto"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "116iln1whwiqy55f86q33lnnic0awnqm415xvxwnhwlagcbwmnkg";
+ type = "gem";
+ };
+ version = "0.9.0";
+ };
+ pronto-rubocop = {
+ dependencies = ["pronto" "rubocop"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0bcm34qlpp02wf69why5lpi5p53h5r4fq36f4b1fwi621fwzlgsy";
+ type = "gem";
+ };
+ version = "0.9.1";
+ };
+ pronto-scss = {
+ dependencies = ["pronto" "scss_lint"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0kgaqd6l2w3brdsp5231fpfr6fwajciz2hdr925l1zhh6ni1y2za";
+ type = "gem";
+ };
+ version = "0.9.1";
+ };
+ pry = {
+ dependencies = ["coderay" "method_source"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "00rm71x0r1jdycwbs83lf9l6p494m99asakbvqxh8rz7zwnlzg69";
+ type = "gem";
+ };
+ version = "0.12.2";
+ };
+ pry-byebug = {
+ dependencies = ["byebug" "pry"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0y2758593i2ij0nhmv0j1pbdfx2cgi52ns6wkij0frgnk2lf650g";
+ type = "gem";
+ };
+ version = "3.6.0";
+ };
+ public_suffix = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "08q64b5br692dd3v0a9wq9q5dvycc6kmiqmjbdxkxbfizggsvx6l";
+ type = "gem";
+ };
+ version = "3.0.3";
+ };
+ raabro = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0xzdmbn48753f6k0ckirp8ja5p0xn1a92wbwxfyggyhj0hza9ylq";
+ type = "gem";
+ };
+ version = "1.1.6";
+ };
+ rack = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1pcgv8dv4vkaczzlix8q3j68capwhk420cddzijwqgi2qb4lm1zm";
+ type = "gem";
+ };
+ version = "2.0.6";
+ };
+ rack-cors = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1j27vy1bmhbqcyzhxg8d07qassmax769xjalfwcwz6qfiq8cf013";
+ type = "gem";
+ };
+ version = "1.0.2";
+ };
+ rack-google-analytics = {
+ dependencies = ["actionpack" "activesupport"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "09pv0z5dhjjrlhi9qj5qy48hi66f7iix337qrapg7mvwwz6czcvj";
+ type = "gem";
+ };
+ version = "1.2.0";
+ };
+ rack-mobile-detect = {
+ dependencies = ["rack"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0bagli6ldhkpd1yym775sxy7w5n4jds6gbcjm3gmcl37vggvm8a5";
+ type = "gem";
+ };
+ version = "0.4.0";
+ };
+ rack-oauth2 = {
+ dependencies = ["activesupport" "attr_required" "httpclient" "json-jwt" "rack"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0kmxj9hbjhhcs3yyb433s82hkpmzb536m0mwfadjiaisganx1cii";
+ type = "gem";
+ };
+ version = "1.9.3";
+ };
+ rack-piwik = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0raxrckapqh693lpid0cnx1j1v2i3mz5cyssg7grgrilgrn9318z";
+ type = "gem";
+ };
+ version = "0.3.0";
+ };
+ rack-protection = {
+ dependencies = ["rack"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0ylx74ravz7nvnyygq0nk3v86qdzrmqxpwpayhppyy50l72rcajq";
+ type = "gem";
+ };
+ version = "2.0.4";
+ };
+ rack-rewrite = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0milw71dv96wnc6i48vbzypws51dgf415kkp8c4air0mkdhpj838";
+ type = "gem";
+ };
+ version = "1.5.1";
+ };
+ rack-ssl = {
+ dependencies = ["rack"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0c21xqkjyl10fngq6dy8082vmn2png8cwkiyzv83ymixq5cx7ygp";
+ type = "gem";
+ };
+ version = "1.4.1";
+ };
+ rack-test = {
+ dependencies = ["rack"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0rh8h376mx71ci5yklnpqqn118z3bl67nnv5k801qaqn1zs62h8m";
+ type = "gem";
+ };
+ version = "1.1.0";
+ };
+ rails = {
+ dependencies = ["actioncable" "actionmailer" "actionpack" "actionview" "activejob" "activemodel" "activerecord" "activesupport" "railties" "sprockets-rails"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0lb07cbwgm371zyn9i6fyj9q8rmv89lacmyzrfvzxqqx2n3ilc5q";
+ type = "gem";
+ };
+ version = "5.1.6";
+ };
+ rails-assets-autosize = {
+ platforms = [];
+ source = {
+ remotes = ["https://rails-assets.org"];
+ sha256 = "0hr72mfprb9678lf7dj9lh801lm7p98nzkrnrz764sy9lmbpzcib";
+ type = "gem";
+ };
+ version = "4.0.2";
+ };
+ rails-assets-backbone = {
+ dependencies = ["rails-assets-underscore"];
+ platforms = [];
+ source = {
+ remotes = ["https://rails-assets.org"];
+ sha256 = "0zjgwhgfmg1jyyds7zfjp6g4bz8vw56qvhlrpj943wcqpdxm93id";
+ type = "gem";
+ };
+ version = "1.3.3";
+ };
+ rails-assets-blueimp-gallery = {
+ platforms = [];
+ source = {
+ remotes = ["https://rails-assets.org"];
+ sha256 = "18b7xvvkdnd39xlbkyw46i86w3wzj349s8iv5wdiypa5qdcql8mq";
+ type = "gem";
+ };
+ version = "2.33.0";
+ };
+ rails-assets-bootstrap = {
+ dependencies = ["rails-assets-jquery"];
+ platforms = [];
+ source = {
+ remotes = ["https://rails-assets.org"];
+ sha256 = "0x4i11132qcmghmqb061iq47yksrr7i0la5hzzdm38dxybh87x5v";
+ type = "gem";
+ };
+ version = "3.3.7";
+ };
+ rails-assets-bootstrap-markdown = {
+ dependencies = ["rails-assets-bootstrap"];
+ platforms = [];
+ source = {
+ remotes = ["https://rails-assets.org"];
+ sha256 = "1nxirs9wx5jxrjmxjwvsqlf2rsypjn3ajg7fs28c4ib7wwpabwj3";
+ type = "gem";
+ };
+ version = "2.10.0";
+ };
+ rails-assets-corejs-typeahead = {
+ dependencies = ["rails-assets-jquery"];
+ platforms = [];
+ source = {
+ remotes = ["https://rails-assets.org"];
+ sha256 = "1p5i6afd156rakrin99c2ryaz3zykx21ir6y10l34jnw03rikcfg";
+ type = "gem";
+ };
+ version = "1.2.1";
+ };
+ rails-assets-diaspora_jsxc = {
+ dependencies = ["rails-assets-emojione" "rails-assets-favico.js" "rails-assets-jquery-colorbox" "rails-assets-jquery-fullscreen-plugin" "rails-assets-jquery.slimscroll" "rails-assets-jquery.ui"];
+ platforms = [];
+ source = {
+ remotes = ["https://rails-assets.org"];
+ sha256 = "07vqdj0l8fsj4fd2sschba2jgfbimyfad56009ldzlcvb6ml5nhi";
+ type = "gem";
+ };
+ version = "0.1.5.develop.7";
+ };
+ rails-assets-emojione = {
+ platforms = [];
+ source = {
+ remotes = ["https://rails-assets.org"];
+ sha256 = "1j29vbsf6v9ikiqlmnfgzxys4xsa1glvmfky8id5xfyymnjx2c52";
+ type = "gem";
+ };
+ version = "2.0.1";
+ };
+ "rails-assets-favico.js" = {
+ platforms = [];
+ source = {
+ remotes = ["https://rails-assets.org"];
+ sha256 = "19yndhljmqlvarf49h5v71zq0p0ngvspjr2v0m6lac0q9ni7r5bv";
+ type = "gem";
+ };
+ version = "0.3.10";
+ };
+ rails-assets-fine-uploader = {
+ platforms = [];
+ source = {
+ remotes = ["https://rails-assets.org"];
+ sha256 = "1vxj78x2vvlchpapxpaawysc9wn8alzdd3gxhwfwy11xv8ka9mdv";
+ type = "gem";
+ };
+ version = "5.13.0";
+ };
+ rails-assets-highlightjs = {
+ platforms = [];
+ source = {
+ remotes = ["https://rails-assets.org"];
+ sha256 = "0spmb0gkfs13fmljjv1n53r53q69fhb6r573ndbxnhgb3izqgnqp";
+ type = "gem";
+ };
+ version = "9.12.0";
+ };
+ rails-assets-jasmine = {
+ platforms = [];
+ source = {
+ remotes = ["https://rails-assets.org"];
+ sha256 = "1n6yixrl9cgq5kckay75b44p878s1kqi69mhgyw99w8dsq8i2vy5";
+ type = "gem";
+ };
+ version = "3.3.0";
+ };
+ rails-assets-jasmine-ajax = {
+ dependencies = ["rails-assets-jasmine"];
+ platforms = [];
+ source = {
+ remotes = ["https://rails-assets.org"];
+ sha256 = "0l8z0p75x1yzk1l1ryfvdlvq8yq4w2xngp4icz478axd5jcqx6kg";
+ type = "gem";
+ };
+ version = "3.4.0";
+ };
+ rails-assets-jquery = {
+ platforms = [];
+ source = {
+ remotes = ["https://rails-assets.org"];
+ sha256 = "1wcaappk12w300733lrqb571cir9nw35d9q6d2i52wwdvhv2fx2y";
+ type = "gem";
+ };
+ version = "3.3.1";
+ };
+ rails-assets-jquery-colorbox = {
+ dependencies = ["rails-assets-jquery"];
+ platforms = [];
+ source = {
+ remotes = ["https://rails-assets.org"];
+ sha256 = "19ws3r1zfviwnfr9s0jh6iqss50iwqkf4a78zhrk0p3bb4lvmmsp";
+ type = "gem";
+ };
+ version = "1.6.4";
+ };
+ rails-assets-jquery-fullscreen-plugin = {
+ platforms = [];
+ source = {
+ remotes = ["https://rails-assets.org"];
+ sha256 = "0ldvq4s15lap9p6w7d1yw6dajn2gh6p75dbkp79p0d8ylzapsd58";
+ type = "gem";
+ };
+ version = "0.5.0";
+ };
+ rails-assets-jquery-placeholder = {
+ dependencies = ["rails-assets-jquery"];
+ platforms = [];
+ source = {
+ remotes = ["https://rails-assets.org"];
+ sha256 = "0h17gjazc27pj4cm2ig232ww4d4ppq9bcginwzjss95pl63richi";
+ type = "gem";
+ };
+ version = "2.3.1";
+ };
+ rails-assets-jquery-textchange = {
+ dependencies = ["rails-assets-jquery"];
+ platforms = [];
+ source = {
+ remotes = ["https://rails-assets.org"];
+ sha256 = "0rsw3cn9a5njv80zy53339kmrmv60b8fqcrr7bacapbagb2rd4dj";
+ type = "gem";
+ };
+ version = "0.2.3";
+ };
+ "rails-assets-jquery.are-you-sure" = {
+ dependencies = ["rails-assets-jquery"];
+ platforms = [];
+ source = {
+ remotes = ["https://rails-assets.org"];
+ sha256 = "0nj04aqh9jpcg57xbjxpm2vn7mkd5clnpma907515a1nxy40bym0";
+ type = "gem";
+ };
+ version = "1.9.0";
+ };
+ "rails-assets-jquery.slimscroll" = {
+ platforms = [];
+ source = {
+ remotes = ["https://rails-assets.org"];
+ sha256 = "1rymmd2rxy1vjjj70v88abmdlfs55276rs3rksj300dgirnnj998";
+ type = "gem";
+ };
+ version = "1.3.8";
+ };
+ "rails-assets-jquery.ui" = {
+ dependencies = ["rails-assets-jquery"];
+ platforms = [];
+ source = {
+ remotes = ["https://rails-assets.org"];
+ sha256 = "0xc9kfb29hi441irj49b7aawxkddk1dxzy938rpqv9ylpsj7knaa";
+ type = "gem";
+ };
+ version = "1.11.4";
+ };
+ rails-assets-markdown-it = {
+ platforms = [];
+ source = {
+ remotes = ["https://rails-assets.org"];
+ sha256 = "0fxx7ldszsdqr5ry21bnxmv33byz7abpk9lcp100q5cqsjx091r9";
+ type = "gem";
+ };
+ version = "8.4.2";
+ };
+ rails-assets-markdown-it--markdown-it-for-inline = {
+ platforms = [];
+ source = {
+ remotes = ["https://rails-assets.org"];
+ sha256 = "0fznv2x7ndadr3wb4dzhh86bpcpwz8f4d8rfhz4sfbqlai40j3jl";
+ type = "gem";
+ };
+ version = "0.1.1";
+ };
+ rails-assets-markdown-it-diaspora-mention = {
+ platforms = [];
+ source = {
+ remotes = ["https://rails-assets.org"];
+ sha256 = "0asggm7wgmdll8x94291p2w6icmp2izi914dlh3b7vb7dpjq3jig";
+ type = "gem";
+ };
+ version = "1.2.0";
+ };
+ rails-assets-markdown-it-hashtag = {
+ platforms = [];
+ source = {
+ remotes = ["https://rails-assets.org"];
+ sha256 = "0dr8fwaxgkfqm7z4rl4jdym0i1ycqw1sgkxshkd9k0849ry12cdk";
+ type = "gem";
+ };
+ version = "0.4.0";
+ };
+ rails-assets-markdown-it-sanitizer = {
+ platforms = [];
+ source = {
+ remotes = ["https://rails-assets.org"];
+ sha256 = "0fkpffh83fc257zkzaia93j4hw2baz90lg10s5yxsxww06q5dn36";
+ type = "gem";
+ };
+ version = "0.4.3";
+ };
+ rails-assets-markdown-it-sub = {
+ platforms = [];
+ source = {
+ remotes = ["https://rails-assets.org"];
+ sha256 = "08hjij5fqvhvg7s27n4g8qqsks974g3kc5k7xl2qmh41k7f4hcrk";
+ type = "gem";
+ };
+ version = "1.0.0";
+ };
+ rails-assets-markdown-it-sup = {
+ platforms = [];
+ source = {
+ remotes = ["https://rails-assets.org"];
+ sha256 = "17nnnvky7zy0yiwwl6dm8ibbkyvvf63xfp3snch4dzmras05lmig";
+ type = "gem";
+ };
+ version = "1.0.0";
+ };
+ rails-assets-underscore = {
+ platforms = [];
+ source = {
+ remotes = ["https://rails-assets.org"];
+ sha256 = "1ccnzj7aqrvngcs915y290pijryqmjygimdwlrykpyj8vwzifdnc";
+ type = "gem";
+ };
+ version = "1.9.1";
+ };
+ rails-assets-utatti-perfect-scrollbar = {
+ platforms = [];
+ source = {
+ remotes = ["https://rails-assets.org"];
+ sha256 = "0m8syfv8p5bnwm8nrba6mpjnhrd29ffwzi6awhiw537jqw42b12v";
+ type = "gem";
+ };
+ version = "1.4.0";
+ };
+ rails-controller-testing = {
+ dependencies = ["actionpack" "actionview" "activesupport"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "16kdkk73mhhs73iz3i1i0ryjm84dadiyh817b3nh8acdi490jyhy";
+ type = "gem";
+ };
+ version = "1.0.2";
+ };
+ rails-dom-testing = {
+ dependencies = ["activesupport" "nokogiri"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1lfq2a7kp2x64dzzi5p4cjcbiv62vxh9lyqk2f0rqq3fkzrw8h5i";
+ type = "gem";
+ };
+ version = "2.0.3";
+ };
+ rails-html-sanitizer = {
+ dependencies = ["loofah"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1gv7vr5d9g2xmgpjfq4nxsqr70r9pr042r9ycqqnfvw5cz9c7jwr";
+ type = "gem";
+ };
+ version = "1.0.4";
+ };
+ rails-i18n = {
+ dependencies = ["i18n" "railties"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "05lkhc737a9dw0hd5ljmja0yp4cw39r3200s1r0n4bs7z1g3ka7l";
+ type = "gem";
+ };
+ version = "5.1.2";
+ };
+ rails-timeago = {
+ dependencies = ["actionpack" "activesupport"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "01x1vs9hni9wn8dc4fmyqzkrn651chzsi2mhmk0pxdrfx9md0lxv";
+ type = "gem";
+ };
+ version = "2.16.0";
+ };
+ railties = {
+ dependencies = ["actionpack" "activesupport" "method_source" "rake" "thor"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0ycy2gdaj0px1vfaghskvl6qkczwaigrli2zxn54w7zn1z29faj8";
+ type = "gem";
+ };
+ version = "5.1.6";
+ };
+ rainbow = {
+ dependencies = ["rake"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "08w2ghc5nv0kcq5b257h7dwjzjz1pqcavajfdx2xjyxqsvh2y34w";
+ type = "gem";
+ };
+ version = "2.2.2";
+ };
+ raindrops = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1qpbd9jif40c53fz2r0l8khfl016y8s8bkx37ibcaafclbl3xygp";
+ type = "gem";
+ };
+ version = "0.19.0";
+ };
+ rake = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1idi53jay34ba9j68c3mfr9wwkg3cd9qh0fn9cg42hv72c6q8dyg";
+ type = "gem";
+ };
+ version = "12.3.1";
+ };
+ rb-fsevent = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1lm1k7wpz69jx7jrc92w3ggczkjyjbfziq5mg62vjnxmzs383xx8";
+ type = "gem";
+ };
+ version = "0.10.3";
+ };
+ rb-inotify = {
+ dependencies = ["ffi"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0yfsgw5n7pkpyky6a9wkf1g9jafxb0ja7gz0qw0y14fd2jnzfh71";
+ type = "gem";
+ };
+ version = "0.9.10";
+ };
+ redcarpet = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0h9qz2hik4s9knpmbwrzb3jcp3vc5vygp9ya8lcpl7f1l9khmcd7";
+ type = "gem";
+ };
+ version = "3.4.0";
+ };
+ redis = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0i415x8gi0c5vsiy6ikvx5js6fhc4x80a5lqv8iidy2iymd20irv";
+ type = "gem";
+ };
+ version = "3.3.5";
+ };
+ regexp_parser = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "18g5jyg3blsdrz3mc8d87bms6qqn6gcdh1nvdhvgbjdpk9pw21dq";
+ type = "gem";
+ };
+ version = "1.3.0";
+ };
+ request_store = {
+ dependencies = ["rack"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1963330z03fk382fi8y231ygcbnh86m91dqlp5rh1mwy9ihzzl6d";
+ type = "gem";
+ };
+ version = "1.4.1";
+ };
+ responders = {
+ dependencies = ["actionpack" "railties"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1rhdyyvvm26f2l3fgwdp6xasfl2y0whwgy766bhdwz697mf78zfn";
+ type = "gem";
+ };
+ version = "2.4.0";
+ };
+ rspec = {
+ dependencies = ["rspec-core" "rspec-expectations" "rspec-mocks"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "15ppasvb9qrscwlyjz67ppw1lnxiqnkzx5vkx1bd8x5n3dhikxc3";
+ type = "gem";
+ };
+ version = "3.8.0";
+ };
+ rspec-core = {
+ dependencies = ["rspec-support"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1p1s5bnbqp3sxk67y0fh0x884jjym527r0vgmhbm81w7aq6b7l4p";
+ type = "gem";
+ };
+ version = "3.8.0";
+ };
+ rspec-expectations = {
+ dependencies = ["diff-lcs" "rspec-support"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "18l21hy1zdc2pgc2yb17k3n2al1khpfr0z6pijlm852iz6vj0dkm";
+ type = "gem";
+ };
+ version = "3.8.2";
+ };
+ rspec-json_expectations = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0l3dhvkb95zwyg72wz33azxigc9cisqgg3z16ksns1sx0b93nnbn";
+ type = "gem";
+ };
+ version = "2.1.0";
+ };
+ rspec-mocks = {
+ dependencies = ["diff-lcs" "rspec-support"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "06y508cjqycb4yfhxmb3nxn0v9xqf17qbd46l1dh4xhncinr4fyp";
+ type = "gem";
+ };
+ version = "3.8.0";
+ };
+ rspec-rails = {
+ dependencies = ["actionpack" "activesupport" "railties" "rspec-core" "rspec-expectations" "rspec-mocks" "rspec-support"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0sqj5da2kc937j5jb18jcf0hrmmzwgj7pk62j0q3qndhc2kvx88p";
+ type = "gem";
+ };
+ version = "3.8.1";
+ };
+ rspec-support = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0p3m7drixrlhvj2zpc38b11x145bvm311x6f33jjcxmvcm0wq609";
+ type = "gem";
+ };
+ version = "3.8.0";
+ };
+ rubocop = {
+ dependencies = ["jaro_winkler" "parallel" "parser" "powerpack" "rainbow" "ruby-progressbar" "unicode-display_width"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1ivk049z3mp12nc6v1wn35bsq1g7nz1i2r4xwzqf0v25hm2v7n1i";
+ type = "gem";
+ };
+ version = "0.60.0";
+ };
+ ruby-oembed = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1kw4aplb3m13z3kchhb79wf87qb3prn1m99s6vl5cyp0xqwyymv0";
+ type = "gem";
+ };
+ version = "0.12.0";
+ };
+ ruby-progressbar = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1cv2ym3rl09svw8940ny67bav7b2db4ms39i4raaqzkf59jmhglk";
+ type = "gem";
+ };
+ version = "1.10.0";
+ };
+ ruby_dep = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1c1bkl97i9mkcvkn1jks346ksnvnnp84cs22gwl0vd7radybrgy5";
+ type = "gem";
+ };
+ version = "1.5.0";
+ };
+ rubyzip = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1n1lb2sdwh9h27y244hxzg1lrxxg2m53pk1vq7p33bna003qkyrj";
+ type = "gem";
+ };
+ version = "1.2.2";
+ };
+ rugged = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1jv4nw9hvlxp8hhhlllrfcznki82i50fp1sj65zsjllfl2bvz8x6";
+ type = "gem";
+ };
+ version = "0.27.5";
+ };
+ safe_yaml = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1hly915584hyi9q9vgd968x2nsi5yag9jyf5kq60lwzi5scr7094";
+ type = "gem";
+ };
+ version = "1.0.4";
+ };
+ sass = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0kfpcwh8dgw4lc81qglkvjl73689jy3g7196zkxm4fpskg1p5lkw";
+ type = "gem";
+ };
+ version = "3.4.25";
+ };
+ sass-rails = {
+ dependencies = ["railties" "sass" "sprockets" "sprockets-rails" "tilt"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1wa63sbsimrsf7nfm8h0m1wbsllkfxvd7naph5d1j6pbc555ma7s";
+ type = "gem";
+ };
+ version = "5.0.7";
+ };
+ sawyer = {
+ dependencies = ["addressable" "faraday"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0sv1463r7bqzvx4drqdmd36m7rrv6sf1v3c6vswpnq3k6vdw2dvd";
+ type = "gem";
+ };
+ version = "0.8.1";
+ };
+ scss_lint = {
+ dependencies = ["rake" "sass"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "11rl8kj32p34mqlkhxvlwfrwl8gdl0iha8q9xsrr3sjxjagzv8yp";
+ type = "gem";
+ };
+ version = "0.55.0";
+ };
+ secure_headers = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "17cxci8jyvlgssix0cy7kbm5m2h7s8ym9caj8nilrbd21jis9pc5";
+ type = "gem";
+ };
+ version = "6.0.0";
+ };
+ shellany = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1ryyzrj1kxmnpdzhlv4ys3dnl2r5r3d2rs2jwzbnd1v96a8pl4hf";
+ type = "gem";
+ };
+ version = "0.0.1";
+ };
+ shoulda-matchers = {
+ dependencies = ["activesupport"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1zvv94pqk5b5my3w1shdz7h34xf2ldhg5k4qfdpbwi2iy0j9zw2a";
+ type = "gem";
+ };
+ version = "3.1.2";
+ };
+ sidekiq = {
+ dependencies = ["connection_pool" "rack-protection" "redis"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1zyf9y3rvzizbwh68i2g1lzd40lalrdc4iyjmaa74gnfwsf92i26";
+ type = "gem";
+ };
+ version = "5.2.3";
+ };
+ sidekiq-cron = {
+ dependencies = ["fugit" "sidekiq"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1aliswahmpxn1ib2brn4126gk97ac3zdnwr71mn8vzbr3vdd7fl0";
+ type = "gem";
+ };
+ version = "1.0.4";
+ };
+ simple_captcha2 = {
+ dependencies = ["rails"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0vdjydym8sjpa8c1q0n2hanj3n9vzi4ycdw2p6bbm6qqmm1f3fq3";
+ type = "gem";
+ };
+ version = "0.4.3";
+ };
+ simple_oauth = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0dw9ii6m7wckml100xhjc6vxpjcry174lbi9jz5v7ibjr3i94y8l";
+ type = "gem";
+ };
+ version = "0.3.1";
+ };
+ simplecov = {
+ dependencies = ["docile" "json" "simplecov-html"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1sfyfgf7zrp2n42v7rswkqgk3bbwk1bnsphm24y7laxv3f8z0947";
+ type = "gem";
+ };
+ version = "0.16.1";
+ };
+ simplecov-html = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1lihraa4rgxk8wbfl77fy9sf0ypk31iivly8vl3w04srd7i0clzn";
+ type = "gem";
+ };
+ version = "0.10.2";
+ };
+ sinon-rails = {
+ dependencies = ["railties"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1b7996hb8vfky29b0zcql90x8i6vhdg2zy9nfzmhh820gjv3kggb";
+ type = "gem";
+ };
+ version = "1.15.0";
+ };
+ spring = {
+ dependencies = ["activesupport"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "168yz9c1fv21wc5i8q7n43b9nk33ivg3ws1fn6x0afgryz3ssx75";
+ type = "gem";
+ };
+ version = "2.0.2";
+ };
+ spring-commands-cucumber = {
+ dependencies = ["spring"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0mw81gvms2svn4k4pc6ly7smkmf0j9r2xbf0d38vygbyhiwd1c9a";
+ type = "gem";
+ };
+ version = "1.0.1";
+ };
+ spring-commands-rspec = {
+ dependencies = ["spring"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0b0svpq3md1pjz5drpa5pxwg8nk48wrshq8lckim4x3nli7ya0k2";
+ type = "gem";
+ };
+ version = "1.0.4";
+ };
+ sprockets = {
+ dependencies = ["concurrent-ruby" "rack"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "182jw5a0fbqah5w9jancvfmjbk88h8bxdbwnl4d3q809rpxdg8ay";
+ type = "gem";
+ };
+ version = "3.7.2";
+ };
+ sprockets-rails = {
+ dependencies = ["actionpack" "activesupport" "sprockets"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0ab42pm8p5zxpv3sfraq45b9lj39cz9mrpdirm30vywzrwwkm5p1";
+ type = "gem";
+ };
+ version = "3.2.1";
+ };
+ state_machines = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "00mi16hg3rhkxz4y58s173cbnjlba41y9bfcim90p4ja6yfj9ri3";
+ type = "gem";
+ };
+ version = "0.5.0";
+ };
+ string-direction = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0iyddwmkj425c6xbn5pmlr2yzwcq4snzlan7rky5b1yp2pvf70jj";
+ type = "gem";
+ };
+ version = "1.2.1";
+ };
+ swd = {
+ dependencies = ["activesupport" "attr_required" "httpclient"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1s2vjb6f13za7p1iycl2p73d3p202xa6xny9fjrp8ynwsqix7lyd";
+ type = "gem";
+ };
+ version = "1.1.2";
+ };
+ sysexits = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0qjng6pllznmprzx8vb0zg0c86hdrkyjs615q41s9fjpmv2430jr";
+ type = "gem";
+ };
+ version = "1.2.0";
+ };
+ systemu = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0gmkbakhfci5wnmbfx5i54f25j9zsvbw858yg3jjhfs5n4ad1xq1";
+ type = "gem";
+ };
+ version = "2.6.5";
+ };
+ temple = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "00nxf610nzi4n1i2lkby43nrnarvl89fcl6lg19406msr0k3ycmq";
+ type = "gem";
+ };
+ version = "0.8.0";
+ };
+ term-ansicolor = {
+ dependencies = ["tins"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "079hbagd9mk0839rkajsdrbzkn992gj8ah2n45qd64v25ml27i6d";
+ type = "gem";
+ };
+ version = "1.7.0";
+ };
+ terminal-table = {
+ dependencies = ["unicode-display_width"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1512cngw35hsmhvw4c05rscihc59mnj09m249sm9p3pik831ydqk";
+ type = "gem";
+ };
+ version = "1.8.0";
+ };
+ thor = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "01n5dv9kql60m6a00zc0r66jvaxx98qhdny3klyj0p3w34pad2ns";
+ type = "gem";
+ };
+ version = "0.19.4";
+ };
+ thread_safe = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy";
+ type = "gem";
+ };
+ version = "0.3.6";
+ };
+ tilt = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0020mrgdf11q23hm1ddd6fv691l51vi10af00f137ilcdb2ycfra";
+ type = "gem";
+ };
+ version = "2.0.8";
+ };
+ timecop = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0d7mm786180v4kzvn1f77rhfppsg5n0sq2bdx63x9nv114zm8jrp";
+ type = "gem";
+ };
+ version = "0.9.1";
+ };
+ timers = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "04zbs9wyzajn7g9xfgg2zqz5kzf0qa7jgh4hgry4pfcxfmlnwdwx";
+ type = "gem";
+ };
+ version = "4.2.0";
+ };
+ tins = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1pqj45n216zrz7yckdbdknlmhh187iqzx8fp76y2h0jrgqjfkxmj";
+ type = "gem";
+ };
+ version = "1.20.2";
+ };
+ to_regexp = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1rgabfhnql6l4fx09mmj5d0vza924iczqf2blmn82l782b6qqi9v";
+ type = "gem";
+ };
+ version = "0.2.1";
+ };
+ turbo_dev_assets = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "08yp7gpishjfj8b7d61hxs677288ycv6yg78a7hfzn631gxczipx";
+ type = "gem";
+ };
+ version = "0.0.2";
+ };
+ twitter = {
+ dependencies = ["addressable" "buftok" "equalizer" "http" "http-form_data" "http_parser.rb" "memoizable" "multipart-post" "naught" "simple_oauth"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0fjyz3viabz3xs5d9aad18zgdbhfwm51jsnzigc8kxk77p1x58n5";
+ type = "gem";
+ };
+ version = "6.2.0";
+ };
+ twitter-text = {
+ dependencies = ["unf"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1732h7hy1k152w8wfvjsx7b79alk45i5imwd37ia4qcx8hfm3gvg";
+ type = "gem";
+ };
+ version = "1.14.7";
+ };
+ typhoeus = {
+ dependencies = ["ethon"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0cni8b1idcp0dk8kybmxydadhfpaj3lbs99w5kjibv8bsmip2zi5";
+ type = "gem";
+ };
+ version = "1.3.1";
+ };
+ tzinfo = {
+ dependencies = ["thread_safe"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1fjx9j327xpkkdlxwmkl3a8wqj7i4l4jwlrv3z13mg95z9wl253z";
+ type = "gem";
+ };
+ version = "1.2.5";
+ };
+ uglifier = {
+ dependencies = ["execjs"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1g203kly5wp4qlkc7371skyvyin6iinc8i0p5wrpiqgblqxxgcf1";
+ type = "gem";
+ };
+ version = "4.1.19";
+ };
+ unf = {
+ dependencies = ["unf_ext"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0bh2cf73i2ffh4fcpdn9ir4mhq8zi50ik0zqa1braahzadx536a9";
+ type = "gem";
+ };
+ version = "0.1.4";
+ };
+ unf_ext = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "06p1i6qhy34bpb8q8ms88y6f2kz86azwm098yvcc0nyqk9y729j1";
+ type = "gem";
+ };
+ version = "0.0.7.5";
+ };
+ unicode-display_width = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0040bsdpcmvp8w31lqi2s9s4p4h031zv52401qidmh25cgyh4a57";
+ type = "gem";
+ };
+ version = "1.4.0";
+ };
+ unicorn = {
+ dependencies = ["kgio" "raindrops"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1qfhvzs4i6ja1s43j8p1kfbzm10n7a02ngki30a38y5m46a2qrak";
+ type = "gem";
+ };
+ version = "5.4.1";
+ };
+ unicorn-worker-killer = {
+ dependencies = ["get_process_mem" "unicorn"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0rrdxpwdsapx47axjin8ymxb4f685qlpx8a26bql4ay1559c3gva";
+ type = "gem";
+ };
+ version = "0.4.4";
+ };
+ uuid = {
+ dependencies = ["macaddr"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1mr405vg4ccnndkyf7pb49gp1fha8i6gj7iwq43nxkak41cwzh5f";
+ type = "gem";
+ };
+ version = "2.3.9";
+ };
+ valid = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0vxrgik9gxyh5j2w16nz5azjk0cbzmvv883hq9pvxm9anfbbj8d3";
+ type = "gem";
+ };
+ version = "1.2.0";
+ };
+ validate_email = {
+ dependencies = ["activemodel" "mail"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1r1fz29l699arka177c9xw7409d1a3ff95bf7a6pmc97slb91zlx";
+ type = "gem";
+ };
+ version = "0.1.6";
+ };
+ validate_url = {
+ dependencies = ["activemodel" "addressable"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1df4gch8dizimpbl185vfgw95yb8ffr6zwj6whzbxfil95c3f2qh";
+ type = "gem";
+ };
+ version = "1.0.2";
+ };
+ versionist = {
+ dependencies = ["activesupport" "railties" "yard"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1p8wizg6jml7gz1qiqk7d77hy0w5650g812jhgd0zzkwwdmzm38m";
+ type = "gem";
+ };
+ version = "1.7.0";
+ };
+ warden = {
+ dependencies = ["rack"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1fr9n9i9r82xb6i61fdw4xgc7zjv7fsdrr4k0njchy87iw9fl454";
+ type = "gem";
+ };
+ version = "1.2.8";
+ };
+ webfinger = {
+ dependencies = ["activesupport" "httpclient"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0m0jh8k7c0ifh2jhbn7ihqrmn5fi754wflva97zgy70hpdvxyjar";
+ type = "gem";
+ };
+ version = "1.1.0";
+ };
+ webmock = {
+ dependencies = ["addressable" "crack" "hashdiff"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "03994dxs4xayvkxqp01dd1ivhg4xxx7z35f7cxw7y2mwj3xn24ib";
+ type = "gem";
+ };
+ version = "3.4.2";
+ };
+ websocket-driver = {
+ dependencies = ["websocket-extensions"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1943442yllhldh9dbp374x2q39cxa49xrm28nb78b7mfbv3y195l";
+ type = "gem";
+ };
+ version = "0.6.5";
+ };
+ websocket-extensions = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "034sdr7fd34yag5l6y156rkbhiqgmy395m231dwhlpcswhs6d270";
+ type = "gem";
+ };
+ version = "0.1.3";
+ };
+ will_paginate = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0ihf15yaj8883ddhkxq7q60zrg3zfsvqaf5853gybhcg18zq8bn9";
+ type = "gem";
+ };
+ version = "3.1.6";
+ };
+ xpath = {
+ dependencies = ["nokogiri"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0bh8lk9hvlpn7vmi6h4hkcwjzvs2y0cmkk3yjjdr8fxvj6fsgzbd";
+ type = "gem";
+ };
+ version = "3.2.0";
+ };
+ yard = {
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0lmmr1839qgbb3zxfa7jf5mzy17yjl1yirwlgzdhws4452gqhn67";
+ type = "gem";
+ };
+ version = "0.9.16";
+ };
+}
--- /dev/null
+commit 936a14e225037aca4cdeac11c843c7985e636c88
+Author: Ismaël Bouya <ismael.bouya@normalesup.org>
+Date: Mon Jul 24 19:58:24 2017 +0200
+
+ Add LDAP to diaspora
+
+diff --git a/Gemfile b/Gemfile
+index 414b0138d..2a934e9c9 100644
+--- a/Gemfile
++++ b/Gemfile
+@@ -217,6 +217,9 @@ gem "thor", "0.19.1"
+
+ # gem "therubyracer", :platform => :ruby
+
++# LDAP
++gem 'net-ldap', '~> 0.16'
++
+ group :production do # we don"t install these on travis to speed up test runs
+ # Analytics
+
+diff --git a/Gemfile.lock b/Gemfile.lock
+index 84f8172e4..cdbf19fcd 100644
+--- a/Gemfile.lock 2019-01-13 19:55:52.538561762 +0100
++++ b/Gemfile.lock 2019-01-13 19:58:11.087099067 +0100
+@@ -398,6 +398,7 @@
+ mysql2 (0.5.2)
+ naught (1.1.0)
+ nenv (0.3.0)
++ net-ldap (0.16.1)
+ nio4r (2.3.1)
+ nokogiri (1.8.5)
+ mini_portile2 (~> 2.3.0)
+@@ -820,6 +821,7 @@
+ minitest
+ mobile-fu (= 1.4.0)
+ mysql2 (= 0.5.2)
++ net-ldap (~> 0.16)
+ nokogiri (= 1.8.5)
+ omniauth (= 1.8.1)
+ omniauth-tumblr (= 1.2)
+diff --git a/app/models/user.rb b/app/models/user.rb
+index 940a48f25..d1e2beeee 100644
+--- a/app/models/user.rb
++++ b/app/models/user.rb
+@@ -337,6 +337,12 @@ class User < ActiveRecord::Base
+ end
+
+ def send_confirm_email
++ if skip_email_confirmation?
++ self.email = unconfirmed_email
++ self.unconfirmed_email = nil
++ save
++ end
++
+ return if unconfirmed_email.blank?
+ Workers::Mail::ConfirmEmail.perform_async(id)
+ end
+@@ -554,6 +560,14 @@ class User < ActiveRecord::Base
+ end
+ end
+
++ def ldap_user?
++ AppConfig.ldap.enable? && ldap_dn.present?
++ end
++
++ def skip_email_confirmation?
++ ldap_user? && AppConfig.ldap.skip_email_confirmation?
++ end
++
+ private
+
+ def clearable_fields
+diff --git a/config/defaults.yml b/config/defaults.yml
+index c046aff07..66e9afa13 100644
+--- a/config/defaults.yml
++++ b/config/defaults.yml
+@@ -202,6 +202,20 @@ defaults:
+ scope: tags
+ include_user_tags: false
+ pod_tags:
++ ldap:
++ enable: false
++ host: localhost
++ port: 389
++ only_ldap: true
++ mail_attribute: mail
++ skip_email_confirmation: true
++ use_bind_dn: true
++ bind_dn: "cn=diaspora,dc=example,dc=com"
++ bind_pw: "password"
++ search_base: "dc=example,dc=com"
++ search_filter: "uid=%{username}"
++ bind_template: "uid=%{username},dc=example,dc=com"
++
+
+ development:
+ environment:
+diff --git a/config/diaspora.yml.example b/config/diaspora.yml.example
+index b2573625d..c357c8651 100644
+--- a/config/diaspora.yml.example
++++ b/config/diaspora.yml.example
+@@ -710,6 +710,36 @@ configuration: ## Section
+ ## If scope is 'tags', a comma separated list of tags here can be set.
+ ## For example "linux,diaspora", to receive posts related to these tags
+ #pod_tags:
++ ldap:
++ # Uncomment next line if you want to use LDAP on your instance
++ enable: true
++ host: localhost
++ port: 389
++ # Use only LDAP authentication (don't try other means)
++ only_ldap: true
++ # LDAP attribute to find the user's e-mail. Necessary to create accounts
++ # for not existing users
++ mail_attribute: mail
++ # Skip e-mail confirmation when creating an account via LDAP.
++ skip_email_confirmation: true
++ # ----- Using bind_dn and bind_pw
++ # bind_dn and bind_pw may be used if the diaspora instance
++ # should be able to connect to LDAP to find and search for users.
++
++ use_bind_dn: true
++ bind_dn: "cn=diaspora,dc=example,dc=com"
++ bind_pw: "password"
++ search_base: "dc=example,dc=com"
++ # This is the filter with which to search for the user. %{username} will
++ # be replaced by the given login.
++ search_filter: "uid=%{username}"
++ #
++ # ----- Using template
++ # This setting doesn't require a diaspora LDAP user. Use a template, and
++ # diaspora will try to login with the templated dn and password
++ #
++ # bind_template: "uid=%{username},dc=example,dc=com"
++
+
+ ## Here you can override settings defined above if you need
+ ## to have them different in different environments.
+diff --git a/config/initializers/0_ldap_authenticatable.rb b/config/initializers/0_ldap_authenticatable.rb
+new file mode 100644
+index 000000000..49846502f
+--- /dev/null
++++ b/config/initializers/0_ldap_authenticatable.rb
+@@ -0,0 +1,82 @@
++require 'net/ldap'
++require 'devise/strategies/authenticatable'
++
++module Devise
++ module Strategies
++ class LdapAuthenticatable < Authenticatable
++ def valid?
++ AppConfig.ldap.enable? && params[:user].present?
++ end
++
++ def authenticate!
++ ldap = Net::LDAP.new(
++ host: AppConfig.ldap.host,
++ port: AppConfig.ldap.port,
++ encryption: :simple_tls,
++ )
++
++ if AppConfig.ldap.use_bind_dn?
++ ldap.auth AppConfig.ldap.bind_dn, AppConfig.ldap.bind_pw
++
++ if !ldap.bind
++ return fail(:ldap_configuration_error)
++ end
++
++ search_filter = AppConfig.ldap.search_filter % { username: params[:user][:username] }
++
++ result = ldap.search(base: AppConfig.ldap.search_base, filter: search_filter, result_set: true)
++
++ if result.count != 1
++ return login_fail
++ end
++
++ user_dn = result.first.dn
++ user_email = result.first[AppConfig.ldap.mail_attribute].first
++ else
++ user_dn = AppConfig.ldap.bind_template % { username: params[:user][:username] }
++ end
++
++ ldap.auth user_dn, params[:user][:password]
++
++ if ldap.bind
++ user = User.find_by(ldap_dn: user_dn)
++
++ # We don't want to trust too much the email attribute from
++ # LDAP: if the user can edit it himself, he may login as
++ # anyone
++ if user.nil?
++ if !AppConfig.ldap.use_bind_dn?
++ result = ldap.search(base: user_dn, scope: Net::LDAP::SearchScope_BaseObject, filter: "(objectClass=*)", result_set: true)
++ user_email = result.first[AppConfig.ldap.mail_attribute].first
++ end
++
++ if user_email.present? && User.find_by(email: user_email).nil?
++ # Password is used for remember_me token
++ user = User.build(email: user_email, ldap_dn: user_dn, password: SecureRandom.hex, username: params[:user][:username])
++ user.save
++ user.seed_aspects
++ elsif User.find_by(email: user_email).present?
++ return fail(:ldap_existing_email)
++ else
++ return fail(:ldap_cannot_create_account_without_email)
++ end
++ end
++
++ success!(user)
++ else
++ return login_fail
++ end
++ end
++
++ def login_fail
++ if AppConfig.ldap.only_ldap?
++ return fail(:ldap_invalid_login)
++ else
++ return pass
++ end
++ end
++ end
++ end
++end
++
++Warden::Strategies.add(:ldap_authenticatable, Devise::Strategies::LdapAuthenticatable)
+diff --git a/config/initializers/devise.rb b/config/initializers/devise.rb
+index 3698e2373..14e88063e 100644
+--- a/config/initializers/devise.rb
++++ b/config/initializers/devise.rb
+@@ -250,10 +250,9 @@ Devise.setup do |config|
+ # If you want to use other strategies, that are not supported by Devise, or
+ # change the failure app, you can configure them inside the config.warden block.
+ #
+- # config.warden do |manager|
+- # manager.intercept_401 = false
+- # manager.default_strategies(:scope => :user).unshift :some_external_strategy
+- # end
++ config.warden do |manager|
++ manager.default_strategies(scope: :user).unshift :ldap_authenticatable
++ end
+
+ # ==> Mountable engine configurations
+ # When using Devise inside an engine, let's call it `MyEngine`, and this engine
+diff --git a/db/migrate/20170724182100_add_ldap_dn_to_users.rb b/db/migrate/20170724182100_add_ldap_dn_to_users.rb
+new file mode 100644
+index 000000000..f5cc84d11
+--- /dev/null
++++ b/db/migrate/20170724182100_add_ldap_dn_to_users.rb
+@@ -0,0 +1,6 @@
++class AddLdapDnToUsers < ActiveRecord::Migration
++ def change
++ add_column :users, :ldap_dn, :text, null: true, default: nil
++ add_index :users, ['ldap_dn'], :length => { "ldap_dn" => 191 }
++ end
++end
--- /dev/null
+{ varDir ? "/var/lib/dokuwiki", preload ? "", lib, stdenv, mylibs, writeText }:
+let
+ preloadFile = plugins: let preloads = [preload]
+ ++ builtins.concatMap (p: lib.optional (lib.hasAttr "preload" p) (p.preload p)) plugins;
+ in writeText "preload.php" (''
+ <?php
+ '' + builtins.concatStringsSep "\n" preloads
+ );
+ withPlugins = plugins: package.overrideAttrs(old: {
+ name = "${old.name}-with-plugins";
+ installPhase = old.installPhase + (
+ builtins.concatStringsSep "\n" (
+ map (value: "ln -sf ${value} $out/lib/plugins/${value.pluginName}") plugins
+ )
+ );
+ installPreloadPhase = ''
+ cp ${preloadFile plugins} $out/inc/preload.php
+ '';
+ passthru = old.passthru // {
+ inherit plugins;
+ withPlugins = morePlugins: old.withPlugins (morePlugins ++ plugins);
+ };
+ });
+ package = stdenv.mkDerivation (mylibs.fetchedGithub ./dokuwiki.json // rec {
+ phases = "unpackPhase buildPhase installPhase installPreloadPhase fixupPhase";
+ buildPhase = ''
+ mv conf conf.dist
+ mv data data.dist
+ '';
+ installPhase = ''
+ cp -a . $out
+ ln -sf ${varDir}/{conf,data} $out/
+ ln -sf ${varDir}/conf/.htaccess $out/
+ '';
+ installPreloadPhase = ''
+ cp ${preloadFile []} $out/inc/preload.php
+ '';
+ passthru = {
+ plugins = [];
+ inherit withPlugins varDir;
+ };
+ });
+in package
--- /dev/null
+{
+ "tag": "release_stable_2018-04-22b",
+ "meta": {
+ "name": "dokuwiki",
+ "url": "https://github.com/splitbrain/dokuwiki",
+ "branch": "refs/tags/release_stable_2018-04-22b"
+ },
+ "github": {
+ "owner": "splitbrain",
+ "repo": "dokuwiki",
+ "rev": "871dae1320b40211626c7ec665f5e6d5290aca95",
+ "sha256": "1syvd5dvv3v75swf8ig7dxqs0g5xikb0f6vlcy7g4c4ghldkw7nz",
+ "fetchSubmodules": true
+ }
+}
--- /dev/null
+{ stdenv, fetchFromGitHub }:
+stdenv.mkDerivation rec {
+ version = "72b8577-master";
+ name = "dokuwiki-plugin-farmer-${version}";
+ src = fetchFromGitHub {
+ owner = "cosmocode";
+ repo = "dokuwiki-plugin-farmer";
+ rev = "72b857734fd164bf79cc6e17abe56491d55c1072";
+ sha256 = "1c9vc1z7yvzjz4p054kshb9yd00a4bb52s43k9zav0lvwvjij9l0";
+ };
+ installPhase = ''
+ mkdir $out
+ cp -a * $out
+ '';
+ passthru = {
+ pluginName = "farmer";
+ preload = out: ''
+ # farm setup by farmer plugin
+ if (file_exists('${out}/DokuWikiFarmCore.php'))
+ {
+ include('${out}/DokuWikiFarmCore.php');
+ }
+ '';
+ };
+}
--- /dev/null
+{ stdenv, fetchFromGitHub }:
+stdenv.mkDerivation rec {
+ version = "49068ec-master";
+ name = "dokuwiki-plugin-todo-${version}";
+ src = fetchFromGitHub {
+ owner = "leibler";
+ repo = "dokuwiki-plugin-todo";
+ rev = "49068ecea455ea997d1e4a7adab171ccaf8228e8";
+ sha256 = "1jaq623kp14fyhamsas5mk9ryqlk4q6x6znijrb5xhcdg3r83gmq";
+ };
+ installPhase = ''
+ mkdir $out
+ cp -a * $out
+ '';
+ passthru = {
+ pluginName = "todo";
+ };
+}
--- /dev/null
+{ varDir ? "/var/lib/etherpad-lite" # if you override this change the StateDirectory in service file too!
+, stdenv, callPackage, mylibs, fetchurl }:
+let
+ jquery = fetchurl {
+ url = https://code.jquery.com/jquery-1.9.1.js;
+ sha256 = "0h4dk67yc9d0kadqxb6b33585f3x3559p6qmp70l00qwq030vn3v";
+ };
+ withModules = modules: package.overrideAttrs(old: {
+ installPhase = let
+ modInst = n:
+ let n' = n.override {
+ postInstall = ''
+ if [ ! -f $out/lib/node_modules/${n.moduleName}/.ep_initialized ]; then
+ ln -s ${varDir}/ep_initialized/${n.moduleName} $out/lib/node_modules/${n.moduleName}/.ep_initialized
+ fi
+ '';
+ };
+ in "cp -a ${n'}/lib/node_modules/${n.moduleName} $out/node_modules";
+ in old.installPhase + builtins.concatStringsSep "\n" (map modInst modules);
+ passthru = old.passthru // {
+ inherit modules;
+ withModules = moreModules: old.withModules (moreModules ++ modules);
+ };
+ });
+ # built using node2nix -l package-lock.json
+ # and changing "./." to "src"
+ node-environment = (callPackage ./node-packages.nix {
+ nodeEnv = callPackage mylibs.nodeEnv {};
+ src = stdenv.mkDerivation (mylibs.fetchedGithub ./etherpad-lite.json // rec {
+ patches = [ ./libreoffice_patch.diff ];
+ buildPhase = ''
+ touch src/.ep_initialized
+ cp -v src/static/custom/js.template src/static/custom/index.js
+ cp -v src/static/custom/js.template src/static/custom/pad.js
+ cp -v src/static/custom/js.template src/static/custom/timeslider.js
+ cp -v src/static/custom/css.template src/static/custom/index.css
+ cp -v src/static/custom/css.template src/static/custom/pad.css
+ cp -v src/static/custom/css.template src/static/custom/timeslider.css
+ '';
+ installPhase = ''
+ cp -a src/ $out
+ '';
+ });
+ }).package;
+ package = stdenv.mkDerivation rec {
+ name = (mylibs.fetchedGithub ./etherpad-lite.json).name;
+ src = node-environment;
+ installPhase = ''
+ mkdir -p $out
+ mkdir $out/node_modules
+ cp -a lib/node_modules/ep_etherpad-lite $out/src
+ chmod u+w $out/src/static/js/
+ cp ${jquery} $out/src/static/js/jquery.js
+ ln -s ../src $out/node_modules/ep_etherpad-lite
+ '';
+ passthru = {
+ modules = [];
+ inherit varDir withModules;
+ };
+ };
+in package
--- /dev/null
+{
+ "tag": "1.7.0",
+ "meta": {
+ "name": "etherpad-lite",
+ "url": "https://github.com/ether/etherpad-lite",
+ "branch": "refs/tags/1.7.0"
+ },
+ "github": {
+ "owner": "ether",
+ "repo": "etherpad-lite",
+ "rev": "96ac381afb9ea731dad48968f15d77dc6488bd0d",
+ "sha256": "03k6bwlm9ch9kssy9jipfg8ij7rpbzd89xq4mvg4grg1q6ivnzk9",
+ "fetchSubmodules": true
+ }
+}
--- /dev/null
+--- a/src/node/utils/LibreOffice.js 2018-06-18 09:54:15.087161212 +0200
++++ b/src/node/utils/LibreOffice.js 2018-06-18 10:33:27.534055021 +0200
+@@ -63,6 +63,7 @@
+ '--invisible',
+ '--nologo',
+ '--nolockcheck',
++ '-env:UserInstallation=file:///tmp/',
+ '--convert-to', task.type,
+ task.srcFile,
+ '--outdir', tmpDir
+
--- /dev/null
+[ "ep_aa_file_menu_toolbar" ]
--- /dev/null
+# This file has been generated by node2nix 1.6.0. Do not edit!
+
+{nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}:
+
+let
+ sources = {};
+in
+{
+ ep_aa_file_menu_toolbar = nodeEnv.buildNodePackage {
+ name = "ep_aa_file_menu_toolbar";
+ packageName = "ep_aa_file_menu_toolbar";
+ version = "0.1.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ep_aa_file_menu_toolbar/-/ep_aa_file_menu_toolbar-0.1.6.tgz";
+ sha1 = "aaa374d9429c9b2382311fab69e0ff819b53b7b0";
+ };
+ buildInputs = globalBuildInputs;
+ meta = {
+ description = "File / Menu style toolbar";
+ homepage = https://github.com/JohnMcLear/ep_file_menu_toolbar;
+ };
+ production = true;
+ bypassCache = false;
+ };
+}
\ No newline at end of file
--- /dev/null
+[ "ep_adminpads" ]
--- /dev/null
+# This file has been generated by node2nix 1.6.0. Do not edit!
+
+{nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}:
+
+let
+ sources = {};
+in
+{
+ ep_adminpads = nodeEnv.buildNodePackage {
+ name = "ep_adminpads";
+ packageName = "ep_adminpads";
+ version = "0.0.12";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ep_adminpads/-/ep_adminpads-0.0.12.tgz";
+ sha1 = "e8a04b6c77f76d9d8703c9b40e656950f2f5c125";
+ };
+ buildInputs = globalBuildInputs;
+ meta = {
+ description = "Gives the ability to list and administrate all pads on admin page";
+ homepage = "https://github.com/spcsser/ep_adminpads#readme";
+ license = "MIT";
+ };
+ production = true;
+ bypassCache = false;
+ };
+}
\ No newline at end of file
--- /dev/null
+[ "ep_align" ]
--- /dev/null
+# This file has been generated by node2nix 1.6.0. Do not edit!
+
+{nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}:
+
+let
+ sources = {};
+in
+{
+ ep_align = nodeEnv.buildNodePackage {
+ name = "ep_align";
+ packageName = "ep_align";
+ version = "0.0.24";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ep_align/-/ep_align-0.0.24.tgz";
+ sha512 = "hQwIerjWtcY3qWfqCsm+MIk/eo/hfpOl7mkGS+YZFJvljv4xuDk8QK8gnYY7RLtiKGo8jN8fKlht2w6DCLosjg==";
+ };
+ buildInputs = globalBuildInputs;
+ meta = {
+ description = "Add Left/Center/Right/Justify to lines of text in a pad";
+ homepage = "https://github.com/johnmclear/ep_align#readme";
+ };
+ production = true;
+ bypassCache = false;
+ };
+}
\ No newline at end of file
--- /dev/null
+[ "ep_bookmark" ]
--- /dev/null
+# This file has been generated by node2nix 1.6.0. Do not edit!
+
+{nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}:
+
+let
+ sources = {};
+in
+{
+ ep_bookmark = nodeEnv.buildNodePackage {
+ name = "ep_bookmark";
+ packageName = "ep_bookmark";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ep_bookmark/-/ep_bookmark-1.0.2.tgz";
+ sha1 = "14ef41ab3eccc3c387f40a0093683fc6497cb560";
+ };
+ buildInputs = globalBuildInputs;
+ meta = {
+ description = "Etherpad plugin for users to save a list of bookmarks of their visited pads locally in the browser's local storage";
+ homepage = "https://github.com/Gared/ep_bookmark#readme";
+ };
+ production = true;
+ bypassCache = false;
+ };
+}
\ No newline at end of file
--- /dev/null
+[ "ep_clear_formatting" ]
--- /dev/null
+# This file has been generated by node2nix 1.6.0. Do not edit!
+
+{nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}:
+
+let
+ sources = {};
+in
+{
+ ep_clear_formatting = nodeEnv.buildNodePackage {
+ name = "ep_clear_formatting";
+ packageName = "ep_clear_formatting";
+ version = "0.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ep_clear_formatting/-/ep_clear_formatting-0.0.2.tgz";
+ sha1 = "b16970b9c6be01246d23cb5a81777aa220d06fc4";
+ };
+ buildInputs = globalBuildInputs;
+ meta = {
+ description = "Clear formatting on a selection, this plugin requires the file menu";
+ };
+ production = true;
+ bypassCache = false;
+ };
+}
\ No newline at end of file
--- /dev/null
+[ "ep_colors" ]
--- /dev/null
+# This file has been generated by node2nix 1.6.0. Do not edit!
+
+{nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}:
+
+let
+ sources = {};
+in
+{
+ ep_colors = nodeEnv.buildNodePackage {
+ name = "ep_colors";
+ packageName = "ep_colors";
+ version = "0.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ep_colors/-/ep_colors-0.0.3.tgz";
+ sha1 = "aa95e1b12e009ed6b05d0ccb188ca4829e799780";
+ };
+ buildInputs = globalBuildInputs;
+ meta = {
+ description = "add colors to the etherpad";
+ };
+ production = true;
+ bypassCache = false;
+ };
+}
\ No newline at end of file
--- /dev/null
+[ "ep_copy_paste_select_all" ]
--- /dev/null
+# This file has been generated by node2nix 1.6.0. Do not edit!
+
+{nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}:
+
+let
+ sources = {};
+in
+{
+ ep_copy_paste_select_all = nodeEnv.buildNodePackage {
+ name = "ep_copy_paste_select_all";
+ packageName = "ep_copy_paste_select_all";
+ version = "0.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ep_copy_paste_select_all/-/ep_copy_paste_select_all-0.0.4.tgz";
+ sha1 = "41b89ece9da8e549a7ca4b11cdfa0a27344f21c8";
+ };
+ buildInputs = globalBuildInputs;
+ meta = {
+ description = "Add support to do Copy, Paste, Select All and Find and Replace, this plugin requires the file menu";
+ homepage = https://github.com/ether/ep_copy_paste_select_all;
+ };
+ production = true;
+ bypassCache = false;
+ };
+}
\ No newline at end of file
--- /dev/null
+[ "ep_cursortrace" ]
--- /dev/null
+# This file has been generated by node2nix 1.6.0. Do not edit!
+
+{nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}:
+
+let
+ sources = {};
+in
+{
+ ep_cursortrace = nodeEnv.buildNodePackage {
+ name = "ep_cursortrace";
+ packageName = "ep_cursortrace";
+ version = "2.0.15";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ep_cursortrace/-/ep_cursortrace-2.0.15.tgz";
+ sha1 = "fa374f2d4be2708af998fbb407633c55d9031326";
+ };
+ buildInputs = globalBuildInputs;
+ meta = {
+ description = "Show cursor/caret movements of other users in real time";
+ homepage = https://github.com/redhog/ep_cursortrace;
+ };
+ production = true;
+ bypassCache = false;
+ };
+}
\ No newline at end of file
--- /dev/null
+[ "ep_embedmedia" ]
--- /dev/null
+# This file has been generated by node2nix 1.6.0. Do not edit!
+
+{nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}:
+
+let
+ sources = {};
+in
+{
+ ep_embedmedia = nodeEnv.buildNodePackage {
+ name = "ep_embedmedia";
+ packageName = "ep_embedmedia";
+ version = "0.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ep_embedmedia/-/ep_embedmedia-0.0.4.tgz";
+ sha1 = "b24bf0fe9702d21aa73079890e93183efc6a0975";
+ };
+ buildInputs = globalBuildInputs;
+ meta = {
+ description = "Embed media (youtube, vimeo etc)";
+ homepage = https://github.com/JohnMcLear/ep_embedmedia;
+ };
+ production = true;
+ bypassCache = false;
+ };
+}
\ No newline at end of file
--- /dev/null
+[ "ep_font_family" ]
--- /dev/null
+# This file has been generated by node2nix 1.6.0. Do not edit!
+
+{nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}:
+
+let
+ sources = {};
+in
+{
+ ep_font_family = nodeEnv.buildNodePackage {
+ name = "ep_font_family";
+ packageName = "ep_font_family";
+ version = "0.2.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ep_font_family/-/ep_font_family-0.2.7.tgz";
+ sha1 = "a31c06b1684c7fd65c1d5bf96bcf99b6faa79893";
+ };
+ buildInputs = globalBuildInputs;
+ meta = {
+ description = "Add support for different Fonts";
+ homepage = https://github.com/JohnMcLear/ep_font_family;
+ license = "Apache-2.0";
+ };
+ production = true;
+ bypassCache = false;
+ };
+}
\ No newline at end of file
--- /dev/null
+[ "ep_font_size" ]
--- /dev/null
+# This file has been generated by node2nix 1.6.0. Do not edit!
+
+{nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}:
+
+let
+ sources = {};
+in
+{
+ ep_font_size = nodeEnv.buildNodePackage {
+ name = "ep_font_size";
+ packageName = "ep_font_size";
+ version = "0.1.11";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ep_font_size/-/ep_font_size-0.1.11.tgz";
+ sha1 = "997c079bab97e04196c9db43b3bb238c804d8126";
+ };
+ buildInputs = globalBuildInputs;
+ meta = {
+ description = "Add support for Font Sizes";
+ };
+ production = true;
+ bypassCache = false;
+ };
+}
\ No newline at end of file
--- /dev/null
+[ "ep_headings2" ]
--- /dev/null
+# This file has been generated by node2nix 1.6.0. Do not edit!
+
+{nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}:
+
+let
+ sources = {};
+in
+{
+ ep_headings2 = nodeEnv.buildNodePackage {
+ name = "ep_headings2";
+ packageName = "ep_headings2";
+ version = "0.0.9";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ep_headings2/-/ep_headings2-0.0.9.tgz";
+ sha1 = "115f4162a2e49808a0cee50e04aff26c591db0d4";
+ };
+ buildInputs = globalBuildInputs;
+ meta = {
+ description = "Adds heading support to Etherpad Lite. Includes improved suppot for export, i18n etc.";
+ homepage = https://github.com/johnmclear/ep_headings2;
+ };
+ production = true;
+ bypassCache = false;
+ };
+}
\ No newline at end of file
--- /dev/null
+[ "ep_ldapauth" ]
--- /dev/null
+# This file has been generated by node2nix 1.6.0. Do not edit!
+
+{nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}:
+
+let
+ sources = {
+ "asn1-0.2.3" = {
+ name = "asn1";
+ packageName = "asn1";
+ version = "0.2.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz";
+ sha1 = "dac8787713c9966849fc8180777ebe9c1ddf3b86";
+ };
+ };
+ "assert-plus-0.1.5" = {
+ name = "assert-plus";
+ packageName = "assert-plus";
+ version = "0.1.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz";
+ sha1 = "ee74009413002d84cec7219c6ac811812e723160";
+ };
+ };
+ "assert-plus-1.0.0" = {
+ name = "assert-plus";
+ packageName = "assert-plus";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz";
+ sha1 = "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525";
+ };
+ };
+ "async-stacktrace-0.0.2" = {
+ name = "async-stacktrace";
+ packageName = "async-stacktrace";
+ version = "0.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/async-stacktrace/-/async-stacktrace-0.0.2.tgz";
+ sha1 = "8bbb9787e3b38c836c729a7e9d7c08630db5d1ef";
+ };
+ };
+ "backoff-2.5.0" = {
+ name = "backoff";
+ packageName = "backoff";
+ version = "2.5.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/backoff/-/backoff-2.5.0.tgz";
+ sha1 = "f616eda9d3e4b66b8ca7fca79f695722c5f8e26f";
+ };
+ };
+ "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";
+ };
+ };
+ "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==";
+ };
+ };
+ "bunyan-1.8.12" = {
+ name = "bunyan";
+ packageName = "bunyan";
+ version = "1.8.12";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/bunyan/-/bunyan-1.8.12.tgz";
+ sha1 = "f150f0f6748abdd72aeae84f04403be2ef113797";
+ };
+ };
+ "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";
+ };
+ };
+ "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";
+ };
+ };
+ "dashdash-1.14.1" = {
+ name = "dashdash";
+ packageName = "dashdash";
+ version = "1.14.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz";
+ sha1 = "853cfa0f7cbe2fed5de20326b8dd581035f6e2f0";
+ };
+ };
+ "dtrace-provider-0.7.1" = {
+ name = "dtrace-provider";
+ packageName = "dtrace-provider";
+ version = "0.7.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.7.1.tgz";
+ sha1 = "c06b308f2f10d5d5838aec9c571e5d588dc71d04";
+ };
+ };
+ "dtrace-provider-0.8.7" = {
+ name = "dtrace-provider";
+ packageName = "dtrace-provider";
+ version = "0.8.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.8.7.tgz";
+ sha1 = "dc939b4d3e0620cfe0c1cd803d0d2d7ed04ffd04";
+ };
+ };
+ "extsprintf-1.2.0" = {
+ name = "extsprintf";
+ packageName = "extsprintf";
+ version = "1.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/extsprintf/-/extsprintf-1.2.0.tgz";
+ sha1 = "5ad946c22f5b32ba7f8cd7426711c6e8a3fc2529";
+ };
+ };
+ "glob-6.0.4" = {
+ name = "glob";
+ packageName = "glob";
+ version = "6.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz";
+ sha1 = "0f08860f6a155127b2fadd4f9ce24b1aab6e4d22";
+ };
+ };
+ "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";
+ };
+ };
+ "ldap-filter-0.2.2" = {
+ name = "ldap-filter";
+ packageName = "ldap-filter";
+ version = "0.2.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ldap-filter/-/ldap-filter-0.2.2.tgz";
+ sha1 = "f2b842be0b86da3352798505b31ebcae590d77d0";
+ };
+ };
+ "ldapjs-1.0.1" = {
+ name = "ldapjs";
+ packageName = "ldapjs";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ldapjs/-/ldapjs-1.0.1.tgz";
+ sha1 = "352b812ae74b0a8e96549a4b896060eee1b9a546";
+ };
+ };
+ "minimatch-3.0.4" = {
+ name = "minimatch";
+ packageName = "minimatch";
+ version = "3.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz";
+ sha512 = "yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==";
+ };
+ };
+ "minimist-0.0.8" = {
+ name = "minimist";
+ packageName = "minimist";
+ version = "0.0.8";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz";
+ sha1 = "857fcabfc3397d2625b8228262e86aa7a011b05d";
+ };
+ };
+ "mkdirp-0.5.1" = {
+ name = "mkdirp";
+ packageName = "mkdirp";
+ version = "0.5.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz";
+ sha1 = "30057438eac6cf7f8c4767f38648d6697d75c903";
+ };
+ };
+ "moment-2.24.0" = {
+ name = "moment";
+ packageName = "moment";
+ version = "2.24.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz";
+ sha512 = "bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==";
+ };
+ };
+ "mv-2.1.1" = {
+ name = "mv";
+ packageName = "mv";
+ version = "2.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz";
+ sha1 = "ae6ce0d6f6d5e0a4f7d893798d03c1ea9559b6a2";
+ };
+ };
+ "nan-2.13.2" = {
+ name = "nan";
+ packageName = "nan";
+ version = "2.13.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/nan/-/nan-2.13.2.tgz";
+ sha512 = "TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw==";
+ };
+ };
+ "ncp-2.0.0" = {
+ name = "ncp";
+ packageName = "ncp";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz";
+ sha1 = "195a21d6c46e361d2fb1281ba38b91e9df7bdbb3";
+ };
+ };
+ "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";
+ };
+ };
+ "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";
+ };
+ };
+ "precond-0.2.3" = {
+ name = "precond";
+ packageName = "precond";
+ version = "0.2.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/precond/-/precond-0.2.3.tgz";
+ sha1 = "aa9591bcaa24923f1e0f4849d240f47efc1075ac";
+ };
+ };
+ "rimraf-2.4.5" = {
+ name = "rimraf";
+ packageName = "rimraf";
+ version = "2.4.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz";
+ sha1 = "ee710ce5d93a8fdb856fb5ea8ff0e2d75934b2da";
+ };
+ };
+ "safe-json-stringify-1.2.0" = {
+ name = "safe-json-stringify";
+ packageName = "safe-json-stringify";
+ version = "1.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz";
+ sha512 = "gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==";
+ };
+ };
+ "vasync-1.6.4" = {
+ name = "vasync";
+ packageName = "vasync";
+ version = "1.6.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/vasync/-/vasync-1.6.4.tgz";
+ sha1 = "dfe93616ad0e7ae801b332a9d88bfc5cdc8e1d1f";
+ };
+ };
+ "verror-1.10.0" = {
+ name = "verror";
+ packageName = "verror";
+ version = "1.10.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz";
+ sha1 = "3a105ca17053af55d6e270c1f8288682e18da400";
+ };
+ };
+ "verror-1.6.0" = {
+ name = "verror";
+ packageName = "verror";
+ version = "1.6.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/verror/-/verror-1.6.0.tgz";
+ sha1 = "7d13b27b1facc2e2da90405eb5ea6e5bdd252ea5";
+ };
+ };
+ "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";
+ };
+ };
+ };
+in
+{
+ ep_ldapauth = nodeEnv.buildNodePackage {
+ name = "ep_ldapauth";
+ packageName = "ep_ldapauth";
+ version = "0.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ep_ldapauth/-/ep_ldapauth-0.3.0.tgz";
+ sha1 = "8b34ea34b20ae97d53d753cc7d1f6f191800e3b0";
+ };
+ dependencies = [
+ sources."asn1-0.2.3"
+ sources."assert-plus-1.0.0"
+ sources."async-stacktrace-0.0.2"
+ sources."backoff-2.5.0"
+ sources."balanced-match-1.0.0"
+ sources."brace-expansion-1.1.11"
+ (sources."bunyan-1.8.12" // {
+ dependencies = [
+ sources."dtrace-provider-0.8.7"
+ ];
+ })
+ sources."concat-map-0.0.1"
+ sources."core-util-is-1.0.2"
+ sources."dashdash-1.14.1"
+ sources."dtrace-provider-0.7.1"
+ sources."extsprintf-1.2.0"
+ sources."glob-6.0.4"
+ sources."inflight-1.0.6"
+ sources."inherits-2.0.3"
+ (sources."ldap-filter-0.2.2" // {
+ dependencies = [
+ sources."assert-plus-0.1.5"
+ ];
+ })
+ sources."ldapjs-1.0.1"
+ sources."minimatch-3.0.4"
+ sources."minimist-0.0.8"
+ sources."mkdirp-0.5.1"
+ sources."moment-2.24.0"
+ sources."mv-2.1.1"
+ sources."nan-2.13.2"
+ sources."ncp-2.0.0"
+ sources."once-1.4.0"
+ sources."path-is-absolute-1.0.1"
+ sources."precond-0.2.3"
+ sources."rimraf-2.4.5"
+ sources."safe-json-stringify-1.2.0"
+ (sources."vasync-1.6.4" // {
+ dependencies = [
+ sources."verror-1.6.0"
+ ];
+ })
+ sources."verror-1.10.0"
+ sources."wrappy-1.0.2"
+ ];
+ buildInputs = globalBuildInputs;
+ meta = {
+ description = "Hooks into etherpad lite auth to provide LDAP authentication.";
+ homepage = "https://github.com/tykeal/ep_ldapauth#readme";
+ license = "GPL-2.0";
+ };
+ production = true;
+ bypassCache = true;
+ };
+}
--- /dev/null
+[ "ep_line_height" ]
--- /dev/null
+# This file has been generated by node2nix 1.6.0. Do not edit!
+
+{nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}:
+
+let
+ sources = {};
+in
+{
+ ep_line_height = nodeEnv.buildNodePackage {
+ name = "ep_line_height";
+ packageName = "ep_line_height";
+ version = "0.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ep_line_height/-/ep_line_height-0.0.4.tgz";
+ sha1 = "8afbb441e6d65db97d2335887f9352b10b5d22d2";
+ };
+ buildInputs = globalBuildInputs;
+ meta = {
+ description = "Change the line height";
+ };
+ production = true;
+ bypassCache = false;
+ };
+}
\ No newline at end of file
--- /dev/null
+[ "ep_markdown" ]
--- /dev/null
+# This file has been generated by node2nix 1.6.0. Do not edit!
+
+{nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}:
+
+let
+ sources = {};
+in
+{
+ ep_markdown = nodeEnv.buildNodePackage {
+ name = "ep_markdown";
+ packageName = "ep_markdown";
+ version = "0.0.10";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ep_markdown/-/ep_markdown-0.0.10.tgz";
+ sha1 = "d3f624f7bba64d350ff028ed2413ad3cd5eeb91e";
+ };
+ buildInputs = globalBuildInputs;
+ meta = {
+ description = "Edit and Export as Markdown in Etherpad";
+ homepage = https://github.com/johnmclear/ep_markdown;
+ license = "Apache-2.0";
+ };
+ production = true;
+ bypassCache = false;
+ };
+}
\ No newline at end of file
--- /dev/null
+[ "ep_previewimages" ]
--- /dev/null
+# This file has been generated by node2nix 1.6.0. Do not edit!
+
+{nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}:
+
+let
+ sources = {};
+in
+{
+ ep_previewimages = nodeEnv.buildNodePackage {
+ name = "ep_previewimages";
+ packageName = "ep_previewimages";
+ version = "0.0.9";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ep_previewimages/-/ep_previewimages-0.0.9.tgz";
+ sha1 = "417d96249c50f8a59a1ef6c640e4ac98c26a106b";
+ };
+ buildInputs = globalBuildInputs;
+ meta = {
+ description = "Image previewer, paste the URL of an image or upload an image using ep_fileupload";
+ homepage = https://github.com/JohnMcLear/ep_previewimages;
+ };
+ production = true;
+ bypassCache = false;
+ };
+}
\ No newline at end of file
--- /dev/null
+[ "ep_ruler" ]
--- /dev/null
+{stdenv, nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}:
+
+let
+ sources = {};
+in
+{
+ ep_ruler = nodeEnv.buildNodePackage {
+ name = "ep_ruler";
+ packageName = "ep_ruler";
+ version = "0.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ep_ruler/-/ep_ruler-0.0.2.tgz";
+ sha1 = "5af10dfe0b5f33459566ce649cc483c680ed7811";
+ };
+ preRebuild = ''
+ sed -i -e 's/"dependencies"/"peerDependencies"/' package.json
+ '';
+ buildInputs = globalBuildInputs;
+ meta = {
+ description = "Adds a ruler to Etherpad lite";
+ homepage = https://github.com/iquidus/ep_ruler;
+ };
+ production = true;
+ bypassCache = false;
+ };
+}
+
--- /dev/null
+[ "ep_scrollto" ]
--- /dev/null
+# This file has been generated by node2nix 1.6.0. Do not edit!
+
+{nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}:
+
+let
+ sources = {};
+in
+{
+ ep_scrollto = nodeEnv.buildNodePackage {
+ name = "ep_scrollto";
+ packageName = "ep_scrollto";
+ version = "0.0.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ep_scrollto/-/ep_scrollto-0.0.6.tgz";
+ sha1 = "6b57e2243cb8477e1437c348a94cb6bcc162f91d";
+ };
+ buildInputs = globalBuildInputs;
+ meta = {
+ description = "Scroll to a specific line number based on a parameter of lineNumber in the URL IE http://test.com/p/foo#lineNumber=10 -- Users can click on the line number to get a link";
+ homepage = https://github.com/johnmclear/ep_scrollto;
+ };
+ production = true;
+ bypassCache = false;
+ };
+}
\ No newline at end of file
--- /dev/null
+[ "ep_set_title_on_pad" ]
--- /dev/null
+# This file has been generated by node2nix 1.6.0. Do not edit!
+
+{nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}:
+
+let
+ sources = {};
+in
+{
+ ep_set_title_on_pad = nodeEnv.buildNodePackage {
+ name = "ep_set_title_on_pad";
+ packageName = "ep_set_title_on_pad";
+ version = "0.1.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ep_set_title_on_pad/-/ep_set_title_on_pad-0.1.4.tgz";
+ sha1 = "b89b354242509c0cc825b7532de505a883bab2b3";
+ };
+ buildInputs = globalBuildInputs;
+ meta = {
+ description = "Set the title on a pad in Etherpad, also includes real time updates to the UI";
+ homepage = https://github.com/JohnMcLear/ep_set_title_on_pad;
+ };
+ production = true;
+ bypassCache = false;
+ };
+}
\ No newline at end of file
--- /dev/null
+[ "ep_subscript_and_superscript" ]
--- /dev/null
+# This file has been generated by node2nix 1.6.0. Do not edit!
+
+{nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}:
+
+let
+ sources = {};
+in
+{
+ ep_subscript_and_superscript = nodeEnv.buildNodePackage {
+ name = "ep_subscript_and_superscript";
+ packageName = "ep_subscript_and_superscript";
+ version = "0.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ep_subscript_and_superscript/-/ep_subscript_and_superscript-0.0.3.tgz";
+ sha1 = "47f74a242fe8be5911391943f718eab81c390620";
+ };
+ buildInputs = globalBuildInputs;
+ meta = {
+ description = "Add support for Subscript and Superscript";
+ };
+ production = true;
+ bypassCache = false;
+ };
+}
\ No newline at end of file
--- /dev/null
+[ "ep_timesliderdiff" ]
--- /dev/null
+# This file has been generated by node2nix 1.6.0. Do not edit!
+
+{nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}:
+
+let
+ sources = {};
+in
+{
+ ep_timesliderdiff = nodeEnv.buildNodePackage {
+ name = "ep_timesliderdiff";
+ packageName = "ep_timesliderdiff";
+ version = "0.0.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ep_timesliderdiff/-/ep_timesliderdiff-0.0.5.tgz";
+ sha1 = "f8e0543677f7ac643936a2afce9f370d08a43310";
+ };
+ buildInputs = globalBuildInputs;
+ meta = {
+ description = "See a diff view showing the changes between the latest pad and a revision";
+ homepage = https://github.com/JohnMcLear/ep_timesliderdiff;
+ };
+ production = true;
+ bypassCache = false;
+ };
+}
\ No newline at end of file
--- /dev/null
+# This file has been generated by node2nix 1.6.0. Do not edit!
+
+{src, nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}:
+
+let
+ sources = {
+ "abab-1.0.4" = {
+ name = "abab";
+ packageName = "abab";
+ version = "1.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz";
+ sha1 = "5faad9c2c07f60dd76770f71cf025b62a63cfd4e";
+ };
+ };
+ "accepts-1.3.3" = {
+ name = "accepts";
+ packageName = "accepts";
+ version = "1.3.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz";
+ sha1 = "c3ca7434938648c3e0d9c1e328dd68b622c284ca";
+ };
+ };
+ "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==";
+ };
+ };
+ "acorn-2.7.0" = {
+ name = "acorn";
+ packageName = "acorn";
+ version = "2.7.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz";
+ sha1 = "ab6e7d9d886aaca8b085bc3312b79a198433f0e7";
+ };
+ };
+ "acorn-globals-1.0.9" = {
+ name = "acorn-globals";
+ packageName = "acorn-globals";
+ version = "1.0.9";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/acorn-globals/-/acorn-globals-1.0.9.tgz";
+ sha1 = "55bb5e98691507b74579d0513413217c380c54cf";
+ };
+ };
+ "after-0.8.2" = {
+ name = "after";
+ packageName = "after";
+ version = "0.8.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/after/-/after-0.8.2.tgz";
+ sha1 = "fedb394f9f0e02aa9768e702bda23b505fae7e1f";
+ };
+ };
+ "agentkeepalive-3.5.2" = {
+ name = "agentkeepalive";
+ packageName = "agentkeepalive";
+ version = "3.5.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.5.2.tgz";
+ sha512 = "e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ==";
+ };
+ };
+ "ajv-5.5.2" = {
+ name = "ajv";
+ packageName = "ajv";
+ version = "5.5.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz";
+ sha1 = "73b5eeca3fab653e3d3f9422b341ad42205dc965";
+ };
+ };
+ "ajv-6.10.0" = {
+ name = "ajv";
+ packageName = "ajv";
+ version = "6.10.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz";
+ sha512 = "nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==";
+ };
+ };
+ "align-text-0.1.4" = {
+ name = "align-text";
+ packageName = "align-text";
+ version = "0.1.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz";
+ sha1 = "0cd90a561093f35d0a99256c22b7069433fad117";
+ };
+ };
+ "amdefine-1.0.1" = {
+ name = "amdefine";
+ packageName = "amdefine";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz";
+ sha1 = "4a5282ac164729e93619bcfd3ad151f817ce91f5";
+ };
+ };
+ "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-2.2.1" = {
+ name = "ansi-styles";
+ packageName = "ansi-styles";
+ version = "2.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz";
+ sha1 = "b432dd3358b634cf75e1e4664368240533c1ddbe";
+ };
+ };
+ "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";
+ };
+ };
+ "arraybuffer.slice-0.0.6" = {
+ name = "arraybuffer.slice";
+ packageName = "arraybuffer.slice";
+ version = "0.0.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz";
+ sha1 = "f33b2159f0532a3f3107a272c0ccfbd1ad2979ca";
+ };
+ };
+ "asn1-0.2.4" = {
+ name = "asn1";
+ packageName = "asn1";
+ version = "0.2.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz";
+ sha512 = "jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==";
+ };
+ };
+ "assert-plus-1.0.0" = {
+ name = "assert-plus";
+ packageName = "assert-plus";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz";
+ sha1 = "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525";
+ };
+ };
+ "async-0.1.15" = {
+ name = "async";
+ packageName = "async";
+ version = "0.1.15";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/async/-/async-0.1.15.tgz";
+ sha1 = "2180eaca2cf2a6ca5280d41c0585bec9b3e49bd3";
+ };
+ };
+ "async-0.2.10" = {
+ name = "async";
+ packageName = "async";
+ version = "0.2.10";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/async/-/async-0.2.10.tgz";
+ sha1 = "b6bbe0b0674b9d719708ca38de8c237cb526c3d1";
+ };
+ };
+ "async-0.9.0" = {
+ name = "async";
+ packageName = "async";
+ version = "0.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/async/-/async-0.9.0.tgz";
+ sha1 = "ac3613b1da9bed1b47510bb4651b8931e47146c7";
+ };
+ };
+ "async-stacktrace-0.0.2" = {
+ name = "async-stacktrace";
+ packageName = "async-stacktrace";
+ version = "0.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/async-stacktrace/-/async-stacktrace-0.0.2.tgz";
+ sha1 = "8bbb9787e3b38c836c729a7e9d7c08630db5d1ef";
+ };
+ };
+ "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";
+ };
+ };
+ "aws-sign2-0.7.0" = {
+ name = "aws-sign2";
+ packageName = "aws-sign2";
+ version = "0.7.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz";
+ sha1 = "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8";
+ };
+ };
+ "aws4-1.8.0" = {
+ name = "aws4";
+ packageName = "aws4";
+ version = "1.8.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz";
+ sha512 = "ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==";
+ };
+ };
+ "backo2-1.0.2" = {
+ name = "backo2";
+ packageName = "backo2";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz";
+ sha1 = "31ab1ac8b129363463e35b3ebb69f4dfcfba7947";
+ };
+ };
+ "base64-arraybuffer-0.1.5" = {
+ name = "base64-arraybuffer";
+ packageName = "base64-arraybuffer";
+ version = "0.1.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz";
+ sha1 = "73926771923b5a19747ad666aa5cd4bf9c6e9ce8";
+ };
+ };
+ "base64id-1.0.0" = {
+ name = "base64id";
+ packageName = "base64id";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz";
+ sha1 = "47688cb99bb6804f0e06d3e763b1c32e57d8e6b6";
+ };
+ };
+ "bcrypt-pbkdf-1.0.2" = {
+ name = "bcrypt-pbkdf";
+ packageName = "bcrypt-pbkdf";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz";
+ sha1 = "a4301d389b6a43f9b67ff3ca11a3f6637e360e9e";
+ };
+ };
+ "better-assert-1.0.2" = {
+ name = "better-assert";
+ packageName = "better-assert";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz";
+ sha1 = "40866b9e1b9e0b55b481894311e68faffaebc522";
+ };
+ };
+ "bignumber.js-4.0.4" = {
+ name = "bignumber.js";
+ packageName = "bignumber.js";
+ version = "4.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/bignumber.js/-/bignumber.js-4.0.4.tgz";
+ sha512 = "LDXpJKVzEx2/OqNbG9mXBNvHuiRL4PzHCGfnANHMJ+fv68Ads3exDVJeGDJws+AoNEuca93bU3q+S0woeUaCdg==";
+ };
+ };
+ "binary-search-1.3.5" = {
+ name = "binary-search";
+ packageName = "binary-search";
+ version = "1.3.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/binary-search/-/binary-search-1.3.5.tgz";
+ sha512 = "RHFP0AdU6KAB0CCZsRMU2CJTk2EpL8GLURT+4gilpjr1f/7M91FgUMnXuQLmf3OKLet34gjuNFwO7e4agdX5pw==";
+ };
+ };
+ "blob-0.0.4" = {
+ name = "blob";
+ packageName = "blob";
+ version = "0.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz";
+ sha1 = "bcf13052ca54463f30f9fc7e95b9a47630a94921";
+ };
+ };
+ "bluebird-2.11.0" = {
+ name = "bluebird";
+ packageName = "bluebird";
+ version = "2.11.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz";
+ sha1 = "534b9033c022c9579c56ba3b3e5a5caafbb650e1";
+ };
+ };
+ "body-parser-1.18.2" = {
+ name = "body-parser";
+ packageName = "body-parser";
+ version = "1.18.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz";
+ sha1 = "87678a19d84b47d859b83199bd59bce222b10454";
+ };
+ };
+ "boolbase-1.0.0" = {
+ name = "boolbase";
+ packageName = "boolbase";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz";
+ sha1 = "68dff5fbe60c51eb37725ea9e3ed310dcc1e776e";
+ };
+ };
+ "boom-4.3.1" = {
+ name = "boom";
+ packageName = "boom";
+ version = "4.3.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz";
+ sha1 = "4f8a3005cb4a7e3889f749030fd25b96e01d2e31";
+ };
+ };
+ "boom-5.2.0" = {
+ name = "boom";
+ packageName = "boom";
+ version = "5.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz";
+ sha512 = "Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==";
+ };
+ };
+ "browser-request-0.3.3" = {
+ name = "browser-request";
+ packageName = "browser-request";
+ version = "0.3.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/browser-request/-/browser-request-0.3.3.tgz";
+ sha1 = "9ece5b5aca89a29932242e18bf933def9876cc17";
+ };
+ };
+ "buffer-writer-1.0.1" = {
+ name = "buffer-writer";
+ packageName = "buffer-writer";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/buffer-writer/-/buffer-writer-1.0.1.tgz";
+ sha1 = "22a936901e3029afcd7547eb4487ceb697a3bf08";
+ };
+ };
+ "bytes-3.0.0" = {
+ name = "bytes";
+ packageName = "bytes";
+ version = "3.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz";
+ sha1 = "d32815404d689699f85a4ea4fa8755dd13a96048";
+ };
+ };
+ "callsite-1.0.0" = {
+ name = "callsite";
+ packageName = "callsite";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz";
+ sha1 = "280398e5d664bd74038b6f0905153e6e8af1bc20";
+ };
+ };
+ "camelcase-1.2.1" = {
+ name = "camelcase";
+ packageName = "camelcase";
+ version = "1.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz";
+ sha1 = "9bb5304d2e0b56698b2c758b08a3eaa9daa58a39";
+ };
+ };
+ "caseless-0.12.0" = {
+ name = "caseless";
+ packageName = "caseless";
+ version = "0.12.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz";
+ sha1 = "1b681c21ff84033c826543090689420d187151dc";
+ };
+ };
+ "cassandra-driver-2.0.1" = {
+ name = "cassandra-driver";
+ packageName = "cassandra-driver";
+ version = "2.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cassandra-driver/-/cassandra-driver-2.0.1.tgz";
+ sha1 = "072759ab837628dcbcb5bc678283dcc922c767e2";
+ };
+ };
+ "center-align-0.1.3" = {
+ name = "center-align";
+ packageName = "center-align";
+ version = "0.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz";
+ sha1 = "aa0d32629b6ee972200411cbd4461c907bc2b7ad";
+ };
+ };
+ "chalk-1.1.3" = {
+ name = "chalk";
+ packageName = "chalk";
+ version = "1.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz";
+ sha1 = "a8115c55e4a702fe4d150abd3872822a7e09fc98";
+ };
+ };
+ "channels-0.0.4" = {
+ name = "channels";
+ packageName = "channels";
+ version = "0.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/channels/-/channels-0.0.4.tgz";
+ sha1 = "1bee323edea152bb9ef04f41bc6e6b0f5948a941";
+ };
+ };
+ "cheerio-0.20.0" = {
+ name = "cheerio";
+ packageName = "cheerio";
+ version = "0.20.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cheerio/-/cheerio-0.20.0.tgz";
+ sha1 = "5c710f2bab95653272842ba01c6ea61b3545ec35";
+ };
+ };
+ "clean-css-3.4.19" = {
+ name = "clean-css";
+ packageName = "clean-css";
+ version = "3.4.19";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/clean-css/-/clean-css-3.4.19.tgz";
+ sha1 = "c32a8a13ca3b824609b14306a5da76d8793c7874";
+ };
+ };
+ "cliui-2.1.0" = {
+ name = "cliui";
+ packageName = "cliui";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz";
+ sha1 = "4b475760ff80264c762c3a1719032e91c7fea0d1";
+ };
+ };
+ "cloudant-follow-0.17.0" = {
+ name = "cloudant-follow";
+ packageName = "cloudant-follow";
+ version = "0.17.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cloudant-follow/-/cloudant-follow-0.17.0.tgz";
+ sha512 = "JQ1xvKAHh8rsnSVBjATLCjz/vQw1sWBGadxr2H69yFMwD7hShUGDwwEefdypaxroUJ/w6t1cSwilp/hRUxEW8w==";
+ };
+ };
+ "co-4.6.0" = {
+ name = "co";
+ packageName = "co";
+ version = "4.6.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/co/-/co-4.6.0.tgz";
+ sha1 = "6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184";
+ };
+ };
+ "combined-stream-1.0.7" = {
+ name = "combined-stream";
+ packageName = "combined-stream";
+ version = "1.0.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz";
+ sha512 = "brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==";
+ };
+ };
+ "commander-2.8.1" = {
+ name = "commander";
+ packageName = "commander";
+ version = "2.8.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz";
+ sha1 = "06be367febfda0c330aa1e2a072d3dc9762425d4";
+ };
+ };
+ "component-bind-1.0.0" = {
+ name = "component-bind";
+ packageName = "component-bind";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz";
+ sha1 = "00c608ab7dcd93897c0009651b1d3a8e1e73bbd1";
+ };
+ };
+ "component-emitter-1.1.2" = {
+ name = "component-emitter";
+ packageName = "component-emitter";
+ version = "1.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/component-emitter/-/component-emitter-1.1.2.tgz";
+ sha1 = "296594f2753daa63996d2af08d15a95116c9aec3";
+ };
+ };
+ "component-emitter-1.2.1" = {
+ name = "component-emitter";
+ packageName = "component-emitter";
+ version = "1.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz";
+ sha1 = "137918d6d78283f7df7a6b7c5a63e140e69425e6";
+ };
+ };
+ "component-inherit-0.0.3" = {
+ name = "component-inherit";
+ packageName = "component-inherit";
+ version = "0.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz";
+ sha1 = "645fc4adf58b72b649d5cae65135619db26ff143";
+ };
+ };
+ "content-disposition-0.5.2" = {
+ name = "content-disposition";
+ packageName = "content-disposition";
+ version = "0.5.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz";
+ sha1 = "0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4";
+ };
+ };
+ "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.1.2" = {
+ name = "cookie";
+ packageName = "cookie";
+ version = "0.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cookie/-/cookie-0.1.2.tgz";
+ sha1 = "72fec3d24e48a3432073d90c12642005061004b1";
+ };
+ };
+ "cookie-0.3.1" = {
+ name = "cookie";
+ packageName = "cookie";
+ version = "0.3.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz";
+ sha1 = "e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb";
+ };
+ };
+ "cookie-parser-1.3.4" = {
+ name = "cookie-parser";
+ packageName = "cookie-parser";
+ version = "1.3.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.3.4.tgz";
+ sha1 = "193035a5be97117a21709b3aa737f6132717bda6";
+ };
+ };
+ "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";
+ };
+ };
+ "crc-3.4.4" = {
+ name = "crc";
+ packageName = "crc";
+ version = "3.4.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/crc/-/crc-3.4.4.tgz";
+ sha1 = "9da1e980e3bd44fc5c93bf5ab3da3378d85e466b";
+ };
+ };
+ "cryptiles-3.1.4" = {
+ name = "cryptiles";
+ packageName = "cryptiles";
+ version = "3.1.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.4.tgz";
+ sha512 = "8I1sgZHfVwcSOY6mSGpVU3lw/GSIZvusg8dD2+OGehCJpOhQRLNcH0qb9upQnOH4XhgxxFJSg6E2kx95deb1Tw==";
+ };
+ };
+ "css-select-1.2.0" = {
+ name = "css-select";
+ packageName = "css-select";
+ version = "1.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz";
+ sha1 = "2b3a110539c5355f1cd8d314623e870b121ec858";
+ };
+ };
+ "css-what-2.1.3" = {
+ name = "css-what";
+ packageName = "css-what";
+ version = "2.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz";
+ sha512 = "a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==";
+ };
+ };
+ "cssom-0.3.6" = {
+ name = "cssom";
+ packageName = "cssom";
+ version = "0.3.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cssom/-/cssom-0.3.6.tgz";
+ sha512 = "DtUeseGk9/GBW0hl0vVPpU22iHL6YB5BUX7ml1hB+GMpo0NX5G4voX3kdWiMSEguFtcW3Vh3djqNF4aIe6ne0A==";
+ };
+ };
+ "cssstyle-0.2.37" = {
+ name = "cssstyle";
+ packageName = "cssstyle";
+ version = "0.2.37";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz";
+ sha1 = "541097234cb2513c83ceed3acddc27ff27987d54";
+ };
+ };
+ "dashdash-1.14.1" = {
+ name = "dashdash";
+ packageName = "dashdash";
+ version = "1.14.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz";
+ sha1 = "853cfa0f7cbe2fed5de20326b8dd581035f6e2f0";
+ };
+ };
+ "debug-2.2.0" = {
+ name = "debug";
+ packageName = "debug";
+ version = "2.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz";
+ sha1 = "f87057e995b1a1f6ae6a4960664137bc56f039da";
+ };
+ };
+ "debug-2.3.3" = {
+ name = "debug";
+ packageName = "debug";
+ version = "2.3.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz";
+ sha1 = "40c453e67e6e13c901ddec317af8986cda9eff8c";
+ };
+ };
+ "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.6" = {
+ name = "debug";
+ packageName = "debug";
+ version = "3.2.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz";
+ sha512 = "mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==";
+ };
+ };
+ "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";
+ };
+ };
+ "deep-is-0.1.3" = {
+ name = "deep-is";
+ packageName = "deep-is";
+ version = "0.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz";
+ sha1 = "b369d6fb5dbc13eecf524f91b070feedc357cf34";
+ };
+ };
+ "define-properties-1.1.3" = {
+ name = "define-properties";
+ packageName = "define-properties";
+ version = "1.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz";
+ sha512 = "3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==";
+ };
+ };
+ "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";
+ };
+ };
+ "depd-1.1.1" = {
+ name = "depd";
+ packageName = "depd";
+ version = "1.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz";
+ sha1 = "5783b4e1c459f06fa5ca27f991f3d06e7a310359";
+ };
+ };
+ "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";
+ };
+ };
+ "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";
+ };
+ };
+ "dirty-0.9.9" = {
+ name = "dirty";
+ packageName = "dirty";
+ version = "0.9.9";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/dirty/-/dirty-0.9.9.tgz";
+ sha1 = "f785804c4cf7907220cb10fa576b22329feda545";
+ };
+ };
+ "dom-serializer-0.1.1" = {
+ name = "dom-serializer";
+ packageName = "dom-serializer";
+ version = "0.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz";
+ sha512 = "l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==";
+ };
+ };
+ "domelementtype-1.3.1" = {
+ name = "domelementtype";
+ packageName = "domelementtype";
+ version = "1.3.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz";
+ sha512 = "BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==";
+ };
+ };
+ "domhandler-2.3.0" = {
+ name = "domhandler";
+ packageName = "domhandler";
+ version = "2.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz";
+ sha1 = "2de59a0822d5027fabff6f032c2b25a2a8abe738";
+ };
+ };
+ "domutils-1.5.1" = {
+ name = "domutils";
+ packageName = "domutils";
+ version = "1.5.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz";
+ sha1 = "dcd8488a26f563d61079e48c9f7b7e32373682cf";
+ };
+ };
+ "double-ended-queue-2.1.0-0" = {
+ name = "double-ended-queue";
+ packageName = "double-ended-queue";
+ version = "2.1.0-0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz";
+ sha1 = "103d3527fd31528f40188130c841efdd78264e5c";
+ };
+ };
+ "ecc-jsbn-0.1.2" = {
+ name = "ecc-jsbn";
+ packageName = "ecc-jsbn";
+ version = "0.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz";
+ sha1 = "3a83a904e54353287874c564b7549386849a98c9";
+ };
+ };
+ "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";
+ };
+ };
+ "ejs-2.5.7" = {
+ name = "ejs";
+ packageName = "ejs";
+ version = "2.5.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ejs/-/ejs-2.5.7.tgz";
+ sha1 = "cc872c168880ae3c7189762fd5ffc00896c9518a";
+ };
+ };
+ "elasticsearch-15.1.1" = {
+ name = "elasticsearch";
+ packageName = "elasticsearch";
+ version = "15.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/elasticsearch/-/elasticsearch-15.1.1.tgz";
+ sha512 = "Yr9xy10rUMjDty7qCys7X9AIW5+PX4Gtv2NksZqXIc+AZiWna/y2QwZdiSLtb5LTOKDp7PbegfuokhIjMHUpKw==";
+ };
+ };
+ "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";
+ };
+ };
+ "engine.io-1.8.3" = {
+ name = "engine.io";
+ packageName = "engine.io";
+ version = "1.8.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/engine.io/-/engine.io-1.8.3.tgz";
+ sha1 = "8de7f97895d20d39b85f88eeee777b2bd42b13d4";
+ };
+ };
+ "engine.io-client-1.8.3" = {
+ name = "engine.io-client";
+ packageName = "engine.io-client";
+ version = "1.8.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.8.3.tgz";
+ sha1 = "1798ed93451246453d4c6f635d7a201fe940d5ab";
+ };
+ };
+ "engine.io-parser-1.3.2" = {
+ name = "engine.io-parser";
+ packageName = "engine.io-parser";
+ version = "1.3.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.3.2.tgz";
+ sha1 = "937b079f0007d0893ec56d46cb220b8cb435220a";
+ };
+ };
+ "entities-1.0.0" = {
+ name = "entities";
+ packageName = "entities";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz";
+ sha1 = "b2987aa3821347fcde642b24fdfc9e4fb712bf26";
+ };
+ };
+ "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==";
+ };
+ };
+ "errs-0.3.2" = {
+ name = "errs";
+ packageName = "errs";
+ version = "0.3.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/errs/-/errs-0.3.2.tgz";
+ sha1 = "798099b2dbd37ca2bc749e538a7c1307d0b50499";
+ };
+ };
+ "es-abstract-1.13.0" = {
+ name = "es-abstract";
+ packageName = "es-abstract";
+ version = "1.13.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz";
+ sha512 = "vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==";
+ };
+ };
+ "es-to-primitive-1.2.0" = {
+ name = "es-to-primitive";
+ packageName = "es-to-primitive";
+ version = "1.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz";
+ sha512 = "qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==";
+ };
+ };
+ "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";
+ };
+ };
+ "escodegen-1.11.1" = {
+ name = "escodegen";
+ packageName = "escodegen";
+ version = "1.11.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/escodegen/-/escodegen-1.11.1.tgz";
+ sha512 = "JwiqFD9KdGVVpeuRa68yU3zZnBEOcPs0nKW7wZzXky8Z7tffdYUHbe11bPCV5jYlK6DVdKLWLm0f5I/QlL0Kmw==";
+ };
+ };
+ "esprima-3.1.3" = {
+ name = "esprima";
+ packageName = "esprima";
+ version = "3.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz";
+ sha1 = "fdca51cee6133895e3c88d535ce49dbff62a4633";
+ };
+ };
+ "estraverse-4.2.0" = {
+ name = "estraverse";
+ packageName = "estraverse";
+ version = "4.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz";
+ sha1 = "0dee3fed31fcd469618ce7342099fc1afa0bdb13";
+ };
+ };
+ "esutils-2.0.2" = {
+ name = "esutils";
+ packageName = "esutils";
+ version = "2.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz";
+ sha1 = "0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b";
+ };
+ };
+ "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";
+ };
+ };
+ "etherpad-require-kernel-1.0.9" = {
+ name = "etherpad-require-kernel";
+ packageName = "etherpad-require-kernel";
+ version = "1.0.9";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/etherpad-require-kernel/-/etherpad-require-kernel-1.0.9.tgz";
+ sha1 = "ed8f04e9fd2ccec3a0055bb6d2dfe9d99912e7e2";
+ };
+ };
+ "etherpad-yajsml-0.0.2" = {
+ name = "etherpad-yajsml";
+ packageName = "etherpad-yajsml";
+ version = "0.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/etherpad-yajsml/-/etherpad-yajsml-0.0.2.tgz";
+ sha1 = "1c24d268b09476e637d049cddb1c6df8c729b46e";
+ };
+ };
+ "express-4.16.3" = {
+ name = "express";
+ packageName = "express";
+ version = "4.16.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/express/-/express-4.16.3.tgz";
+ sha1 = "6af8a502350db3246ecc4becf6b5a34d22f7ed53";
+ };
+ };
+ "express-session-1.15.6" = {
+ name = "express-session";
+ packageName = "express-session";
+ version = "1.15.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/express-session/-/express-session-1.15.6.tgz";
+ sha512 = "r0nrHTCYtAMrFwZ0kBzZEXa1vtPVrw0dKvGSrKP4dahwBQ1BJpF2/y1Pp4sCD/0kvxV4zZeclyvfmw0B4RMJQA==";
+ };
+ };
+ "extend-3.0.2" = {
+ name = "extend";
+ packageName = "extend";
+ version = "3.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz";
+ sha512 = "fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==";
+ };
+ };
+ "extsprintf-1.3.0" = {
+ name = "extsprintf";
+ packageName = "extsprintf";
+ version = "1.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz";
+ sha1 = "96918440e3041a7a414f8c52e3c574eb3c3e1e05";
+ };
+ };
+ "fast-deep-equal-1.1.0" = {
+ name = "fast-deep-equal";
+ packageName = "fast-deep-equal";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz";
+ sha1 = "c053477817c86b51daa853c81e059b733d023614";
+ };
+ };
+ "fast-deep-equal-2.0.1" = {
+ name = "fast-deep-equal";
+ packageName = "fast-deep-equal";
+ version = "2.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz";
+ sha1 = "7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49";
+ };
+ };
+ "fast-json-stable-stringify-2.0.0" = {
+ name = "fast-json-stable-stringify";
+ packageName = "fast-json-stable-stringify";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz";
+ sha1 = "d5142c0caee6b1189f87d3a76111064f86c8bbf2";
+ };
+ };
+ "fast-levenshtein-2.0.6" = {
+ name = "fast-levenshtein";
+ packageName = "fast-levenshtein";
+ version = "2.0.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz";
+ sha1 = "3d8a5c66883a16a30ca8643e851f19baa7797917";
+ };
+ };
+ "finalhandler-1.1.1" = {
+ name = "finalhandler";
+ packageName = "finalhandler";
+ version = "1.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz";
+ sha512 = "Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==";
+ };
+ };
+ "forever-agent-0.6.1" = {
+ name = "forever-agent";
+ packageName = "forever-agent";
+ version = "0.6.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz";
+ sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91";
+ };
+ };
+ "form-data-2.3.3" = {
+ name = "form-data";
+ packageName = "form-data";
+ version = "2.3.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz";
+ sha512 = "1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==";
+ };
+ };
+ "formidable-1.2.1" = {
+ name = "formidable";
+ packageName = "formidable";
+ version = "1.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/formidable/-/formidable-1.2.1.tgz";
+ sha512 = "Fs9VRguL0gqGHkXS5GQiMCr1VhZBxz0JnJs4JmMp/2jL18Fmbzvv7vOFRU+U8TBkHEE/CX1qDXzJplVULgsLeg==";
+ };
+ };
+ "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";
+ };
+ };
+ "function-bind-1.1.1" = {
+ name = "function-bind";
+ packageName = "function-bind";
+ version = "1.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz";
+ sha512 = "yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==";
+ };
+ };
+ "generic-pool-2.4.3" = {
+ name = "generic-pool";
+ packageName = "generic-pool";
+ version = "2.4.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/generic-pool/-/generic-pool-2.4.3.tgz";
+ sha1 = "780c36f69dfad05a5a045dd37be7adca11a4f6ff";
+ };
+ };
+ "getpass-0.1.7" = {
+ name = "getpass";
+ packageName = "getpass";
+ version = "0.1.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz";
+ sha1 = "5eff8e3e684d569ae4cb2b1282604e8ba62149fa";
+ };
+ };
+ "graceful-fs-4.1.3" = {
+ name = "graceful-fs";
+ packageName = "graceful-fs";
+ version = "4.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.3.tgz";
+ sha1 = "92033ce11113c41e2628d61fdfa40bc10dc0155c";
+ };
+ };
+ "graceful-readlink-1.0.1" = {
+ name = "graceful-readlink";
+ packageName = "graceful-readlink";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz";
+ sha1 = "4cafad76bc62f02fa039b2f94e9a3dd3a391a725";
+ };
+ };
+ "har-schema-2.0.0" = {
+ name = "har-schema";
+ packageName = "har-schema";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz";
+ sha1 = "a94c2224ebcac04782a0d9035521f24735b7ec92";
+ };
+ };
+ "har-validator-5.0.3" = {
+ name = "har-validator";
+ packageName = "har-validator";
+ version = "5.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz";
+ sha1 = "ba402c266194f15956ef15e0fcf242993f6a7dfd";
+ };
+ };
+ "har-validator-5.1.3" = {
+ name = "har-validator";
+ packageName = "har-validator";
+ version = "5.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz";
+ sha512 = "sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==";
+ };
+ };
+ "has-1.0.3" = {
+ name = "has";
+ packageName = "has";
+ version = "1.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/has/-/has-1.0.3.tgz";
+ sha512 = "f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==";
+ };
+ };
+ "has-ansi-2.0.0" = {
+ name = "has-ansi";
+ packageName = "has-ansi";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz";
+ sha1 = "34f5049ce1ecdf2b0649af3ef24e45ed35416d91";
+ };
+ };
+ "has-binary-0.1.7" = {
+ name = "has-binary";
+ packageName = "has-binary";
+ version = "0.1.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/has-binary/-/has-binary-0.1.7.tgz";
+ sha1 = "68e61eb16210c9545a0a5cce06a873912fe1e68c";
+ };
+ };
+ "has-cors-1.1.0" = {
+ name = "has-cors";
+ packageName = "has-cors";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz";
+ sha1 = "5e474793f7ea9843d1bb99c23eef49ff126fff39";
+ };
+ };
+ "has-symbols-1.0.0" = {
+ name = "has-symbols";
+ packageName = "has-symbols";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz";
+ sha1 = "ba1a8f1af2a0fc39650f5c850367704122063b44";
+ };
+ };
+ "hawk-6.0.2" = {
+ name = "hawk";
+ packageName = "hawk";
+ version = "6.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz";
+ sha512 = "miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==";
+ };
+ };
+ "hoek-4.2.1" = {
+ name = "hoek";
+ packageName = "hoek";
+ version = "4.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz";
+ sha512 = "QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==";
+ };
+ };
+ "htmlparser2-3.8.3" = {
+ name = "htmlparser2";
+ packageName = "htmlparser2";
+ version = "3.8.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz";
+ sha1 = "996c28b191516a8be86501a7d79757e5c70c1068";
+ };
+ };
+ "http-errors-1.6.2" = {
+ name = "http-errors";
+ packageName = "http-errors";
+ version = "1.6.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz";
+ sha1 = "0a002cc85707192a7e7946ceedc11155f60ec736";
+ };
+ };
+ "http-errors-1.6.3" = {
+ name = "http-errors";
+ packageName = "http-errors";
+ version = "1.6.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz";
+ sha1 = "8b55680bb4be283a0b5bf4ea2e38580be1d9320d";
+ };
+ };
+ "http-signature-1.2.0" = {
+ name = "http-signature";
+ packageName = "http-signature";
+ version = "1.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz";
+ sha1 = "9aecd925114772f3d95b65a60abb8f7c18fbace1";
+ };
+ };
+ "humanize-ms-1.2.1" = {
+ name = "humanize-ms";
+ packageName = "humanize-ms";
+ version = "1.2.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz";
+ sha1 = "c46e3159a293f6b896da29316d8b6fe8bb79bbed";
+ };
+ };
+ "iconv-lite-0.4.19" = {
+ name = "iconv-lite";
+ packageName = "iconv-lite";
+ version = "0.4.19";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz";
+ sha512 = "oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==";
+ };
+ };
+ "indexof-0.0.1" = {
+ name = "indexof";
+ packageName = "indexof";
+ version = "0.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz";
+ sha1 = "82dc336d232b9062179d05ab3293a66059fd435d";
+ };
+ };
+ "inherits-2.0.3" = {
+ name = "inherits";
+ packageName = "inherits";
+ version = "2.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz";
+ sha1 = "633c2c83e3da42a502f52466022480f4208261de";
+ };
+ };
+ "ipaddr.js-1.9.0" = {
+ name = "ipaddr.js";
+ packageName = "ipaddr.js";
+ version = "1.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz";
+ sha512 = "M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==";
+ };
+ };
+ "is-buffer-1.1.6" = {
+ name = "is-buffer";
+ packageName = "is-buffer";
+ version = "1.1.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz";
+ sha512 = "NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==";
+ };
+ };
+ "is-callable-1.1.4" = {
+ name = "is-callable";
+ packageName = "is-callable";
+ version = "1.1.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz";
+ sha512 = "r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==";
+ };
+ };
+ "is-date-object-1.0.1" = {
+ name = "is-date-object";
+ packageName = "is-date-object";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz";
+ sha1 = "9aa20eb6aeebbff77fbd33e74ca01b33581d3a16";
+ };
+ };
+ "is-regex-1.0.4" = {
+ name = "is-regex";
+ packageName = "is-regex";
+ version = "1.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz";
+ sha1 = "5517489b547091b0930e095654ced25ee97e9491";
+ };
+ };
+ "is-symbol-1.0.2" = {
+ name = "is-symbol";
+ packageName = "is-symbol";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz";
+ sha512 = "HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==";
+ };
+ };
+ "is-typedarray-1.0.0" = {
+ name = "is-typedarray";
+ packageName = "is-typedarray";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz";
+ sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a";
+ };
+ };
+ "isarray-0.0.1" = {
+ name = "isarray";
+ packageName = "isarray";
+ version = "0.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz";
+ sha1 = "8a18acfca9a8f4177e09abfc6038939b05d1eedf";
+ };
+ };
+ "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";
+ };
+ };
+ "isstream-0.1.2" = {
+ name = "isstream";
+ packageName = "isstream";
+ version = "0.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz";
+ sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a";
+ };
+ };
+ "js-string-escape-1.0.1" = {
+ name = "js-string-escape";
+ packageName = "js-string-escape";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz";
+ sha1 = "e2625badbc0d67c7533e9edc1068c587ae4137ef";
+ };
+ };
+ "jsbn-0.1.1" = {
+ name = "jsbn";
+ packageName = "jsbn";
+ version = "0.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz";
+ sha1 = "a5e654c2e5a2deb5f201d96cefbca80c0ef2f513";
+ };
+ };
+ "jsdom-7.2.2" = {
+ name = "jsdom";
+ packageName = "jsdom";
+ version = "7.2.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/jsdom/-/jsdom-7.2.2.tgz";
+ sha1 = "40b402770c2bda23469096bee91ab675e3b1fc6e";
+ };
+ };
+ "json-schema-0.2.3" = {
+ name = "json-schema";
+ packageName = "json-schema";
+ version = "0.2.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz";
+ sha1 = "b480c892e59a2f05954ce727bd3f2a4e882f9e13";
+ };
+ };
+ "json-schema-traverse-0.3.1" = {
+ name = "json-schema-traverse";
+ packageName = "json-schema-traverse";
+ version = "0.3.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz";
+ sha1 = "349a6d44c53a51de89b40805c5d5e59b417d3340";
+ };
+ };
+ "json-schema-traverse-0.4.1" = {
+ name = "json-schema-traverse";
+ packageName = "json-schema-traverse";
+ version = "0.4.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz";
+ sha512 = "xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==";
+ };
+ };
+ "json-stringify-safe-5.0.1" = {
+ name = "json-stringify-safe";
+ packageName = "json-stringify-safe";
+ version = "5.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz";
+ sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb";
+ };
+ };
+ "json3-3.3.2" = {
+ name = "json3";
+ packageName = "json3";
+ version = "3.3.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz";
+ sha1 = "3c0434743df93e2f5c42aee7b19bcb483575f4e1";
+ };
+ };
+ "jsonminify-0.4.1" = {
+ name = "jsonminify";
+ packageName = "jsonminify";
+ version = "0.4.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/jsonminify/-/jsonminify-0.4.1.tgz";
+ sha1 = "805dafbb39395188cee9ab582c81ef959d7e710c";
+ };
+ };
+ "jsprim-1.4.1" = {
+ name = "jsprim";
+ packageName = "jsprim";
+ version = "1.4.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz";
+ sha1 = "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2";
+ };
+ };
+ "kind-of-3.2.2" = {
+ name = "kind-of";
+ packageName = "kind-of";
+ version = "3.2.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz";
+ sha1 = "31ea21a734bab9bbb0f32466d893aea51e4a3c64";
+ };
+ };
+ "languages4translatewiki-0.1.3" = {
+ name = "languages4translatewiki";
+ packageName = "languages4translatewiki";
+ version = "0.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/languages4translatewiki/-/languages4translatewiki-0.1.3.tgz";
+ sha1 = "c436206e052d21490b11017a44d5118f9221e5db";
+ };
+ };
+ "lazy-cache-1.0.4" = {
+ name = "lazy-cache";
+ packageName = "lazy-cache";
+ version = "1.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz";
+ sha1 = "a1d78fc3a50474cb80845d3b3b6e1da49a446e8e";
+ };
+ };
+ "levn-0.3.0" = {
+ name = "levn";
+ packageName = "levn";
+ version = "0.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz";
+ sha1 = "3b09924edf9f083c0490fdd4c0bc4421e04764ee";
+ };
+ };
+ "lodash-1.3.1" = {
+ name = "lodash";
+ packageName = "lodash";
+ version = "1.3.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lodash/-/lodash-1.3.1.tgz";
+ sha1 = "a4663b53686b895ff074e2ba504dfb76a8e2b770";
+ };
+ };
+ "lodash-4.17.11" = {
+ name = "lodash";
+ packageName = "lodash";
+ version = "4.17.11";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz";
+ sha512 = "cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==";
+ };
+ };
+ "lodash.isempty-4.4.0" = {
+ name = "lodash.isempty";
+ packageName = "lodash.isempty";
+ version = "4.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/lodash.isempty/-/lodash.isempty-4.4.0.tgz";
+ sha1 = "6f86cbedd8be4ec987be9aaf33c9684db1b31e7e";
+ };
+ };
+ "log4js-0.6.35" = {
+ name = "log4js";
+ packageName = "log4js";
+ version = "0.6.35";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/log4js/-/log4js-0.6.35.tgz";
+ sha1 = "3ab1da7cb14823b74ed3865c48593acdf11f1b59";
+ };
+ };
+ "long-2.4.0" = {
+ name = "long";
+ packageName = "long";
+ version = "2.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/long/-/long-2.4.0.tgz";
+ sha1 = "9fa180bb1d9500cdc29c4156766a1995e1f4524f";
+ };
+ };
+ "longest-1.0.1" = {
+ name = "longest";
+ packageName = "longest";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz";
+ sha1 = "30a0b2da38f73770e8294a0d22e6625ed77d0097";
+ };
+ };
+ "measured-core-1.11.2" = {
+ name = "measured-core";
+ packageName = "measured-core";
+ version = "1.11.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/measured-core/-/measured-core-1.11.2.tgz";
+ sha1 = "9dbea6d20741b56f61abd866e496eb8b85e69349";
+ };
+ };
+ "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.4.1" = {
+ name = "mime";
+ packageName = "mime";
+ version = "1.4.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz";
+ sha512 = "KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==";
+ };
+ };
+ "mime-db-1.40.0" = {
+ name = "mime-db";
+ packageName = "mime-db";
+ version = "1.40.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz";
+ sha512 = "jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==";
+ };
+ };
+ "mime-types-2.1.24" = {
+ name = "mime-types";
+ packageName = "mime-types";
+ version = "2.1.24";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz";
+ sha512 = "WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==";
+ };
+ };
+ "ms-0.7.1" = {
+ name = "ms";
+ packageName = "ms";
+ version = "0.7.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz";
+ sha1 = "9cd13c03adbff25b65effde7ce864ee952017098";
+ };
+ };
+ "ms-0.7.2" = {
+ name = "ms";
+ packageName = "ms";
+ version = "0.7.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz";
+ sha1 = "ae25cf2512b3885a1d95d7f037868d8431124765";
+ };
+ };
+ "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==";
+ };
+ };
+ "mysql-2.15.0" = {
+ name = "mysql";
+ packageName = "mysql";
+ version = "2.15.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/mysql/-/mysql-2.15.0.tgz";
+ sha512 = "C7tjzWtbN5nzkLIV+E8Crnl9bFyc7d3XJcBAvHKEVkjrYjogz3llo22q6s/hw+UcsE4/844pDob9ac+3dVjQSA==";
+ };
+ };
+ "nano-6.4.4" = {
+ name = "nano";
+ packageName = "nano";
+ version = "6.4.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/nano/-/nano-6.4.4.tgz";
+ sha512 = "7sldMrZI1ZH8QE29PnzohxLfR67WNVzMKLa7EMl3x9Hr+0G+YpOUCq50qZ9G66APrjcb0Of2BTOZLNBCutZGag==";
+ };
+ };
+ "negotiator-0.6.1" = {
+ name = "negotiator";
+ packageName = "negotiator";
+ version = "0.6.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz";
+ sha1 = "2b327184e8992101177b28563fb5e7102acd0ca9";
+ };
+ };
+ "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==";
+ };
+ };
+ "npm-6.4.0" = {
+ name = "npm";
+ packageName = "npm";
+ version = "6.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/npm/-/npm-6.4.0.tgz";
+ sha512 = "k0VteQaxRuI1mREBxCtLUksesD2ZmX5gxjXNEjTmTrxQ3SHW22InkCKyX4NzoeGAYtgmDg5MuE7rcXYod7xgug==";
+ };
+ };
+ "nth-check-1.0.2" = {
+ name = "nth-check";
+ packageName = "nth-check";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz";
+ sha512 = "WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==";
+ };
+ };
+ "nwmatcher-1.4.4" = {
+ name = "nwmatcher";
+ packageName = "nwmatcher";
+ version = "1.4.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.4.tgz";
+ sha512 = "3iuY4N5dhgMpCUrOVnuAdGrgxVqV2cJpM+XNccjR2DKOB1RUP0aA+wGXEiNziG/UKboFyGBIoKOaNlJxx8bciQ==";
+ };
+ };
+ "oauth-sign-0.8.2" = {
+ name = "oauth-sign";
+ packageName = "oauth-sign";
+ version = "0.8.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz";
+ sha1 = "46a6ab7f0aead8deae9ec0565780b7d4efeb9d43";
+ };
+ };
+ "oauth-sign-0.9.0" = {
+ name = "oauth-sign";
+ packageName = "oauth-sign";
+ version = "0.9.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz";
+ sha512 = "fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==";
+ };
+ };
+ "object-assign-4.1.0" = {
+ name = "object-assign";
+ packageName = "object-assign";
+ version = "4.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz";
+ sha1 = "7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0";
+ };
+ };
+ "object-component-0.0.3" = {
+ name = "object-component";
+ packageName = "object-component";
+ version = "0.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz";
+ sha1 = "f0c69aa50efc95b866c186f400a33769cb2f1291";
+ };
+ };
+ "object-keys-1.1.1" = {
+ name = "object-keys";
+ packageName = "object-keys";
+ version = "1.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz";
+ sha512 = "NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==";
+ };
+ };
+ "object.values-1.1.0" = {
+ name = "object.values";
+ packageName = "object.values";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/object.values/-/object.values-1.1.0.tgz";
+ sha512 = "8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg==";
+ };
+ };
+ "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==";
+ };
+ };
+ "optional-js-2.1.1" = {
+ name = "optional-js";
+ packageName = "optional-js";
+ version = "2.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/optional-js/-/optional-js-2.1.1.tgz";
+ sha512 = "mUS4bDngcD5kKzzRUd1HVQkr9Lzzby3fSrrPR9wOHhQiyYo+hDS5NVli5YQzGjQRQ15k5Sno4xH9pfykJdeEUA==";
+ };
+ };
+ "optionator-0.8.2" = {
+ name = "optionator";
+ packageName = "optionator";
+ version = "0.8.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz";
+ sha1 = "364c5e409d3f4d6301d6c0b4c05bba50180aeb64";
+ };
+ };
+ "options-0.0.6" = {
+ name = "options";
+ packageName = "options";
+ version = "0.0.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/options/-/options-0.0.6.tgz";
+ sha1 = "ec22d312806bb53e731773e7cdaefcf1c643128f";
+ };
+ };
+ "packet-reader-0.2.0" = {
+ name = "packet-reader";
+ packageName = "packet-reader";
+ version = "0.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/packet-reader/-/packet-reader-0.2.0.tgz";
+ sha1 = "819df4d010b82d5ea5671f8a1a3acf039bcd7700";
+ };
+ };
+ "parse5-1.5.1" = {
+ name = "parse5";
+ packageName = "parse5";
+ version = "1.5.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz";
+ sha1 = "9b7f3b0de32be78dc2401b17573ccaf0f6f59d94";
+ };
+ };
+ "parsejson-0.0.3" = {
+ name = "parsejson";
+ packageName = "parsejson";
+ version = "0.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/parsejson/-/parsejson-0.0.3.tgz";
+ sha1 = "ab7e3759f209ece99437973f7d0f1f64ae0e64ab";
+ };
+ };
+ "parseqs-0.0.5" = {
+ name = "parseqs";
+ packageName = "parseqs";
+ version = "0.0.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz";
+ sha1 = "d5208a3738e46766e291ba2ea173684921a8b89d";
+ };
+ };
+ "parseuri-0.0.5" = {
+ name = "parseuri";
+ packageName = "parseuri";
+ version = "0.0.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz";
+ sha1 = "80204a50d4dbb779bfdc6ebe2778d90e4bce320a";
+ };
+ };
+ "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-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";
+ };
+ };
+ "performance-now-2.1.0" = {
+ name = "performance-now";
+ packageName = "performance-now";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz";
+ sha1 = "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b";
+ };
+ };
+ "pg-6.1.6" = {
+ name = "pg";
+ packageName = "pg";
+ version = "6.1.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pg/-/pg-6.1.6.tgz";
+ sha1 = "dd22758250d5ad6eef5a2bf88d96f276d1e95b0d";
+ };
+ };
+ "pg-connection-string-0.1.3" = {
+ name = "pg-connection-string";
+ packageName = "pg-connection-string";
+ version = "0.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-0.1.3.tgz";
+ sha1 = "da1847b20940e42ee1492beaf65d49d91b245df7";
+ };
+ };
+ "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-pool-1.8.0" = {
+ name = "pg-pool";
+ packageName = "pg-pool";
+ version = "1.8.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pg-pool/-/pg-pool-1.8.0.tgz";
+ sha1 = "f7ec73824c37a03f076f51bfdf70e340147c4f37";
+ };
+ };
+ "pg-types-1.13.0" = {
+ name = "pg-types";
+ packageName = "pg-types";
+ version = "1.13.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pg-types/-/pg-types-1.13.0.tgz";
+ sha512 = "lfKli0Gkl/+za/+b6lzENajczwZHc7D5kiUCZfgm914jipD2kIOIvEkAhZ8GrW3/TUoP9w8FHjwpPObBye5KQQ==";
+ };
+ };
+ "pgpass-1.0.2" = {
+ name = "pgpass";
+ packageName = "pgpass";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/pgpass/-/pgpass-1.0.2.tgz";
+ sha1 = "2a7bb41b6065b67907e91da1b07c1847c877b306";
+ };
+ };
+ "postgres-array-1.0.3" = {
+ name = "postgres-array";
+ packageName = "postgres-array";
+ version = "1.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/postgres-array/-/postgres-array-1.0.3.tgz";
+ sha512 = "5wClXrAP0+78mcsNX3/ithQ5exKvCyK5lr5NEEEeGwwM6NJdQgzIJBVxLvRW+huFpX92F2QnZ5CcokH0VhK2qQ==";
+ };
+ };
+ "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.4" = {
+ name = "postgres-date";
+ packageName = "postgres-date";
+ version = "1.0.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.4.tgz";
+ sha512 = "bESRvKVuTrjoBluEcpv2346+6kgB7UlnqWZsnbnCccTNq/pqfj1j6oBaN5+b/NrDXepYUT/HKadqv3iS9lJuVA==";
+ };
+ };
+ "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==";
+ };
+ };
+ "prelude-ls-1.1.2" = {
+ name = "prelude-ls";
+ packageName = "prelude-ls";
+ version = "1.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz";
+ sha1 = "21932a549f5e52ffd9a827f570e04be62a97da54";
+ };
+ };
+ "process-nextick-args-1.0.7" = {
+ name = "process-nextick-args";
+ packageName = "process-nextick-args";
+ version = "1.0.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz";
+ sha1 = "150e20b756590ad3f91093f25a4f2ad8bff30ba3";
+ };
+ };
+ "proxy-addr-2.0.5" = {
+ name = "proxy-addr";
+ packageName = "proxy-addr";
+ version = "2.0.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz";
+ sha512 = "t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==";
+ };
+ };
+ "psl-1.1.31" = {
+ name = "psl";
+ packageName = "psl";
+ version = "1.1.31";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz";
+ sha512 = "/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==";
+ };
+ };
+ "punycode-1.4.1" = {
+ name = "punycode";
+ packageName = "punycode";
+ version = "1.4.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz";
+ sha1 = "c0d5a63b2718800ad8e1eb0fa5269c84dd41845e";
+ };
+ };
+ "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.5.1" = {
+ name = "qs";
+ packageName = "qs";
+ version = "6.5.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz";
+ sha512 = "eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==";
+ };
+ };
+ "qs-6.5.2" = {
+ name = "qs";
+ packageName = "qs";
+ version = "6.5.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz";
+ sha512 = "N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==";
+ };
+ };
+ "random-bytes-1.0.0" = {
+ name = "random-bytes";
+ packageName = "random-bytes";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz";
+ sha1 = "4f68a1dc0ae58bd3fb95848c30324db75d64360b";
+ };
+ };
+ "range-parser-1.2.0" = {
+ name = "range-parser";
+ packageName = "range-parser";
+ version = "1.2.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz";
+ sha1 = "f49be6b487894ddc40dcc94a322f611092e00d5e";
+ };
+ };
+ "raw-body-2.3.2" = {
+ name = "raw-body";
+ packageName = "raw-body";
+ version = "2.3.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz";
+ sha1 = "bcd60c77d3eb93cde0050295c3f379389bc88f89";
+ };
+ };
+ "readable-stream-1.0.34" = {
+ name = "readable-stream";
+ packageName = "readable-stream";
+ version = "1.0.34";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz";
+ sha1 = "125820e34bc842d2f2aaafafe4c2916ee32c157c";
+ };
+ };
+ "readable-stream-1.1.14" = {
+ name = "readable-stream";
+ packageName = "readable-stream";
+ version = "1.1.14";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz";
+ sha1 = "7cf4c54ef648e3813084c636dd2079e166c081d9";
+ };
+ };
+ "readable-stream-2.3.3" = {
+ name = "readable-stream";
+ packageName = "readable-stream";
+ version = "2.3.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz";
+ sha512 = "m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==";
+ };
+ };
+ "redis-2.8.0" = {
+ name = "redis";
+ packageName = "redis";
+ version = "2.8.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/redis/-/redis-2.8.0.tgz";
+ sha512 = "M1OkonEQwtRmZv4tEWF2VgpG0JWJ8Fv1PhlgT5+B+uNq2cA3Rt1Yt/ryoR+vQNOQcIEgdCdfH0jr3bDpihAw1A==";
+ };
+ };
+ "redis-commands-1.4.0" = {
+ name = "redis-commands";
+ packageName = "redis-commands";
+ version = "1.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/redis-commands/-/redis-commands-1.4.0.tgz";
+ sha512 = "cu8EF+MtkwI4DLIT0x9P8qNTLFhQD4jLfxLR0cCNkeGzs87FN6879JOJwNQR/1zD7aSYNbU0hgsV9zGY71Itvw==";
+ };
+ };
+ "redis-parser-2.6.0" = {
+ name = "redis-parser";
+ packageName = "redis-parser";
+ version = "2.6.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/redis-parser/-/redis-parser-2.6.0.tgz";
+ sha1 = "52ed09dacac108f1a631c07e9b69941e7a19504b";
+ };
+ };
+ "repeat-string-1.6.1" = {
+ name = "repeat-string";
+ packageName = "repeat-string";
+ version = "1.6.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz";
+ sha1 = "8dcae470e1c88abc2d600fff4a776286da75e637";
+ };
+ };
+ "request-2.83.0" = {
+ name = "request";
+ packageName = "request";
+ version = "2.83.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/request/-/request-2.83.0.tgz";
+ sha512 = "lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==";
+ };
+ };
+ "request-2.88.0" = {
+ name = "request";
+ packageName = "request";
+ version = "2.88.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/request/-/request-2.88.0.tgz";
+ sha512 = "NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==";
+ };
+ };
+ "resolve-1.1.7" = {
+ name = "resolve";
+ packageName = "resolve";
+ version = "1.1.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz";
+ sha1 = "203114d82ad2c5ed9e8e0411b3932875e889e97b";
+ };
+ };
+ "rethinkdb-2.3.3" = {
+ name = "rethinkdb";
+ packageName = "rethinkdb";
+ version = "2.3.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/rethinkdb/-/rethinkdb-2.3.3.tgz";
+ sha1 = "3dc6586e22fa1dabee0d254e64bd0e379fad2f72";
+ };
+ };
+ "right-align-0.1.3" = {
+ name = "right-align";
+ packageName = "right-align";
+ version = "0.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz";
+ sha1 = "61339b722fe6a3515689210d24e14c96148613ef";
+ };
+ };
+ "safe-buffer-5.1.1" = {
+ name = "safe-buffer";
+ packageName = "safe-buffer";
+ version = "5.1.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz";
+ sha512 = "kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==";
+ };
+ };
+ "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==";
+ };
+ };
+ "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==";
+ };
+ };
+ "security-1.0.0" = {
+ name = "security";
+ packageName = "security";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/security/-/security-1.0.0.tgz";
+ sha1 = "811c300313686133ef0007125e3b0ed700978815";
+ };
+ };
+ "semver-4.3.2" = {
+ name = "semver";
+ packageName = "semver";
+ version = "4.3.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/semver/-/semver-4.3.2.tgz";
+ sha1 = "c7a07158a80bedd052355b770d82d6640f803be7";
+ };
+ };
+ "semver-4.3.6" = {
+ name = "semver";
+ packageName = "semver";
+ version = "4.3.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz";
+ sha1 = "300bc6e0e86374f7ba61068b5b1ecd57fc6532da";
+ };
+ };
+ "semver-5.1.0" = {
+ name = "semver";
+ packageName = "semver";
+ version = "5.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/semver/-/semver-5.1.0.tgz";
+ sha1 = "85f2cf8550465c4df000cf7d86f6b054106ab9e5";
+ };
+ };
+ "send-0.16.2" = {
+ name = "send";
+ packageName = "send";
+ version = "0.16.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/send/-/send-0.16.2.tgz";
+ sha512 = "E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==";
+ };
+ };
+ "serve-static-1.13.2" = {
+ name = "serve-static";
+ packageName = "serve-static";
+ version = "1.13.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz";
+ sha512 = "p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==";
+ };
+ };
+ "setprototypeof-1.0.3" = {
+ name = "setprototypeof";
+ packageName = "setprototypeof";
+ version = "1.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz";
+ sha1 = "66567e37043eeb4f04d91bd658c0cbefb55b8e04";
+ };
+ };
+ "setprototypeof-1.1.0" = {
+ name = "setprototypeof";
+ packageName = "setprototypeof";
+ version = "1.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz";
+ sha512 = "BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==";
+ };
+ };
+ "slide-1.1.6" = {
+ name = "slide";
+ packageName = "slide";
+ version = "1.1.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz";
+ sha1 = "56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707";
+ };
+ };
+ "sntp-2.1.0" = {
+ name = "sntp";
+ packageName = "sntp";
+ version = "2.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz";
+ sha512 = "FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==";
+ };
+ };
+ "socket.io-1.7.3" = {
+ name = "socket.io";
+ packageName = "socket.io";
+ version = "1.7.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/socket.io/-/socket.io-1.7.3.tgz";
+ sha1 = "b8af9caba00949e568e369f1327ea9be9ea2461b";
+ };
+ };
+ "socket.io-adapter-0.5.0" = {
+ name = "socket.io-adapter";
+ packageName = "socket.io-adapter";
+ version = "0.5.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-0.5.0.tgz";
+ sha1 = "cb6d4bb8bec81e1078b99677f9ced0046066bb8b";
+ };
+ };
+ "socket.io-client-1.7.3" = {
+ name = "socket.io-client";
+ packageName = "socket.io-client";
+ version = "1.7.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.7.3.tgz";
+ sha1 = "b30e86aa10d5ef3546601c09cde4765e381da377";
+ };
+ };
+ "socket.io-parser-2.3.1" = {
+ name = "socket.io-parser";
+ packageName = "socket.io-parser";
+ version = "2.3.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.3.1.tgz";
+ sha1 = "dd532025103ce429697326befd64005fcfe5b4a0";
+ };
+ };
+ "source-map-0.4.4" = {
+ name = "source-map";
+ packageName = "source-map";
+ version = "0.4.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz";
+ sha1 = "eba4f5da9c0dc999de68032d8b4f76173652036b";
+ };
+ };
+ "source-map-0.5.7" = {
+ name = "source-map";
+ packageName = "source-map";
+ version = "0.5.7";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz";
+ sha1 = "8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc";
+ };
+ };
+ "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==";
+ };
+ };
+ "split-1.0.1" = {
+ name = "split";
+ packageName = "split";
+ version = "1.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/split/-/split-1.0.1.tgz";
+ sha512 = "mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==";
+ };
+ };
+ "sqlstring-2.3.0" = {
+ name = "sqlstring";
+ packageName = "sqlstring";
+ version = "2.3.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.0.tgz";
+ sha1 = "525b8a4fd26d6f71aa61e822a6caf976d31ad2a8";
+ };
+ };
+ "sshpk-1.16.1" = {
+ name = "sshpk";
+ packageName = "sshpk";
+ version = "1.16.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz";
+ sha512 = "HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==";
+ };
+ };
+ "statuses-1.4.0" = {
+ name = "statuses";
+ packageName = "statuses";
+ version = "1.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz";
+ sha512 = "zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==";
+ };
+ };
+ "string_decoder-0.10.31" = {
+ name = "string_decoder";
+ packageName = "string_decoder";
+ version = "0.10.31";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz";
+ sha1 = "62e203bc41766c6c28c9fc84301dab1c5310fa94";
+ };
+ };
+ "string_decoder-1.0.3" = {
+ name = "string_decoder";
+ packageName = "string_decoder";
+ version = "1.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz";
+ sha512 = "4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==";
+ };
+ };
+ "stringstream-0.0.6" = {
+ name = "stringstream";
+ packageName = "stringstream";
+ version = "0.0.6";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/stringstream/-/stringstream-0.0.6.tgz";
+ sha512 = "87GEBAkegbBcweToUrdzf3eLhWNg06FJTebl4BVJz/JgWy8CvEr9dRtX5qWphiynMSQlxxi+QqN0z5T32SLlhA==";
+ };
+ };
+ "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";
+ };
+ };
+ "supports-color-2.0.0" = {
+ name = "supports-color";
+ packageName = "supports-color";
+ version = "2.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz";
+ sha1 = "535d045ce6b6363fa40117084629995e9df324c7";
+ };
+ };
+ "swagger-node-express-2.1.3" = {
+ name = "swagger-node-express";
+ packageName = "swagger-node-express";
+ version = "2.1.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/swagger-node-express/-/swagger-node-express-2.1.3.tgz";
+ sha1 = "4b1fee976e11284d276575911980b2258e379dab";
+ };
+ };
+ "symbol-tree-3.2.2" = {
+ name = "symbol-tree";
+ packageName = "symbol-tree";
+ version = "3.2.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz";
+ sha1 = "ae27db38f660a7ae2e1c3b7d1bc290819b8519e6";
+ };
+ };
+ "through-2.3.8" = {
+ name = "through";
+ packageName = "through";
+ version = "2.3.8";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/through/-/through-2.3.8.tgz";
+ sha1 = "0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5";
+ };
+ };
+ "tinycon-0.0.1" = {
+ name = "tinycon";
+ packageName = "tinycon";
+ version = "0.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/tinycon/-/tinycon-0.0.1.tgz";
+ sha1 = "6de10cd5219a1f121d9a0a24b2c11b3fb24dffed";
+ };
+ };
+ "to-array-0.1.4" = {
+ name = "to-array";
+ packageName = "to-array";
+ version = "0.1.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz";
+ sha1 = "17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890";
+ };
+ };
+ "tough-cookie-2.3.4" = {
+ name = "tough-cookie";
+ packageName = "tough-cookie";
+ version = "2.3.4";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz";
+ sha512 = "TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==";
+ };
+ };
+ "tough-cookie-2.4.3" = {
+ name = "tough-cookie";
+ packageName = "tough-cookie";
+ version = "2.4.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz";
+ sha512 = "Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==";
+ };
+ };
+ "tough-cookie-2.5.0" = {
+ name = "tough-cookie";
+ packageName = "tough-cookie";
+ version = "2.5.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz";
+ sha512 = "nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==";
+ };
+ };
+ "tr46-0.0.3" = {
+ name = "tr46";
+ packageName = "tr46";
+ version = "0.0.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz";
+ sha1 = "8184fd347dac9cdc185992f3a6622e14b9d9ab6a";
+ };
+ };
+ "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";
+ };
+ };
+ "tweetnacl-0.14.5" = {
+ name = "tweetnacl";
+ packageName = "tweetnacl";
+ version = "0.14.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz";
+ sha1 = "5ae68177f192d4456269d108afa93ff8743f4f64";
+ };
+ };
+ "type-check-0.3.2" = {
+ name = "type-check";
+ packageName = "type-check";
+ version = "0.3.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz";
+ sha1 = "5884cab512cf1d355e3fb784f30804b2b520db72";
+ };
+ };
+ "type-is-1.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==";
+ };
+ };
+ "ueberdb2-0.4.0" = {
+ name = "ueberdb2";
+ packageName = "ueberdb2";
+ version = "0.4.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ueberdb2/-/ueberdb2-0.4.0.tgz";
+ sha512 = "iY4+J8D+S5OP6dP9bSomJfN7zIZMcsO8h7J+EsxXod+iUpnQXmIIYsb9+Ui1Fz4KFiGbMDSaDP6Ipqz/l/1hmA==";
+ };
+ };
+ "uglify-js-2.6.2" = {
+ name = "uglify-js";
+ packageName = "uglify-js";
+ version = "2.6.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/uglify-js/-/uglify-js-2.6.2.tgz";
+ sha1 = "f50be88a42cd396a6251dc52ab372f71cc12fef0";
+ };
+ };
+ "uglify-to-browserify-1.0.2" = {
+ name = "uglify-to-browserify";
+ packageName = "uglify-to-browserify";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz";
+ sha1 = "6e0924d6bda6b5afe349e39a6d632850a0f882b7";
+ };
+ };
+ "uid-safe-2.1.5" = {
+ name = "uid-safe";
+ packageName = "uid-safe";
+ version = "2.1.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz";
+ sha512 = "KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==";
+ };
+ };
+ "ultron-1.0.2" = {
+ name = "ultron";
+ packageName = "ultron";
+ version = "1.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz";
+ sha1 = "ace116ab557cd197386a4e88f4685378c8b2e4fa";
+ };
+ };
+ "underscore-1.8.3" = {
+ name = "underscore";
+ packageName = "underscore";
+ version = "1.8.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz";
+ sha1 = "4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022";
+ };
+ };
+ "unorm-1.4.1" = {
+ name = "unorm";
+ packageName = "unorm";
+ version = "1.4.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/unorm/-/unorm-1.4.1.tgz";
+ sha1 = "364200d5f13646ca8bcd44490271335614792300";
+ };
+ };
+ "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";
+ };
+ };
+ "uri-js-4.2.2" = {
+ name = "uri-js";
+ packageName = "uri-js";
+ version = "4.2.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz";
+ sha512 = "KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==";
+ };
+ };
+ "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.3.2" = {
+ name = "uuid";
+ packageName = "uuid";
+ version = "3.3.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz";
+ sha512 = "yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==";
+ };
+ };
+ "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";
+ };
+ };
+ "verror-1.10.0" = {
+ name = "verror";
+ packageName = "verror";
+ version = "1.10.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz";
+ sha1 = "3a105ca17053af55d6e270c1f8288682e18da400";
+ };
+ };
+ "webidl-conversions-2.0.1" = {
+ name = "webidl-conversions";
+ packageName = "webidl-conversions";
+ version = "2.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-2.0.1.tgz";
+ sha1 = "3bf8258f7d318c7443c36f2e169402a1a6703506";
+ };
+ };
+ "whatwg-url-compat-0.6.5" = {
+ name = "whatwg-url-compat";
+ packageName = "whatwg-url-compat";
+ version = "0.6.5";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/whatwg-url-compat/-/whatwg-url-compat-0.6.5.tgz";
+ sha1 = "00898111af689bb097541cd5a45ca6c8798445bf";
+ };
+ };
+ "window-size-0.1.0" = {
+ name = "window-size";
+ packageName = "window-size";
+ version = "0.1.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz";
+ sha1 = "5438cd2ea93b202efa3a19fe8887aee7c94f9c9d";
+ };
+ };
+ "wordwrap-0.0.2" = {
+ name = "wordwrap";
+ packageName = "wordwrap";
+ version = "0.0.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz";
+ sha1 = "b79669bb42ecb409f83d583cad52ca17eaa1643f";
+ };
+ };
+ "wordwrap-1.0.0" = {
+ name = "wordwrap";
+ packageName = "wordwrap";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz";
+ sha1 = "27584810891456a4171c8d0226441ade90cbcaeb";
+ };
+ };
+ "ws-1.1.2" = {
+ name = "ws";
+ packageName = "ws";
+ version = "1.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/ws/-/ws-1.1.2.tgz";
+ sha1 = "8a244fa052401e08c9886cf44a85189e1fd4067f";
+ };
+ };
+ "wtf-8-1.0.0" = {
+ name = "wtf-8";
+ packageName = "wtf-8";
+ version = "1.0.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/wtf-8/-/wtf-8-1.0.0.tgz";
+ sha1 = "392d8ba2d0f1c34d1ee2d630f15d0efb68e1048a";
+ };
+ };
+ "xml-name-validator-2.0.1" = {
+ name = "xml-name-validator";
+ packageName = "xml-name-validator";
+ version = "2.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz";
+ sha1 = "4d8b8f1eccd3419aa362061becef515e1e559635";
+ };
+ };
+ "xmlhttprequest-ssl-1.5.3" = {
+ name = "xmlhttprequest-ssl";
+ packageName = "xmlhttprequest-ssl";
+ version = "1.5.3";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz";
+ sha1 = "185a888c04eca46c3e4070d99f7b49de3528992d";
+ };
+ };
+ "xtend-4.0.1" = {
+ name = "xtend";
+ packageName = "xtend";
+ version = "4.0.1";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz";
+ sha1 = "a5c6d532be656e23db820efb943a1f04998d63af";
+ };
+ };
+ "yargs-3.10.0" = {
+ name = "yargs";
+ packageName = "yargs";
+ version = "3.10.0";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz";
+ sha1 = "f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1";
+ };
+ };
+ "yeast-0.1.2" = {
+ name = "yeast";
+ packageName = "yeast";
+ version = "0.1.2";
+ src = fetchurl {
+ url = "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz";
+ sha1 = "008e06d8094320c372dbc2f8ed76a0ca6c8ac419";
+ };
+ };
+ };
+ args = {
+ name = "ep_etherpad-lite";
+ packageName = "ep_etherpad-lite";
+ version = "1.7.0";
+ inherit src;
+ dependencies = [
+ sources."abab-1.0.4"
+ sources."accepts-1.3.7"
+ sources."acorn-2.7.0"
+ sources."acorn-globals-1.0.9"
+ sources."after-0.8.2"
+ sources."agentkeepalive-3.5.2"
+ sources."ajv-5.5.2"
+ sources."align-text-0.1.4"
+ sources."amdefine-1.0.1"
+ sources."ansi-regex-2.1.1"
+ sources."ansi-styles-2.2.1"
+ sources."array-flatten-1.1.1"
+ sources."arraybuffer.slice-0.0.6"
+ sources."asn1-0.2.4"
+ sources."assert-plus-1.0.0"
+ sources."async-0.9.0"
+ sources."async-stacktrace-0.0.2"
+ sources."asynckit-0.4.0"
+ sources."aws-sign2-0.7.0"
+ sources."aws4-1.8.0"
+ sources."backo2-1.0.2"
+ sources."base64-arraybuffer-0.1.5"
+ sources."base64id-1.0.0"
+ sources."bcrypt-pbkdf-1.0.2"
+ sources."better-assert-1.0.2"
+ sources."bignumber.js-4.0.4"
+ sources."binary-search-1.3.5"
+ sources."blob-0.0.4"
+ sources."bluebird-2.11.0"
+ (sources."body-parser-1.18.2" // {
+ dependencies = [
+ sources."qs-6.5.1"
+ ];
+ })
+ sources."boolbase-1.0.0"
+ sources."boom-4.3.1"
+ sources."browser-request-0.3.3"
+ sources."buffer-writer-1.0.1"
+ sources."bytes-3.0.0"
+ sources."callsite-1.0.0"
+ sources."camelcase-1.2.1"
+ sources."caseless-0.12.0"
+ sources."cassandra-driver-2.0.1"
+ sources."center-align-0.1.3"
+ sources."chalk-1.1.3"
+ sources."channels-0.0.4"
+ sources."cheerio-0.20.0"
+ (sources."clean-css-3.4.19" // {
+ dependencies = [
+ sources."source-map-0.4.4"
+ ];
+ })
+ (sources."cliui-2.1.0" // {
+ dependencies = [
+ sources."wordwrap-0.0.2"
+ ];
+ })
+ (sources."cloudant-follow-0.17.0" // {
+ dependencies = [
+ sources."debug-3.2.6"
+ sources."ms-2.1.1"
+ ];
+ })
+ sources."co-4.6.0"
+ sources."combined-stream-1.0.7"
+ sources."commander-2.8.1"
+ sources."component-bind-1.0.0"
+ sources."component-emitter-1.1.2"
+ sources."component-inherit-0.0.3"
+ sources."content-disposition-0.5.2"
+ sources."content-type-1.0.4"
+ sources."cookie-0.1.2"
+ sources."cookie-parser-1.3.4"
+ sources."cookie-signature-1.0.6"
+ sources."core-util-is-1.0.2"
+ sources."crc-3.4.4"
+ (sources."cryptiles-3.1.4" // {
+ dependencies = [
+ sources."boom-5.2.0"
+ ];
+ })
+ sources."css-select-1.2.0"
+ sources."css-what-2.1.3"
+ sources."cssom-0.3.6"
+ sources."cssstyle-0.2.37"
+ sources."dashdash-1.14.1"
+ sources."debug-2.6.9"
+ sources."decamelize-1.2.0"
+ sources."deep-is-0.1.3"
+ sources."define-properties-1.1.3"
+ sources."delayed-stream-1.0.0"
+ sources."depd-1.1.2"
+ sources."destroy-1.0.4"
+ sources."dirty-0.9.9"
+ sources."dom-serializer-0.1.1"
+ sources."domelementtype-1.3.1"
+ sources."domhandler-2.3.0"
+ sources."domutils-1.5.1"
+ sources."double-ended-queue-2.1.0-0"
+ sources."ecc-jsbn-0.1.2"
+ sources."ee-first-1.1.1"
+ sources."ejs-2.5.7"
+ sources."elasticsearch-15.1.1"
+ sources."encodeurl-1.0.2"
+ (sources."engine.io-1.8.3" // {
+ dependencies = [
+ sources."accepts-1.3.3"
+ sources."cookie-0.3.1"
+ sources."debug-2.3.3"
+ sources."ms-0.7.2"
+ sources."negotiator-0.6.1"
+ ];
+ })
+ (sources."engine.io-client-1.8.3" // {
+ dependencies = [
+ sources."component-emitter-1.2.1"
+ sources."debug-2.3.3"
+ sources."ms-0.7.2"
+ ];
+ })
+ sources."engine.io-parser-1.3.2"
+ sources."entities-1.1.2"
+ sources."errs-0.3.2"
+ sources."es-abstract-1.13.0"
+ sources."es-to-primitive-1.2.0"
+ sources."escape-html-1.0.3"
+ sources."escape-string-regexp-1.0.5"
+ sources."escodegen-1.11.1"
+ sources."esprima-3.1.3"
+ sources."estraverse-4.2.0"
+ sources."esutils-2.0.2"
+ sources."etag-1.8.1"
+ sources."etherpad-require-kernel-1.0.9"
+ sources."etherpad-yajsml-0.0.2"
+ (sources."express-4.16.3" // {
+ dependencies = [
+ sources."cookie-0.3.1"
+ sources."qs-6.5.1"
+ sources."safe-buffer-5.1.1"
+ ];
+ })
+ (sources."express-session-1.15.6" // {
+ dependencies = [
+ sources."cookie-0.3.1"
+ ];
+ })
+ sources."extend-3.0.2"
+ sources."extsprintf-1.3.0"
+ sources."fast-deep-equal-1.1.0"
+ sources."fast-json-stable-stringify-2.0.0"
+ sources."fast-levenshtein-2.0.6"
+ sources."finalhandler-1.1.1"
+ sources."forever-agent-0.6.1"
+ sources."form-data-2.3.3"
+ sources."formidable-1.2.1"
+ sources."forwarded-0.1.2"
+ sources."fresh-0.5.2"
+ sources."function-bind-1.1.1"
+ sources."generic-pool-2.4.3"
+ sources."getpass-0.1.7"
+ sources."graceful-fs-4.1.3"
+ sources."graceful-readlink-1.0.1"
+ sources."har-schema-2.0.0"
+ sources."har-validator-5.0.3"
+ sources."has-1.0.3"
+ sources."has-ansi-2.0.0"
+ sources."has-binary-0.1.7"
+ sources."has-cors-1.1.0"
+ sources."has-symbols-1.0.0"
+ sources."hawk-6.0.2"
+ sources."hoek-4.2.1"
+ (sources."htmlparser2-3.8.3" // {
+ dependencies = [
+ sources."entities-1.0.0"
+ ];
+ })
+ sources."http-errors-1.6.3"
+ sources."http-signature-1.2.0"
+ sources."humanize-ms-1.2.1"
+ sources."iconv-lite-0.4.19"
+ sources."indexof-0.0.1"
+ sources."inherits-2.0.3"
+ sources."ipaddr.js-1.9.0"
+ sources."is-buffer-1.1.6"
+ sources."is-callable-1.1.4"
+ sources."is-date-object-1.0.1"
+ sources."is-regex-1.0.4"
+ sources."is-symbol-1.0.2"
+ sources."is-typedarray-1.0.0"
+ sources."isarray-0.0.1"
+ sources."isstream-0.1.2"
+ sources."js-string-escape-1.0.1"
+ sources."jsbn-0.1.1"
+ sources."jsdom-7.2.2"
+ sources."json-schema-0.2.3"
+ sources."json-schema-traverse-0.3.1"
+ sources."json-stringify-safe-5.0.1"
+ sources."json3-3.3.2"
+ sources."jsonminify-0.4.1"
+ sources."jsprim-1.4.1"
+ sources."kind-of-3.2.2"
+ sources."languages4translatewiki-0.1.3"
+ sources."lazy-cache-1.0.4"
+ sources."levn-0.3.0"
+ sources."lodash-4.17.11"
+ sources."lodash.isempty-4.4.0"
+ (sources."log4js-0.6.35" // {
+ dependencies = [
+ sources."readable-stream-1.0.34"
+ sources."semver-4.3.6"
+ ];
+ })
+ sources."long-2.4.0"
+ sources."longest-1.0.1"
+ sources."measured-core-1.11.2"
+ sources."media-typer-0.3.0"
+ sources."merge-descriptors-1.0.1"
+ sources."methods-1.1.2"
+ sources."mime-1.4.1"
+ sources."mime-db-1.40.0"
+ sources."mime-types-2.1.24"
+ sources."ms-2.0.0"
+ (sources."mysql-2.15.0" // {
+ dependencies = [
+ sources."isarray-1.0.0"
+ sources."readable-stream-2.3.3"
+ sources."safe-buffer-5.1.1"
+ sources."string_decoder-1.0.3"
+ ];
+ })
+ (sources."nano-6.4.4" // {
+ dependencies = [
+ sources."ajv-6.10.0"
+ sources."fast-deep-equal-2.0.1"
+ sources."har-validator-5.1.3"
+ sources."json-schema-traverse-0.4.1"
+ sources."oauth-sign-0.9.0"
+ sources."request-2.88.0"
+ sources."tough-cookie-2.4.3"
+ ];
+ })
+ sources."negotiator-0.6.2"
+ sources."npm-6.4.0"
+ sources."nth-check-1.0.2"
+ sources."nwmatcher-1.4.4"
+ sources."oauth-sign-0.8.2"
+ sources."object-assign-4.1.0"
+ sources."object-component-0.0.3"
+ sources."object-keys-1.1.1"
+ sources."object.values-1.1.0"
+ sources."on-finished-2.3.0"
+ sources."on-headers-1.0.2"
+ sources."optional-js-2.1.1"
+ sources."optionator-0.8.2"
+ sources."options-0.0.6"
+ sources."packet-reader-0.2.0"
+ sources."parse5-1.5.1"
+ sources."parsejson-0.0.3"
+ sources."parseqs-0.0.5"
+ sources."parseuri-0.0.5"
+ sources."parseurl-1.3.3"
+ sources."path-to-regexp-0.1.7"
+ sources."performance-now-2.1.0"
+ (sources."pg-6.1.6" // {
+ dependencies = [
+ sources."semver-4.3.2"
+ ];
+ })
+ sources."pg-connection-string-0.1.3"
+ sources."pg-int8-1.0.1"
+ sources."pg-pool-1.8.0"
+ sources."pg-types-1.13.0"
+ sources."pgpass-1.0.2"
+ sources."postgres-array-1.0.3"
+ sources."postgres-bytea-1.0.0"
+ sources."postgres-date-1.0.4"
+ sources."postgres-interval-1.2.0"
+ sources."prelude-ls-1.1.2"
+ sources."process-nextick-args-1.0.7"
+ sources."proxy-addr-2.0.5"
+ sources."psl-1.1.31"
+ sources."punycode-1.4.1"
+ sources."qs-6.5.2"
+ sources."random-bytes-1.0.0"
+ sources."range-parser-1.2.0"
+ (sources."raw-body-2.3.2" // {
+ dependencies = [
+ sources."depd-1.1.1"
+ sources."http-errors-1.6.2"
+ sources."setprototypeof-1.0.3"
+ ];
+ })
+ sources."readable-stream-1.1.14"
+ sources."redis-2.8.0"
+ sources."redis-commands-1.4.0"
+ sources."redis-parser-2.6.0"
+ sources."repeat-string-1.6.1"
+ (sources."request-2.83.0" // {
+ dependencies = [
+ sources."tough-cookie-2.3.4"
+ ];
+ })
+ sources."resolve-1.1.7"
+ sources."rethinkdb-2.3.3"
+ sources."right-align-0.1.3"
+ sources."safe-buffer-5.1.2"
+ sources."safer-buffer-2.1.2"
+ sources."sax-1.2.4"
+ sources."security-1.0.0"
+ sources."semver-5.1.0"
+ sources."send-0.16.2"
+ sources."serve-static-1.13.2"
+ sources."setprototypeof-1.1.0"
+ sources."slide-1.1.6"
+ sources."sntp-2.1.0"
+ (sources."socket.io-1.7.3" // {
+ dependencies = [
+ sources."debug-2.3.3"
+ sources."ms-0.7.2"
+ ];
+ })
+ (sources."socket.io-adapter-0.5.0" // {
+ dependencies = [
+ sources."debug-2.3.3"
+ sources."ms-0.7.2"
+ ];
+ })
+ (sources."socket.io-client-1.7.3" // {
+ dependencies = [
+ sources."component-emitter-1.2.1"
+ sources."debug-2.3.3"
+ sources."ms-0.7.2"
+ ];
+ })
+ (sources."socket.io-parser-2.3.1" // {
+ dependencies = [
+ sources."debug-2.2.0"
+ sources."ms-0.7.1"
+ ];
+ })
+ sources."source-map-0.6.1"
+ sources."split-1.0.1"
+ sources."sqlstring-2.3.0"
+ sources."sshpk-1.16.1"
+ sources."statuses-1.4.0"
+ sources."string_decoder-0.10.31"
+ sources."stringstream-0.0.6"
+ sources."strip-ansi-3.0.1"
+ sources."supports-color-2.0.0"
+ (sources."swagger-node-express-2.1.3" // {
+ dependencies = [
+ sources."lodash-1.3.1"
+ ];
+ })
+ sources."symbol-tree-3.2.2"
+ sources."through-2.3.8"
+ sources."tinycon-0.0.1"
+ sources."to-array-0.1.4"
+ (sources."tough-cookie-2.5.0" // {
+ dependencies = [
+ sources."punycode-2.1.1"
+ ];
+ })
+ sources."tr46-0.0.3"
+ sources."tunnel-agent-0.6.0"
+ sources."tweetnacl-0.14.5"
+ sources."type-check-0.3.2"
+ sources."type-is-1.6.18"
+ (sources."ueberdb2-0.4.0" // {
+ dependencies = [
+ sources."async-0.1.15"
+ ];
+ })
+ (sources."uglify-js-2.6.2" // {
+ dependencies = [
+ sources."async-0.2.10"
+ sources."source-map-0.5.7"
+ ];
+ })
+ sources."uglify-to-browserify-1.0.2"
+ sources."uid-safe-2.1.5"
+ sources."ultron-1.0.2"
+ sources."underscore-1.8.3"
+ sources."unorm-1.4.1"
+ sources."unpipe-1.0.0"
+ (sources."uri-js-4.2.2" // {
+ dependencies = [
+ sources."punycode-2.1.1"
+ ];
+ })
+ sources."util-deprecate-1.0.2"
+ sources."utils-merge-1.0.1"
+ sources."uuid-3.3.2"
+ sources."vary-1.1.2"
+ sources."verror-1.10.0"
+ sources."webidl-conversions-2.0.1"
+ sources."whatwg-url-compat-0.6.5"
+ sources."window-size-0.1.0"
+ sources."wordwrap-1.0.0"
+ sources."ws-1.1.2"
+ sources."wtf-8-1.0.0"
+ sources."xml-name-validator-2.0.1"
+ sources."xmlhttprequest-ssl-1.5.3"
+ sources."xtend-4.0.1"
+ sources."yargs-3.10.0"
+ sources."yeast-0.1.2"
+ ];
+ buildInputs = globalBuildInputs;
+ meta = {
+ description = "A Etherpad based on node.js";
+ homepage = http://etherpad.org/;
+ license = "Apache-2.0";
+ };
+ production = true;
+ bypassCache = true;
+ };
+in
+{
+ tarball = nodeEnv.buildNodeSourceDist args;
+ package = nodeEnv.buildNodePackage args;
+ shell = nodeEnv.buildNodeShell args;
+}
--- /dev/null
+{ infcloud_config ? ./infcloud_config.js, stdenv, fetchzip, ed }:
+stdenv.mkDerivation rec {
+ version = "0.13.1";
+ name = "InfCloud-${version}";
+ src = fetchzip {
+ url = "https://www.inf-it.com/InfCloud_${version}.zip";
+ sha256 = "1fjhs0cj0b9fhf5ysfz281mknmmg1z551bas143sxfcqlpa5aiiq";
+ };
+ buildPhase = ''
+ ./cache_update.sh
+ rm config.js
+ '';
+ installPhase = ''
+ cp -a . $out
+ ln -s ${infcloud_config} $out/config.js
+ '';
+ buildInputs = [ ed ];
+}
--- /dev/null
+/*
+InfCloud - the open source CalDAV/CardDAV Web Client
+Copyright (C) 2011-2015
+ Jan Mate <jan.mate@inf-it.com>
+ Andrej Lezo <andrej.lezo@inf-it.com>
+ Matej Mihalik <matej.mihalik@inf-it.com>
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU Affero General Public License as
+published by the Free Software Foundation, either version 3 of the
+License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU Affero General Public License for more details.
+
+You should have received a copy of the GNU Affero General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+
+// NOTE: see readme.txt before you start to configure this client!
+
+
+// NOTE: do not forget to execute the cache_update.sh script every time you
+// update this configuration file or any other files (otherwise your browser
+// will use the previous version of files stored in HTML5 cache). Alternatively
+// you can update the cache.manifest manually - edit the second line beginning
+// with "#V 20" to anything else (this file simple needs "some" change)
+
+
+// Supported setup types (use ONE of them):
+// a.) globalAccountSettings => username and password is hardcoded
+// in config.js, automatic login without the login screen
+// - advantages: fast login process = no username/password is required
+// - disadvantages: username/password is visible in your config.js, so
+// this type of setup is recommended ONLY for intranet/home users
+// b.) globalNetworkCheckSettings => standard setup with login screen
+// - advantages: username/password is required (no visible
+// username/password in config.js)
+// - disadvantages: if a user enters wrong username/password then
+// the browser will show authentication popup window (it is NOT
+// possible to disable it in JavaScript; see the next option)
+// c.) globalNetworkAccountSettings => advanced setup with login screen
+// - advantages: no authentication popup if you enter wrong username/
+// password, dynamic XML configuration generator (you can generate
+// different configurations for your users /by modifying the "auth"
+// module configuration or the PHP code itself/)
+// - disadvantages: requires PHP >= 5.3 and additional configuration,
+// only basic http authentication is supported => always use https!
+//
+//
+// What is a "principal URL"? => Check you server documentation!
+// - "principal URL" is NOT "collection URL"
+// - this client automatically detects collections for "principal URL"
+// - PROPER "principal URL" looks like:
+// https://server.com:8443/principals/users/USER/
+// https://server.com:8443/caldav.php/USER/
+// - INVALID principal URL looks like:
+// https://server.com:8443/principals/users/USER/collection/
+// => this is a collection URL
+// https://server.com:8443/caldav.php/USER/collection/
+// => this is a collection URL
+// https://server.com:8443/principals/users/USER
+// => missing trailing '/'
+// https://server.com:8443/caldav.php/USER
+// => missing trailing '/'
+// /caldav.php/USER/
+// => relative URL instead of full URL
+//
+//
+// List of properties used in globalAccountSettings, globalNetworkCheckSettings
+// and globalNetworkAccountSettings variables (+ in the "auth" module):
+// - href
+// Depending on the setup type set the value to:
+// a.) globalAccountSettings: full "principal URL"
+// b.) globalNetworkCheckSettings: "principal URL" WITHOUT the "USER/" part
+// c.) globalNetworkAccountSettings: "full URL" to the "auth" directory
+// This property is supported in:
+// globalAccountSettings
+// globalNetworkCheckSettings
+// globalNetworkAccountSettings
+// - userAuth
+// - userName
+// Set the username you want to login.
+// - userPassword
+// Set the password for the given username.
+// This property is supported in:
+// globalAccountSettings
+// - timeOut
+// This option sets the timeout for jQuery .ajax call (in miliseconds).
+// Example:
+// timeOut: 90000
+// This property is supported in:
+// globalAccountSettings
+// globalNetworkCheckSettings
+// globalNetworkAccountSettings
+// - lockTimeOut
+// NOTE: used only if server supports LOCK requests
+// This option sets the LOCK timeout value if resource locking
+// is used (in miliseconds).
+// Example:
+// lockTimeOut: 10000
+// This property is supported in:
+// globalAccountSettings
+// globalNetworkCheckSettings
+// globalNetworkAccountSettings (available in auth module only)
+// - checkContentType
+// This option enables a content-type checking for server response.
+// If enabled then only objects with proper content-type are inserted
+// into the interface.
+// If you cannot see data in the interface you may try to disable it (useful
+// if your server returns wrong value in "propstat/prop/getcontenttype").
+// If undefined then content-type checking is enabled.
+// Examples:
+// checkContentType: true
+// checkContentType: false
+// This property is supported in:
+// globalAccountSettings
+// globalNetworkCheckSettings
+// globalNetworkAccountSettings (available in auth module only)
+// - settingsAccount
+// NOTE: server support for custom DAV properties is REQUIRED!
+// This option sets the account where the client properties such as:
+// loaded collections, enabled collections, ... are saved during
+// the logout and resource/collection synchronisation
+// NOTE: set it to true ONLY for ONE account!
+// Examples:
+// settingsAccount: true
+// settingsAccount: false
+// This property is supported in:
+// globalAccountSettings
+// globalNetworkCheckSettings
+// globalNetworkAccountSettings (available in auth module only)
+// - delegation
+// NOTE: server support for this functionality is REQUIRED!
+// This option allows you to load delegated (shared) collections.
+// If set to true (default) then delegation functionality is enabled,
+// and the interface allows you to load delegated collections.
+// If false then delegation functionality is completely disabled.
+// Examples:
+// delegation: true
+// delegation: false
+// This property is supported in:
+// globalAccountSettings
+// globalNetworkCheckSettings
+// globalNetworkAccountSettings (available in auth module only)
+// - additionalResources
+// This options sets the list of additional resources (e.g. shared resources
+// accessible by all users). If the server supports delegation (see
+// the delegation option above) there is no reason to use this option!
+// Supported values:
+// - array of URL encoded resource names (not collections), such as:
+// 'company'
+// 'shared_resource'
+// If empty (default) or undefined then shared resources are not loaded
+// using this option, but may be loaded using the delegation option.
+// Examples:
+// additionalResources=[]
+// additionalResources=['public', 'shared_resource']
+// This property is supported in:
+// globalNetworkCheckSettings
+// - hrefLabel
+// This option sets the server name in the resource header (useful if
+// you want to see custom resource header above the collections).
+// You can use the following variables in the value:
+// %H = full hostname (including the port number)
+// %h = full hostname (without the port number)
+// %D = full domain name
+// %d = only the first and second level domain
+// %P = principal name
+// %p = principal name without the @domain.com part (if present)
+// %U = logged user name
+// %u = logged user name without the @domain.com part (if present)
+// If undefined, empty or or null then '%d/%p [%u]' is used.
+// Examples:
+// hrefLabel: '%d/%p [%u]'
+// hrefLabel: '%D/%u'
+// This property is supported in:
+// globalAccountSettings
+// globalNetworkCheckSettings
+// globalNetworkAccountSettings (available in auth module only)
+// - forceReadOnly
+// This option sets the list of collections as "read-only".
+// Supported values:
+// - true
+// all collections will be "read-only"
+// - array of URL encoded
+// - collections, such as:
+// '/caldav.php/user/calendar/'
+// '/caldav.php/user%40domain.com/calendar/'
+// - regexes, such as:
+// new RegExp('^/caldav.php/user/calendar[0-9]/$', 'i')
+// specifies the list of collections marked as "read-only"
+// If null (default) or undefined then server detected privileges are used.
+// Examples:
+// forceReadOnly: null
+// forceReadOnly: true
+// forceReadOnly: ['/caldav.php/user/calendar/',
+// '/caldav.php/user/calendar2/']
+// forceReadOnly: [new RegExp('^/.*/user/calendar[0-9]/$', 'i')]
+// This property is supported in:
+// globalAccountSettings
+// globalNetworkCheckSettings
+// globalNetworkAccountSettings (available in auth module only, with
+// different syntax for regexes)
+// - ignoreAlarms
+// This option sets list of calendar collections with disabled
+// alarm functionality.
+// Supported values:
+// - true
+// alarm functionality is disabled for all collections
+// - array of URL encoded
+// - collections, such as:
+// '/caldav.php/user/calendar/'
+// '/caldav.php/user%40domain.com/calendar/'
+// - regexes, such as:
+// new RegExp('^/caldav.php/user/calendar[0-9]/$', 'i')
+// specifies the list of collections with disabled alarm functionality.
+// If false (default) or undefined then alarm functionality is enabled
+// for all collections.
+// Examples:
+// ignoreAlarms: true
+// ignoreAlarms: ['/caldav.php/user/calendar/',
+// '/caldav.php/user/calendar2/']
+// ignoreAlarms: [new RegExp('^/.*/user/calendar[0-9]/$', 'i')]
+// This property is supported in:
+// globalAccountSettings
+// globalNetworkCheckSettings
+// globalNetworkAccountSettings (available in auth module only, with
+// different syntax for regexes)
+// - backgroundCalendars
+// This options defines a list of background calendars. If there is
+// at least one event defined for the given day in a background calendar,
+// the background color for that day will be pink/light-red.
+// Supported values:
+// - array of URL encoded
+// - collections, such as:
+// '/caldav.php/user/calendar/'
+// '/caldav.php/user%40domain.com/calendar/'
+// - regexes, such as:
+// new RegExp('^/caldav.php/user/calendar[0-9]/$', 'i')
+// specifies the list of background calendar collections.
+// Examples:
+// backgroundCalendars: ['/caldav.php/user/calendar/',
+// '/caldav.php/user/calendar2/']
+// backgroundCalendars: [new RegExp('^/.*/user/calendar[0-9]/$', 'i')]
+// This property is supported in:
+// globalAccountSettings
+// globalNetworkCheckSettings
+// globalNetworkAccountSettings (available in auth module only, with
+// different syntax for regexes)
+// Special options not present in configuration examples:
+// NOTE: use ONLY if you know what are you doing!
+// - crossDomain
+// This option sets the crossDomain for jQuery .ajax call. If null (default)
+// then the value is autodetected /and the result is shown in the console/
+// - withCredentials
+// This option sets the withCredentials for jQuery .ajax call. The default
+// value is false and there is NO REASON to change it to true!
+// NOTE: if true, Access-Control-Allow-Origin "*" (CORS header) not works!
+
+
+// globalAccountSettings
+// Use this option if you want to use automatic login (without a login
+// screen) with hardcoded username/password in config.js. Otherwise use
+// globalNetworkCheckSettings or globalNetworkAccountSettings (see below).
+// NOTE: if this option is used the value must be an array of object(s).
+// List of properties used in globalAccountSettings variable:
+// - href
+// Set this option to the full "principal URL".
+// NOTE: the last character in the value must be '/'
+// - userAuth
+// - userName
+// Set the username you want to login.
+// - userPassword
+// Set the password for the given username.
+// NOTE: for description of other properties see comments at the beginning
+// of this file.
+// NOTE: for minimal/fast setup you need to set only the href and userAuth
+// options. It is safe/recommended to keep the remaining options unchanged!
+// Example:
+//var globalAccountSettings=[
+// {
+// href: 'https://server1.com:8443/caldav.php/USERNAME1/',
+// userAuth:
+// {
+// userName: 'USERNAME1',
+// userPassword: 'PASSWORD1'
+// },
+// timeOut: 90000,
+// lockTimeOut: 10000,
+// checkContentType: true,
+// settingsAccount: true,
+// delegation: true,
+// hrefLabel: null,
+// forceReadOnly: null,
+// ignoreAlarms: false,
+// backgroundCalendars: []
+// },
+// {
+// href: 'https://server2.com:8443/caldav.php/USERNAME2/',
+// ...
+// ...
+// }
+//];
+
+
+// globalNetworkCheckSettings
+// Use this option if you want to use standard login screen without
+// hardcoded username/password in config.js (used by globalAccountSettings).
+// NOTE: if this option is used the value must be an object.
+// List of properties used in globalAccountSettings variable:
+// - href
+// Set this option to the "principal URL" WITHOUT the "USERNAME/"
+// part (this options uses the username from the login screen).
+// NOTE: the last character in the value must be '/'
+// NOTE: for description of other properties see comments at the beginning
+// of this file.
+// NOTE: for minimal/fast setup you need to set only the href option. It is
+// safe/recommended to keep the remaining options unchanged!
+// Example href values:
+// OS X server http example (see misc/readme_osx.txt for server setup):
+// href: 'http://osx.server.com:8008/principals/users/'
+// OS X server https example (see misc/readme_osx.txt for server setup):
+// href: 'https://osx.server.com:8443/principals/users/'
+// Cyrus server https example:
+// href: 'https://cyrus.server.com/dav/principals/user/'
+// Example:
+// Davical example which automatically detects the protocol, server name,
+// port, ... (client installed into Davical "htdocs" subdirectory;
+// works "out of the box", no additional setup required):
+var globalNetworkCheckSettings={
+ href: location.protocol+'//'+location.hostname+
+ (location.port ? ':'+location.port: '')+
+ location.pathname.replace(RegExp('/+[^/]+/*(index\.html)?$'),'')+
+ '/caldav.php/',
+ timeOut: 90000,
+ lockTimeOut: 10000,
+ checkContentType: true,
+ settingsAccount: true,
+ delegation: true,
+ additionalResources: [],
+ hrefLabel: null,
+ forceReadOnly: null,
+ ignoreAlarms: false,
+ backgroundCalendars: []
+}
+
+
+// globalNetworkAccountSettings
+// Try this option ONLY if you have working setup using
+// globalNetworkCheckSettings and want to fix the authentication popup
+// window problem (if invalid username/password is entered)!
+// If you use this option then your browser sends username/password to the PHP
+// "auth" module ("auth" directory) instead of the DAV server itself.
+// The "auth" module then validates your username/password against your server,
+// and if the authentication is successful, then it sends back a configuration
+// XML (requires additional configuration). The resulting XML is handled
+// IDENTICALLY as the globalAccountSettings configuration option.
+// NOTE: for the "auth" module configuration see readme.txt!
+// NOTE: this option invokes a login screen and disallows access until
+// the client gets correct XML configuration file from the server!
+// List of properties used in globalNetworkAccountSettings variable:
+// - href
+// Set this option to the "full URL" of the "auth" directory
+// NOTE: the last character in the value must be '/'
+// NOTE: for description of other properties see comments at the beginning
+// of this file.
+// Example href values:
+// href: 'https://server.com/client/auth/'
+// Example:
+// Use this configuration if the "auth" module is located in the client
+// installation subdirectory (default):
+//var globalNetworkAccountSettings={
+// href: location.protocol+'//'+location.hostname+
+// (location.port ? ':'+location.port : '')+
+// location.pathname.replace(RegExp('index\.html$'),'')+
+// 'auth/',
+// timeOut: 30000
+//};
+
+
+// globalUseJqueryAuth
+// Use jQuery .ajax() auth or custom header for HTTP basic auth (default).
+// Set this option to true if your server uses digest auth (note: you may
+// experience auth popups on some browsers).
+// If undefined (or empty), custom header for HTTP basic auth is used.
+// Example:
+//var globalUseJqueryAuth=false;
+
+
+// globalBackgroundSync
+// Enable background synchronization even if the browser window/tab has no
+// focus.
+// If false, synchronization is performed only if the browser window/tab
+// is focused. If undefined or not false, then background sync is enabled.
+// Example:
+var globalBackgroundSync=true;
+
+
+// globalSyncResourcesInterval
+// This option defines how often (in miliseconds) are resources/collections
+// asynchronously synchronized.
+// Example:
+var globalSyncResourcesInterval=120000;
+
+
+// globalEnableRefresh
+// This option enables or disables the manual synchronization button in
+// the interface. If this option is enabled then users can perform server
+// synchronization manually. Enabling this option may cause high server
+// load (even DDOS) if users will try to manually synchronize data too
+// often (instead of waiting for the automatic synchronization).
+// If undefined or false, the synchronization button is disabled.
+// NOTE: enable this option only if you really know what are you doing!
+// Example:
+var globalEnableRefresh=false;
+
+
+// globalEnableKbNavigation
+// Enable basic keyboard navigation using arrow keys?
+// If undefined or not false, keyboard navigation is enabled.
+// Example:
+var globalEnableKbNavigation=true;
+
+
+// globalSettingsType
+// Where to store user settings such as: active view, enabled/selected
+// collections, ... (the client store them into DAV property on the server).
+// NOTE: not all servers support storing DAV properties (some servers support
+// only subset /or none/ of these URLs).
+// Supported values:
+// - 'principal-URL', '', null or undefined (default) => settings are stored
+// to principal-URL (recommended for most servers)
+// - 'addressbook-home-set' => settings are are stored to addressbook-home-set
+// - 'calendar-home-set' => settings are stored to calendar-home-set
+// Example:
+//var globalSettingsType='';
+
+
+// globalCrossServerSettingsURL
+// Settings such as enabled/selected collections are stored on the server
+// (see the previous option) in form of full URL
+// (e.g.: https://user@server:port/principal/collection/), but even if this
+// approach is "correct" (you can use the same principal URL with multiple
+// different logins, ...) it causes a problem if your server is accessible
+// from multiple URLs (e.g. http://server/ and https://server/). If you want
+// to store only the "principal/collection/" part of the URL (instead of the
+// full URL) then enable this option.
+// Example:
+//var globalCrossServerSettingsURL=false;
+
+
+// globalInterfaceLanguage
+// Default interface language (note: this option is case sensitive):
+// cs_CZ (Čeština [Czech])
+// da_DK (Dansk [Danish]; thanks Niels Bo Andersen)
+// de_DE (Deutsch [German]; thanks Marten Gajda and Thomas Scheel)
+// en_US (English [English/US])
+// es_ES (Español [Spanish]; thanks Damián Vila)
+// fr_FR (Français [French]; thanks John Fischer)
+// it_IT (Italiano [Italian]; thanks Luca Ferrario)
+// ja_JP (日本語 [Japan]; thanks Muimu Nakayama)
+// hu_HU (Magyar [Hungarian])
+// nl_NL (Nederlands [Dutch]; thanks Johan Vromans)
+// sk_SK (Slovenčina [Slovak])
+// tr_TR (Türkçe [Turkish]; thanks Selcuk Pultar)
+// ru_RU (Русский [Russian]; thanks Александр Симонов)
+// uk_UA (Українська [Ukrainian]; thanks Serge Yakimchuck)
+// zh_CN (中国 [Chinese]; thanks Fandy)
+// Example:
+var globalInterfaceLanguage='fr_FR';
+
+
+// globalInterfaceCustomLanguages
+// If defined and not empty then only languages listed here are shown
+// at the login screen, otherwise (default) all languages are shown
+// NOTE: values in the array must refer to an existing localization
+// (see the option above)
+// Example:
+// globalInterfaceCustomLanguages=['en_US', 'sk_SK'];
+var globalInterfaceCustomLanguages=[];
+
+
+// globalSortAlphabet
+// Use JavaScript localeCompare() or custom alphabet for data sorting.
+// Custom alphabet is used by default because JavaScript localeCompare()
+// not supports collation and often returns "wrong" result. If set to null
+// then localeCompare() is used.
+// Example:
+// var globalSortAlphabet=null;
+var globalSortAlphabet=' 0123456789'+
+ 'AÀÁÂÄÆÃÅĀBCÇĆČDĎEÈÉÊËĒĖĘĚFGĞHIÌÍÎİÏĪĮJKLŁĹĽMNŃÑŇOÒÓÔÖŐŒØÕŌ'+
+ 'PQRŔŘSŚŠȘșŞşẞTŤȚțŢţUÙÚÛÜŰŮŪVWXYÝŸZŹŻŽ'+
+ 'aàáâäæãåābcçćčdďeèéêëēėęěfgğhiìíîïīįıjklłĺľmnńñňoòóôöőœøõō'+
+ 'pqrŕřsśšßtťuùúûüűůūvwxyýÿzźżžАБВГҐДЕЄЖЗИІЇЙКЛМНОПРСТУФХЦЧШЩЮЯ'+
+ 'Ьабвгґдеєжзиіїйклмнопрстуфхцчшщюяь';
+
+
+// globalSearchTransformAlphabet
+// To support search without diacritics (e.g. search for 'd' will find: 'Ď', 'ď')
+// it is required to define something like "character equivalence".
+// key = regex text, value = search character
+// Example:
+var globalSearchTransformAlphabet={
+ '[ÀàÁáÂâÄäÆæÃãÅåĀā]': 'a', '[ÇçĆćČč]': 'c', '[Ďď]': 'd',
+ '[ÈèÉéÊêËëĒēĖėĘęĚě]': 'e', '[Ğğ]': 'g', '[ÌìÍíÎîİıÏïĪīĮį]': 'i',
+ '[ŁłĹ弾]': 'l', '[ŃńÑñŇň]': 'n', '[ÒòÓóÔôÖöŐőŒœØøÕõŌō]': 'o',
+ '[ŔŕŘř]': 'r', '[ŚśŠšȘșŞşẞß]': 's', '[ŤťȚțŢţ]': 't',
+ '[ÙùÚúÛûÜüŰűŮůŪū]': 'u', '[ÝýŸÿ]': 'y', '[ŹźŻżŽž]': 'z'
+};
+
+// globalResourceAlphabetSorting
+// If more than one resource (server account) is configured, sort the
+// resources alphabetically?
+// Example:
+var globalResourceAlphabetSorting=true;
+
+
+// globalNewVersionNotifyUsers
+// Update notification will be shown only to users with login names defined
+// in this array.
+// If undefined (or empty), update notifications will be shown to all users.
+// Example:
+// globalNewVersionNotifyUsers=['admin', 'peter'];
+var globalNewVersionNotifyUsers=[];
+
+
+// globalDatepickerFormat
+// Set the datepicker format (see
+// http://docs.jquery.com/UI/Datepicker/formatDate for valid values).
+// NOTE: date format is predefined for each localization - use this option
+// ONLY if you want to use custom date format (instead of the localization
+// predefined one).
+// Example:
+//var globalDatepickerFormat='dd.mm.yy';
+var globalDatepickerFormat='yy-mm-dd';
+
+
+// globalDatepickerFirstDayOfWeek
+// Set the datepicker first day of the week: Sunday is 0, Monday is 1, etc.
+// Example:
+var globalDatepickerFirstDayOfWeek=1;
+
+
+// globalHideInfoMessageAfter
+// How long are information messages (such as: success, error) displayed
+// (in miliseconds).
+// Example:
+var globalHideInfoMessageAfter=1800;
+
+
+// globalEditorFadeAnimation
+// Set the editor fade in/out animation duration when editing or saving data
+// (in miliseconds).
+// Example:
+var globalEditorFadeAnimation=666;
+
+
+
+
+// ******* CalDAV (CalDavZAP) related settings ******* //
+
+// globalEventStartPastLimit, globalEventStartFutureLimit, globalTodoPastLimit
+// Number of months pre-loaded from past/future in advance for calendars
+// and todo lists (if null then date range synchronization is disabled).
+// NOTE: interval synchronization is used only if your server supports
+// sync-collection REPORT (e.g. DAViCal).
+// NOTE: if you experience problems with data loading and your server has
+// no time-range filtering support set these variables to null.
+// Example:
+var globalEventStartPastLimit=3;
+var globalEventStartFutureLimit=3;
+var globalTodoPastLimit=1;
+
+
+// globalLoadedCalendarCollections
+// This option sets the list of calendar collections (down)loaded after login.
+// If empty then all calendar collections for the currently logged user are
+// loaded.
+// NOTE: settings stored on the server (see settingsAccount) overwrite this
+// option.
+// Example:
+var globalLoadedCalendarCollections=[];
+
+
+// globalLoadedTodoCollections
+// This option sets the list of todo collections (down)loaded after login.
+// If empty then all todo collections for the currently logged user are loaded.
+// NOTE: settings stored on the server (see settingsAccount) overwrite this
+// option.
+// Example:
+var globalLoadedTodoCollections=[];
+
+
+// globalActiveCalendarCollections
+// This options sets the list of calendar collections checked (enabled
+// checkbox => data visible in the interface) by default after login.
+// If empty then all loaded calendar collections for the currently logged
+// user are checked.
+// NOTE: only already (down)loaded collections can be checked (see
+// the globalLoadedCalendarCollections option).
+// NOTE: settings stored on the server (see settingsAccount) overwrite this
+// option.
+// Example:
+var globalActiveCalendarCollections=[];
+
+
+// globalActiveTodoCollections
+// This options sets the list of todo collections checked (enabled
+// checkbox => data visible in the interface) by default after login.
+// If empty then all loaded todo collections for the currently logged
+// user are checked.
+// NOTE: only already (down)loaded collections can be checked (see
+// the globalLoadedTodoCollections option).
+// NOTE: settings stored on the server (see settingsAccount) overwrite this
+// option.
+// Example:
+var globalActiveTodoCollections=[];
+
+
+// globalCalendarSelected
+// This option sets which calendar collection will be pre-selected
+// (if you create a new event) by default after login.
+// The value must be URL encoded path to a calendar collection,
+// for example: 'USER/calendar/'
+// If empty or undefined then the first available calendar collection
+// is selected automatically.
+// NOTE: only already (down)loaded collections can be pre-selected (see
+// the globalLoadedCalendarCollections option).
+// NOTE: settings stored on the server (see settingsAccount) overwrite this
+// option.
+// Example:
+//var globalCalendarSelected='';
+
+
+// globalTodoCalendarSelected
+// This option sets which todo collection will be pre-selected
+// (if you create a new todo) by default after login.
+// The value must be URL encoded path to a todo collection,
+// for example: 'USER/todo_calendar/'
+// If empty or undefined then the first available todo collection
+// is selected automatically.
+// NOTE: only already (down)loaded collections can be pre-selected (see
+// the globalLoadedTodoCollections option).
+// NOTE: settings stored on the server (see settingsAccount) overwrite this
+// option.
+// Example:
+//var globalTodoCalendarSelected='';
+
+
+// globalActiveView
+// This options sets the default fullcalendar view option (the default calendar
+// view after the first login).
+// Supported values:
+// - 'month'
+// - 'multiWeek'
+// - 'agendaWeek'
+// - 'agendaDay'
+// NOTE: we use custom and enhanced version of fullcalendar!
+// Example:
+var globalActiveView='multiWeek';
+
+
+// globalOpenFormMode
+// Open new event form on 'single' or 'double' click.
+// If undefined or not 'double', then 'single' is used.
+// Example:
+var globalOpenFormMode='double';
+
+
+// globalTodoListFilterSelected
+// This options sets the list of filters in todo list that are selected
+// after login.
+// Supported options:
+// - 'filterAction'
+// - 'filterProgress' (available only if globalAppleRemindersMode is disabled)
+// - 'filterCompleted'
+// - 'filterCanceled' (available only if globalAppleRemindersMode is disabled)
+// NOTE: settings stored on the server (see settingsAccount) overwrite this
+// option.
+// Example:
+var globalTodoListFilterSelected=['filterAction', 'filterProgress'];
+
+
+// globalCalendarStartOfBusiness, globalCalendarEndOfBusiness
+// These options set the start and end of business hours with 0.5 hour
+// precision. Non-business hours are faded out in the calendar interface.
+// If both variables are set to the same value then no fade out occurs.
+// Example:
+var globalCalendarStartOfBusiness=8;
+var globalCalendarEndOfBusiness=17;
+
+
+// globalDefaultEventDuration
+// This option sets the default duration (in minutes) for newly created events.
+// If undefined or null, globalCalendarEndOfBusiness value will be taken as
+// a default end time instead.
+// Example:
+var globalDefaultEventDuration=120;
+
+
+// globalAMPMFormat
+// This option enables to use 12 hours format (AM/PM) for displaying time.
+// NOTE: time format is predefined for each localization - use this option
+// ONLY if you want to use custom time format (instead of the localization
+// predefined one).
+// Example:
+//var globalAMPMFormat=false;
+
+
+// globalTimeFormatBasic
+// This option defines the time format information for events in month and
+// multiweek views. If undefined or null then default value is used.
+// If defined as empty string no time information is shown in these views.
+// See http://arshaw.com/fullcalendar/docs/utilities/formatDate/ for exact
+// formating rules.
+// Example:
+//var globalTimeFormatBasic='';
+
+
+// globalTimeFormatAgenda
+// This option defines the time format information for events in day and
+// week views. If undefined or null then default value is used.
+// If defined as empty string no time information is shown in these views.
+// See http://arshaw.com/fullcalendar/docs/utilities/formatDate/ for exact
+// formating rules.
+// Example:
+//var globalTimeFormatAgenda='';
+
+
+// globalDisplayHiddenEvents
+// This option defined whether events from unechecked calendars are displayed
+// with certain transparency (true) or completely hidden (false).
+// Example:
+var globalDisplayHiddenEvents=false;
+
+
+// globalTimeZoneSupport
+// This option enables timezone support in the client.
+// NOTE: timezone cannot be specified for all-day events because these don't
+// have start and end time.
+// If this option is disabled then local time is used.
+// Example:
+var globalTimeZoneSupport=true;
+
+
+// globalTimeZone
+// If timezone support is enabled, this option sets the default timezone.
+// See timezones.js or use the following command to get the list of supported
+// timezones (defined in timezones.js):
+// grep "'[^']\+': {" timezones.js | sed -Ee "s#(\s*'|':\s*\{)##g"
+// Example:
+var globalTimeZone='Europe/Paris';
+
+
+// globalTimeZonesEnabled
+// This option sets the list of available timezones in the interface (for the
+// list of supported timezones see the comment for the previous configuration
+// option).
+// NOTE: if there is at least one event/todo with a certain timezone defined,
+// that timezone is enabled (even if it is not present in this list).
+// Example:
+// var globalTimeZonesEnabled=['America/New_York', 'Europe/Berlin'];
+var globalTimeZonesEnabled=[];
+
+
+// globalRewriteTimezoneComponent
+// This options sets whether the client will enhance/replace (if you edit an
+// event or todo) the timezone information using the official IANA timezone
+// database information (recommended).
+// Example:
+var globalRewriteTimezoneComponent=true;
+
+
+// globalRemoveUnknownTimezone
+// This options sets whether the client will remove all non-standard timezone
+// names from events and todos (if you edit an event or todo)
+// (e.g.: /freeassociation.sourceforge.net/Tzfile/Europe/Vienna)
+// Example:
+var globalRemoveUnknownTimezone=false;
+
+
+// globalShowHiddenAlarms
+// This option sets whether the client will show alarm notifications for
+// unchecked calendars. If this option is enabled and you uncheck a calendar
+// in the calendar list, alarm notifications will be temporary disabled for
+// unchecked calendar(s).
+// Example:
+var globalShowHiddenAlarms=false;
+
+
+// globalIgnoreCompletedOrCancelledAlarms
+// This options sets whether the client will show alarm notifications for
+// already completed or cancelled todos. If enabled then alarm notification
+// for completed and cancelled todos are disabled.
+// Example:
+var globalIgnoreCompletedOrCancelledAlarms=true;
+
+
+// globalMozillaSupport
+// Mozilla automatically treats custom repeating event calculations as if
+// the start day of the week is Monday, despite what day is chosen in settings.
+// Set this variable to true to use the same approach, ensuring compatible
+// event rendering in special cases.
+// Example:
+var globalMozillaSupport=false;
+
+
+// globalCalendarColorPropertyXmlns
+// This options sets the namespace used for storing the "calendar-color"
+// property by the client.
+// If true, undefined (or empty) "http://apple.com/ns/ical/" is used (Apple
+// compatible). If false, then the calendar color modification functionality
+// is completely disabled.
+// Example:
+//var globalCalendarColorPropertyXmlns=true;
+
+
+// globalWeekendDays
+// This option sets the list of days considered as weekend days (these
+// are faded out in the calendar interface). Non-weekend days are automatically
+// considered as business days.
+// Sunday is 0, Monday is 1, etc.
+// Example:
+var globalWeekendDays=[0, 6];
+
+
+// globalAppleRemindersMode
+// If this option is enabled then then client will use the same approach
+// for handling repeating reminders (todos) as Apple. It is STRONGLY
+// recommended to enabled this option if you use any Apple clients for
+// reminders (todos).
+// Supported options:
+// - 'iOS6'
+// - 'iOS7'
+// - true (support of the latest iOS version - 'iOS8')
+// - false
+// If this option is enabled:
+// - RFC todo support is SEVERELY limited and the client mimics the behaviour
+// of Apple Reminders.app (to ensure maximum compatibility)
+// - when a single instance of repeating todo is edited, it becomes an
+// autonomous non-repeating todo with NO relation to the original repeating
+// todo
+// - capabilities of repeating todos are limited - only the first instance
+// is ever visible in the interface
+// - support for todo DTSTART attribute is disabled
+// - support for todo STATUS attribute other than COMPLETED and NEEDS-ACTION
+// is disabled
+// - [iOS6 only] support for LOCATION and URL attributes is disabled
+// Example:
+var globalAppleRemindersMode=true;
+
+
+// globalSubscribedCalendars
+// This option specifies a list of remote URLs to ics files (e.g.: used
+// for distributing holidays information). Subscribed calendars are
+// ALWAYS read-only. Remote servers where ics files are hosted MUST
+// return proper CORS headers (see readme.txt) otherwise this functionality
+// will not work!
+// NOTE: subsribed calendars are NOT "shared" calendars. For "shared"
+// calendars see the delegation option in globalAccountSettings,
+// globalNetworkCheckSettings and globalNetworkAccountSettings.
+// List of properties used in globalSubscribedCalendars variable:
+// - hrefLabel
+// This options defines the header string above the subcsribed calendars.
+// - calendars
+// This option specifies an array of remote calendar objects with the
+// following properties:
+// - href
+// Set this option to the "full URL" of the remote calendar
+// - userAuth
+// NOTE: keep empty if remote authentication is not required!
+// - userName
+// Set the username you want to login.
+// - userPassword
+// Set the password for the given username.
+// - typeList
+// Set the list of objects you want to process from remote calendars;
+// two options are available:
+// - 'vevent' (show remote events in the interface)
+// - 'vtodo' (show remote todos in the interface)
+// - ignoreAlarm
+// Set this option to true if you want to disable alarm notifications
+// from the remote calendar.
+// - displayName
+// Set this option to the name of the calendar you want to see
+// in the interface.
+// - color
+// Set the calendar color you want to see in the interface.
+// Example:
+//var globalSubscribedCalendars={
+// hrefLabel: 'Subscribed',
+// calendars: [
+// {
+// href: 'http://something.com/calendar.ics',
+// userAuth: {
+// userName: '',
+// userPassword: ''
+// },
+// typeList: ['vevent', 'vtodo'],
+// ignoreAlarm: true,
+// displayName: 'Remote Calendar 1',
+// color: '#ff0000'
+// },
+// {
+// href: 'http://calendar.com/calendar2.ics',
+// ...
+// ...
+// }
+// ]
+//};
+
+
+
+// ******* CardDAV (CardDavMATE) related settings ******* //
+
+
+// globalLoadedAddressbookCollections
+// This option sets the list of addressbook collections (down)loaded after
+// login. If empty then all addressbook collections for the currently logged
+// user are loaded.
+// NOTE: settings stored on the server (see settingsAccount) overwrite this
+// option.
+// Example:
+var globalLoadedAddressbookCollections=[];
+
+
+// globalActiveAddressbookCollections
+// This options sets the list of addressbook collections checked (enabled
+// checkbox => data visible in the interface) by default after login.
+// If empty then all loaded addressbook collections for the currently logged
+// user are checked.
+// NOTE: only already (down)loaded collections can be checked (see
+// the globalLoadedAddressbookCollections option).
+// NOTE: settings stored on the server (see settingsAccount) overwrite this
+// option.
+// Example:
+var globalActiveAddressbookCollections=[];
+
+
+// globalAddressbookSelected
+// This option sets which addressbook collection will be pre-selected
+// (if you create a new contact) by default after login.
+// The value must be URL encoded path to an addressbook collection,
+// for example: 'USER/addressbook/'
+// If empty or undefined then the first available addressbook collection
+// is selected automatically.
+// NOTE: only already (down)loaded collections can be pre-selected (see
+// the globalLoadedAddressbookCollections option).
+// NOTE: settings stored on the server (see settingsAccount) overwrite this
+// option.
+// Example:
+//var globalAddressbookSelected='';
+
+
+// globalCompatibility
+// This options is reserved for various compatibility settings.
+// NOTE: if this option is used the value must be an object.
+// Currently there is only one supported option:
+// - anniversaryOutputFormat
+// Different clients use different (and incompatible) approach
+// to store anniversary date in vCards. Apple stores this attribute as:
+// itemX.X-ABDATE;TYPE=pref:2000-01-01\r\n
+// itemX.X-ABLabel:_$!<Anniversary>!$_\r\n'
+// other clients store this attribute as:
+// X-ANNIVERSARY:2000-01-01\r\n
+// Choose 'apple' or 'other' (lower case) for your 3rd party client
+// compatibility. You can chose both: ['apple', 'other'], but it may
+// cause many problems in the future, for example: duplicate anniversary
+// dates, invalid/old anniversary date in your clients, ...)
+// Examples:
+// anniversaryOutputFormat: ['other']
+// anniversaryOutputFormat: ['apple', 'other']
+// Example:
+var globalCompatibility={anniversaryOutputFormat: ['apple']};
+
+
+// globalUriHandler{Tel,Email,Url,Profile}
+// These options set the URI handlers for TEL, EMAIL, URL and X-SOCIALPROFILE
+// vCard attributes. Set them to null (or comment out) to disable.
+// NOTE: for globalUriHandlerTel is recommended to use 'tel:', 'callto:'
+// or 'skype:'. The globalUriHandlerUrl value is used only if no URI handler
+// is defined in the URL.
+// NOTE: it is safe to keep these values unchanged!
+// Example:
+var globalUriHandlerTel='tel:';
+var globalUriHandlerEmail='mailto:';
+var globalUriHandlerUrl='http://';
+var globalUriHandlerProfile={
+ 'twitter': 'http://twitter.com/%u',
+ 'facebook': 'http://www.facebook.com/%u',
+ 'flickr': 'http://www.flickr.com/photos/%u',
+ 'linkedin': 'http://www.linkedin.com/in/%u',
+ 'myspace': 'http://www.myspace.com/%u',
+ 'sinaweibo': 'http://weibo.com/n/%u'
+};
+
+
+// globalDefaultAddressCountry
+// This option sets the default country for new address fields.
+// See common.js or use the following command to get the list of
+// all supported country codes (defined in common.js):
+// grep -E "'[a-z]{2}':\s+\[" common.js | sed -Ee 's#^\s+|\s+\[\s+# #g'
+// Example:
+var globalDefaultAddressCountry='fr';
+
+
+// globalAddressCountryEquivalence
+// This option sets the processing of the country field specified
+// in the vCard ADR attribute.
+// By default the address field in vCard looks like:
+// ADR;TYPE=WORK:;;1 Waters Edge;Baytown;LA;30314;USA\r\n
+// what cause a problem, because the country field is a plain
+// text and can contain any value, e.g.:
+// USA
+// United States of America
+// US
+// and because the address format can be completely different for
+// each country, e.g.:
+// China address example:
+// [China]
+// [Province] [City]
+// [Street]
+// [Postal]
+// Japan address example:
+// [Postal]
+// [Prefecture] [County/City]
+// [Further Divisions]
+// [Japan]
+// the client needs to correctly detect the country from the ADR
+// attribute. Apple solved this problem by using:
+// item1.ADR;TYPE=WORK:;;1 Waters Edge;Baytown;LA;30314;USA\r\n
+// item1.X-ABADR:us\r\n
+// where the second "related" attribute defines the country code
+// for the ADR attribute. This client uses the same approach, but
+// if the vCard is created by 3rd party clients and the X-ABADR
+// is missing, it is possible to define additional "rules" for
+// country matching. These rules are specied by the country code
+// (for full list of country codes see the comment for pre previous
+// option) and a case insensitive regular expression (which matches
+// the plain text value in the country field).
+// NOTE: if X-ABADR is not present and the country not matches any
+// country defined in this option, then globalDefaultAddressCountry
+// is used by default.
+// Example:
+var globalAddressCountryEquivalence=[
+ {country: 'de', regex: '^\\W*Deutschland\\W*$'},
+ {country: 'sk', regex: '^\\W*Slovensko\\W*$'}
+];
+
+
+// globalAddressCountryFavorites
+// This option defines the list of countries which are shown at the top
+// of the country list in the interface (for full list of country codes
+// see the comment for pre globalDefaultAddressCountry option).
+// Example:
+// var globalAddressCountryFavorites=['de','sk'];
+var globalAddressCountryFavorites=[];
+
+
+// globalAddrColorPropertyXmlns
+// This options sets the namespace used for storing the "addressbook-color"
+// property by the client.
+// If true, undefined (or empty) "http://inf-it.com/ns/ab/" is used.
+// If false, then the addressbook color modification functionality
+// is completely disabled, and addressbook colors in the interface are
+// generated automatically.
+// Example:
+//var globalAddrColorPropertyXmlns=true;
+
+
+// globalContactStoreFN
+// This option specifies how the FN (formatted name) is stored into vCard.
+// The value for this options must be an array of strings, that can contain
+// the following variables:
+// prefix
+// last
+// middle
+// first
+// suffix
+// The string element of the array can contain any other characters (usually
+// space or colon). Elements are added into FN only if the there is
+// a variable match, for example if:
+// last='Lastname'
+// first='Firstname'
+// middle='' (empty)
+// and this option is set to:
+// ['last', ' middle', ' first'] (space in the second and third element)
+// the resulting value for FN will be: 'Lastname Firstname' and not
+// 'Lastname Firstname' (two spaces), because the middle name is empty (so
+// the second element is completely ignored /not added into FN/).
+// NOTE: this attribute is NOT used by this client, and it is also NOT
+// possible to directly edit it in the interface.
+// Examples:
+// var globalContactStoreFN=[' last', ' middle', ' first'];
+// var globalContactStoreFN=['last', ', middle', ' ,first'];
+var globalContactStoreFN=['prefix',' last',' middle',' first',' suffix'];
+
+
+// globalGroupContactsByCompanies
+// This options specifies how contacts are grouped in the interface.
+// By default the interface looks like (very simple example):
+// A
+// Adams Adam
+// Anderson Peter
+// B
+// Brown John
+// Baker Josh
+// if grouped by company/deparment the result is:
+// Company A [Department X]
+// Adams Adam
+// Brown John
+// Company B [Department Y]
+// Anderson Peter
+// Baker Josh
+// If this option is set to true contacts are grouped by company/department,
+// otherwise (default) contacts are grouped by letters of the alphabet.
+// If undefined or not true, grouping by alphabet letters is used.
+// NOTE: see also the globalCollectionDisplay option below.
+var globalGroupContactsByCompanies=false;
+
+
+// globalCollectionDisplay
+// This options specifies how data columns in the contact list are displayed.
+//
+// NOTE: columns are displayed ONLY if there is enought horizontal place in
+// the browser window (e.g. if you define 5 columns here, but your browser
+// window is not wide enough, you will see only first 3 columns instead of 5).
+//
+// NOTE: see the globalContactDataMinVisiblePercentage option which defines the
+// width for columns.
+//
+// The value must be an array of columns, where each column is represented by
+// an object with the following properties:
+// label => the value of this option is a string used as column header
+// You can use the following localized variables in the label string:
+// - {Name}
+// - {FirstName}
+// - {LastName}
+// - {MiddleName}
+// - {NickName}
+// - {Prefix}
+// - {Suffix}
+// - {BirthDay}
+// - {PhoneticLastName}
+// - {PhoneticFirstName}
+// - {JobTitle}
+// - {Company}
+// - {Department}
+// - {Categories}
+// - {NoteText}
+// - {Address}, {AddressWork}, {AddressHome}, {AddressOther}
+// - {Phone}, {PhoneWork}, {PhoneHome}, {PhoneCell}, {PhoneMain},
+// {PhonePager}, {PhoneFax}, {PhoneIphone}, {PhoneOther}
+// - {Email}, {EmailWork}, {EmailHome}, {EmailMobileme}, {EmailOther}
+// - {URL}, {URLWork}, {URLHome}, {URLHomepage}, {URLOther}
+// - {Dates}, {DatesAnniversary}, {DatesOther}
+// - {Related}, {RelatedManager}, {RelatedAssistant}, {RelatedFather},
+// {RelatedMother}, {RelatedParent}, {RelatedBrother}, {RelatedSister},
+// {RelatedChild}, {RelatedFriend}, {RelatedSpouse}, {RelatedPartner},
+// {RelatedOther}
+// - {Profile}, {ProfileTwitter}, {ProfileFacebook}, {ProfileFlickr},
+// {ProfileLinkedin}, {ProfileMyspace}, {ProfileSinaweibo}
+// - {IM}, {IMWork}, {IMHome}, {IMMobileme}, {IMOther}, {IMAim}, {IMIcq},
+// {IMIrc}, {IMJabber}, {IMMsn}, {IMYahoo}, {IMFacebook}, {IMGadugadu},
+// {IMGoogletalk}, {IMQq}, {IMSkype}
+// value => the value of this option is an array of format strings, or
+// an object with the following properties:
+// - company (used for company contacts)
+// - personal (used for user contacts)
+// where the value of these properties is an array of format strings used
+// for company or user contacts (you can have different values in the same
+// column for personal and company contacts).
+// You can use the following simple variables in the format string:
+// - {FirstName}
+// - {LastName}
+// - {MiddleName}
+// - {NickName}
+// - {Prefix}
+// - {Suffix}
+// - {BirthDay}
+// - {PhoneticLastName}
+// - {PhoneticFirstName}
+// - {JobTitle}
+// - {Company}
+// - {Department}
+// - {Categories}
+// - {NoteText}
+// You can also use parametrized variables, where the parameter is enclosed
+// in square bracket. Paramatrized variables are useful to extract data
+// such as home phone {Phone[type=home]}, extract the second phone number
+// {Phone[:1]} (zero based indexing) or extract the third home phone number
+// {Phone[type=home][:2]} from the vCard.
+// NOTE: if the parametrized variable matches multiple items, e.g.:
+// {Phone[type=work]} (if the contact has multiple work phones) then the
+// first one is used!
+//
+// The following parametrized variables are supported (note: you can use
+// all of them also without parameters /the first one will be used/):
+// - {Address[type=XXX]} or {Address[:NUM]} or {Address[type=XXX][:NUM]}
+// where supported values for XXX are:
+// - work
+// - home
+// - other
+// - any other custom value
+// - {Phone[type=XXX]} or {Phone[:NUM]} or {Phone[type=XXX][:NUM]}
+// where supported values for XXX are:
+// - work
+// - home
+// - cell
+// - main
+// - pager
+// - fax
+// - iphone
+// - other
+// - any other custom value
+// - {Email[type=XXX]} or {Email[:NUM]} or {Email[type=XXX][:NUM]}
+// where supported values for XXX are:
+// - work
+// - home
+// - mobileme
+// - other
+// - any other custom value
+// - {URL[type=XXX]} or {URL[:NUM]} or {URL[type=XXX][:NUM]}
+// where supported values for XXX are:
+// - work
+// - home
+// - homepage
+// - other
+// - any other custom value
+// - {Dates[type=XXX]} or {Dates[:NUM]} or {Dates[type=XXX][:NUM]}
+// where supported values for XXX are:
+// - anniversary
+// - other
+// - any other custom value
+// - {Related[type=XXX]} or {Related[:NUM]} or {Related[type=XXX][:NUM]}
+// where supported values for XXX are:
+// - manager
+// - assistant
+// - father
+// - mother
+// - parent
+// - brother
+// - sister
+// - child
+// - friend
+// - spouse
+// - partner
+// - other
+// - any other custom value
+// - {Profile[type=XXX]} or {Profile[:NUM]} or {Profile[type=XXX][:NUM]}
+// where supported values for XXX are:
+// - twitter
+// - facebook
+// - flickr
+// - linkedin
+// - myspace
+// - sinaweibo
+// - any other custom value
+// - {IM[type=XXX]} or {IM[service-type=YYY]} or {IM[:NUM]}
+// where supported values for XXX are:
+// - work
+// - home
+// - mobileme
+// - other
+// - any other custom value
+// and supported values for YYY are:
+// - aim
+// - icq
+// - irc
+// - jabber
+// - msn
+// - yahoo
+// - facebook
+// - gadugadu
+// - googletalk
+// - qq
+// - skype
+// - any other custom value
+//
+// NOTE: if you want to use the "any other custom value" option (for XXX
+// or YYY above) you MUST double escape the following characters:
+// =[]{}\
+// for example:
+// - for profile type "=XXX=" use: '{Profile[type=\\=XXX\\=]}'
+// - for profile type "\XXX\" use: '{Profile[type=\\\\XXX\\\\]}'
+//
+// NOTE: if you want to use curly brackets in the format string you must
+// double escape it, e.g.: ['{Company}', '\\{{Department}\\}']
+//
+// The format string (for the value option) is an array to allow full
+// customization of the interface. For example if:
+// value: ['{LastName} {MiddleName} {FirstName}']
+// and the person has no middle name, then the result in the column
+// will be (without quotes):
+// "Parker Peter" (note: two space characters)
+// but if you use:
+// value: ['{LastName}', ' {MiddleName}', ' {FirstName}']
+// then the result will be (without quotes):
+// "Parker Peter" (note: only one space character)
+// The reason is that only those elements of the array are appended
+// into the result where non-empty substitution was performed (so the
+// ' {MiddleName}' element in this case is ignored, because the person
+// in the example above has no /more precisely has empty/ middle name).
+//
+// Examples:
+// To specify two columns (named "Company" and "Department / LastName"),
+// where the first will display the company name, and the second will display
+// department for company contacts (with "Dep -" prefix), and lastname for
+// personal contacts (with "Name -" prefix) use:
+// var globalCollectionDisplay=[
+// {
+// label: 'Company',
+// value: ['{Company}']
+// },
+// {
+// label: 'Department / LastName',
+// value: {
+// company: ['Dep - {Department}'],
+// personal: ['Name - {LastName}']
+// }
+// }
+// ];
+// To specify 3 columns (named "Categories", "URL" and "IM"), where the first
+// will display categories, second will display the third work URL, and third
+// will display ICQ IM use:
+// var globalCollectionDisplay=[
+// {
+// label: 'Categories',
+// value: ['{Categories}']
+// },
+// {
+// label: 'URL',
+// value: ['{URL[type=WORK][:2]}']
+// },
+// {
+// label: 'IM',
+// value: ['{IM[service-type=ICQ]}']
+// }
+// ];
+//
+// Recommended settings if globalGroupContactsByCompanies
+// is set to false:
+// var globalCollectionDisplay=[
+// {
+// label: '{Name}',
+// value: ['{LastName}', ' {MiddleName}', ' {FirstName}']
+// },
+// {
+// label: '{Company} [{Department}]',
+// value: ['{Company}', ' [{Department}]']
+// },
+// {
+// label: '{JobTitle}',
+// value: ['{JobTitle}']
+// },
+// {
+// label: '{Email}',
+// value: ['{Email[:0]}']
+// },
+// {
+// label: '{Phone} 1',
+// value: ['{Phone[:0]}']
+// },
+// {
+// label: '{Phone} 2',
+// value: ['{Phone[:1]}']
+// },
+// {
+// label: '{NoteText}',
+// value: ['{NoteText}']
+// }
+// ];
+//
+// Recommended settings if globalGroupContactsByCompanies
+// is set to true:
+// var globalCollectionDisplay=[
+// {
+// label: '{Name}',
+// value: {
+// personal: ['{LastName}', ' {MiddleName}', ' {FirstName}'],
+// company: ['{Company}', ' [{Department}]']
+// }
+// },
+// {
+// label: '{JobTitle}',
+// value: ['{JobTitle}']
+// },
+// {
+// label: '{Email}',
+// value: ['{Email[:0]}']
+// },
+// {
+// label: '{Phone} 1',
+// value: ['{Phone[:0]}']
+// },
+// {
+// label: '{Phone} 2',
+// value: ['{Phone[:1]}']
+// },
+// {
+// label: '{NoteText}',
+// value: ['{NoteText}']
+// }
+// ];
+//
+// NOTE: if left undefined, the recommended settings will be used.
+
+
+// globalCollectionSort
+// This options sets the ordering of contacts in the interface. In general
+// contacts are ordered alphabetically by an internal "sort string" which
+// is created for each contact. Here you can specify how this internal string
+// is created. The value is a simple array holding only the values from the
+// value property defined in the globalCollectionDisplay option.
+// If undefined, the definition from globalCollectionDisplay is used.
+// Example:
+// var globalCollectionSort = [
+// ['{LastName}'],
+// ['{FirstName}'],
+// ['{MiddleName}'],
+// {
+// company: ['{Categories}'],
+// personal: ['{Company}']
+// }
+// ];
+var globalCollectionSort=[
+ ['{LastName}'],
+ ['{FirstName}'],
+ ['{MiddleName}']
+];
+
+
+// globalContactDataMinVisiblePercentage
+// This option defines how the width for columns are computed. If you set
+// it to 1 then 100% of all data in the column will be visible (the column
+// width is determined by the longest string in the column). If you set it
+// to 0.95 then 95% of data will fit into the column width, and the remaining
+// 5% will be truncated (" ...").
+// Example:
+var globalContactDataMinVisiblePercentage=0.95;
+
+
--- /dev/null
+--- a/bug_report.php 2019-05-06 12:06:44.265508011 +0200
++++ b/bug_report.php 2019-05-06 12:09:40.106952738 +0200
+@@ -67,6 +67,17 @@
+ 'copy_files' => $f_copy_attachments_from_parent
+ );
+
++# begin captcha check for anon user
++if ( current_user_is_anonymous() && get_gd_version() > 0 ) {
++ $f_captcha = gpc_get_string( 'captcha', '' );
++ $f_captcha = utf8_strtolower( trim( $f_captcha ) );
++
++ $t_securimage = new Securimage();
++ if( $t_securimage->check( $f_captcha ) == false ) {
++ trigger_error( ERROR_SIGNUP_NOT_MATCHING_CAPTCHA, ERROR );
++ }
++}
++
+ if( $f_master_bug_id > 0 ) {
+ bug_ensure_exists( $f_master_bug_id );
+
--- /dev/null
+--- a/bug_report_page.php 2018-02-10 21:29:27.000000000 +0100
++++ b/bug_report_page.php 2018-03-03 15:04:19.622499678 +0100
+@@ -708,7 +708,50 @@
+ <span class="lbl padding-6"><?php echo lang_get( 'check_report_more_bugs' ) ?></span>
+ </label>
+ </td>
+ </tr>
++<?php
++ # captcha image requires GD library and related option to ON
++ if( current_user_is_anonymous() && get_gd_version() > 0 ) {
++ $t_securimage_path = 'vendor/dapphp/securimage';
++ $t_securimage_show = $t_securimage_path . '/securimage_show.php';
++ $t_securimage_play = $t_securimage_path . '/securimage_play.swf?'
++ . http_build_query( array(
++ 'audio_file' => $t_securimage_path . '/securimage_play.php',
++ 'bgColor1=' => '#fff',
++ 'bgColor2=' => '#fff',
++ 'iconColor=' => '#777',
++ 'borderWidth=' => 1,
++ 'borderColor=' => '#000',
++ ) );
++?>
++ <tr>
++ <th class="category">CAPTCHA</th>
++ <td>
++
++ <label for="captcha-field" class="block clearfix">
++ <strong><?php echo lang_get( 'signup_captcha_request_label' ); ?></strong>
++ </label>
++ <span id="captcha-input" class="input">
++ <?php print_captcha_input( 'captcha' ); ?>
++
++ <span id="captcha-image" class="captcha-image" style="padding-right:3px;">
++ <img src="<?php echo $t_securimage_show; ?>" alt="visual captcha" />
++ <ul id="captcha-refresh"><li><a href="#"><?php
++ echo lang_get( 'signup_captcha_refresh' );
++ ?></a></li></ul>
++ </span>
++
++ <object type="application/x-shockwave-flash" width="19" height="19"
++ data="<?php echo $t_securimage_play; ?>">
++ <param name="movie" value="<?php echo $t_securimage_play; ?>" />
++ </object>
++ </span>
++ </td>
++ </tr>
++<?php
++ }
++?>
++
+ </table>
+ </div>
+ </div>
--- /dev/null
+--- a/bugnote_add.php 2018-02-10 21:29:27.000000000 +0100
++++ b/bugnote_add.php 2018-03-03 15:13:12.439919511 +0100
+@@ -44,6 +44,17 @@
+
+ $t_query = array( 'issue_id' => $f_bug_id );
+
++# begin captcha check for anon user
++if ( current_user_is_anonymous() && get_gd_version() > 0 ) {
++ $f_captcha = gpc_get_string( 'captcha', '' );
++ $f_captcha = utf8_strtolower( trim( $f_captcha ) );
++
++ $t_securimage = new Securimage();
++ if( $t_securimage->check( $f_captcha ) == false ) {
++ trigger_error( ERROR_SIGNUP_NOT_MATCHING_CAPTCHA, ERROR );
++ }
++}
++
+ if( count( $f_files ) > 0 && is_blank( $f_text ) && helper_duration_to_minutes( $f_duration ) == 0 ) {
+ $t_payload = array(
+ 'files' => helper_array_transpose( $f_files )
--- /dev/null
+--- a/bugnote_add_inc.php 2018-02-10 21:29:27.000000000 +0100
++++ b/bugnote_add_inc.php 2018-03-03 15:14:27.332428557 +0100
+@@ -119,6 +119,49 @@
+ <textarea name="bugnote_text" id="bugnote_text" class="<?php echo $t_bugnote_class ?>" rows="7"></textarea>
+ </td>
+ </tr>
++<?php
++ # captcha image requires GD library and related option to ON
++ if( current_user_is_anonymous() && get_gd_version() > 0 ) {
++ $t_securimage_path = 'vendor/dapphp/securimage';
++ $t_securimage_show = $t_securimage_path . '/securimage_show.php';
++ $t_securimage_play = $t_securimage_path . '/securimage_play.swf?'
++ . http_build_query( array(
++ 'audio_file' => $t_securimage_path . '/securimage_play.php',
++ 'bgColor1=' => '#fff',
++ 'bgColor2=' => '#fff',
++ 'iconColor=' => '#777',
++ 'borderWidth=' => 1,
++ 'borderColor=' => '#000',
++ ) );
++?>
++ <tr>
++ <th class="category">CAPTCHA</th>
++ <td>
++
++ <label for="captcha-field" class="block clearfix">
++ <strong><?php echo lang_get( 'signup_captcha_request_label' ); ?></strong>
++ </label>
++ <span id="captcha-input" class="input">
++ <?php print_captcha_input( 'captcha' ); ?>
++
++ <span id="captcha-image" class="captcha-image" style="padding-right:3px;">
++ <img src="<?php echo $t_securimage_show; ?>" alt="visual captcha" />
++ <ul id="captcha-refresh"><li><a href="#"><?php
++ echo lang_get( 'signup_captcha_refresh' );
++ ?></a></li></ul>
++ </span>
++
++ <object type="application/x-shockwave-flash" width="19" height="19"
++ data="<?php echo $t_securimage_play; ?>">
++ <param name="movie" value="<?php echo $t_securimage_play; ?>" />
++ </object>
++ </span>
++ </td>
++ </tr>
++<?php
++ }
++?>
++
+
+ <?php
+ if( config_get( 'time_tracking_enabled' ) ) {
--- /dev/null
+{ mantis_config ? "/etc/mantisbt/config_inc.php", stdenv, fetchurl }:
+let
+ withPlugins = plugins: package.overrideAttrs(old: {
+ name = "${old.name}-with-plugins";
+ installPhase = old.installPhase + (
+ builtins.concatStringsSep "\n" (
+ map (value: if builtins.hasAttr "selector" value then
+ "ln -sf ${value}/${value.selector} $out/plugins/"
+ else
+ "ln -sf ${value} $out/plugins/${value.pluginName}"
+ ) plugins
+ ));
+ passthru = old.passthru // {
+ inherit plugins;
+ withPlugins = morePlugins: old.withPlugins (morePlugins ++ plugins);
+ };
+ });
+ package = stdenv.mkDerivation rec {
+ name = "mantisbt-${version}";
+ version = "2.21.0";
+ src = fetchurl {
+ url = "https://downloads.sourceforge.net/project/mantisbt/mantis-stable/${version}/${name}.tar.gz";
+ sha256 = "13lx569dp1gibq5daqp7dj6gsqic85rrix1s7xkp60gwpzk8wiw5";
+ };
+ patches = [
+ ./bug_report.php.diff
+ ./bug_report_page.php.diff
+ ./bugnote_add.php.diff
+ ./bugnote_add_inc.php.diff
+ ];
+ installPhase = ''
+ cp -a . $out
+ ln -s ${mantis_config} $out/config/config_inc.php
+ '';
+
+ passthru = {
+ plugins = [];
+ inherit withPlugins;
+ };
+ };
+in package
--- /dev/null
+{ stdenv, fetchFromGitHub }:
+stdenv.mkDerivation rec {
+ passthru = {
+ pluginName = "Slack";
+ };
+ version = "9286d2e-master";
+ name = "mantisbt-plugin-slack-${version}";
+ src = fetchFromGitHub {
+ owner = "mantisbt-plugins";
+ repo = "Slack";
+ rev = "9286d2eeeb8a986ed949e378711fef5f0bf182dc";
+ sha256 = "0nn0v4jc967giilkzrppi5svd04m2hnals75xxp0iabcdjnih0mn";
+ };
+ installPhase = ''
+ sed -i -e "s/return '@' . \\\$username;/return \\\$username;/" Slack.php
+ cp -a . $out
+ '';
+}
--- /dev/null
+--- b/Source/Source.API.php 2017-09-18 00:50:32.000000000 +0200
++++ a/Source/Source.API.php 2018-03-04 19:00:25.578889039 +0100
+@@ -452,6 +452,9 @@
+ # Allow other plugins to post-process commit data
+ event_signal( 'EVENT_SOURCE_COMMITS', array( $p_changesets ) );
+ event_signal( 'EVENT_SOURCE_FIXED', array( $t_fixed_bugs ) );
++ foreach( $t_fixed_bugs as $t_bug_id => $t_changeset ) {
++ event_signal( 'EVENT_BUG_ACTION', array('RESOLVE', $t_bug_id) );
++ }
+ }
+
+ /**
--- /dev/null
+{ stdenv, fetchFromGitHub }:
+stdenv.mkDerivation rec {
+ version = "v2.2.0";
+ name = "mantisbt-plugin-source-integration-${version}";
+ src = fetchFromGitHub {
+ owner = "mantisbt-plugins";
+ repo = "source-integration";
+ rev = "44fc9e2e770aff4f40f56833f26a86ce0e2deb76";
+ sha256 = "0gcm6kqqijnv303sk59zn27adwx5vkr545mwzyaq2nrpxnkwdy5b";
+ };
+ patches = [
+ ./Source.API.php.diff
+ ];
+ installPhase = ''
+ mkdir $out
+ cp -a Source* $out/
+ '';
+ passthru = {
+ selector = "Source*";
+ };
+}
--- /dev/null
+{ varDir ? "/var/lib/mastodon", mylibs,
+ stdenv, writeText, runCommand,
+ ruby_2_6, bundlerEnv, defaultGemConfig,
+ jq, protobuf, protobufc, pkgconfig, libidn, pam, nodejs, yarn }:
+let
+ gems = bundlerEnv {
+ name = "mastodon-env";
+ ruby = ruby_2_6;
+ gemset = ./gemset.nix;
+ gemdir = (mylibs.fetchedGithub ./mastodon.json).src;
+ groups = [ "default" "production" "test" "development" ];
+ gemConfig = defaultGemConfig // {
+ redis-rack = attrs: {
+ preBuild = ''
+ sed -i 's!s\.files.*!!' redis-rack.gemspec
+ '';
+ };
+ tzinfo = attrs: {
+ preBuild = ''
+ sed -i 's!s\.files.*!!' tzinfo.gemspec
+ '';
+ };
+ cld3 = attrs: {
+ buildInputs = [ protobuf protobufc pkgconfig ];
+ };
+ idn-ruby = attrs: {
+ buildInputs = [ libidn ];
+ };
+ rpam2 = attrs: {
+ buildInputs = [ pam ];
+ };
+ };
+ };
+ yarnModules = let
+ info = mylibs.fetchedGithub ./mastodon.json;
+ packagejson = runCommand "package.json" { buildInputs = [ jq ]; } ''
+ cat ${info.src}/package.json | jq -r '.version = "${info.version}"' > $out
+ '';
+ in
+ mylibs.yarn2nixPackage.mkYarnModules rec {
+ name = "mastodon-yarn";
+ pname = name;
+ version = info.version;
+ packageJSON = packagejson;
+ yarnLock = "${info.src}/yarn.lock";
+ yarnNix = ./yarn-packages.nix;
+ pkgConfig = {
+ all = {
+ buildInputs = [ mylibs.yarn2nixPackage.src ];
+ };
+ uws = {
+ postInstall = ''
+ npx node-gyp rebuild > build_log.txt 2>&1 || true
+ '';
+ };
+ };
+ };
+ mastodon_with_yarn = stdenv.mkDerivation (mylibs.fetchedGithub ./mastodon.json // rec {
+ installPhase = ''
+ cp -a . $out
+ cp -a ${yarnModules}/node_modules $out
+ '';
+ buildInputs = [ yarnModules ];
+ });
+in
+stdenv.mkDerivation {
+ name = "mastodon";
+ inherit mastodon_with_yarn;
+ builder = writeText "build_mastodon" ''
+ source $stdenv/setup
+ set -a
+ SECRET_KEY_BASE=Dummy
+ OTP_SECRET=Dummy
+ set +a
+ cp -a $mastodon_with_yarn $out
+ cd $out
+ chmod u+rwX . public
+ chmod -R u+rwX config/
+ sed -i -e 's@^end$@ config.action_mailer.sendmail_settings = { location: ENV.fetch("SENDMAIL_LOCATION", "/usr/sbin/sendmail") }\nend@' config/environments/production.rb
+ RAILS_ENV=production ${gems}/bin/rails assets:precompile
+ rm -rf tmp/cache
+ ln -sf ${varDir}/tmp/cache tmp
+ '';
+ buildInputs = [ gems gems.ruby nodejs yarn ];
+ passthru = { inherit gems varDir; };
+}
--- /dev/null
+{
+ actioncable = {
+ dependencies = ["actionpack" "nio4r" "websocket-driver"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0826k5ch0l03f9yrkxy69aiv039z4qi00lnahw2rzywd2iz6r68x";
+ type = "gem";
+ };
+ version = "5.2.2";
+ };
+ actionmailer = {
+ dependencies = ["actionpack" "actionview" "activejob" "mail" "rails-dom-testing"];
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0sfpb8s95cmkpp9ybyp2c88r55r5llscmmnkfwcwgasz9ncjiq5n";
+ type = "gem";
+ };
+ version = "5.2.2";
+ };
+ actionpack = {
+ dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"];
+ groups = ["default" "development" "pam_authentication" "production" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0iwhbqqn0cm39dq040iwq8cfyclqk3kyzwlp5k3j5cz8k2668wws";
+ type = "gem";
+ };
+ version = "5.2.2";
+ };
+ actionview = {
+ dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"];
+ groups = ["default" "development" "pam_authentication" "production" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1lz04drbi1z0xhvb8jnr14pbf505lilr02arahxq7y3mxiz0rs8z";
+ type = "gem";
+ };
+ version = "5.2.2";
+ };
+ active_model_serializers = {
+ dependencies = ["actionpack" "activemodel" "case_transform" "jsonapi-renderer"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "02snasjwg3q2ar0m6c53ilc5lamx796hm37apk7jf6cx0x3kwzx9";
+ type = "gem";
+ };
+ version = "0.10.8";
+ };
+ active_record_query_trace = {
+ groups = ["development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1aharmy1fcd0plv9k0i2dk5icvnlww8n43ia8xahfkcask0cpidh";
+ type = "gem";
+ };
+ version = "1.5.4";
+ };
+ activejob = {
+ dependencies = ["activesupport" "globalid"];
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1jjkl62x2aprg55x9rpm0h2c82vr2qr989hg3l9r21l01q4822ir";
+ type = "gem";
+ };
+ version = "5.2.2";
+ };
+ activemodel = {
+ dependencies = ["activesupport"];
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1xmwi3mw8g4shbjvkhk72ra3r5jccbdsd4piphqka2y1h8s7sxvi";
+ type = "gem";
+ };
+ version = "5.2.2";
+ };
+ activerecord = {
+ dependencies = ["activemodel" "activesupport" "arel"];
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "19a0sns6a5wz2wym25lb1dv4lbrrl5sd1n15s5ky2636znmhz30y";
+ type = "gem";
+ };
+ version = "5.2.2";
+ };
+ activestorage = {
+ dependencies = ["actionpack" "activerecord" "marcel"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0c72837098sw384vk6dmrb2p7q3wx4swnibk6sw9dp4hn1vc4p31";
+ type = "gem";
+ };
+ version = "5.2.2";
+ };
+ activesupport = {
+ dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"];
+ groups = ["default" "development" "pam_authentication" "production" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1iya7vxqwxysr74s7b4z1x19gmnx5advimzip3cbmsd5bd43wfgz";
+ type = "gem";
+ };
+ version = "5.2.2";
+ };
+ addressable = {
+ dependencies = ["public_suffix"];
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0bcm2hchn897xjhqj9zzsxf3n9xhddymj4lsclz508f4vw3av46l";
+ type = "gem";
+ };
+ version = "2.6.0";
+ };
+ airbrussh = {
+ dependencies = ["sshkit"];
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0yp1sl5n94ksxpwmaajflbdls45s81hw4spgz01h19xs2zrvv8wl";
+ type = "gem";
+ };
+ version = "1.3.0";
+ };
+ annotate = {
+ dependencies = ["activerecord" "rake"];
+ groups = ["development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1l69l2kn06nkrnyq6gb1x322x5raxs8ms60shpf0v5dsi8lfig16";
+ type = "gem";
+ };
+ version = "2.7.4";
+ };
+ arel = {
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1jk7wlmkr61f6g36w9s2sn46nmdg6wn2jfssrhbhirv5x9n95nk0";
+ type = "gem";
+ };
+ version = "9.0.0";
+ };
+ ast = {
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "184ssy3w93nkajlz2c70ifm79jp3j737294kbc5fjw69v1w0n9x7";
+ type = "gem";
+ };
+ version = "2.4.0";
+ };
+ attr_encrypted = {
+ dependencies = ["encryptor"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0ncv2az1zlj33bsllr6q1qdvbw42gv91lxq0ryclbv8l8xh841jg";
+ type = "gem";
+ };
+ version = "3.1.0";
+ };
+ av = {
+ dependencies = ["cocaine"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1swakpybf6g0nzfdn6q4s9c97ysc3i4ffk84dw8v2321fpvc8gqq";
+ type = "gem";
+ };
+ version = "0.9.0";
+ };
+ aws-eventstream = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0gdiwkg24jpx5f3bkw6vchgliicn6v9bpm09j0dldaxsca66q0wy";
+ type = "gem";
+ };
+ version = "1.0.1";
+ };
+ aws-partitions = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0v6ksvawcmi5m0sc3qpcvziidzhkxlcaqs851yvvq2s2r5hgdfgb";
+ type = "gem";
+ };
+ version = "1.131.0";
+ };
+ aws-sdk-core = {
+ dependencies = ["aws-eventstream" "aws-partitions" "aws-sigv4" "jmespath"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0xaaqsy4lpgydg8drjnax62azjmnfpvfz9jk3ca333mdri6c6bvm";
+ type = "gem";
+ };
+ version = "3.45.0";
+ };
+ aws-sdk-kms = {
+ dependencies = ["aws-sdk-core" "aws-sigv4"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "195f12iygwlxj720gyikggdlxgfh4j371qa8dn7x4kwgq732b1fn";
+ type = "gem";
+ };
+ version = "1.13.0";
+ };
+ aws-sdk-s3 = {
+ dependencies = ["aws-sdk-core" "aws-sdk-kms" "aws-sigv4"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1mpf7v5n19ymq585xr0s47d9hcjc6crx5vi99s2ivcl79k1xj87d";
+ type = "gem";
+ };
+ version = "1.30.1";
+ };
+ aws-sigv4 = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1hzndv113i6bgy2n72i5l3mwn8vjnb6hhjxfkpn9mm2p5ra77yk7";
+ type = "gem";
+ };
+ version = "1.0.3";
+ };
+ bcrypt = {
+ groups = ["default" "pam_authentication"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0ysblqxkclmnhrd0kmb5mr8p38mbar633gdsb14b7dhkhgawgzfy";
+ type = "gem";
+ };
+ version = "3.1.12";
+ };
+ benchmark-ips = {
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1w59c4qnwkjqwn7zyp9hshslbshna77vknmz43h0va5lxisd6ai2";
+ type = "gem";
+ };
+ version = "2.7.2";
+ };
+ better_errors = {
+ dependencies = ["coderay" "erubi" "rack"];
+ groups = ["development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1pqnxxsqqs7vnqvamk5bzs84dv584g9s0qaf2vqb1v2aj5dabcg7";
+ type = "gem";
+ };
+ version = "2.5.0";
+ };
+ binding_of_caller = {
+ dependencies = ["debug_inspector"];
+ groups = ["development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "05syqlks7463zsy1jdfbbdravdhj9hpj5pv2m74blqpv8bq4vv5g";
+ type = "gem";
+ };
+ version = "0.8.0";
+ };
+ bootsnap = {
+ dependencies = ["msgpack"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0g6r784lmjfhwi046w82phsk244byq9wkj1q3lddwxg9z559bmhy";
+ type = "gem";
+ };
+ version = "1.3.2";
+ };
+ brakeman = {
+ groups = ["development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1fg37qknz1f10v4fgbn1s98gks0iimsgs1c8xra2jy16kpz4q86k";
+ type = "gem";
+ };
+ version = "4.4.0";
+ };
+ browser = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0sdx0ny34i6vqxdsc7sy9g0nafdbrw8kvvb5xh9m18x1bzpqk92f";
+ type = "gem";
+ };
+ version = "2.5.3";
+ };
+ builder = {
+ groups = ["default" "development" "pam_authentication" "production" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0qibi5s67lpdv1wgcj66wcymcr04q6j4mzws6a479n0mlrmh5wr1";
+ type = "gem";
+ };
+ version = "3.2.3";
+ };
+ bullet = {
+ dependencies = ["activesupport" "uniform_notifier"];
+ groups = ["development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0fhsq5r9xc3cb32zr21hnsb2zmwbkck7xjvds9ny4inhykrjg47m";
+ type = "gem";
+ };
+ version = "5.9.0";
+ };
+ bundler-audit = {
+ dependencies = ["thor"];
+ groups = ["development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0pm22xpn3xyymsainixnrk8v3l3xi9bzwkjkspx00cfzp84xvxbq";
+ type = "gem";
+ };
+ version = "0.6.1";
+ };
+ byebug = {
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "10znc1hjv8n686hhpl08f3m2g6h08a4b83nxblqwy2kqamkxcqf8";
+ type = "gem";
+ };
+ version = "10.0.2";
+ };
+ capistrano = {
+ dependencies = ["airbrussh" "i18n" "rake" "sshkit"];
+ groups = ["development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1p1hj8hpmplxl41y6phsvkw2k8x3yxmkngs8yl8gkr7c1ma870p4";
+ type = "gem";
+ };
+ version = "3.11.0";
+ };
+ capistrano-bundler = {
+ dependencies = ["capistrano" "sshkit"];
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1p00rw2886v77kfjnh0mslyrv4lij5fa9niflz1lhynzlivgrmdr";
+ type = "gem";
+ };
+ version = "1.3.0";
+ };
+ capistrano-rails = {
+ dependencies = ["capistrano" "capistrano-bundler"];
+ groups = ["development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "19j82kiarrph1ilw2xfhfj62z0b53w0gph7613b21iccb2gn3dqy";
+ type = "gem";
+ };
+ version = "1.4.0";
+ };
+ capistrano-rbenv = {
+ dependencies = ["capistrano" "sshkit"];
+ groups = ["development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "182dmsliny87b74m9mxi7farmp03ycqh30yf58b2kcx7m2js2s92";
+ type = "gem";
+ };
+ version = "2.1.4";
+ };
+ capistrano-yarn = {
+ dependencies = ["capistrano"];
+ groups = ["development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1zdg2s061vl5b8114n909mrjb2hc1qx0i4wqx9nacsrcjgyp07l9";
+ type = "gem";
+ };
+ version = "2.0.2";
+ };
+ capybara = {
+ dependencies = ["addressable" "mini_mime" "nokogiri" "rack" "rack-test" "regexp_parser" "xpath"];
+ groups = ["test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0lhif97mh6wlqf14lwgvyjipm7ip6dz3svwgs52kgd5p3qb6hy2b";
+ type = "gem";
+ };
+ version = "3.12.0";
+ };
+ case_transform = {
+ dependencies = ["activesupport"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0fzyws6spn5arqf6q604dh9mrj84a36k5hsc8z7jgcpfvhc49bg2";
+ type = "gem";
+ };
+ version = "0.2";
+ };
+ charlock_holmes = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1nf1l31n10yaark2rrg5qzyzcx9w80681449s3j09qmnipsl8rl5";
+ type = "gem";
+ };
+ version = "0.7.6";
+ };
+ chewy = {
+ dependencies = ["activesupport" "elasticsearch" "elasticsearch-dsl"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0m1n98fww2is9v4h73qnxjzs0l9ixx2szby5rip26g9l7mjwmm7v";
+ type = "gem";
+ };
+ version = "5.0.0";
+ };
+ chunky_png = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "05g2xli9wbjylkmblln3bhvjalziwb92q452q8ibjagmb853424w";
+ type = "gem";
+ };
+ version = "1.3.10";
+ };
+ cld3 = {
+ dependencies = ["ffi"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1a3q025jqfwf8id1g40cv7s5pn7mdwzjpgqyzhdxdci1ps5ycgmn";
+ type = "gem";
+ };
+ version = "3.2.3";
+ };
+ climate_control = {
+ groups = ["test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0q11v0iabvr6rif0d025xh078ili5frrihlj0m04zfg7lgvagxji";
+ type = "gem";
+ };
+ version = "0.2.0";
+ };
+ cocaine = {
+ dependencies = ["climate_control"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "01kk5xd7lspbkdvn6nyj0y51zhvia3z6r4nalbdcqw5fbsywwi7d";
+ type = "gem";
+ };
+ version = "0.5.8";
+ };
+ coderay = {
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "15vav4bhcc2x3jmi3izb11l4d9f3xv8hp2fszb7iqmpsccv1pz4y";
+ type = "gem";
+ };
+ version = "1.1.2";
+ };
+ concurrent-ruby = {
+ groups = ["default" "development" "pam_authentication" "production" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1ixcx9pfissxrga53jbdpza85qd5f6b5nq1sfqa9rnfq82qnlbp1";
+ type = "gem";
+ };
+ version = "1.1.4";
+ };
+ connection_pool = {
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0lflx29mlznf1hn0nihkgllzbj8xp5qasn8j7h838465pi399k68";
+ type = "gem";
+ };
+ version = "2.2.2";
+ };
+ crack = {
+ dependencies = ["safe_yaml"];
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0abb0fvgw00akyik1zxnq7yv391va148151qxdghnzngv66bl62k";
+ type = "gem";
+ };
+ version = "0.4.3";
+ };
+ crass = {
+ groups = ["default" "development" "pam_authentication" "production" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0bpxzy6gjw9ggjynlxschbfsgmx8lv3zw1azkjvnb8b9i895dqfi";
+ type = "gem";
+ };
+ version = "1.0.4";
+ };
+ css_parser = {
+ dependencies = ["addressable"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0gwvf8mc8gnz4aizfijplv3594998h2j44ydakpzsdmkivs07v61";
+ type = "gem";
+ };
+ version = "1.6.0";
+ };
+ debug_inspector = {
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0vxr0xa1mfbkfcrn71n7c4f2dj7la5hvphn904vh20j3x4j5lrx0";
+ type = "gem";
+ };
+ version = "0.0.3";
+ };
+ derailed_benchmarks = {
+ dependencies = ["benchmark-ips" "get_process_mem" "heapy" "memory_profiler" "rack" "rake" "thor"];
+ groups = ["development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1c9djg1r2w461h97zmmdsdgnsrxqm4qfyp7gry9qxbav9skrplb8";
+ type = "gem";
+ };
+ version = "1.3.5";
+ };
+ devise = {
+ dependencies = ["bcrypt" "orm_adapter" "railties" "responders" "warden"];
+ groups = ["default" "pam_authentication"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1vs8nibl568ghm6a7hbw6xgcv8zbm4gykprcxpnzi7bz5d4gvcjx";
+ type = "gem";
+ };
+ version = "4.5.0";
+ };
+ devise-two-factor = {
+ dependencies = ["activesupport" "attr_encrypted" "devise" "railties" "rotp"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1b61s5y1ch205lgf3xv8hcvyi27ddd0d4qbbcpnnakhn2bx16lmc";
+ type = "gem";
+ };
+ version = "3.0.3";
+ };
+ devise_pam_authenticatable2 = {
+ dependencies = ["devise" "rpam2"];
+ groups = ["pam_authentication"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "13ipl52pkhc6vxp8ca31viwv01237bi2bfk3b1fixq1x46nf87p2";
+ type = "gem";
+ };
+ version = "9.2.0";
+ };
+ diff-lcs = {
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "18w22bjz424gzafv6nzv98h0aqkwz3d9xhm7cbr1wfbyas8zayza";
+ type = "gem";
+ };
+ version = "1.3";
+ };
+ docile = {
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0yyh4lr03q2vafzsfqy1xax7vr8zn7mbddz3ax3vnlm5fg0px6pn";
+ type = "gem";
+ };
+ version = "1.3.0";
+ };
+ domain_name = {
+ dependencies = ["unf"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0abdlwb64ns7ssmiqhdwgl27ly40x2l27l8hs8hn0z4kb3zd2x3v";
+ type = "gem";
+ };
+ version = "0.5.20180417";
+ };
+ doorkeeper = {
+ dependencies = ["railties"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0488m6nwp31mxrhayj60gsb7jgyw1lzh73r2kldx00a9bw3634d4";
+ type = "gem";
+ };
+ version = "5.0.2";
+ };
+ dotenv = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0rgl2kqhnxqbjvi9brbvb52iaq1z8yi0pl0bawk4fm6kl9igxr8f";
+ type = "gem";
+ };
+ version = "2.6.0";
+ };
+ dotenv-rails = {
+ dependencies = ["dotenv" "railties"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1knzdflmy06bjwvi00kndcmh2bhzqna9ccmz9mbyc3xc0v5jr9h8";
+ type = "gem";
+ };
+ version = "2.6.0";
+ };
+ elasticsearch = {
+ dependencies = ["elasticsearch-api" "elasticsearch-transport"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0a08ynvxz5clfm2ndqpgjrv4aiga9m2y1ab34s3qkihdfdzdzhj8";
+ type = "gem";
+ };
+ version = "6.0.2";
+ };
+ elasticsearch-api = {
+ dependencies = ["multi_json"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1vkahknqn85vvwr1gzh8jf3pvdial0c0d524icg8x06vibqgzd5h";
+ type = "gem";
+ };
+ version = "6.0.2";
+ };
+ elasticsearch-dsl = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1mwn6hvkki560p7sfc841q15zzgldsk9lzm2mlvc2bra7x1yk2q8";
+ type = "gem";
+ };
+ version = "0.1.5";
+ };
+ elasticsearch-transport = {
+ dependencies = ["faraday" "multi_json"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0gpwbw70qisx681j1bw8xq6shg5kdxmcdzg6425af0b5881jg7iy";
+ type = "gem";
+ };
+ version = "6.0.2";
+ };
+ encryptor = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0s8rvfl0vn8w7k1sgkc234060jh468s3zd45xa64p1jdmfa3zwmb";
+ type = "gem";
+ };
+ version = "3.0.0";
+ };
+ equatable = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1sjm9zjakyixyvsqziikdrsqfzis6j3fq23crgjkp6fwkfgndj7x";
+ type = "gem";
+ };
+ version = "0.5.0";
+ };
+ erubi = {
+ groups = ["default" "development" "pam_authentication" "production" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1kagnf6ziahj0d781s6ryy6fwqwa3ad4xbzzj84p9m4nv4c2jir1";
+ type = "gem";
+ };
+ version = "1.8.0";
+ };
+ et-orbi = {
+ dependencies = ["tzinfo"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0wk7i0bmsy46la8gcvbmdns0ni8lmdqas838phj97bdwykxw8m4b";
+ type = "gem";
+ };
+ version = "1.1.6";
+ };
+ excon = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "15l9w0938c19nxmrp09n75qpmm64k12xj69h47yvxzcxcpbgnkb2";
+ type = "gem";
+ };
+ version = "0.62.0";
+ };
+ fabrication = {
+ groups = ["development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0an28kjand4mjbkmnwd9fmgq3y5vf717zpmiijavar3sxqj52zri";
+ type = "gem";
+ };
+ version = "2.20.1";
+ };
+ faker = {
+ dependencies = ["i18n"];
+ groups = ["test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "01q7wrk5bl0c0qrvg2my3kl0mbfnj1jpd89mqm3fzy4ggbkdhh7i";
+ type = "gem";
+ };
+ version = "1.9.1";
+ };
+ faraday = {
+ dependencies = ["multipart-post"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1dv1vcxxyw4vy0r2diiml0r8zqk1csrksfxv8nkrw61xlf2daaaa";
+ type = "gem";
+ };
+ version = "0.15.0";
+ };
+ fast_blank = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "16s1ilyvwzmkcgmklbrn0c2pch5n02vf921njx0bld4crgdr6z56";
+ type = "gem";
+ };
+ version = "1.0.0";
+ };
+ fastimage = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1iy9jm13r2r4yz41xaivhxs8mvqn57fjwihxvazbip002mq6rxfz";
+ type = "gem";
+ };
+ version = "2.1.5";
+ };
+ ffi = {
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0jpm2dis1j7zvvy3lg7axz9jml316zrn7s0j59vyq3qr127z0m7q";
+ type = "gem";
+ };
+ version = "1.9.25";
+ };
+ fog-core = {
+ dependencies = ["builder" "excon" "formatador" "mime-types"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1agd6xgzk0rxrsjdpn94v4hy89s0nm2cs4zg2p880w2dan9xgrak";
+ type = "gem";
+ };
+ version = "2.1.0";
+ };
+ fog-json = {
+ dependencies = ["fog-core" "multi_json"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1zj8llzc119zafbmfa4ai3z5s7c4vp9akfs0f9l2piyvcarmlkyx";
+ type = "gem";
+ };
+ version = "1.2.0";
+ };
+ fog-openstack = {
+ dependencies = ["fog-core" "fog-json" "ipaddress"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0aphjrvmchmqbyxqq82yj0qngyvkmwdci9iqs8722fi23bk83gdl";
+ type = "gem";
+ };
+ version = "0.3.7";
+ };
+ formatador = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1gc26phrwlmlqrmz4bagq1wd5b7g64avpx0ghxr9xdxcvmlii0l0";
+ type = "gem";
+ };
+ version = "0.2.5";
+ };
+ fugit = {
+ dependencies = ["et-orbi" "raabro"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1szijawzdii668z5is9xi849399gy786951dx0l5r2z5mbfqvl9i";
+ type = "gem";
+ };
+ version = "1.1.6";
+ };
+ fuubar = {
+ dependencies = ["rspec-core" "ruby-progressbar"];
+ groups = ["development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1sqkr1nh49rlm86l3qyrgsdqavgqii4pnrjn7855z6dfavh3spxr";
+ type = "gem";
+ };
+ version = "2.3.2";
+ };
+ get_process_mem = {
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1bvfjdign16r0zwm2rlfrq0sk1licvmlgbnlpnyckniv5r7i080g";
+ type = "gem";
+ };
+ version = "0.2.3";
+ };
+ globalid = {
+ dependencies = ["activesupport"];
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "02smrgdi11kziqi9zhnsy9i6yr2fnxrqlv3lllsvdjki3cd4is38";
+ type = "gem";
+ };
+ version = "0.4.1";
+ };
+ goldfinger = {
+ dependencies = ["addressable" "http" "nokogiri" "oj"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0n142035jhyqwczi52zjr07c8kygp9b9f158miaby3z5hygzjyzh";
+ type = "gem";
+ };
+ version = "2.1.0";
+ };
+ hamlit = {
+ dependencies = ["temple" "thor" "tilt"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0hk338vkzmwszxdh0q02iw88rbr3bj3fd7fzn4psm8wy80zcgl9i";
+ type = "gem";
+ };
+ version = "2.8.8";
+ };
+ hamlit-rails = {
+ dependencies = ["actionpack" "activesupport" "hamlit" "railties"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "14gzlp6w1j3b5fb4bhbjjh24skx031vnfc2shym9bkmq3r0p8dws";
+ type = "gem";
+ };
+ version = "0.2.0";
+ };
+ hamster = {
+ dependencies = ["concurrent-ruby"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1n1lsh96vnyc1pnzyd30f9prcsclmvmkdb3nm5aahnyizyiy6lar";
+ type = "gem";
+ };
+ version = "3.0.0";
+ };
+ hashdiff = {
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0yj5l2rw8i8jc725hbcpc4wks0qlaaimr3dpaqamfjkjkxl0hjp9";
+ type = "gem";
+ };
+ version = "0.3.7";
+ };
+ hashie = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "13bdzfp25c8k51ayzxqkbzag3wj5gc1jd8h7d985nsq6pn57g5xh";
+ type = "gem";
+ };
+ version = "3.6.0";
+ };
+ heapy = {
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1r9f38fpgjgaxskkwvsliijj6vfmgsff9pnranvvvzkdl67hk1hw";
+ type = "gem";
+ };
+ version = "0.1.4";
+ };
+ highline = {
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "069sz5qmjpmv3x7kr5r3rwl20m9vqg97p15scmjdagglra34clkl";
+ type = "gem";
+ };
+ version = "2.0.0";
+ };
+ hiredis = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "04jj8k7lxqxw24sp0jiravigdkgsyrpprxpxm71ba93x1wr2w1bz";
+ type = "gem";
+ };
+ version = "0.6.3";
+ };
+ hkdf = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "04fixg0a51n4vy0j6c1hvisa2yl33m3jrrpxpb5sq6j511vjriil";
+ type = "gem";
+ };
+ version = "0.3.0";
+ };
+ htmlentities = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1nkklqsn8ir8wizzlakncfv42i32wc0w9hxp00hvdlgjr7376nhj";
+ type = "gem";
+ };
+ version = "4.3.4";
+ };
+ http = {
+ dependencies = ["addressable" "http-cookie" "http-form_data" "http_parser.rb"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1jlm5prw437wqpfxcigh88lfap3m7g8mnmj5as7qw6dzqnvrxwmc";
+ type = "gem";
+ };
+ version = "3.3.0";
+ };
+ http-cookie = {
+ dependencies = ["domain_name"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "004cgs4xg5n6byjs7qld0xhsjq3n6ydfh897myr2mibvh6fjc49g";
+ type = "gem";
+ };
+ version = "1.0.3";
+ };
+ http-form_data = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "15lpn604byf7cyxnw949xz4rvpcknqp7a48q73nm630gqxsa76f3";
+ type = "gem";
+ };
+ version = "2.1.1";
+ };
+ http_accept_language = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0d0nlfz9vm4jr1l6q0chx4rp2hrnrfbx3gadc1dz930lbbaz0hq0";
+ type = "gem";
+ };
+ version = "2.1.1";
+ };
+ "http_parser.rb" = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ fetchSubmodules = true;
+ rev = "54b17ba8c7d8d20a16dfc65d1775241833219cf2";
+ sha256 = "079nwjsmg9jp33afc4f5bhjdbhcnfykdw4rd7ahhz8cbdkbhlzcp";
+ type = "git";
+ url = "https://github.com/tmm1/http_parser.rb";
+ };
+ version = "0.6.1";
+ };
+ httplog = {
+ dependencies = ["rack" "rainbow"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0grdjxfdbc4cffablh64iwyszskmv5sjpjz3zkp6xjxckdr7l7jj";
+ type = "gem";
+ };
+ version = "1.2.0";
+ };
+ i18n = {
+ dependencies = ["concurrent-ruby"];
+ groups = ["default" "development" "pam_authentication" "production" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "088xnnpi7hq243n44fmgqvjr0m86ivk8r87k9b3ddq3b7nl6nyf9";
+ type = "gem";
+ };
+ version = "1.5.2";
+ };
+ i18n-tasks = {
+ dependencies = ["activesupport" "ast" "erubi" "highline" "i18n" "parser" "rails-i18n" "rainbow" "terminal-table"];
+ groups = ["development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "16592471ylgigmjx98pmbqibjwhavr4wb670kya9qh3nbgf7s1ym";
+ type = "gem";
+ };
+ version = "0.9.28";
+ };
+ idn-ruby = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "07vblcyk3g72sbq12xz7xj28snpxnh3sbcnxy8bglqbfqqhvmawr";
+ type = "gem";
+ };
+ version = "0.1.0";
+ };
+ ipaddress = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1x86s0s11w202j6ka40jbmywkrx8fhq8xiy8mwvnkhllj57hqr45";
+ type = "gem";
+ };
+ version = "0.8.3";
+ };
+ iso-639 = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "10k1gpkkbxbasgjzh4hd32ygxzjb5312rphipm46ryxkpx556zzz";
+ type = "gem";
+ };
+ version = "0.2.8";
+ };
+ jaro_winkler = {
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1zz27z88qznix4r65gd9h56gl177snlfpgv10b0s69vi8qpl909l";
+ type = "gem";
+ };
+ version = "1.5.2";
+ };
+ jmespath = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1d4wac0dcd1jf6kc57891glih9w57552zgqswgy74d1xhgnk0ngf";
+ type = "gem";
+ };
+ version = "1.4.0";
+ };
+ json = {
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "01v6jjpvh3gnq6sgllpfqahlgxzj50ailwhj9b3cd20hi2dx0vxp";
+ type = "gem";
+ };
+ version = "2.1.0";
+ };
+ json-ld = {
+ dependencies = ["multi_json" "rdf"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1yk4gnxzwlif9d0dy7csdb9ix60h69alk139aaip6304nx2yhdsk";
+ type = "gem";
+ };
+ version = "3.0.2";
+ };
+ json-ld-preloaded = {
+ dependencies = ["json-ld" "multi_json" "rdf"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1c3yh5ayxvz33znbmzinigc5wivicib7nnykqjf00j2f9qag18pv";
+ type = "gem";
+ };
+ version = "3.0.2";
+ };
+ jsonapi-renderer = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "00ysmcv3nrccyimi334ida4axlfgir6cc2ryjxrf4xb97m1bfk5j";
+ type = "gem";
+ };
+ version = "0.2.0";
+ };
+ jwt = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1w0kaqrbl71cq9sbnixc20x5lqah3hs2i93xmhlfdg2y3by7yzky";
+ type = "gem";
+ };
+ version = "2.1.0";
+ };
+ kaminari = {
+ dependencies = ["activesupport" "kaminari-actionview" "kaminari-activerecord" "kaminari-core"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1j27y5phifwpggspglmg8pmlf6n4jblxwziix9am42661c770jlm";
+ type = "gem";
+ };
+ version = "1.1.1";
+ };
+ kaminari-actionview = {
+ dependencies = ["actionview" "kaminari-core"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1386wshpy1ygbris0s7rv7lyzbs0v8dfqkzdwsrsgm9fd1ira640";
+ type = "gem";
+ };
+ version = "1.1.1";
+ };
+ kaminari-activerecord = {
+ dependencies = ["activerecord" "kaminari-core"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0q31ik5648xi2hpy61knnjd0m7rvs17i93gzwcbh3ccj1y24gv2x";
+ type = "gem";
+ };
+ version = "1.1.1";
+ };
+ kaminari-core = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1cfjrhvidvgdwp9ffsm9d4c2s18k2zp3gnya3f41qb3fc6bc2q2w";
+ type = "gem";
+ };
+ version = "1.1.1";
+ };
+ launchy = {
+ dependencies = ["addressable"];
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "190lfbiy1vwxhbgn4nl4dcbzxvm049jwc158r2x7kq3g5khjrxa2";
+ type = "gem";
+ };
+ version = "2.4.3";
+ };
+ letter_opener = {
+ dependencies = ["launchy"];
+ groups = ["development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "09a7kgsmr10a0hrc9bwxglgqvppjxij9w8bxx91mnvh0ivaw0nq9";
+ type = "gem";
+ };
+ version = "1.7.0";
+ };
+ letter_opener_web = {
+ dependencies = ["actionmailer" "letter_opener" "railties"];
+ groups = ["development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "17qhwrkncrrp1bi2f7fbkm5lpnkdsiwy8jcvgr2wa97ck8y4x2bb";
+ type = "gem";
+ };
+ version = "1.3.4";
+ };
+ link_header = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1yamrdq4rywmnpdhbygnkkl9fdy249fg5r851nrkkxr97gj5rihm";
+ type = "gem";
+ };
+ version = "0.0.8";
+ };
+ lograge = {
+ dependencies = ["actionpack" "activesupport" "railties" "request_store"];
+ groups = ["production"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "00lcn7s3slfn32di4qwlx2yj5f9r2pcnd0naxrvqqwypcg1z2sdd";
+ type = "gem";
+ };
+ version = "0.10.0";
+ };
+ loofah = {
+ dependencies = ["crass" "nokogiri"];
+ groups = ["default" "development" "pam_authentication" "production" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1ccsid33xjajd0im2xv941aywi58z7ihwkvaf1w2bv89vn5bhsjg";
+ type = "gem";
+ };
+ version = "2.2.3";
+ };
+ mail = {
+ dependencies = ["mini_mime"];
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "00wwz6ys0502dpk8xprwcqfwyf3hmnx6lgxaiq6vj43mkx43sapc";
+ type = "gem";
+ };
+ version = "2.7.1";
+ };
+ makara = {
+ dependencies = ["activerecord"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1ri6r558nylaclqhfq1zhapfsyhryggln7gw69qb9i4c1rkfnyd2";
+ type = "gem";
+ };
+ version = "0.4.0";
+ };
+ marcel = {
+ dependencies = ["mimemagic"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1nxbjmcyg8vlw6zwagf17l9y2mwkagmmkg95xybpn4bmf3rfnksx";
+ type = "gem";
+ };
+ version = "0.3.3";
+ };
+ mario-redis-lock = {
+ dependencies = ["redis"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1v9wdjcjqzpns2migxp4a5b4w82mipi0fwihbqz3q2qj2qm7wc17";
+ type = "gem";
+ };
+ version = "1.2.1";
+ };
+ memory_profiler = {
+ groups = ["development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0qir6bc2rw6lac6fsjhnspqyr01sh12d75dkd630qknjwvrrq8kj";
+ type = "gem";
+ };
+ version = "0.9.12";
+ };
+ method_source = {
+ groups = ["default" "development" "pam_authentication" "production" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1pviwzvdqd90gn6y7illcdd9adapw8fczml933p5vl739dkvl3lq";
+ type = "gem";
+ };
+ version = "0.9.2";
+ };
+ microformats = {
+ dependencies = ["json" "nokogiri"];
+ groups = ["test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "14az36ax3n81fmwqjb5giixvxsnmxpnlfrsz012pl78x1bkrvfki";
+ type = "gem";
+ };
+ version = "4.0.7";
+ };
+ mime-types = {
+ dependencies = ["mime-types-data"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0fjxy1jm52ixpnv3vg9ld9pr9f35gy0jp66i1njhqjvmnvq0iwwk";
+ type = "gem";
+ };
+ version = "3.2.2";
+ };
+ mime-types-data = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "07wvp0aw2gjm4njibb70as6rh5hi1zzri5vky1q6jx95h8l56idc";
+ type = "gem";
+ };
+ version = "3.2018.0812";
+ };
+ mimemagic = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "00ibc1mhvdfyfyl103xwb45621nwyqxf124cni5hyfhag0fn1c3q";
+ type = "gem";
+ };
+ version = "0.3.2";
+ };
+ mini_mime = {
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1q4pshq387lzv9m39jv32vwb8wrq3wc4jwgl4jk209r4l33v09d3";
+ type = "gem";
+ };
+ version = "1.0.1";
+ };
+ mini_portile2 = {
+ groups = ["default" "development" "pam_authentication" "production" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy";
+ type = "gem";
+ };
+ version = "2.4.0";
+ };
+ minitest = {
+ groups = ["default" "development" "pam_authentication" "production" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0icglrhghgwdlnzzp4jf76b0mbc71s80njn5afyfjn4wqji8mqbq";
+ type = "gem";
+ };
+ version = "5.11.3";
+ };
+ msgpack = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "09xy1wc4wfbd1jdrzgxwmqjzfdfxbz0cqdszq2gv6rmc3gv1c864";
+ type = "gem";
+ };
+ version = "1.2.4";
+ };
+ multi_json = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1rl0qy4inf1mp8mybfk56dfga0mvx97zwpmq5xmiwl5r770171nv";
+ type = "gem";
+ };
+ version = "1.13.1";
+ };
+ multipart-post = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "09k0b3cybqilk1gwrwwain95rdypixb2q9w65gd44gfzsd84xi1x";
+ type = "gem";
+ };
+ version = "2.0.0";
+ };
+ necromancer = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0v9nhdkv6zrp7cn48xv7n2vjhsbslpvs0ha36mfkcd56cp27pavz";
+ type = "gem";
+ };
+ version = "0.4.0";
+ };
+ net-ldap = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "016igqz81a8zcwqzp5bbhryqmb2skmyf57ij3nb5z8sxwhw22jgh";
+ type = "gem";
+ };
+ version = "0.16.1";
+ };
+ net-scp = {
+ dependencies = ["net-ssh"];
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0b0jqrcsp4bbi4n4mzyf70cp2ysyp6x07j8k8cqgxnvb4i3a134j";
+ type = "gem";
+ };
+ version = "1.2.1";
+ };
+ net-ssh = {
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0qfanf71yv8w7yl9l9wqcy68i2x1ghvnf8m581yy4pl0anfdhqw8";
+ type = "gem";
+ };
+ version = "5.0.2";
+ };
+ nio4r = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1a41ca1kpdmrypjp9xbgvckpy8g26zxphkja9vk7j5wl4n8yvlyr";
+ type = "gem";
+ };
+ version = "2.3.1";
+ };
+ nokogiri = {
+ dependencies = ["mini_portile2"];
+ groups = ["default" "development" "pam_authentication" "production" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "09zll7c6j7xr6wyvh5mm5ncj6pkryp70ybcsxdbw1nyphx5dh184";
+ type = "gem";
+ };
+ version = "1.10.1";
+ };
+ nokogumbo = {
+ dependencies = ["nokogiri"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1qr7r2ysbp8b5q78yr8l5qpaxfqdw1i2yz6nsrbavdki8mqjgj24";
+ type = "gem";
+ };
+ version = "2.0.0";
+ };
+ nsa = {
+ dependencies = ["activesupport" "concurrent-ruby" "sidekiq" "statsd-ruby"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1i1bhmvs49yv70pgl41lx1lr8x6whg52szb8ic1jb6wmmxr2ylcz";
+ type = "gem";
+ };
+ version = "0.2.7";
+ };
+ oj = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0swv2ryjgbcyrisb2arf88rz0pf8d8f8g7iihc2fhz96a1h985n0";
+ type = "gem";
+ };
+ version = "3.7.8";
+ };
+ omniauth = {
+ dependencies = ["hashie" "rack"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1p16h1rp8by05k8gfw17xjhgwp60dk8qmj1xalv1n23kmxfsxb1x";
+ type = "gem";
+ };
+ version = "1.9.0";
+ };
+ omniauth-cas = {
+ dependencies = ["addressable" "nokogiri" "omniauth"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1nnk7cr45aj7hj19zpky58yysvjg8mn5f45sj9knpn5f9kgld7p4";
+ type = "gem";
+ };
+ version = "1.1.1";
+ };
+ omniauth-saml = {
+ dependencies = ["omniauth" "ruby-saml"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1pg3pw4yjd9w1rn3lkycllrvd767pydbhldgdcqbbcck01asfcfz";
+ type = "gem";
+ };
+ version = "1.10.1";
+ };
+ orm_adapter = {
+ groups = ["default" "pam_authentication"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1fg9jpjlzf5y49qs9mlpdrgs5rpcyihq1s4k79nv9js0spjhnpda";
+ type = "gem";
+ };
+ version = "0.5.0";
+ };
+ ostatus2 = {
+ dependencies = ["addressable" "http" "nokogiri"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0fj27nr38g5y52s755pmg5zifwc6n88bw2zmkc22kg4vrhs64k19";
+ type = "gem";
+ };
+ version = "2.0.3";
+ };
+ ox = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "15vkq18fp58504ld9vfakisxdmp68pk5y1bmmm5g7b0q25p8z5pq";
+ type = "gem";
+ };
+ version = "2.10.0";
+ };
+ paperclip = {
+ dependencies = ["activemodel" "activesupport" "mime-types" "mimemagic" "terrapin"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "04mlw7aqj20ry0fy92gxnxg99hy5xczff7rhywfzz4mqlhc2wgg7";
+ type = "gem";
+ };
+ version = "6.0.0";
+ };
+ paperclip-av-transcoder = {
+ dependencies = ["av" "paperclip"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1gcnp3fpdb5lqilcij4yqga6397nb7zyyf9lzxnqpbp7cvc18lhf";
+ type = "gem";
+ };
+ version = "0.6.4";
+ };
+ parallel = {
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "005shcy8dabc7lwydpkbhd3fx8bfqzvsj6g04r90mx0wky10lz84";
+ type = "gem";
+ };
+ version = "1.13.0";
+ };
+ parallel_tests = {
+ dependencies = ["parallel"];
+ groups = ["test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "13qgd5ajq1vm3ks8fl9vs4w4lx4s7ilm74w6vbyzi952mp6h4n2x";
+ type = "gem";
+ };
+ version = "2.27.1";
+ };
+ parser = {
+ dependencies = ["ast"];
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1hhz2k5417vr2k1llwqgjdnmyrhlpqicy0y2arr6r1gp04fg9wlm";
+ type = "gem";
+ };
+ version = "2.6.0.0";
+ };
+ pastel = {
+ dependencies = ["equatable" "tty-color"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1yf30d9kzpm96gw9kwbv31p0qigwfykn8qdis5950plnzgc1vlp1";
+ type = "gem";
+ };
+ version = "0.7.2";
+ };
+ pg = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0fmnyxcyrvgdbgq7m09whgn9i8rwfybk0w8aii1nc4g5kqw0k2jy";
+ type = "gem";
+ };
+ version = "1.1.4";
+ };
+ pghero = {
+ dependencies = ["activerecord"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0nvg9jwynnw3brignq6raka0abrcjmm8mr8yxhvybjpmr6lyyjrd";
+ type = "gem";
+ };
+ version = "2.2.0";
+ };
+ pkg-config = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0hhzz9q3c90bjh5ncq2rvw1gszkw6kq3zxjy5pdbha23p01v6fv8";
+ type = "gem";
+ };
+ version = "1.3.2";
+ };
+ posix-spawn = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ fetchSubmodules = false;
+ rev = "58465d2e213991f8afb13b984854a49fcdcc980c";
+ sha256 = "1mq284bps0y4yfwkhvj2j27g6lpzfhzw1bypim1a0n1js7j54vhk";
+ type = "git";
+ url = "https://github.com/rtomayko/posix-spawn";
+ };
+ version = "0.3.13";
+ };
+ powerpack = {
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1r51d67wd467rpdfl6x43y84vwm8f5ql9l9m85ak1s2sp3nc5hyv";
+ type = "gem";
+ };
+ version = "0.1.2";
+ };
+ premailer = {
+ dependencies = ["addressable" "css_parser" "htmlentities"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1xrhmialxn5vlp1nmf40a4db9gji4h2wbzd7f43sz64z8lvrjj6h";
+ type = "gem";
+ };
+ version = "1.11.1";
+ };
+ premailer-rails = {
+ dependencies = ["actionmailer" "premailer"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1avh2bkhabicf1zxla8z6ig5192h3vdzli4d2y9wmxfwgh549lmx";
+ type = "gem";
+ };
+ version = "1.10.2";
+ };
+ private_address_check = {
+ groups = ["production" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "05phz0vscfh9chv90yc9091pifw3cpwkh76flnhrmvja1q3na4cy";
+ type = "gem";
+ };
+ version = "0.5.0";
+ };
+ pry = {
+ dependencies = ["coderay" "method_source"];
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "00rm71x0r1jdycwbs83lf9l6p494m99asakbvqxh8rz7zwnlzg69";
+ type = "gem";
+ };
+ version = "0.12.2";
+ };
+ pry-byebug = {
+ dependencies = ["byebug" "pry"];
+ groups = ["development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0y2758593i2ij0nhmv0j1pbdfx2cgi52ns6wkij0frgnk2lf650g";
+ type = "gem";
+ };
+ version = "3.6.0";
+ };
+ pry-rails = {
+ dependencies = ["pry"];
+ groups = ["development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1cf4ii53w2hdh7fn8vhqpzkymmchjbwij4l3m7s6fsxvb9bn51j6";
+ type = "gem";
+ };
+ version = "0.3.9";
+ };
+ public_suffix = {
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "08q64b5br692dd3v0a9wq9q5dvycc6kmiqmjbdxkxbfizggsvx6l";
+ type = "gem";
+ };
+ version = "3.0.3";
+ };
+ puma = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1k7dqxnq0dnf5rxkgs9rknclkn3ah7lsdrk6nrqxla8qzy31wliq";
+ type = "gem";
+ };
+ version = "3.12.0";
+ };
+ pundit = {
+ dependencies = ["activesupport"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1rqnll033ya64qvknbmnq076q9mxaibvcd7q70jhkpjda1xi4703";
+ type = "gem";
+ };
+ version = "2.0.1";
+ };
+ raabro = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0xzdmbn48753f6k0ckirp8ja5p0xn1a92wbwxfyggyhj0hza9ylq";
+ type = "gem";
+ };
+ version = "1.1.6";
+ };
+ rack = {
+ groups = ["default" "development" "pam_authentication" "production" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1pcgv8dv4vkaczzlix8q3j68capwhk420cddzijwqgi2qb4lm1zm";
+ type = "gem";
+ };
+ version = "2.0.6";
+ };
+ rack-attack = {
+ dependencies = ["rack"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "11y6kw7hj2z25ba67www6qap7shj2bp6s43h57cn4yrid9kbsibs";
+ type = "gem";
+ };
+ version = "5.4.2";
+ };
+ rack-cors = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1j27vy1bmhbqcyzhxg8d07qassmax769xjalfwcwz6qfiq8cf013";
+ type = "gem";
+ };
+ version = "1.0.2";
+ };
+ rack-protection = {
+ dependencies = ["rack"];
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "15167q25rmxipqwi6hjqj3i1byi9iwl3xq9b7mdar7qiz39pmjsk";
+ type = "gem";
+ };
+ version = "2.0.5";
+ };
+ rack-proxy = {
+ dependencies = ["rack"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1igdsim4ifyx9rfcjbxcwmf2vnxca3f8wmr2sj9j118a21g455pp";
+ type = "gem";
+ };
+ version = "0.6.4";
+ };
+ rack-test = {
+ dependencies = ["rack"];
+ groups = ["default" "development" "pam_authentication" "production" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0rh8h376mx71ci5yklnpqqn118z3bl67nnv5k801qaqn1zs62h8m";
+ type = "gem";
+ };
+ version = "1.1.0";
+ };
+ rails = {
+ dependencies = ["actioncable" "actionmailer" "actionpack" "actionview" "activejob" "activemodel" "activerecord" "activestorage" "activesupport" "railties" "sprockets-rails"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1m9cszds68dsiycciiayd3c9g90s2yzn1izkr3gpgqkfw6dmvzyr";
+ type = "gem";
+ };
+ version = "5.2.2";
+ };
+ rails-controller-testing = {
+ dependencies = ["actionpack" "actionview" "activesupport"];
+ groups = ["test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1m1rklj6pvzi4fydxcmcv4q0xd7913hhhw1hw530nfz1wkl7vjlf";
+ type = "gem";
+ };
+ version = "1.0.4";
+ };
+ rails-dom-testing = {
+ dependencies = ["activesupport" "nokogiri"];
+ groups = ["default" "development" "pam_authentication" "production" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1lfq2a7kp2x64dzzi5p4cjcbiv62vxh9lyqk2f0rqq3fkzrw8h5i";
+ type = "gem";
+ };
+ version = "2.0.3";
+ };
+ rails-html-sanitizer = {
+ dependencies = ["loofah"];
+ groups = ["default" "development" "pam_authentication" "production" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1gv7vr5d9g2xmgpjfq4nxsqr70r9pr042r9ycqqnfvw5cz9c7jwr";
+ type = "gem";
+ };
+ version = "1.0.4";
+ };
+ rails-i18n = {
+ dependencies = ["i18n" "railties"];
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "05lkhc737a9dw0hd5ljmja0yp4cw39r3200s1r0n4bs7z1g3ka7l";
+ type = "gem";
+ };
+ version = "5.1.2";
+ };
+ rails-settings-cached = {
+ dependencies = ["rails"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0wyhyls0aqb1iw7mnaldg39w3mnbi3anmpbvb52rjwkpj2mchhnc";
+ type = "gem";
+ };
+ version = "0.6.6";
+ };
+ railties = {
+ dependencies = ["actionpack" "activesupport" "method_source" "rake" "thor"];
+ groups = ["default" "development" "pam_authentication" "production" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "00pnylmbz4c46mxw5lhxi8h39lndfg6fs1hpd0qd6swnjhkqsr1l";
+ type = "gem";
+ };
+ version = "5.2.2";
+ };
+ rainbow = {
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0bb2fpjspydr6x0s8pn1pqkzmxszvkfapv0p4627mywl7ky4zkhk";
+ type = "gem";
+ };
+ version = "3.0.0";
+ };
+ rake = {
+ groups = ["default" "development" "pam_authentication" "production" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1sy5a7nh6xjdc9yhcw31jji7ssrf9v5806hn95gbrzr998a2ydjn";
+ type = "gem";
+ };
+ version = "12.3.2";
+ };
+ rb-fsevent = {
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1lm1k7wpz69jx7jrc92w3ggczkjyjbfziq5mg62vjnxmzs383xx8";
+ type = "gem";
+ };
+ version = "0.10.3";
+ };
+ rb-inotify = {
+ dependencies = ["ffi"];
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0yfsgw5n7pkpyky6a9wkf1g9jafxb0ja7gz0qw0y14fd2jnzfh71";
+ type = "gem";
+ };
+ version = "0.9.10";
+ };
+ rdf = {
+ dependencies = ["hamster" "link_header"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1ylgsspdj2g0af0pgfi1ry50x8ng5069223238vg8kz0p7b24q79";
+ type = "gem";
+ };
+ version = "3.0.9";
+ };
+ rdf-normalize = {
+ dependencies = ["rdf"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0h8qk3x5frqbgb4gj9ga75ddls47x8qhghscgz82gfq76m4r45g0";
+ type = "gem";
+ };
+ version = "0.3.3";
+ };
+ redis = {
+ groups = ["default" "production" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0rk6mmy3y2jd34llrf591ribl1p54ghkw7m96wrbamy8fwva5zqv";
+ type = "gem";
+ };
+ version = "4.1.0";
+ };
+ redis-actionpack = {
+ dependencies = ["actionpack" "redis-rack" "redis-store"];
+ groups = ["default" "production"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "15k41gz7nygd4yydk2yd25gghya1j7q6zifk4mdrra6bwnwjbm63";
+ type = "gem";
+ };
+ version = "5.0.2";
+ };
+ redis-activesupport = {
+ dependencies = ["activesupport" "redis-store"];
+ groups = ["default" "production"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0rq5dhrzc1l8c7f5gx9r7mvnsk5206dfwih3yv5si5rf42nx2ay5";
+ type = "gem";
+ };
+ version = "5.0.4";
+ };
+ redis-namespace = {
+ dependencies = ["redis"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0r7daagrjjribn098dxwbv9zivrbq2rsffbkj2ccxyn9lmjjbgah";
+ type = "gem";
+ };
+ version = "1.6.0";
+ };
+ redis-rack = {
+ dependencies = ["rack" "redis-store"];
+ groups = ["default" "production"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0px0wv8zripc6lrn3k0k61j6nlxda145q8sz50yvnig17wlk36gb";
+ type = "gem";
+ };
+ version = "2.0.4";
+ };
+ redis-rails = {
+ dependencies = ["redis-actionpack" "redis-activesupport" "redis-store"];
+ groups = ["production"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0hjvkyaw5hgz7v6fgwdk8pb966z44h1gv8jarmb0gwhkqmjnsh40";
+ type = "gem";
+ };
+ version = "5.0.2";
+ };
+ redis-store = {
+ dependencies = ["redis"];
+ groups = ["default" "production"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0cpg4fmqcyl8mm77l852xsidp8384a7s1mgbpki999swvq97svi4";
+ type = "gem";
+ };
+ version = "1.5.0";
+ };
+ regexp_parser = {
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "18g5jyg3blsdrz3mc8d87bms6qqn6gcdh1nvdhvgbjdpk9pw21dq";
+ type = "gem";
+ };
+ version = "1.3.0";
+ };
+ request_store = {
+ dependencies = ["rack"];
+ groups = ["default" "production"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1963330z03fk382fi8y231ygcbnh86m91dqlp5rh1mwy9ihzzl6d";
+ type = "gem";
+ };
+ version = "1.4.1";
+ };
+ responders = {
+ dependencies = ["actionpack" "railties"];
+ groups = ["default" "pam_authentication"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1rhdyyvvm26f2l3fgwdp6xasfl2y0whwgy766bhdwz697mf78zfn";
+ type = "gem";
+ };
+ version = "2.4.0";
+ };
+ rotp = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1w8d6svhq3y9y952r8cqirxvdx12zlkb7zxjb44bcbidb2sisy4d";
+ type = "gem";
+ };
+ version = "2.1.2";
+ };
+ rpam2 = {
+ groups = ["default" "pam_authentication"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1zvli3s4z1hf2l7gyfickm5i3afjrnycc3ihbiax6ji6arpbyf33";
+ type = "gem";
+ };
+ version = "4.0.2";
+ };
+ rqrcode = {
+ dependencies = ["chunky_png"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0h1pnnydgs032psakvg3l779w3ghbn08ajhhhw19hpmnfhrs8k0a";
+ type = "gem";
+ };
+ version = "0.10.1";
+ };
+ rspec-core = {
+ dependencies = ["rspec-support"];
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1p1s5bnbqp3sxk67y0fh0x884jjym527r0vgmhbm81w7aq6b7l4p";
+ type = "gem";
+ };
+ version = "3.8.0";
+ };
+ rspec-expectations = {
+ dependencies = ["diff-lcs" "rspec-support"];
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "18l21hy1zdc2pgc2yb17k3n2al1khpfr0z6pijlm852iz6vj0dkm";
+ type = "gem";
+ };
+ version = "3.8.2";
+ };
+ rspec-mocks = {
+ dependencies = ["diff-lcs" "rspec-support"];
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "06y508cjqycb4yfhxmb3nxn0v9xqf17qbd46l1dh4xhncinr4fyp";
+ type = "gem";
+ };
+ version = "3.8.0";
+ };
+ rspec-rails = {
+ dependencies = ["actionpack" "activesupport" "railties" "rspec-core" "rspec-expectations" "rspec-mocks" "rspec-support"];
+ groups = ["development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1pf6n9l4sw1arlax1bdbm1znsvl8cgna2n6k6yk1bi8vz2n73ls1";
+ type = "gem";
+ };
+ version = "3.8.2";
+ };
+ rspec-sidekiq = {
+ dependencies = ["rspec-core" "sidekiq"];
+ groups = ["test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0y7pbqrbc8rjszc45vg4vz9qbn8aymgcc4ribrhvm76wrfz3ksfq";
+ type = "gem";
+ };
+ version = "3.0.3";
+ };
+ rspec-support = {
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0p3m7drixrlhvj2zpc38b11x145bvm311x6f33jjcxmvcm0wq609";
+ type = "gem";
+ };
+ version = "3.8.0";
+ };
+ rubocop = {
+ dependencies = ["jaro_winkler" "parallel" "parser" "powerpack" "rainbow" "ruby-progressbar" "unicode-display_width"];
+ groups = ["development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1pq00qwlmcv52dbhgbk534ggwn1ny9k3sq3vfb1zk3r4psnqz2jy";
+ type = "gem";
+ };
+ version = "0.63.1";
+ };
+ ruby-progressbar = {
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1cv2ym3rl09svw8940ny67bav7b2db4ms39i4raaqzkf59jmhglk";
+ type = "gem";
+ };
+ version = "1.10.0";
+ };
+ ruby-saml = {
+ dependencies = ["nokogiri"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "12f3mmyds4y8f7535p79xzx0wnp7rj02h1fp2x3j2hy5vrkmz2k4";
+ type = "gem";
+ };
+ version = "1.9.0";
+ };
+ rufus-scheduler = {
+ dependencies = ["fugit"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "074w41a88343cbv8ydkpl3firhvh3kbh8ppldhdmpvv2g569m32i";
+ type = "gem";
+ };
+ version = "3.5.2";
+ };
+ safe_yaml = {
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1hly915584hyi9q9vgd968x2nsi5yag9jyf5kq60lwzi5scr7094";
+ type = "gem";
+ };
+ version = "1.0.4";
+ };
+ sanitize = {
+ dependencies = ["crass" "nokogiri" "nokogumbo"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0rsb2gvqdh41miq7xjckidmgnjh3slvfqbp1hh4s6xfhc32r8g3s";
+ type = "gem";
+ };
+ version = "5.0.0";
+ };
+ sass = {
+ dependencies = ["sass-listen"];
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "18c6prbw9wl8bqhb2435pd9s0lzarl3g7xf8pmyla28zblvwxmyh";
+ type = "gem";
+ };
+ version = "3.6.0";
+ };
+ sass-listen = {
+ dependencies = ["rb-fsevent" "rb-inotify"];
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0xw3q46cmahkgyldid5hwyiwacp590zj2vmswlll68ryvmvcp7df";
+ type = "gem";
+ };
+ version = "4.0.0";
+ };
+ scss_lint = {
+ dependencies = ["rake" "sass"];
+ groups = ["development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0dv4ff1lqbgqdx99nwg059c983dhw67kvvjd21f6vf62cjx09lpn";
+ type = "gem";
+ };
+ version = "0.57.1";
+ };
+ sidekiq = {
+ dependencies = ["connection_pool" "rack" "rack-protection" "redis"];
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1caiq5f5z5vzfria554n04pcbwc8zixf1fpavaksly9zywr3pc29";
+ type = "gem";
+ };
+ version = "5.2.5";
+ };
+ sidekiq-bulk = {
+ dependencies = ["sidekiq"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "08nyxzmgf742irafy3l4fj09d4s5pyvsh0dzlh8y4hl51rgkh4xv";
+ type = "gem";
+ };
+ version = "0.2.0";
+ };
+ sidekiq-scheduler = {
+ dependencies = ["redis" "rufus-scheduler" "sidekiq" "tilt"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1n38p1ig8rx4ndqxcsc2gyzbaaax6r16b1xkn9mgcwwfx8qd5dbw";
+ type = "gem";
+ };
+ version = "3.0.0";
+ };
+ sidekiq-unique-jobs = {
+ dependencies = ["concurrent-ruby" "sidekiq" "thor"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "13d58w83jx03w033mm77c42cd409by4idqca3nfbgq0bjx4hqwik";
+ type = "gem";
+ };
+ version = "6.0.8";
+ };
+ simple-navigation = {
+ dependencies = ["activesupport"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "08a2s18an3br3xj5j86r33q0hrkai0y157xg67h1khdskb08yylk";
+ type = "gem";
+ };
+ version = "4.0.5";
+ };
+ simple_form = {
+ dependencies = ["actionpack" "activemodel"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1221bf6glwinknrnp3pa2676ayg1yxyfa6l6lbajc72950v5mzm6";
+ type = "gem";
+ };
+ version = "4.1.0";
+ };
+ simplecov = {
+ dependencies = ["docile" "json" "simplecov-html"];
+ groups = ["test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1sfyfgf7zrp2n42v7rswkqgk3bbwk1bnsphm24y7laxv3f8z0947";
+ type = "gem";
+ };
+ version = "0.16.1";
+ };
+ simplecov-html = {
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1lihraa4rgxk8wbfl77fy9sf0ypk31iivly8vl3w04srd7i0clzn";
+ type = "gem";
+ };
+ version = "0.10.2";
+ };
+ sprockets = {
+ dependencies = ["concurrent-ruby" "rack"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "182jw5a0fbqah5w9jancvfmjbk88h8bxdbwnl4d3q809rpxdg8ay";
+ type = "gem";
+ };
+ version = "3.7.2";
+ };
+ sprockets-rails = {
+ dependencies = ["actionpack" "activesupport" "sprockets"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0ab42pm8p5zxpv3sfraq45b9lj39cz9mrpdirm30vywzrwwkm5p1";
+ type = "gem";
+ };
+ version = "3.2.1";
+ };
+ sshkit = {
+ dependencies = ["net-scp" "net-ssh"];
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1982pcckxy811gm6z9h8brkds13mrgrx8sgmdz8dq5rg1h91y0yw";
+ type = "gem";
+ };
+ version = "1.17.0";
+ };
+ stackprof = {
+ groups = ["development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1v7mkl4ng2is5h0glivhcjjkkj2shq1qzx9sg9shw9nn8xvg7i4w";
+ type = "gem";
+ };
+ version = "0.2.12";
+ };
+ statsd-ruby = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0djig5dnqjgww6wrw3f1mvnnjllznahlchvk4lvs4wx9qjsqpysr";
+ type = "gem";
+ };
+ version = "1.4.0";
+ };
+ stoplight = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1c55ar2chyivz8n6xkhyq36hgpb0b7cfqfjrcyyv9sjiyrbqyhic";
+ type = "gem";
+ };
+ version = "2.1.3";
+ };
+ streamio-ffmpeg = {
+ dependencies = ["multi_json"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1nnxizc0371vwh0k6gqjj1b7fjszydpqfz549n6qn2q1pza3894z";
+ type = "gem";
+ };
+ version = "3.0.2";
+ };
+ strong_migrations = {
+ dependencies = ["activerecord"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0scrffkhjx14rrk5cn01vg20y3vvhzzb47a7c9wa864aq8j8kw7z";
+ type = "gem";
+ };
+ version = "0.3.1";
+ };
+ temple = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "00nxf610nzi4n1i2lkby43nrnarvl89fcl6lg19406msr0k3ycmq";
+ type = "gem";
+ };
+ version = "0.8.0";
+ };
+ terminal-table = {
+ dependencies = ["unicode-display_width"];
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1512cngw35hsmhvw4c05rscihc59mnj09m249sm9p3pik831ydqk";
+ type = "gem";
+ };
+ version = "1.8.0";
+ };
+ terrapin = {
+ dependencies = ["climate_control"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0p18f05r0c5s70571gqig3z2ym74wx79s6rd45sprp207bqskzn9";
+ type = "gem";
+ };
+ version = "0.6.0";
+ };
+ thor = {
+ groups = ["default" "development" "pam_authentication" "production" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1yhrnp9x8qcy5vc7g438amd5j9sw83ih7c30dr6g6slgw9zj3g29";
+ type = "gem";
+ };
+ version = "0.20.3";
+ };
+ thread_safe = {
+ groups = ["default" "development" "pam_authentication" "production" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy";
+ type = "gem";
+ };
+ version = "0.3.6";
+ };
+ tilt = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0020mrgdf11q23hm1ddd6fv691l51vi10af00f137ilcdb2ycfra";
+ type = "gem";
+ };
+ version = "2.0.8";
+ };
+ timers = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "04zbs9wyzajn7g9xfgg2zqz5kzf0qa7jgh4hgry4pfcxfmlnwdwx";
+ type = "gem";
+ };
+ version = "4.2.0";
+ };
+ tty-color = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0zz5xa6xbrj69h334d8nx7z732fz80s1a0b02b53mim95p80s7bk";
+ type = "gem";
+ };
+ version = "0.4.3";
+ };
+ tty-command = {
+ dependencies = ["pastel"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1d1fghdvnlc8m5i36h7gswn21232k2f9z5ls73fhs9p5ryfs4vz7";
+ type = "gem";
+ };
+ version = "0.8.2";
+ };
+ tty-cursor = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1f4rsapf4apaxn11xnqrq7axgrlvn6pdlqxqb2g34jnpfh5yrk1i";
+ type = "gem";
+ };
+ version = "0.6.0";
+ };
+ tty-prompt = {
+ dependencies = ["necromancer" "pastel" "timers" "tty-cursor" "tty-reader"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1wjlsrzky7n7fr4psy2jbi4qpcixkq3196g0bbnmmjy6f26vrjcm";
+ type = "gem";
+ };
+ version = "0.18.1";
+ };
+ tty-reader = {
+ dependencies = ["tty-cursor" "tty-screen" "wisper"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0r1cbfmkprp2m8jbf5f59jqn2zda7xqxj3gzdsgpz8v7arp9m3wn";
+ type = "gem";
+ };
+ version = "0.5.0";
+ };
+ tty-screen = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0azpjgyhdm8ycblnx9crq3dgb2x8yg454a13n60zfpsc0n138sw1";
+ type = "gem";
+ };
+ version = "0.6.5";
+ };
+ twitter-text = {
+ dependencies = ["unf"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1732h7hy1k152w8wfvjsx7b79alk45i5imwd37ia4qcx8hfm3gvg";
+ type = "gem";
+ };
+ version = "1.14.7";
+ };
+ tzinfo = {
+ dependencies = ["thread_safe"];
+ groups = ["default" "development" "pam_authentication" "production" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1fjx9j327xpkkdlxwmkl3a8wqj7i4l4jwlrv3z13mg95z9wl253z";
+ type = "gem";
+ };
+ version = "1.2.5";
+ };
+ tzinfo-data = {
+ dependencies = ["tzinfo"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1jzl5cv7b5h24lh8s42s3j1ls0p27b5wmc4zdjs2j7hajgbdp19q";
+ type = "gem";
+ };
+ version = "1.2018.9";
+ };
+ unf = {
+ dependencies = ["unf_ext"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0bh2cf73i2ffh4fcpdn9ir4mhq8zi50ik0zqa1braahzadx536a9";
+ type = "gem";
+ };
+ version = "0.1.4";
+ };
+ unf_ext = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "06p1i6qhy34bpb8q8ms88y6f2kz86azwm098yvcc0nyqk9y729j1";
+ type = "gem";
+ };
+ version = "0.0.7.5";
+ };
+ unicode-display_width = {
+ groups = ["default" "development" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0bq528fibi8s0jmxz0xzlgzggdq0x4fx46wfqz49478pv8gb2diq";
+ type = "gem";
+ };
+ version = "1.4.1";
+ };
+ uniform_notifier = {
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0mb0pq99zm17qnz2czmad5b3z0ivzkf6493afj3n550kd56z18s3";
+ type = "gem";
+ };
+ version = "1.12.1";
+ };
+ warden = {
+ dependencies = ["rack"];
+ groups = ["default" "pam_authentication"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0va966lhpylcwbqb9n151kkihx30agh0a57mwjwdxyanll4s1q12";
+ type = "gem";
+ };
+ version = "1.2.7";
+ };
+ webmock = {
+ dependencies = ["addressable" "crack" "hashdiff"];
+ groups = ["test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0gg0c2sxq7rni0b93w47h7p7cn590xdhf5va7ska48inpipwlgxp";
+ type = "gem";
+ };
+ version = "3.5.1";
+ };
+ webpacker = {
+ dependencies = ["activesupport" "rack-proxy" "railties"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0bw01ihvxpy05xzz3wq6p9d3lw7n4x10ivfrh70hlrjyixmapws6";
+ type = "gem";
+ };
+ version = "3.5.5";
+ };
+ webpush = {
+ dependencies = ["hkdf" "jwt"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1id7i4gdqck8wj6x22q8dljynvznvwn9f0pgi8h8jiy5dm7m0cf2";
+ type = "gem";
+ };
+ version = "0.3.6";
+ };
+ websocket-driver = {
+ dependencies = ["websocket-extensions"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1551k3fs3kkb3ghqfj3n5lps0ikb9pyrdnzmvgfdxy8574n4g1dn";
+ type = "gem";
+ };
+ version = "0.7.0";
+ };
+ websocket-extensions = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "034sdr7fd34yag5l6y156rkbhiqgmy395m231dwhlpcswhs6d270";
+ type = "gem";
+ };
+ version = "0.1.3";
+ };
+ wisper = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0ar2wn3pxnffyzcmf67y67b8lnhgn9zayqhqp26jwqa3d73j71kd";
+ type = "gem";
+ };
+ version = "2.0.0";
+ };
+ xpath = {
+ dependencies = ["nokogiri"];
+ groups = ["default" "test"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0bh8lk9hvlpn7vmi6h4hkcwjzvs2y0cmkk3yjjdr8fxvj6fsgzbd";
+ type = "gem";
+ };
+ version = "3.2.0";
+ };
+}
\ No newline at end of file
--- /dev/null
+{
+ "tag": "v2.7.4",
+ "meta": {
+ "name": "mastodon",
+ "url": "https://github.com/tootsuite/mastodon",
+ "branch": "refs/tags/v2.7.4"
+ },
+ "github": {
+ "owner": "tootsuite",
+ "repo": "mastodon",
+ "rev": "a91349d45da18d3c85f68ae9be762dad6301c3cf",
+ "sha256": "0x16c2m8d9nszr9hjw6j1i8gicvpgxzli5afaqd0z144y0ar62qa",
+ "fetchSubmodules": true
+ }
+}
--- /dev/null
+{fetchurl, linkFarm}: rec {
+ offline_cache = linkFarm "offline" packages;
+ packages = [
+
+ {
+ name = "_babel_code_frame___code_frame_7.0.0.tgz";
+ path = fetchurl {
+ name = "_babel_code_frame___code_frame_7.0.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz";
+ sha1 = "06e2ab19bdb535385559aabb5ba59729482800f8";
+ };
+ }
+
+ {
+ name = "_babel_core___core_7.2.2.tgz";
+ path = fetchurl {
+ name = "_babel_core___core_7.2.2.tgz";
+ url = "https://registry.yarnpkg.com/@babel/core/-/core-7.2.2.tgz";
+ sha1 = "07adba6dde27bb5ad8d8672f15fde3e08184a687";
+ };
+ }
+
+ {
+ name = "_babel_generator___generator_7.2.2.tgz";
+ path = fetchurl {
+ name = "_babel_generator___generator_7.2.2.tgz";
+ url = "https://registry.yarnpkg.com/@babel/generator/-/generator-7.2.2.tgz";
+ sha1 = "18c816c70962640eab42fe8cae5f3947a5c65ccc";
+ };
+ }
+
+ {
+ name = "_babel_helper_annotate_as_pure___helper_annotate_as_pure_7.0.0.tgz";
+ path = fetchurl {
+ name = "_babel_helper_annotate_as_pure___helper_annotate_as_pure_7.0.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz";
+ sha1 = "323d39dd0b50e10c7c06ca7d7638e6864d8c5c32";
+ };
+ }
+
+ {
+ name = "_babel_helper_builder_binary_assignment_operator_visitor___helper_builder_binary_assignment_operator_visitor_7.1.0.tgz";
+ path = fetchurl {
+ name = "_babel_helper_builder_binary_assignment_operator_visitor___helper_builder_binary_assignment_operator_visitor_7.1.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz";
+ sha1 = "6b69628dfe4087798e0c4ed98e3d4a6b2fbd2f5f";
+ };
+ }
+
+ {
+ name = "_babel_helper_builder_react_jsx___helper_builder_react_jsx_7.0.0.tgz";
+ path = fetchurl {
+ name = "_babel_helper_builder_react_jsx___helper_builder_react_jsx_7.0.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.0.0.tgz";
+ sha1 = "fa154cb53eb918cf2a9a7ce928e29eb649c5acdb";
+ };
+ }
+
+ {
+ name = "_babel_helper_call_delegate___helper_call_delegate_7.1.0.tgz";
+ path = fetchurl {
+ name = "_babel_helper_call_delegate___helper_call_delegate_7.1.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.1.0.tgz";
+ sha1 = "6a957f105f37755e8645343d3038a22e1449cc4a";
+ };
+ }
+
+ {
+ name = "_babel_helper_create_class_features_plugin___helper_create_class_features_plugin_7.2.3.tgz";
+ path = fetchurl {
+ name = "_babel_helper_create_class_features_plugin___helper_create_class_features_plugin_7.2.3.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.2.3.tgz";
+ sha1 = "f6e719abb90cb7f4a69591e35fd5eb89047c4a7c";
+ };
+ }
+
+ {
+ name = "_babel_helper_define_map___helper_define_map_7.1.0.tgz";
+ path = fetchurl {
+ name = "_babel_helper_define_map___helper_define_map_7.1.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.1.0.tgz";
+ sha1 = "3b74caec329b3c80c116290887c0dd9ae468c20c";
+ };
+ }
+
+ {
+ name = "_babel_helper_explode_assignable_expression___helper_explode_assignable_expression_7.1.0.tgz";
+ path = fetchurl {
+ name = "_babel_helper_explode_assignable_expression___helper_explode_assignable_expression_7.1.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz";
+ sha1 = "537fa13f6f1674df745b0c00ec8fe4e99681c8f6";
+ };
+ }
+
+ {
+ name = "_babel_helper_function_name___helper_function_name_7.1.0.tgz";
+ path = fetchurl {
+ name = "_babel_helper_function_name___helper_function_name_7.1.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz";
+ sha1 = "a0ceb01685f73355d4360c1247f582bfafc8ff53";
+ };
+ }
+
+ {
+ name = "_babel_helper_get_function_arity___helper_get_function_arity_7.0.0.tgz";
+ path = fetchurl {
+ name = "_babel_helper_get_function_arity___helper_get_function_arity_7.0.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz";
+ sha1 = "83572d4320e2a4657263734113c42868b64e49c3";
+ };
+ }
+
+ {
+ name = "_babel_helper_hoist_variables___helper_hoist_variables_7.0.0.tgz";
+ path = fetchurl {
+ name = "_babel_helper_hoist_variables___helper_hoist_variables_7.0.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.0.0.tgz";
+ sha1 = "46adc4c5e758645ae7a45deb92bab0918c23bb88";
+ };
+ }
+
+ {
+ name = "_babel_helper_member_expression_to_functions___helper_member_expression_to_functions_7.0.0.tgz";
+ path = fetchurl {
+ name = "_babel_helper_member_expression_to_functions___helper_member_expression_to_functions_7.0.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0.tgz";
+ sha1 = "8cd14b0a0df7ff00f009e7d7a436945f47c7a16f";
+ };
+ }
+
+ {
+ name = "_babel_helper_module_imports___helper_module_imports_7.0.0.tgz";
+ path = fetchurl {
+ name = "_babel_helper_module_imports___helper_module_imports_7.0.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz";
+ sha1 = "96081b7111e486da4d2cd971ad1a4fe216cc2e3d";
+ };
+ }
+
+ {
+ name = "_babel_helper_module_transforms___helper_module_transforms_7.2.2.tgz";
+ path = fetchurl {
+ name = "_babel_helper_module_transforms___helper_module_transforms_7.2.2.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.2.2.tgz";
+ sha1 = "ab2f8e8d231409f8370c883d20c335190284b963";
+ };
+ }
+
+ {
+ name = "_babel_helper_optimise_call_expression___helper_optimise_call_expression_7.0.0.tgz";
+ path = fetchurl {
+ name = "_babel_helper_optimise_call_expression___helper_optimise_call_expression_7.0.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz";
+ sha1 = "a2920c5702b073c15de51106200aa8cad20497d5";
+ };
+ }
+
+ {
+ name = "_babel_helper_plugin_utils___helper_plugin_utils_7.0.0.tgz";
+ path = fetchurl {
+ name = "_babel_helper_plugin_utils___helper_plugin_utils_7.0.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz";
+ sha1 = "bbb3fbee98661c569034237cc03967ba99b4f250";
+ };
+ }
+
+ {
+ name = "_babel_helper_regex___helper_regex_7.0.0.tgz";
+ path = fetchurl {
+ name = "_babel_helper_regex___helper_regex_7.0.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.0.0.tgz";
+ sha1 = "2c1718923b57f9bbe64705ffe5640ac64d9bdb27";
+ };
+ }
+
+ {
+ name = "_babel_helper_remap_async_to_generator___helper_remap_async_to_generator_7.1.0.tgz";
+ path = fetchurl {
+ name = "_babel_helper_remap_async_to_generator___helper_remap_async_to_generator_7.1.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz";
+ sha1 = "361d80821b6f38da75bd3f0785ece20a88c5fe7f";
+ };
+ }
+
+ {
+ name = "_babel_helper_replace_supers___helper_replace_supers_7.2.3.tgz";
+ path = fetchurl {
+ name = "_babel_helper_replace_supers___helper_replace_supers_7.2.3.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.2.3.tgz";
+ sha1 = "19970020cf22677d62b3a689561dbd9644d8c5e5";
+ };
+ }
+
+ {
+ name = "_babel_helper_simple_access___helper_simple_access_7.1.0.tgz";
+ path = fetchurl {
+ name = "_babel_helper_simple_access___helper_simple_access_7.1.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz";
+ sha1 = "65eeb954c8c245beaa4e859da6188f39d71e585c";
+ };
+ }
+
+ {
+ name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.0.0.tgz";
+ path = fetchurl {
+ name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.0.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz";
+ sha1 = "3aae285c0311c2ab095d997b8c9a94cad547d813";
+ };
+ }
+
+ {
+ name = "_babel_helper_wrap_function___helper_wrap_function_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_helper_wrap_function___helper_wrap_function_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz";
+ sha1 = "c4e0012445769e2815b55296ead43a958549f6fa";
+ };
+ }
+
+ {
+ name = "_babel_helpers___helpers_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_helpers___helpers_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.2.0.tgz";
+ sha1 = "8335f3140f3144270dc63c4732a4f8b0a50b7a21";
+ };
+ }
+
+ {
+ name = "_babel_highlight___highlight_7.0.0.tgz";
+ path = fetchurl {
+ name = "_babel_highlight___highlight_7.0.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0.tgz";
+ sha1 = "f710c38c8d458e6dd9a201afb637fcb781ce99e4";
+ };
+ }
+
+ {
+ name = "_babel_parser___parser_7.2.3.tgz";
+ path = fetchurl {
+ name = "_babel_parser___parser_7.2.3.tgz";
+ url = "https://registry.yarnpkg.com/@babel/parser/-/parser-7.2.3.tgz";
+ sha1 = "32f5df65744b70888d17872ec106b02434ba1489";
+ };
+ }
+
+ {
+ name = "_babel_plugin_proposal_async_generator_functions___plugin_proposal_async_generator_functions_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_proposal_async_generator_functions___plugin_proposal_async_generator_functions_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz";
+ sha1 = "b289b306669dce4ad20b0252889a15768c9d417e";
+ };
+ }
+
+ {
+ name = "_babel_plugin_proposal_class_properties___plugin_proposal_class_properties_7.2.3.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_proposal_class_properties___plugin_proposal_class_properties_7.2.3.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.2.3.tgz";
+ sha1 = "c9e1294363b346cff333007a92080f3203698461";
+ };
+ }
+
+ {
+ name = "_babel_plugin_proposal_decorators___plugin_proposal_decorators_7.2.3.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_proposal_decorators___plugin_proposal_decorators_7.2.3.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.2.3.tgz";
+ sha1 = "1fe5b0d22ce0c4418f225474ebd40267430364c0";
+ };
+ }
+
+ {
+ name = "_babel_plugin_proposal_json_strings___plugin_proposal_json_strings_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_proposal_json_strings___plugin_proposal_json_strings_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz";
+ sha1 = "568ecc446c6148ae6b267f02551130891e29f317";
+ };
+ }
+
+ {
+ name = "_babel_plugin_proposal_object_rest_spread___plugin_proposal_object_rest_spread_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_proposal_object_rest_spread___plugin_proposal_object_rest_spread_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.2.0.tgz";
+ sha1 = "88f5fec3e7ad019014c97f7ee3c992f0adbf7fb8";
+ };
+ }
+
+ {
+ name = "_babel_plugin_proposal_optional_catch_binding___plugin_proposal_optional_catch_binding_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_proposal_optional_catch_binding___plugin_proposal_optional_catch_binding_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz";
+ sha1 = "135d81edb68a081e55e56ec48541ece8065c38f5";
+ };
+ }
+
+ {
+ name = "_babel_plugin_proposal_unicode_property_regex___plugin_proposal_unicode_property_regex_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_proposal_unicode_property_regex___plugin_proposal_unicode_property_regex_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.2.0.tgz";
+ sha1 = "abe7281fe46c95ddc143a65e5358647792039520";
+ };
+ }
+
+ {
+ name = "_babel_plugin_syntax_async_generators___plugin_syntax_async_generators_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_syntax_async_generators___plugin_syntax_async_generators_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz";
+ sha1 = "69e1f0db34c6f5a0cf7e2b3323bf159a76c8cb7f";
+ };
+ }
+
+ {
+ name = "_babel_plugin_syntax_decorators___plugin_syntax_decorators_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_syntax_decorators___plugin_syntax_decorators_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.2.0.tgz";
+ sha1 = "c50b1b957dcc69e4b1127b65e1c33eef61570c1b";
+ };
+ }
+
+ {
+ name = "_babel_plugin_syntax_dynamic_import___plugin_syntax_dynamic_import_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_syntax_dynamic_import___plugin_syntax_dynamic_import_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz";
+ sha1 = "69c159ffaf4998122161ad8ebc5e6d1f55df8612";
+ };
+ }
+
+ {
+ name = "_babel_plugin_syntax_json_strings___plugin_syntax_json_strings_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_syntax_json_strings___plugin_syntax_json_strings_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz";
+ sha1 = "72bd13f6ffe1d25938129d2a186b11fd62951470";
+ };
+ }
+
+ {
+ name = "_babel_plugin_syntax_jsx___plugin_syntax_jsx_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_syntax_jsx___plugin_syntax_jsx_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.2.0.tgz";
+ sha1 = "0b85a3b4bc7cdf4cc4b8bf236335b907ca22e7c7";
+ };
+ }
+
+ {
+ name = "_babel_plugin_syntax_object_rest_spread___plugin_syntax_object_rest_spread_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_syntax_object_rest_spread___plugin_syntax_object_rest_spread_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz";
+ sha1 = "3b7a3e733510c57e820b9142a6579ac8b0dfad2e";
+ };
+ }
+
+ {
+ name = "_babel_plugin_syntax_optional_catch_binding___plugin_syntax_optional_catch_binding_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_syntax_optional_catch_binding___plugin_syntax_optional_catch_binding_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz";
+ sha1 = "a94013d6eda8908dfe6a477e7f9eda85656ecf5c";
+ };
+ }
+
+ {
+ name = "_babel_plugin_transform_arrow_functions___plugin_transform_arrow_functions_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_arrow_functions___plugin_transform_arrow_functions_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz";
+ sha1 = "9aeafbe4d6ffc6563bf8f8372091628f00779550";
+ };
+ }
+
+ {
+ name = "_babel_plugin_transform_async_to_generator___plugin_transform_async_to_generator_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_async_to_generator___plugin_transform_async_to_generator_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.2.0.tgz";
+ sha1 = "68b8a438663e88519e65b776f8938f3445b1a2ff";
+ };
+ }
+
+ {
+ name = "_babel_plugin_transform_block_scoped_functions___plugin_transform_block_scoped_functions_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_block_scoped_functions___plugin_transform_block_scoped_functions_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz";
+ sha1 = "5d3cc11e8d5ddd752aa64c9148d0db6cb79fd190";
+ };
+ }
+
+ {
+ name = "_babel_plugin_transform_block_scoping___plugin_transform_block_scoping_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_block_scoping___plugin_transform_block_scoping_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.2.0.tgz";
+ sha1 = "f17c49d91eedbcdf5dd50597d16f5f2f770132d4";
+ };
+ }
+
+ {
+ name = "_babel_plugin_transform_classes___plugin_transform_classes_7.2.2.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_classes___plugin_transform_classes_7.2.2.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.2.2.tgz";
+ sha1 = "6c90542f210ee975aa2aa8c8b5af7fa73a126953";
+ };
+ }
+
+ {
+ name = "_babel_plugin_transform_computed_properties___plugin_transform_computed_properties_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_computed_properties___plugin_transform_computed_properties_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz";
+ sha1 = "83a7df6a658865b1c8f641d510c6f3af220216da";
+ };
+ }
+
+ {
+ name = "_babel_plugin_transform_destructuring___plugin_transform_destructuring_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_destructuring___plugin_transform_destructuring_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.2.0.tgz";
+ sha1 = "e75269b4b7889ec3a332cd0d0c8cff8fed0dc6f3";
+ };
+ }
+
+ {
+ name = "_babel_plugin_transform_dotall_regex___plugin_transform_dotall_regex_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_dotall_regex___plugin_transform_dotall_regex_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.2.0.tgz";
+ sha1 = "f0aabb93d120a8ac61e925ea0ba440812dbe0e49";
+ };
+ }
+
+ {
+ name = "_babel_plugin_transform_duplicate_keys___plugin_transform_duplicate_keys_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_duplicate_keys___plugin_transform_duplicate_keys_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.2.0.tgz";
+ sha1 = "d952c4930f312a4dbfff18f0b2914e60c35530b3";
+ };
+ }
+
+ {
+ name = "_babel_plugin_transform_exponentiation_operator___plugin_transform_exponentiation_operator_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_exponentiation_operator___plugin_transform_exponentiation_operator_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz";
+ sha1 = "a63868289e5b4007f7054d46491af51435766008";
+ };
+ }
+
+ {
+ name = "_babel_plugin_transform_for_of___plugin_transform_for_of_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_for_of___plugin_transform_for_of_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.2.0.tgz";
+ sha1 = "ab7468befa80f764bb03d3cb5eef8cc998e1cad9";
+ };
+ }
+
+ {
+ name = "_babel_plugin_transform_function_name___plugin_transform_function_name_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_function_name___plugin_transform_function_name_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.2.0.tgz";
+ sha1 = "f7930362829ff99a3174c39f0afcc024ef59731a";
+ };
+ }
+
+ {
+ name = "_babel_plugin_transform_literals___plugin_transform_literals_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_literals___plugin_transform_literals_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz";
+ sha1 = "690353e81f9267dad4fd8cfd77eafa86aba53ea1";
+ };
+ }
+
+ {
+ name = "_babel_plugin_transform_modules_amd___plugin_transform_modules_amd_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_modules_amd___plugin_transform_modules_amd_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.2.0.tgz";
+ sha1 = "82a9bce45b95441f617a24011dc89d12da7f4ee6";
+ };
+ }
+
+ {
+ name = "_babel_plugin_transform_modules_commonjs___plugin_transform_modules_commonjs_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_modules_commonjs___plugin_transform_modules_commonjs_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.2.0.tgz";
+ sha1 = "c4f1933f5991d5145e9cfad1dfd848ea1727f404";
+ };
+ }
+
+ {
+ name = "_babel_plugin_transform_modules_systemjs___plugin_transform_modules_systemjs_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_modules_systemjs___plugin_transform_modules_systemjs_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.2.0.tgz";
+ sha1 = "912bfe9e5ff982924c81d0937c92d24994bb9068";
+ };
+ }
+
+ {
+ name = "_babel_plugin_transform_modules_umd___plugin_transform_modules_umd_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_modules_umd___plugin_transform_modules_umd_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz";
+ sha1 = "7678ce75169f0877b8eb2235538c074268dd01ae";
+ };
+ }
+
+ {
+ name = "_babel_plugin_transform_new_target___plugin_transform_new_target_7.0.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_new_target___plugin_transform_new_target_7.0.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.0.0.tgz";
+ sha1 = "ae8fbd89517fa7892d20e6564e641e8770c3aa4a";
+ };
+ }
+
+ {
+ name = "_babel_plugin_transform_object_super___plugin_transform_object_super_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_object_super___plugin_transform_object_super_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.2.0.tgz";
+ sha1 = "b35d4c10f56bab5d650047dad0f1d8e8814b6598";
+ };
+ }
+
+ {
+ name = "_babel_plugin_transform_parameters___plugin_transform_parameters_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_parameters___plugin_transform_parameters_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.2.0.tgz";
+ sha1 = "0d5ad15dc805e2ea866df4dd6682bfe76d1408c2";
+ };
+ }
+
+ {
+ name = "_babel_plugin_transform_react_display_name___plugin_transform_react_display_name_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_react_display_name___plugin_transform_react_display_name_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.2.0.tgz";
+ sha1 = "ebfaed87834ce8dc4279609a4f0c324c156e3eb0";
+ };
+ }
+
+ {
+ name = "_babel_plugin_transform_react_inline_elements___plugin_transform_react_inline_elements_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_react_inline_elements___plugin_transform_react_inline_elements_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-react-inline-elements/-/plugin-transform-react-inline-elements-7.2.0.tgz";
+ sha1 = "3e36e7c47f1c21f52b2b0090d5cd83ceb19a4770";
+ };
+ }
+
+ {
+ name = "_babel_plugin_transform_react_jsx_self___plugin_transform_react_jsx_self_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_react_jsx_self___plugin_transform_react_jsx_self_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.2.0.tgz";
+ sha1 = "461e21ad9478f1031dd5e276108d027f1b5240ba";
+ };
+ }
+
+ {
+ name = "_babel_plugin_transform_react_jsx_source___plugin_transform_react_jsx_source_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_react_jsx_source___plugin_transform_react_jsx_source_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.2.0.tgz";
+ sha1 = "20c8c60f0140f5dd3cd63418d452801cf3f7180f";
+ };
+ }
+
+ {
+ name = "_babel_plugin_transform_react_jsx___plugin_transform_react_jsx_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_react_jsx___plugin_transform_react_jsx_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.2.0.tgz";
+ sha1 = "ca36b6561c4d3b45524f8efb6f0fbc9a0d1d622f";
+ };
+ }
+
+ {
+ name = "_babel_plugin_transform_regenerator___plugin_transform_regenerator_7.0.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_regenerator___plugin_transform_regenerator_7.0.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.0.0.tgz";
+ sha1 = "5b41686b4ed40bef874d7ed6a84bdd849c13e0c1";
+ };
+ }
+
+ {
+ name = "_babel_plugin_transform_runtime___plugin_transform_runtime_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_runtime___plugin_transform_runtime_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.2.0.tgz";
+ sha1 = "566bc43f7d0aedc880eaddbd29168d0f248966ea";
+ };
+ }
+
+ {
+ name = "_babel_plugin_transform_shorthand_properties___plugin_transform_shorthand_properties_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_shorthand_properties___plugin_transform_shorthand_properties_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz";
+ sha1 = "6333aee2f8d6ee7e28615457298934a3b46198f0";
+ };
+ }
+
+ {
+ name = "_babel_plugin_transform_spread___plugin_transform_spread_7.2.2.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_spread___plugin_transform_spread_7.2.2.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.2.tgz";
+ sha1 = "3103a9abe22f742b6d406ecd3cd49b774919b406";
+ };
+ }
+
+ {
+ name = "_babel_plugin_transform_sticky_regex___plugin_transform_sticky_regex_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_sticky_regex___plugin_transform_sticky_regex_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz";
+ sha1 = "a1e454b5995560a9c1e0d537dfc15061fd2687e1";
+ };
+ }
+
+ {
+ name = "_babel_plugin_transform_template_literals___plugin_transform_template_literals_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_template_literals___plugin_transform_template_literals_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.2.0.tgz";
+ sha1 = "d87ed01b8eaac7a92473f608c97c089de2ba1e5b";
+ };
+ }
+
+ {
+ name = "_babel_plugin_transform_typeof_symbol___plugin_transform_typeof_symbol_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_typeof_symbol___plugin_transform_typeof_symbol_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz";
+ sha1 = "117d2bcec2fbf64b4b59d1f9819894682d29f2b2";
+ };
+ }
+
+ {
+ name = "_babel_plugin_transform_unicode_regex___plugin_transform_unicode_regex_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_plugin_transform_unicode_regex___plugin_transform_unicode_regex_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.2.0.tgz";
+ sha1 = "4eb8db16f972f8abb5062c161b8b115546ade08b";
+ };
+ }
+
+ {
+ name = "_babel_preset_env___preset_env_7.2.3.tgz";
+ path = fetchurl {
+ name = "_babel_preset_env___preset_env_7.2.3.tgz";
+ url = "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.2.3.tgz";
+ sha1 = "948c8df4d4609c99c7e0130169f052ea6a7a8933";
+ };
+ }
+
+ {
+ name = "_babel_preset_react___preset_react_7.0.0.tgz";
+ path = fetchurl {
+ name = "_babel_preset_react___preset_react_7.0.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.0.0.tgz";
+ sha1 = "e86b4b3d99433c7b3e9e91747e2653958bc6b3c0";
+ };
+ }
+
+ {
+ name = "_babel_runtime___runtime_7.0.0.tgz";
+ path = fetchurl {
+ name = "_babel_runtime___runtime_7.0.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.0.0.tgz";
+ sha1 = "adeb78fedfc855aa05bc041640f3f6f98e85424c";
+ };
+ }
+
+ {
+ name = "_babel_runtime___runtime_7.2.0.tgz";
+ path = fetchurl {
+ name = "_babel_runtime___runtime_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.2.0.tgz";
+ sha1 = "b03e42eeddf5898e00646e4c840fa07ba8dcad7f";
+ };
+ }
+
+ {
+ name = "_babel_template___template_7.2.2.tgz";
+ path = fetchurl {
+ name = "_babel_template___template_7.2.2.tgz";
+ url = "https://registry.yarnpkg.com/@babel/template/-/template-7.2.2.tgz";
+ sha1 = "005b3fdf0ed96e88041330379e0da9a708eb2907";
+ };
+ }
+
+ {
+ name = "_babel_traverse___traverse_7.2.3.tgz";
+ path = fetchurl {
+ name = "_babel_traverse___traverse_7.2.3.tgz";
+ url = "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.2.3.tgz";
+ sha1 = "7ff50cefa9c7c0bd2d81231fdac122f3957748d8";
+ };
+ }
+
+ {
+ name = "_babel_types___types_7.2.2.tgz";
+ path = fetchurl {
+ name = "_babel_types___types_7.2.2.tgz";
+ url = "https://registry.yarnpkg.com/@babel/types/-/types-7.2.2.tgz";
+ sha1 = "44e10fc24e33af524488b716cdaee5360ea8ed1e";
+ };
+ }
+
+ {
+ name = "_emotion_cache___cache_10.0.0.tgz";
+ path = fetchurl {
+ name = "_emotion_cache___cache_10.0.0.tgz";
+ url = "https://registry.yarnpkg.com/@emotion/cache/-/cache-10.0.0.tgz";
+ sha1 = "e22eadcb770de4131ec707c84207e9e1ce210413";
+ };
+ }
+
+ {
+ name = "_emotion_hash___hash_0.7.1.tgz";
+ path = fetchurl {
+ name = "_emotion_hash___hash_0.7.1.tgz";
+ url = "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.7.1.tgz";
+ sha1 = "9833722341379fb7d67f06a4b00ab3c37913da53";
+ };
+ }
+
+ {
+ name = "_emotion_memoize___memoize_0.7.1.tgz";
+ path = fetchurl {
+ name = "_emotion_memoize___memoize_0.7.1.tgz";
+ url = "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.1.tgz";
+ sha1 = "e93c13942592cf5ef01aa8297444dc192beee52f";
+ };
+ }
+
+ {
+ name = "_emotion_serialize___serialize_0.11.3.tgz";
+ path = fetchurl {
+ name = "_emotion_serialize___serialize_0.11.3.tgz";
+ url = "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-0.11.3.tgz";
+ sha1 = "c4af2d96e3ddb9a749b7b567daa7556bcae45af2";
+ };
+ }
+
+ {
+ name = "_emotion_sheet___sheet_0.9.2.tgz";
+ path = fetchurl {
+ name = "_emotion_sheet___sheet_0.9.2.tgz";
+ url = "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-0.9.2.tgz";
+ sha1 = "74e5c6b5e489a1ba30ab246ab5eedd96916487c4";
+ };
+ }
+
+ {
+ name = "_emotion_stylis___stylis_0.8.3.tgz";
+ path = fetchurl {
+ name = "_emotion_stylis___stylis_0.8.3.tgz";
+ url = "https://registry.yarnpkg.com/@emotion/stylis/-/stylis-0.8.3.tgz";
+ sha1 = "3ca7e9bcb31b3cb4afbaeb66156d86ee85e23246";
+ };
+ }
+
+ {
+ name = "_emotion_unitless___unitless_0.7.3.tgz";
+ path = fetchurl {
+ name = "_emotion_unitless___unitless_0.7.3.tgz";
+ url = "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.3.tgz";
+ sha1 = "6310a047f12d21a1036fb031317219892440416f";
+ };
+ }
+
+ {
+ name = "_emotion_utils___utils_0.11.1.tgz";
+ path = fetchurl {
+ name = "_emotion_utils___utils_0.11.1.tgz";
+ url = "https://registry.yarnpkg.com/@emotion/utils/-/utils-0.11.1.tgz";
+ sha1 = "8529b7412a6eb4b48bdf6e720cc1b8e6e1e17628";
+ };
+ }
+
+ {
+ name = "_emotion_weak_memoize___weak_memoize_0.2.2.tgz";
+ path = fetchurl {
+ name = "_emotion_weak_memoize___weak_memoize_0.2.2.tgz";
+ url = "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.2.2.tgz";
+ sha1 = "63985d3d8b02530e0869962f4da09142ee8e200e";
+ };
+ }
+
+ {
+ name = "_gfx_zopfli___zopfli_1.0.10.tgz";
+ path = fetchurl {
+ name = "_gfx_zopfli___zopfli_1.0.10.tgz";
+ url = "https://registry.yarnpkg.com/@gfx/zopfli/-/zopfli-1.0.10.tgz";
+ sha1 = "8cccfcbd670f676cb240812bcf8380c9a66da367";
+ };
+ }
+
+ {
+ name = "_types_node___node_10.12.18.tgz";
+ path = fetchurl {
+ name = "_types_node___node_10.12.18.tgz";
+ url = "https://registry.yarnpkg.com/@types/node/-/node-10.12.18.tgz";
+ sha1 = "1d3ca764718915584fcd9f6344621b7672665c67";
+ };
+ }
+
+ {
+ name = "_types_q___q_1.5.1.tgz";
+ path = fetchurl {
+ name = "_types_q___q_1.5.1.tgz";
+ url = "https://registry.yarnpkg.com/@types/q/-/q-1.5.1.tgz";
+ sha1 = "48fd98c1561fe718b61733daed46ff115b496e18";
+ };
+ }
+
+ {
+ name = "_types_react___react_16.4.6.tgz";
+ path = fetchurl {
+ name = "_types_react___react_16.4.6.tgz";
+ url = "https://registry.yarnpkg.com/@types/react/-/react-16.4.6.tgz";
+ sha1 = "5024957c6bcef4f02823accf5974faba2e54fada";
+ };
+ }
+
+ {
+ name = "_webassemblyjs_ast___ast_1.7.11.tgz";
+ path = fetchurl {
+ name = "_webassemblyjs_ast___ast_1.7.11.tgz";
+ url = "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.7.11.tgz";
+ sha1 = "b988582cafbb2b095e8b556526f30c90d057cace";
+ };
+ }
+
+ {
+ name = "_webassemblyjs_floating_point_hex_parser___floating_point_hex_parser_1.7.11.tgz";
+ path = fetchurl {
+ name = "_webassemblyjs_floating_point_hex_parser___floating_point_hex_parser_1.7.11.tgz";
+ url = "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.11.tgz";
+ sha1 = "a69f0af6502eb9a3c045555b1a6129d3d3f2e313";
+ };
+ }
+
+ {
+ name = "_webassemblyjs_helper_api_error___helper_api_error_1.7.11.tgz";
+ path = fetchurl {
+ name = "_webassemblyjs_helper_api_error___helper_api_error_1.7.11.tgz";
+ url = "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.11.tgz";
+ sha1 = "c7b6bb8105f84039511a2b39ce494f193818a32a";
+ };
+ }
+
+ {
+ name = "_webassemblyjs_helper_buffer___helper_buffer_1.7.11.tgz";
+ path = fetchurl {
+ name = "_webassemblyjs_helper_buffer___helper_buffer_1.7.11.tgz";
+ url = "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.11.tgz";
+ sha1 = "3122d48dcc6c9456ed982debe16c8f37101df39b";
+ };
+ }
+
+ {
+ name = "_webassemblyjs_helper_code_frame___helper_code_frame_1.7.11.tgz";
+ path = fetchurl {
+ name = "_webassemblyjs_helper_code_frame___helper_code_frame_1.7.11.tgz";
+ url = "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.11.tgz";
+ sha1 = "cf8f106e746662a0da29bdef635fcd3d1248364b";
+ };
+ }
+
+ {
+ name = "_webassemblyjs_helper_fsm___helper_fsm_1.7.11.tgz";
+ path = fetchurl {
+ name = "_webassemblyjs_helper_fsm___helper_fsm_1.7.11.tgz";
+ url = "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.11.tgz";
+ sha1 = "df38882a624080d03f7503f93e3f17ac5ac01181";
+ };
+ }
+
+ {
+ name = "_webassemblyjs_helper_module_context___helper_module_context_1.7.11.tgz";
+ path = fetchurl {
+ name = "_webassemblyjs_helper_module_context___helper_module_context_1.7.11.tgz";
+ url = "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.11.tgz";
+ sha1 = "d874d722e51e62ac202476935d649c802fa0e209";
+ };
+ }
+
+ {
+ name = "_webassemblyjs_helper_wasm_bytecode___helper_wasm_bytecode_1.7.11.tgz";
+ path = fetchurl {
+ name = "_webassemblyjs_helper_wasm_bytecode___helper_wasm_bytecode_1.7.11.tgz";
+ url = "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.11.tgz";
+ sha1 = "dd9a1e817f1c2eb105b4cf1013093cb9f3c9cb06";
+ };
+ }
+
+ {
+ name = "_webassemblyjs_helper_wasm_section___helper_wasm_section_1.7.11.tgz";
+ path = fetchurl {
+ name = "_webassemblyjs_helper_wasm_section___helper_wasm_section_1.7.11.tgz";
+ url = "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.11.tgz";
+ sha1 = "9c9ac41ecf9fbcfffc96f6d2675e2de33811e68a";
+ };
+ }
+
+ {
+ name = "_webassemblyjs_ieee754___ieee754_1.7.11.tgz";
+ path = fetchurl {
+ name = "_webassemblyjs_ieee754___ieee754_1.7.11.tgz";
+ url = "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.7.11.tgz";
+ sha1 = "c95839eb63757a31880aaec7b6512d4191ac640b";
+ };
+ }
+
+ {
+ name = "_webassemblyjs_leb128___leb128_1.7.11.tgz";
+ path = fetchurl {
+ name = "_webassemblyjs_leb128___leb128_1.7.11.tgz";
+ url = "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.7.11.tgz";
+ sha1 = "d7267a1ee9c4594fd3f7e37298818ec65687db63";
+ };
+ }
+
+ {
+ name = "_webassemblyjs_utf8___utf8_1.7.11.tgz";
+ path = fetchurl {
+ name = "_webassemblyjs_utf8___utf8_1.7.11.tgz";
+ url = "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.7.11.tgz";
+ sha1 = "06d7218ea9fdc94a6793aa92208160db3d26ee82";
+ };
+ }
+
+ {
+ name = "_webassemblyjs_wasm_edit___wasm_edit_1.7.11.tgz";
+ path = fetchurl {
+ name = "_webassemblyjs_wasm_edit___wasm_edit_1.7.11.tgz";
+ url = "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.11.tgz";
+ sha1 = "8c74ca474d4f951d01dbae9bd70814ee22a82005";
+ };
+ }
+
+ {
+ name = "_webassemblyjs_wasm_gen___wasm_gen_1.7.11.tgz";
+ path = fetchurl {
+ name = "_webassemblyjs_wasm_gen___wasm_gen_1.7.11.tgz";
+ url = "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.11.tgz";
+ sha1 = "9bbba942f22375686a6fb759afcd7ac9c45da1a8";
+ };
+ }
+
+ {
+ name = "_webassemblyjs_wasm_opt___wasm_opt_1.7.11.tgz";
+ path = fetchurl {
+ name = "_webassemblyjs_wasm_opt___wasm_opt_1.7.11.tgz";
+ url = "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.11.tgz";
+ sha1 = "b331e8e7cef8f8e2f007d42c3a36a0580a7d6ca7";
+ };
+ }
+
+ {
+ name = "_webassemblyjs_wasm_parser___wasm_parser_1.7.11.tgz";
+ path = fetchurl {
+ name = "_webassemblyjs_wasm_parser___wasm_parser_1.7.11.tgz";
+ url = "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.11.tgz";
+ sha1 = "6e3d20fa6a3519f6b084ef9391ad58211efb0a1a";
+ };
+ }
+
+ {
+ name = "_webassemblyjs_wast_parser___wast_parser_1.7.11.tgz";
+ path = fetchurl {
+ name = "_webassemblyjs_wast_parser___wast_parser_1.7.11.tgz";
+ url = "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.7.11.tgz";
+ sha1 = "25bd117562ca8c002720ff8116ef9072d9ca869c";
+ };
+ }
+
+ {
+ name = "_webassemblyjs_wast_printer___wast_printer_1.7.11.tgz";
+ path = fetchurl {
+ name = "_webassemblyjs_wast_printer___wast_printer_1.7.11.tgz";
+ url = "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.7.11.tgz";
+ sha1 = "c4245b6de242cb50a2cc950174fdbf65c78d7813";
+ };
+ }
+
+ {
+ name = "_xtuc_ieee754___ieee754_1.2.0.tgz";
+ path = fetchurl {
+ name = "_xtuc_ieee754___ieee754_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz";
+ sha1 = "eef014a3145ae477a1cbc00cd1e552336dceb790";
+ };
+ }
+
+ {
+ name = "_xtuc_long___long_4.2.1.tgz";
+ path = fetchurl {
+ name = "_xtuc_long___long_4.2.1.tgz";
+ url = "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.1.tgz";
+ sha1 = "5c85d662f76fa1d34575766c5dcd6615abcd30d8";
+ };
+ }
+
+ {
+ name = "abab___abab_2.0.0.tgz";
+ path = fetchurl {
+ name = "abab___abab_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/abab/-/abab-2.0.0.tgz";
+ sha1 = "aba0ab4c5eee2d4c79d3487d85450fb2376ebb0f";
+ };
+ }
+
+ {
+ name = "abbrev___abbrev_1.1.1.tgz";
+ path = fetchurl {
+ name = "abbrev___abbrev_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz";
+ sha1 = "f8f2c887ad10bf67f634f005b6987fed3179aac8";
+ };
+ }
+
+ {
+ name = "accepts___accepts_1.3.5.tgz";
+ path = fetchurl {
+ name = "accepts___accepts_1.3.5.tgz";
+ url = "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz";
+ sha1 = "eb777df6011723a3b14e8a72c0805c8e86746bd2";
+ };
+ }
+
+ {
+ name = "acorn_dynamic_import___acorn_dynamic_import_3.0.0.tgz";
+ path = fetchurl {
+ name = "acorn_dynamic_import___acorn_dynamic_import_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz";
+ sha1 = "901ceee4c7faaef7e07ad2a47e890675da50a278";
+ };
+ }
+
+ {
+ name = "acorn_globals___acorn_globals_4.3.0.tgz";
+ path = fetchurl {
+ name = "acorn_globals___acorn_globals_4.3.0.tgz";
+ url = "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.0.tgz";
+ sha1 = "e3b6f8da3c1552a95ae627571f7dd6923bb54103";
+ };
+ }
+
+ {
+ name = "acorn_jsx___acorn_jsx_5.0.1.tgz";
+ path = fetchurl {
+ name = "acorn_jsx___acorn_jsx_5.0.1.tgz";
+ url = "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.0.1.tgz";
+ sha1 = "32a064fd925429216a09b141102bfdd185fae40e";
+ };
+ }
+
+ {
+ name = "acorn_walk___acorn_walk_6.1.1.tgz";
+ path = fetchurl {
+ name = "acorn_walk___acorn_walk_6.1.1.tgz";
+ url = "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.1.1.tgz";
+ sha1 = "d363b66f5fac5f018ff9c3a1e7b6f8e310cc3913";
+ };
+ }
+
+ {
+ name = "acorn___acorn_5.7.3.tgz";
+ path = fetchurl {
+ name = "acorn___acorn_5.7.3.tgz";
+ url = "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz";
+ sha1 = "67aa231bf8812974b85235a96771eb6bd07ea279";
+ };
+ }
+
+ {
+ name = "acorn___acorn_6.0.4.tgz";
+ path = fetchurl {
+ name = "acorn___acorn_6.0.4.tgz";
+ url = "https://registry.yarnpkg.com/acorn/-/acorn-6.0.4.tgz";
+ sha1 = "77377e7353b72ec5104550aa2d2097a2fd40b754";
+ };
+ }
+
+ {
+ name = "ajv_errors___ajv_errors_1.0.1.tgz";
+ path = fetchurl {
+ name = "ajv_errors___ajv_errors_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz";
+ sha1 = "f35986aceb91afadec4102fbd85014950cefa64d";
+ };
+ }
+
+ {
+ name = "ajv_keywords___ajv_keywords_3.2.0.tgz";
+ path = fetchurl {
+ name = "ajv_keywords___ajv_keywords_3.2.0.tgz";
+ url = "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.2.0.tgz";
+ sha1 = "e86b819c602cf8821ad637413698f1dec021847a";
+ };
+ }
+
+ {
+ name = "ajv___ajv_6.6.2.tgz";
+ path = fetchurl {
+ name = "ajv___ajv_6.6.2.tgz";
+ url = "https://registry.yarnpkg.com/ajv/-/ajv-6.6.2.tgz";
+ sha1 = "caceccf474bf3fc3ce3b147443711a24063cc30d";
+ };
+ }
+
+ {
+ name = "alphanum_sort___alphanum_sort_1.0.2.tgz";
+ path = fetchurl {
+ name = "alphanum_sort___alphanum_sort_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz";
+ sha1 = "97a1119649b211ad33691d9f9f486a8ec9fbe0a3";
+ };
+ }
+
+ {
+ name = "ansi_colors___ansi_colors_3.2.3.tgz";
+ path = fetchurl {
+ name = "ansi_colors___ansi_colors_3.2.3.tgz";
+ url = "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.3.tgz";
+ sha1 = "57d35b8686e851e2cc04c403f1c00203976a1813";
+ };
+ }
+
+ {
+ name = "ansi_escapes___ansi_escapes_3.1.0.tgz";
+ path = fetchurl {
+ name = "ansi_escapes___ansi_escapes_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.1.0.tgz";
+ sha1 = "f73207bb81207d75fd6c83f125af26eea378ca30";
+ };
+ }
+
+ {
+ name = "ansi_html___ansi_html_0.0.7.tgz";
+ path = fetchurl {
+ name = "ansi_html___ansi_html_0.0.7.tgz";
+ url = "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz";
+ sha1 = "813584021962a9e9e6fd039f940d12f56ca7859e";
+ };
+ }
+
+ {
+ name = "ansi_regex___ansi_regex_2.1.1.tgz";
+ path = fetchurl {
+ name = "ansi_regex___ansi_regex_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz";
+ sha1 = "c3b33ab5ee360d86e0e628f0468ae7ef27d654df";
+ };
+ }
+
+ {
+ name = "ansi_regex___ansi_regex_3.0.0.tgz";
+ path = fetchurl {
+ name = "ansi_regex___ansi_regex_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz";
+ sha1 = "ed0317c322064f79466c02966bddb605ab37d998";
+ };
+ }
+
+ {
+ name = "ansi_regex___ansi_regex_4.0.0.tgz";
+ path = fetchurl {
+ name = "ansi_regex___ansi_regex_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.0.0.tgz";
+ sha1 = "70de791edf021404c3fd615aa89118ae0432e5a9";
+ };
+ }
+
+ {
+ name = "ansi_styles___ansi_styles_2.2.1.tgz";
+ path = fetchurl {
+ name = "ansi_styles___ansi_styles_2.2.1.tgz";
+ url = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz";
+ sha1 = "b432dd3358b634cf75e1e4664368240533c1ddbe";
+ };
+ }
+
+ {
+ name = "ansi_styles___ansi_styles_3.2.1.tgz";
+ path = fetchurl {
+ name = "ansi_styles___ansi_styles_3.2.1.tgz";
+ url = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz";
+ sha1 = "41fbb20243e50b12be0f04b8dedbf07520ce841d";
+ };
+ }
+
+ {
+ name = "anymatch___anymatch_2.0.0.tgz";
+ path = fetchurl {
+ name = "anymatch___anymatch_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz";
+ sha1 = "bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb";
+ };
+ }
+
+ {
+ name = "append_transform___append_transform_0.4.0.tgz";
+ path = fetchurl {
+ name = "append_transform___append_transform_0.4.0.tgz";
+ url = "https://registry.yarnpkg.com/append-transform/-/append-transform-0.4.0.tgz";
+ sha1 = "d76ebf8ca94d276e247a36bad44a4b74ab611991";
+ };
+ }
+
+ {
+ name = "aproba___aproba_1.2.0.tgz";
+ path = fetchurl {
+ name = "aproba___aproba_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz";
+ sha1 = "6802e6264efd18c790a1b0d517f0f2627bf2c94a";
+ };
+ }
+
+ {
+ name = "are_we_there_yet___are_we_there_yet_1.1.5.tgz";
+ path = fetchurl {
+ name = "are_we_there_yet___are_we_there_yet_1.1.5.tgz";
+ url = "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz";
+ sha1 = "4b35c2944f062a8bfcda66410760350fe9ddfc21";
+ };
+ }
+
+ {
+ name = "argparse___argparse_1.0.10.tgz";
+ path = fetchurl {
+ name = "argparse___argparse_1.0.10.tgz";
+ url = "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz";
+ sha1 = "bcd6791ea5ae09725e17e5ad988134cd40b3d911";
+ };
+ }
+
+ {
+ name = "aria_query___aria_query_3.0.0.tgz";
+ path = fetchurl {
+ name = "aria_query___aria_query_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/aria-query/-/aria-query-3.0.0.tgz";
+ sha1 = "65b3fcc1ca1155a8c9ae64d6eee297f15d5133cc";
+ };
+ }
+
+ {
+ name = "arr_diff___arr_diff_2.0.0.tgz";
+ path = fetchurl {
+ name = "arr_diff___arr_diff_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz";
+ sha1 = "8f3b827f955a8bd669697e4a4256ac3ceae356cf";
+ };
+ }
+
+ {
+ name = "arr_diff___arr_diff_4.0.0.tgz";
+ path = fetchurl {
+ name = "arr_diff___arr_diff_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz";
+ sha1 = "d6461074febfec71e7e15235761a329a5dc7c520";
+ };
+ }
+
+ {
+ name = "arr_flatten___arr_flatten_1.1.0.tgz";
+ path = fetchurl {
+ name = "arr_flatten___arr_flatten_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz";
+ sha1 = "36048bbff4e7b47e136644316c99669ea5ae91f1";
+ };
+ }
+
+ {
+ name = "arr_union___arr_union_3.1.0.tgz";
+ path = fetchurl {
+ name = "arr_union___arr_union_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz";
+ sha1 = "e39b09aea9def866a8f206e288af63919bae39c4";
+ };
+ }
+
+ {
+ name = "array_equal___array_equal_1.0.0.tgz";
+ path = fetchurl {
+ name = "array_equal___array_equal_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz";
+ sha1 = "8c2a5ef2472fd9ea742b04c77a75093ba2757c93";
+ };
+ }
+
+ {
+ name = "array_flatten___array_flatten_1.1.1.tgz";
+ path = fetchurl {
+ name = "array_flatten___array_flatten_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz";
+ sha1 = "9a5f699051b1e7073328f2a008968b64ea2955d2";
+ };
+ }
+
+ {
+ name = "array_flatten___array_flatten_2.1.2.tgz";
+ path = fetchurl {
+ name = "array_flatten___array_flatten_2.1.2.tgz";
+ url = "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz";
+ sha1 = "24ef80a28c1a893617e2149b0c6d0d788293b099";
+ };
+ }
+
+ {
+ name = "array_includes___array_includes_3.0.3.tgz";
+ path = fetchurl {
+ name = "array_includes___array_includes_3.0.3.tgz";
+ url = "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz";
+ sha1 = "184b48f62d92d7452bb31b323165c7f8bd02266d";
+ };
+ }
+
+ {
+ name = "array_union___array_union_1.0.2.tgz";
+ path = fetchurl {
+ name = "array_union___array_union_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz";
+ sha1 = "9a34410e4f4e3da23dea375be5be70f24778ec39";
+ };
+ }
+
+ {
+ name = "array_uniq___array_uniq_1.0.3.tgz";
+ path = fetchurl {
+ name = "array_uniq___array_uniq_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz";
+ sha1 = "af6ac877a25cc7f74e058894753858dfdb24fdb6";
+ };
+ }
+
+ {
+ name = "array_unique___array_unique_0.2.1.tgz";
+ path = fetchurl {
+ name = "array_unique___array_unique_0.2.1.tgz";
+ url = "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz";
+ sha1 = "a1d97ccafcbc2625cc70fadceb36a50c58b01a53";
+ };
+ }
+
+ {
+ name = "array_unique___array_unique_0.3.2.tgz";
+ path = fetchurl {
+ name = "array_unique___array_unique_0.3.2.tgz";
+ url = "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz";
+ sha1 = "a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428";
+ };
+ }
+
+ {
+ name = "array.prototype.flat___array.prototype.flat_1.2.1.tgz";
+ path = fetchurl {
+ name = "array.prototype.flat___array.prototype.flat_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.1.tgz";
+ sha1 = "812db8f02cad24d3fab65dd67eabe3b8903494a4";
+ };
+ }
+
+ {
+ name = "arrify___arrify_1.0.1.tgz";
+ path = fetchurl {
+ name = "arrify___arrify_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz";
+ sha1 = "898508da2226f380df904728456849c1501a4b0d";
+ };
+ }
+
+ {
+ name = "asap___asap_2.0.6.tgz";
+ path = fetchurl {
+ name = "asap___asap_2.0.6.tgz";
+ url = "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz";
+ sha1 = "e50347611d7e690943208bbdafebcbc2fb866d46";
+ };
+ }
+
+ {
+ name = "asn1.js___asn1.js_4.10.1.tgz";
+ path = fetchurl {
+ name = "asn1.js___asn1.js_4.10.1.tgz";
+ url = "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz";
+ sha1 = "b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0";
+ };
+ }
+
+ {
+ name = "asn1___asn1_0.2.4.tgz";
+ path = fetchurl {
+ name = "asn1___asn1_0.2.4.tgz";
+ url = "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz";
+ sha1 = "8d2475dfab553bb33e77b54e59e880bb8ce23136";
+ };
+ }
+
+ {
+ name = "assert_plus___assert_plus_1.0.0.tgz";
+ path = fetchurl {
+ name = "assert_plus___assert_plus_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz";
+ sha1 = "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525";
+ };
+ }
+
+ {
+ name = "assert___assert_1.4.1.tgz";
+ path = fetchurl {
+ name = "assert___assert_1.4.1.tgz";
+ url = "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz";
+ sha1 = "99912d591836b5a6f5b345c0f07eefc08fc65d91";
+ };
+ }
+
+ {
+ name = "assign_symbols___assign_symbols_1.0.0.tgz";
+ path = fetchurl {
+ name = "assign_symbols___assign_symbols_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz";
+ sha1 = "59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367";
+ };
+ }
+
+ {
+ name = "ast_types_flow___ast_types_flow_0.0.7.tgz";
+ path = fetchurl {
+ name = "ast_types_flow___ast_types_flow_0.0.7.tgz";
+ url = "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz";
+ sha1 = "f70b735c6bca1a5c9c22d982c3e39e7feba3bdad";
+ };
+ }
+
+ {
+ name = "astral_regex___astral_regex_1.0.0.tgz";
+ path = fetchurl {
+ name = "astral_regex___astral_regex_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz";
+ sha1 = "6c8c3fb827dd43ee3918f27b82782ab7658a6fd9";
+ };
+ }
+
+ {
+ name = "async_each___async_each_1.0.1.tgz";
+ path = fetchurl {
+ name = "async_each___async_each_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz";
+ sha1 = "19d386a1d9edc6e7c1c85d388aedbcc56d33602d";
+ };
+ }
+
+ {
+ name = "async_limiter___async_limiter_1.0.0.tgz";
+ path = fetchurl {
+ name = "async_limiter___async_limiter_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz";
+ sha1 = "78faed8c3d074ab81f22b4e985d79e8738f720f8";
+ };
+ }
+
+ {
+ name = "async___async_1.5.2.tgz";
+ path = fetchurl {
+ name = "async___async_1.5.2.tgz";
+ url = "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz";
+ sha1 = "ec6a61ae56480c0c3cb241c95618e20892f9672a";
+ };
+ }
+
+ {
+ name = "async___async_2.6.1.tgz";
+ path = fetchurl {
+ name = "async___async_2.6.1.tgz";
+ url = "https://registry.yarnpkg.com/async/-/async-2.6.1.tgz";
+ sha1 = "b245a23ca71930044ec53fa46aa00a3e87c6a610";
+ };
+ }
+
+ {
+ name = "asynckit___asynckit_0.4.0.tgz";
+ path = fetchurl {
+ name = "asynckit___asynckit_0.4.0.tgz";
+ url = "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz";
+ sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79";
+ };
+ }
+
+ {
+ name = "atob___atob_2.1.2.tgz";
+ path = fetchurl {
+ name = "atob___atob_2.1.2.tgz";
+ url = "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz";
+ sha1 = "6d9517eb9e030d2436666651e86bd9f6f13533c9";
+ };
+ }
+
+ {
+ name = "autoprefixer___autoprefixer_9.4.3.tgz";
+ path = fetchurl {
+ name = "autoprefixer___autoprefixer_9.4.3.tgz";
+ url = "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.4.3.tgz";
+ sha1 = "c97384a8fd80477b78049163a91bbc725d9c41d9";
+ };
+ }
+
+ {
+ name = "aws_sign2___aws_sign2_0.7.0.tgz";
+ path = fetchurl {
+ name = "aws_sign2___aws_sign2_0.7.0.tgz";
+ url = "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz";
+ sha1 = "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8";
+ };
+ }
+
+ {
+ name = "aws4___aws4_1.8.0.tgz";
+ path = fetchurl {
+ name = "aws4___aws4_1.8.0.tgz";
+ url = "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz";
+ sha1 = "f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f";
+ };
+ }
+
+ {
+ name = "axios___axios_0.18.0.tgz";
+ path = fetchurl {
+ name = "axios___axios_0.18.0.tgz";
+ url = "https://registry.yarnpkg.com/axios/-/axios-0.18.0.tgz";
+ sha1 = "32d53e4851efdc0a11993b6cd000789d70c05102";
+ };
+ }
+
+ {
+ name = "axobject_query___axobject_query_2.0.2.tgz";
+ path = fetchurl {
+ name = "axobject_query___axobject_query_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.0.2.tgz";
+ sha1 = "ea187abe5b9002b377f925d8bf7d1c561adf38f9";
+ };
+ }
+
+ {
+ name = "babel_code_frame___babel_code_frame_6.26.0.tgz";
+ path = fetchurl {
+ name = "babel_code_frame___babel_code_frame_6.26.0.tgz";
+ url = "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz";
+ sha1 = "63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b";
+ };
+ }
+
+ {
+ name = "babel_core___babel_core_6.26.3.tgz";
+ path = fetchurl {
+ name = "babel_core___babel_core_6.26.3.tgz";
+ url = "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz";
+ sha1 = "b2e2f09e342d0f0c88e2f02e067794125e75c207";
+ };
+ }
+
+ {
+ name = "babel_core___babel_core_7.0.0_bridge.0.tgz";
+ path = fetchurl {
+ name = "babel_core___babel_core_7.0.0_bridge.0.tgz";
+ url = "https://registry.yarnpkg.com/babel-core/-/babel-core-7.0.0-bridge.0.tgz";
+ sha1 = "95a492ddd90f9b4e9a4a1da14eb335b87b634ece";
+ };
+ }
+
+ {
+ name = "babel_eslint___babel_eslint_10.0.1.tgz";
+ path = fetchurl {
+ name = "babel_eslint___babel_eslint_10.0.1.tgz";
+ url = "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.0.1.tgz";
+ sha1 = "919681dc099614cd7d31d45c8908695092a1faed";
+ };
+ }
+
+ {
+ name = "babel_generator___babel_generator_6.26.1.tgz";
+ path = fetchurl {
+ name = "babel_generator___babel_generator_6.26.1.tgz";
+ url = "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz";
+ sha1 = "1844408d3b8f0d35a404ea7ac180f087a601bd90";
+ };
+ }
+
+ {
+ name = "babel_helpers___babel_helpers_6.24.1.tgz";
+ path = fetchurl {
+ name = "babel_helpers___babel_helpers_6.24.1.tgz";
+ url = "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz";
+ sha1 = "3471de9caec388e5c850e597e58a26ddf37602b2";
+ };
+ }
+
+ {
+ name = "babel_jest___babel_jest_23.6.0.tgz";
+ path = fetchurl {
+ name = "babel_jest___babel_jest_23.6.0.tgz";
+ url = "https://registry.yarnpkg.com/babel-jest/-/babel-jest-23.6.0.tgz";
+ sha1 = "a644232366557a2240a0c083da6b25786185a2f1";
+ };
+ }
+
+ {
+ name = "babel_loader___babel_loader_8.0.4.tgz";
+ path = fetchurl {
+ name = "babel_loader___babel_loader_8.0.4.tgz";
+ url = "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.0.4.tgz";
+ sha1 = "7bbf20cbe4560629e2e41534147692d3fecbdce6";
+ };
+ }
+
+ {
+ name = "babel_messages___babel_messages_6.23.0.tgz";
+ path = fetchurl {
+ name = "babel_messages___babel_messages_6.23.0.tgz";
+ url = "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz";
+ sha1 = "f3cdf4703858035b2a2951c6ec5edf6c62f2630e";
+ };
+ }
+
+ {
+ name = "babel_plugin_istanbul___babel_plugin_istanbul_4.1.6.tgz";
+ path = fetchurl {
+ name = "babel_plugin_istanbul___babel_plugin_istanbul_4.1.6.tgz";
+ url = "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.6.tgz";
+ sha1 = "36c59b2192efce81c5b378321b74175add1c9a45";
+ };
+ }
+
+ {
+ name = "babel_plugin_jest_hoist___babel_plugin_jest_hoist_23.2.0.tgz";
+ path = fetchurl {
+ name = "babel_plugin_jest_hoist___babel_plugin_jest_hoist_23.2.0.tgz";
+ url = "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-23.2.0.tgz";
+ sha1 = "e61fae05a1ca8801aadee57a6d66b8cefaf44167";
+ };
+ }
+
+ {
+ name = "babel_plugin_lodash___babel_plugin_lodash_3.3.4.tgz";
+ path = fetchurl {
+ name = "babel_plugin_lodash___babel_plugin_lodash_3.3.4.tgz";
+ url = "https://registry.yarnpkg.com/babel-plugin-lodash/-/babel-plugin-lodash-3.3.4.tgz";
+ sha1 = "4f6844358a1340baed182adbeffa8df9967bc196";
+ };
+ }
+
+ {
+ name = "babel_plugin_macros___babel_plugin_macros_2.4.3.tgz";
+ path = fetchurl {
+ name = "babel_plugin_macros___babel_plugin_macros_2.4.3.tgz";
+ url = "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.4.3.tgz";
+ sha1 = "870345aa538d85f04b4614fea5922b55c45dd551";
+ };
+ }
+
+ {
+ name = "babel_plugin_preval___babel_plugin_preval_3.0.1.tgz";
+ path = fetchurl {
+ name = "babel_plugin_preval___babel_plugin_preval_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/babel-plugin-preval/-/babel-plugin-preval-3.0.1.tgz";
+ sha1 = "a26f9690114a864a54a5cbdf865496ebf541a9c3";
+ };
+ }
+
+ {
+ name = "babel_plugin_react_intl___babel_plugin_react_intl_3.0.1.tgz";
+ path = fetchurl {
+ name = "babel_plugin_react_intl___babel_plugin_react_intl_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/babel-plugin-react-intl/-/babel-plugin-react-intl-3.0.1.tgz";
+ sha1 = "4abc7fff04a7bbbb7034aec0a675713f2e52181c";
+ };
+ }
+
+ {
+ name = "babel_plugin_syntax_object_rest_spread___babel_plugin_syntax_object_rest_spread_6.13.0.tgz";
+ path = fetchurl {
+ name = "babel_plugin_syntax_object_rest_spread___babel_plugin_syntax_object_rest_spread_6.13.0.tgz";
+ url = "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz";
+ sha1 = "fd6536f2bce13836ffa3a5458c4903a597bb3bf5";
+ };
+ }
+
+ {
+ name = "babel_plugin_transform_react_remove_prop_types___babel_plugin_transform_react_remove_prop_types_0.4.21.tgz";
+ path = fetchurl {
+ name = "babel_plugin_transform_react_remove_prop_types___babel_plugin_transform_react_remove_prop_types_0.4.21.tgz";
+ url = "https://registry.yarnpkg.com/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.21.tgz";
+ sha1 = "0087938f4348cb751b3e5055a6b38f3c61b5231b";
+ };
+ }
+
+ {
+ name = "babel_preset_jest___babel_preset_jest_23.2.0.tgz";
+ path = fetchurl {
+ name = "babel_preset_jest___babel_preset_jest_23.2.0.tgz";
+ url = "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-23.2.0.tgz";
+ sha1 = "8ec7a03a138f001a1a8fb1e8113652bf1a55da46";
+ };
+ }
+
+ {
+ name = "babel_register___babel_register_6.26.0.tgz";
+ path = fetchurl {
+ name = "babel_register___babel_register_6.26.0.tgz";
+ url = "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz";
+ sha1 = "6ed021173e2fcb486d7acb45c6009a856f647071";
+ };
+ }
+
+ {
+ name = "babel_runtime___babel_runtime_6.26.0.tgz";
+ path = fetchurl {
+ name = "babel_runtime___babel_runtime_6.26.0.tgz";
+ url = "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz";
+ sha1 = "965c7058668e82b55d7bfe04ff2337bc8b5647fe";
+ };
+ }
+
+ {
+ name = "babel_template___babel_template_6.26.0.tgz";
+ path = fetchurl {
+ name = "babel_template___babel_template_6.26.0.tgz";
+ url = "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz";
+ sha1 = "de03e2d16396b069f46dd9fff8521fb1a0e35e02";
+ };
+ }
+
+ {
+ name = "babel_traverse___babel_traverse_6.26.0.tgz";
+ path = fetchurl {
+ name = "babel_traverse___babel_traverse_6.26.0.tgz";
+ url = "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz";
+ sha1 = "46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee";
+ };
+ }
+
+ {
+ name = "babel_types___babel_types_6.26.0.tgz";
+ path = fetchurl {
+ name = "babel_types___babel_types_6.26.0.tgz";
+ url = "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz";
+ sha1 = "a3b073f94ab49eb6fa55cd65227a334380632497";
+ };
+ }
+
+ {
+ name = "babylon___babylon_6.18.0.tgz";
+ path = fetchurl {
+ name = "babylon___babylon_6.18.0.tgz";
+ url = "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz";
+ sha1 = "af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3";
+ };
+ }
+
+ {
+ name = "backoff___backoff_2.5.0.tgz";
+ path = fetchurl {
+ name = "backoff___backoff_2.5.0.tgz";
+ url = "https://registry.yarnpkg.com/backoff/-/backoff-2.5.0.tgz";
+ sha1 = "f616eda9d3e4b66b8ca7fca79f695722c5f8e26f";
+ };
+ }
+
+ {
+ name = "balanced_match___balanced_match_1.0.0.tgz";
+ path = fetchurl {
+ name = "balanced_match___balanced_match_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz";
+ sha1 = "89b4d199ab2bee49de164ea02b89ce462d71b767";
+ };
+ }
+
+ {
+ name = "base64_js___base64_js_1.3.0.tgz";
+ path = fetchurl {
+ name = "base64_js___base64_js_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz";
+ sha1 = "cab1e6118f051095e58b5281aea8c1cd22bfc0e3";
+ };
+ }
+
+ {
+ name = "base___base_0.11.2.tgz";
+ path = fetchurl {
+ name = "base___base_0.11.2.tgz";
+ url = "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz";
+ sha1 = "7bde5ced145b6d551a90db87f83c558b4eb48a8f";
+ };
+ }
+
+ {
+ name = "batch___batch_0.6.1.tgz";
+ path = fetchurl {
+ name = "batch___batch_0.6.1.tgz";
+ url = "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz";
+ sha1 = "dc34314f4e679318093fc760272525f94bf25c16";
+ };
+ }
+
+ {
+ name = "bcrypt_pbkdf___bcrypt_pbkdf_1.0.2.tgz";
+ path = fetchurl {
+ name = "bcrypt_pbkdf___bcrypt_pbkdf_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz";
+ sha1 = "a4301d389b6a43f9b67ff3ca11a3f6637e360e9e";
+ };
+ }
+
+ {
+ name = "bfj___bfj_6.1.1.tgz";
+ path = fetchurl {
+ name = "bfj___bfj_6.1.1.tgz";
+ url = "https://registry.yarnpkg.com/bfj/-/bfj-6.1.1.tgz";
+ sha1 = "05a3b7784fbd72cfa3c22e56002ef99336516c48";
+ };
+ }
+
+ {
+ name = "big.js___big.js_3.2.0.tgz";
+ path = fetchurl {
+ name = "big.js___big.js_3.2.0.tgz";
+ url = "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz";
+ sha1 = "a5fc298b81b9e0dca2e458824784b65c52ba588e";
+ };
+ }
+
+ {
+ name = "big.js___big.js_5.2.2.tgz";
+ path = fetchurl {
+ name = "big.js___big.js_5.2.2.tgz";
+ url = "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz";
+ sha1 = "65f0af382f578bcdc742bd9c281e9cb2d7768328";
+ };
+ }
+
+ {
+ name = "binary_extensions___binary_extensions_1.12.0.tgz";
+ path = fetchurl {
+ name = "binary_extensions___binary_extensions_1.12.0.tgz";
+ url = "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.12.0.tgz";
+ sha1 = "c2d780f53d45bba8317a8902d4ceeaf3a6385b14";
+ };
+ }
+
+ {
+ name = "bluebird___bluebird_3.5.3.tgz";
+ path = fetchurl {
+ name = "bluebird___bluebird_3.5.3.tgz";
+ url = "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.3.tgz";
+ sha1 = "7d01c6f9616c9a51ab0f8c549a79dfe6ec33efa7";
+ };
+ }
+
+ {
+ name = "bn.js___bn.js_4.11.8.tgz";
+ path = fetchurl {
+ name = "bn.js___bn.js_4.11.8.tgz";
+ url = "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz";
+ sha1 = "2cde09eb5ee341f484746bb0309b3253b1b1442f";
+ };
+ }
+
+ {
+ name = "body_parser___body_parser_1.18.3.tgz";
+ path = fetchurl {
+ name = "body_parser___body_parser_1.18.3.tgz";
+ url = "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.3.tgz";
+ sha1 = "5b292198ffdd553b3a0f20ded0592b956955c8b4";
+ };
+ }
+
+ {
+ name = "bonjour___bonjour_3.5.0.tgz";
+ path = fetchurl {
+ name = "bonjour___bonjour_3.5.0.tgz";
+ url = "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz";
+ sha1 = "8e890a183d8ee9a2393b3844c691a42bcf7bc9f5";
+ };
+ }
+
+ {
+ name = "boolbase___boolbase_1.0.0.tgz";
+ path = fetchurl {
+ name = "boolbase___boolbase_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz";
+ sha1 = "68dff5fbe60c51eb37725ea9e3ed310dcc1e776e";
+ };
+ }
+
+ {
+ name = "brace_expansion___brace_expansion_1.1.11.tgz";
+ path = fetchurl {
+ name = "brace_expansion___brace_expansion_1.1.11.tgz";
+ url = "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz";
+ sha1 = "3c7fcbf529d87226f3d2f52b966ff5271eb441dd";
+ };
+ }
+
+ {
+ name = "braces___braces_1.8.5.tgz";
+ path = fetchurl {
+ name = "braces___braces_1.8.5.tgz";
+ url = "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz";
+ sha1 = "ba77962e12dff969d6b76711e914b737857bf6a7";
+ };
+ }
+
+ {
+ name = "braces___braces_2.3.2.tgz";
+ path = fetchurl {
+ name = "braces___braces_2.3.2.tgz";
+ url = "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz";
+ sha1 = "5979fd3f14cd531565e5fa2df1abfff1dfaee729";
+ };
+ }
+
+ {
+ name = "bricks.js___bricks.js_1.8.0.tgz";
+ path = fetchurl {
+ name = "bricks.js___bricks.js_1.8.0.tgz";
+ url = "https://registry.yarnpkg.com/bricks.js/-/bricks.js-1.8.0.tgz";
+ sha1 = "8fdeb3c0226af251f4d5727a7df7f9ac0092b4b2";
+ };
+ }
+
+ {
+ name = "brorand___brorand_1.1.0.tgz";
+ path = fetchurl {
+ name = "brorand___brorand_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz";
+ sha1 = "12c25efe40a45e3c323eb8675a0a0ce57b22371f";
+ };
+ }
+
+ {
+ name = "browser_process_hrtime___browser_process_hrtime_0.1.3.tgz";
+ path = fetchurl {
+ name = "browser_process_hrtime___browser_process_hrtime_0.1.3.tgz";
+ url = "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz";
+ sha1 = "616f00faef1df7ec1b5bf9cfe2bdc3170f26c7b4";
+ };
+ }
+
+ {
+ name = "browser_resolve___browser_resolve_1.11.3.tgz";
+ path = fetchurl {
+ name = "browser_resolve___browser_resolve_1.11.3.tgz";
+ url = "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz";
+ sha1 = "9b7cbb3d0f510e4cb86bdbd796124d28b5890af6";
+ };
+ }
+
+ {
+ name = "browserify_aes___browserify_aes_1.2.0.tgz";
+ path = fetchurl {
+ name = "browserify_aes___browserify_aes_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz";
+ sha1 = "326734642f403dabc3003209853bb70ad428ef48";
+ };
+ }
+
+ {
+ name = "browserify_cipher___browserify_cipher_1.0.1.tgz";
+ path = fetchurl {
+ name = "browserify_cipher___browserify_cipher_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz";
+ sha1 = "8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0";
+ };
+ }
+
+ {
+ name = "browserify_des___browserify_des_1.0.2.tgz";
+ path = fetchurl {
+ name = "browserify_des___browserify_des_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz";
+ sha1 = "3af4f1f59839403572f1c66204375f7a7f703e9c";
+ };
+ }
+
+ {
+ name = "browserify_rsa___browserify_rsa_4.0.1.tgz";
+ path = fetchurl {
+ name = "browserify_rsa___browserify_rsa_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz";
+ sha1 = "21e0abfaf6f2029cf2fafb133567a701d4135524";
+ };
+ }
+
+ {
+ name = "browserify_sign___browserify_sign_4.0.4.tgz";
+ path = fetchurl {
+ name = "browserify_sign___browserify_sign_4.0.4.tgz";
+ url = "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz";
+ sha1 = "aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298";
+ };
+ }
+
+ {
+ name = "browserify_zlib___browserify_zlib_0.2.0.tgz";
+ path = fetchurl {
+ name = "browserify_zlib___browserify_zlib_0.2.0.tgz";
+ url = "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz";
+ sha1 = "2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f";
+ };
+ }
+
+ {
+ name = "browserslist___browserslist_4.3.7.tgz";
+ path = fetchurl {
+ name = "browserslist___browserslist_4.3.7.tgz";
+ url = "https://registry.yarnpkg.com/browserslist/-/browserslist-4.3.7.tgz";
+ sha1 = "f1de479a6466ea47a0a26dcc725e7504817e624a";
+ };
+ }
+
+ {
+ name = "bser___bser_2.0.0.tgz";
+ path = fetchurl {
+ name = "bser___bser_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/bser/-/bser-2.0.0.tgz";
+ sha1 = "9ac78d3ed5d915804fd87acb158bc797147a1719";
+ };
+ }
+
+ {
+ name = "buffer_from___buffer_from_1.1.1.tgz";
+ path = fetchurl {
+ name = "buffer_from___buffer_from_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz";
+ sha1 = "32713bc028f75c02fdb710d7c7bcec1f2c6070ef";
+ };
+ }
+
+ {
+ name = "buffer_indexof___buffer_indexof_1.1.1.tgz";
+ path = fetchurl {
+ name = "buffer_indexof___buffer_indexof_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz";
+ sha1 = "52fabcc6a606d1a00302802648ef68f639da268c";
+ };
+ }
+
+ {
+ name = "buffer_writer___buffer_writer_1.0.1.tgz";
+ path = fetchurl {
+ name = "buffer_writer___buffer_writer_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/buffer-writer/-/buffer-writer-1.0.1.tgz";
+ sha1 = "22a936901e3029afcd7547eb4487ceb697a3bf08";
+ };
+ }
+
+ {
+ name = "buffer_xor___buffer_xor_1.0.3.tgz";
+ path = fetchurl {
+ name = "buffer_xor___buffer_xor_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz";
+ sha1 = "26e61ed1422fb70dd42e6e36729ed51d855fe8d9";
+ };
+ }
+
+ {
+ name = "buffer___buffer_4.9.1.tgz";
+ path = fetchurl {
+ name = "buffer___buffer_4.9.1.tgz";
+ url = "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz";
+ sha1 = "6d1bb601b07a4efced97094132093027c95bc298";
+ };
+ }
+
+ {
+ name = "builtin_modules___builtin_modules_1.1.1.tgz";
+ path = fetchurl {
+ name = "builtin_modules___builtin_modules_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz";
+ sha1 = "270f076c5a72c02f5b65a47df94c5fe3a278892f";
+ };
+ }
+
+ {
+ name = "builtin_status_codes___builtin_status_codes_3.0.0.tgz";
+ path = fetchurl {
+ name = "builtin_status_codes___builtin_status_codes_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz";
+ sha1 = "85982878e21b98e1c66425e03d0174788f569ee8";
+ };
+ }
+
+ {
+ name = "bytes___bytes_3.0.0.tgz";
+ path = fetchurl {
+ name = "bytes___bytes_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz";
+ sha1 = "d32815404d689699f85a4ea4fa8755dd13a96048";
+ };
+ }
+
+ {
+ name = "cacache___cacache_11.3.2.tgz";
+ path = fetchurl {
+ name = "cacache___cacache_11.3.2.tgz";
+ url = "https://registry.yarnpkg.com/cacache/-/cacache-11.3.2.tgz";
+ sha1 = "2d81e308e3d258ca38125b676b98b2ac9ce69bfa";
+ };
+ }
+
+ {
+ name = "cache_base___cache_base_1.0.1.tgz";
+ path = fetchurl {
+ name = "cache_base___cache_base_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz";
+ sha1 = "0a7f46416831c8b662ee36fe4e7c59d76f666ab2";
+ };
+ }
+
+ {
+ name = "caller_callsite___caller_callsite_2.0.0.tgz";
+ path = fetchurl {
+ name = "caller_callsite___caller_callsite_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz";
+ sha1 = "847e0fce0a223750a9a027c54b33731ad3154134";
+ };
+ }
+
+ {
+ name = "caller_path___caller_path_0.1.0.tgz";
+ path = fetchurl {
+ name = "caller_path___caller_path_0.1.0.tgz";
+ url = "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz";
+ sha1 = "94085ef63581ecd3daa92444a8fe94e82577751f";
+ };
+ }
+
+ {
+ name = "caller_path___caller_path_2.0.0.tgz";
+ path = fetchurl {
+ name = "caller_path___caller_path_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz";
+ sha1 = "468f83044e369ab2010fac5f06ceee15bb2cb1f4";
+ };
+ }
+
+ {
+ name = "callsites___callsites_0.2.0.tgz";
+ path = fetchurl {
+ name = "callsites___callsites_0.2.0.tgz";
+ url = "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz";
+ sha1 = "afab96262910a7f33c19a5775825c69f34e350ca";
+ };
+ }
+
+ {
+ name = "callsites___callsites_2.0.0.tgz";
+ path = fetchurl {
+ name = "callsites___callsites_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz";
+ sha1 = "06eb84f00eea413da86affefacbffb36093b3c50";
+ };
+ }
+
+ {
+ name = "camelcase___camelcase_4.1.0.tgz";
+ path = fetchurl {
+ name = "camelcase___camelcase_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz";
+ sha1 = "d545635be1e33c542649c69173e5de6acfae34dd";
+ };
+ }
+
+ {
+ name = "camelcase___camelcase_5.0.0.tgz";
+ path = fetchurl {
+ name = "camelcase___camelcase_5.0.0.tgz";
+ url = "https://registry.yarnpkg.com/camelcase/-/camelcase-5.0.0.tgz";
+ sha1 = "03295527d58bd3cd4aa75363f35b2e8d97be2f42";
+ };
+ }
+
+ {
+ name = "caniuse_api___caniuse_api_3.0.0.tgz";
+ path = fetchurl {
+ name = "caniuse_api___caniuse_api_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz";
+ sha1 = "5e4d90e2274961d46291997df599e3ed008ee4c0";
+ };
+ }
+
+ {
+ name = "caniuse_lite___caniuse_lite_1.0.30000926.tgz";
+ path = fetchurl {
+ name = "caniuse_lite___caniuse_lite_1.0.30000926.tgz";
+ url = "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000926.tgz";
+ sha1 = "4361a99d818ca6e521dbe89a732de62a194a789c";
+ };
+ }
+
+ {
+ name = "capture_exit___capture_exit_1.2.0.tgz";
+ path = fetchurl {
+ name = "capture_exit___capture_exit_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/capture-exit/-/capture-exit-1.2.0.tgz";
+ sha1 = "1c5fcc489fd0ab00d4f1ac7ae1072e3173fbab6f";
+ };
+ }
+
+ {
+ name = "caseless___caseless_0.12.0.tgz";
+ path = fetchurl {
+ name = "caseless___caseless_0.12.0.tgz";
+ url = "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz";
+ sha1 = "1b681c21ff84033c826543090689420d187151dc";
+ };
+ }
+
+ {
+ name = "chalk___chalk_1.1.3.tgz";
+ path = fetchurl {
+ name = "chalk___chalk_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz";
+ sha1 = "a8115c55e4a702fe4d150abd3872822a7e09fc98";
+ };
+ }
+
+ {
+ name = "chalk___chalk_2.4.1.tgz";
+ path = fetchurl {
+ name = "chalk___chalk_2.4.1.tgz";
+ url = "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz";
+ sha1 = "18c49ab16a037b6eb0152cc83e3471338215b66e";
+ };
+ }
+
+ {
+ name = "chardet___chardet_0.7.0.tgz";
+ path = fetchurl {
+ name = "chardet___chardet_0.7.0.tgz";
+ url = "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz";
+ sha1 = "90094849f0937f2eedc2425d0d28a9e5f0cbad9e";
+ };
+ }
+
+ {
+ name = "check_types___check_types_7.4.0.tgz";
+ path = fetchurl {
+ name = "check_types___check_types_7.4.0.tgz";
+ url = "https://registry.yarnpkg.com/check-types/-/check-types-7.4.0.tgz";
+ sha1 = "0378ec1b9616ec71f774931a3c6516fad8c152f4";
+ };
+ }
+
+ {
+ name = "cheerio___cheerio_1.0.0_rc.2.tgz";
+ path = fetchurl {
+ name = "cheerio___cheerio_1.0.0_rc.2.tgz";
+ url = "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.2.tgz";
+ sha1 = "4b9f53a81b27e4d5dac31c0ffd0cfa03cc6830db";
+ };
+ }
+
+ {
+ name = "chokidar___chokidar_2.0.4.tgz";
+ path = fetchurl {
+ name = "chokidar___chokidar_2.0.4.tgz";
+ url = "https://registry.yarnpkg.com/chokidar/-/chokidar-2.0.4.tgz";
+ sha1 = "356ff4e2b0e8e43e322d18a372460bbcf3accd26";
+ };
+ }
+
+ {
+ name = "chownr___chownr_1.1.1.tgz";
+ path = fetchurl {
+ name = "chownr___chownr_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz";
+ sha1 = "54726b8b8fff4df053c42187e801fb4412df1494";
+ };
+ }
+
+ {
+ name = "chrome_trace_event___chrome_trace_event_1.0.0.tgz";
+ path = fetchurl {
+ name = "chrome_trace_event___chrome_trace_event_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.0.tgz";
+ sha1 = "45a91bd2c20c9411f0963b5aaeb9a1b95e09cc48";
+ };
+ }
+
+ {
+ name = "ci_info___ci_info_1.6.0.tgz";
+ path = fetchurl {
+ name = "ci_info___ci_info_1.6.0.tgz";
+ url = "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz";
+ sha1 = "2ca20dbb9ceb32d4524a683303313f0304b1e497";
+ };
+ }
+
+ {
+ name = "cipher_base___cipher_base_1.0.4.tgz";
+ path = fetchurl {
+ name = "cipher_base___cipher_base_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz";
+ sha1 = "8760e4ecc272f4c363532f926d874aae2c1397de";
+ };
+ }
+
+ {
+ name = "circular_json___circular_json_0.3.3.tgz";
+ path = fetchurl {
+ name = "circular_json___circular_json_0.3.3.tgz";
+ url = "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz";
+ sha1 = "815c99ea84f6809529d2f45791bdf82711352d66";
+ };
+ }
+
+ {
+ name = "class_utils___class_utils_0.3.6.tgz";
+ path = fetchurl {
+ name = "class_utils___class_utils_0.3.6.tgz";
+ url = "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz";
+ sha1 = "f93369ae8b9a7ce02fd41faad0ca83033190c463";
+ };
+ }
+
+ {
+ name = "classnames___classnames_2.2.6.tgz";
+ path = fetchurl {
+ name = "classnames___classnames_2.2.6.tgz";
+ url = "https://registry.yarnpkg.com/classnames/-/classnames-2.2.6.tgz";
+ sha1 = "43935bffdd291f326dad0a205309b38d00f650ce";
+ };
+ }
+
+ {
+ name = "cli_cursor___cli_cursor_2.1.0.tgz";
+ path = fetchurl {
+ name = "cli_cursor___cli_cursor_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz";
+ sha1 = "b35dac376479facc3e94747d41d0d0f5238ffcb5";
+ };
+ }
+
+ {
+ name = "cli_width___cli_width_2.2.0.tgz";
+ path = fetchurl {
+ name = "cli_width___cli_width_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz";
+ sha1 = "ff19ede8a9a5e579324147b0c11f0fbcbabed639";
+ };
+ }
+
+ {
+ name = "cliui___cliui_3.2.0.tgz";
+ path = fetchurl {
+ name = "cliui___cliui_3.2.0.tgz";
+ url = "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz";
+ sha1 = "120601537a916d29940f934da3b48d585a39213d";
+ };
+ }
+
+ {
+ name = "cliui___cliui_4.1.0.tgz";
+ path = fetchurl {
+ name = "cliui___cliui_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz";
+ sha1 = "348422dbe82d800b3022eef4f6ac10bf2e4d1b49";
+ };
+ }
+
+ {
+ name = "clone_deep___clone_deep_2.0.2.tgz";
+ path = fetchurl {
+ name = "clone_deep___clone_deep_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/clone-deep/-/clone-deep-2.0.2.tgz";
+ sha1 = "00db3a1e173656730d1188c3d6aced6d7ea97713";
+ };
+ }
+
+ {
+ name = "co___co_4.6.0.tgz";
+ path = fetchurl {
+ name = "co___co_4.6.0.tgz";
+ url = "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz";
+ sha1 = "6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184";
+ };
+ }
+
+ {
+ name = "coa___coa_2.0.2.tgz";
+ path = fetchurl {
+ name = "coa___coa_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz";
+ sha1 = "43f6c21151b4ef2bf57187db0d73de229e3e7ec3";
+ };
+ }
+
+ {
+ name = "code_point_at___code_point_at_1.1.0.tgz";
+ path = fetchurl {
+ name = "code_point_at___code_point_at_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz";
+ sha1 = "0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77";
+ };
+ }
+
+ {
+ name = "collection_visit___collection_visit_1.0.0.tgz";
+ path = fetchurl {
+ name = "collection_visit___collection_visit_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz";
+ sha1 = "4bc0373c164bc3291b4d368c829cf1a80a59dca0";
+ };
+ }
+
+ {
+ name = "color_convert___color_convert_1.9.3.tgz";
+ path = fetchurl {
+ name = "color_convert___color_convert_1.9.3.tgz";
+ url = "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz";
+ sha1 = "bb71850690e1f136567de629d2d5471deda4c1e8";
+ };
+ }
+
+ {
+ name = "color_name___color_name_1.1.3.tgz";
+ path = fetchurl {
+ name = "color_name___color_name_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz";
+ sha1 = "a7d0558bd89c42f795dd42328f740831ca53bc25";
+ };
+ }
+
+ {
+ name = "color_name___color_name_1.1.4.tgz";
+ path = fetchurl {
+ name = "color_name___color_name_1.1.4.tgz";
+ url = "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz";
+ sha1 = "c2a09a87acbde69543de6f63fa3995c826c536a2";
+ };
+ }
+
+ {
+ name = "color_string___color_string_1.5.3.tgz";
+ path = fetchurl {
+ name = "color_string___color_string_1.5.3.tgz";
+ url = "https://registry.yarnpkg.com/color-string/-/color-string-1.5.3.tgz";
+ sha1 = "c9bbc5f01b58b5492f3d6857459cb6590ce204cc";
+ };
+ }
+
+ {
+ name = "color___color_3.1.0.tgz";
+ path = fetchurl {
+ name = "color___color_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/color/-/color-3.1.0.tgz";
+ sha1 = "d8e9fb096732875774c84bf922815df0308d0ffc";
+ };
+ }
+
+ {
+ name = "colors___colors_1.1.2.tgz";
+ path = fetchurl {
+ name = "colors___colors_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz";
+ sha1 = "168a4701756b6a7f51a12ce0c97bfa28c084ed63";
+ };
+ }
+
+ {
+ name = "combined_stream___combined_stream_1.0.7.tgz";
+ path = fetchurl {
+ name = "combined_stream___combined_stream_1.0.7.tgz";
+ url = "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.7.tgz";
+ sha1 = "2d1d24317afb8abe95d6d2c0b07b57813539d828";
+ };
+ }
+
+ {
+ name = "commander___commander_2.19.0.tgz";
+ path = fetchurl {
+ name = "commander___commander_2.19.0.tgz";
+ url = "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz";
+ sha1 = "f6198aa84e5b83c46054b94ddedbfed5ee9ff12a";
+ };
+ }
+
+ {
+ name = "commander___commander_2.17.1.tgz";
+ path = fetchurl {
+ name = "commander___commander_2.17.1.tgz";
+ url = "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz";
+ sha1 = "bd77ab7de6de94205ceacc72f1716d29f20a77bf";
+ };
+ }
+
+ {
+ name = "commondir___commondir_1.0.1.tgz";
+ path = fetchurl {
+ name = "commondir___commondir_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz";
+ sha1 = "ddd800da0c66127393cca5950ea968a3aaf1253b";
+ };
+ }
+
+ {
+ name = "component_emitter___component_emitter_1.2.1.tgz";
+ path = fetchurl {
+ name = "component_emitter___component_emitter_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz";
+ sha1 = "137918d6d78283f7df7a6b7c5a63e140e69425e6";
+ };
+ }
+
+ {
+ name = "compressible___compressible_2.0.15.tgz";
+ path = fetchurl {
+ name = "compressible___compressible_2.0.15.tgz";
+ url = "https://registry.yarnpkg.com/compressible/-/compressible-2.0.15.tgz";
+ sha1 = "857a9ab0a7e5a07d8d837ed43fe2defff64fe212";
+ };
+ }
+
+ {
+ name = "compression_webpack_plugin___compression_webpack_plugin_2.0.0.tgz";
+ path = fetchurl {
+ name = "compression_webpack_plugin___compression_webpack_plugin_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/compression-webpack-plugin/-/compression-webpack-plugin-2.0.0.tgz";
+ sha1 = "46476350c1eb27f783dccc79ac2f709baa2cffbc";
+ };
+ }
+
+ {
+ name = "compression___compression_1.7.3.tgz";
+ path = fetchurl {
+ name = "compression___compression_1.7.3.tgz";
+ url = "https://registry.yarnpkg.com/compression/-/compression-1.7.3.tgz";
+ sha1 = "27e0e176aaf260f7f2c2813c3e440adb9f1993db";
+ };
+ }
+
+ {
+ name = "concat_map___concat_map_0.0.1.tgz";
+ path = fetchurl {
+ name = "concat_map___concat_map_0.0.1.tgz";
+ url = "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz";
+ sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b";
+ };
+ }
+
+ {
+ name = "concat_stream___concat_stream_1.6.2.tgz";
+ path = fetchurl {
+ name = "concat_stream___concat_stream_1.6.2.tgz";
+ url = "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz";
+ sha1 = "904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34";
+ };
+ }
+
+ {
+ name = "connect_history_api_fallback___connect_history_api_fallback_1.5.0.tgz";
+ path = fetchurl {
+ name = "connect_history_api_fallback___connect_history_api_fallback_1.5.0.tgz";
+ url = "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz";
+ sha1 = "b06873934bc5e344fef611a196a6faae0aee015a";
+ };
+ }
+
+ {
+ name = "console_browserify___console_browserify_1.1.0.tgz";
+ path = fetchurl {
+ name = "console_browserify___console_browserify_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz";
+ sha1 = "f0241c45730a9fc6323b206dbf38edc741d0bb10";
+ };
+ }
+
+ {
+ name = "console_control_strings___console_control_strings_1.1.0.tgz";
+ path = fetchurl {
+ name = "console_control_strings___console_control_strings_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz";
+ sha1 = "3d7cf4464db6446ea644bf4b39507f9851008e8e";
+ };
+ }
+
+ {
+ name = "constants_browserify___constants_browserify_1.0.0.tgz";
+ path = fetchurl {
+ name = "constants_browserify___constants_browserify_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz";
+ sha1 = "c20b96d8c617748aaf1c16021760cd27fcb8cb75";
+ };
+ }
+
+ {
+ name = "contains_path___contains_path_0.1.0.tgz";
+ path = fetchurl {
+ name = "contains_path___contains_path_0.1.0.tgz";
+ url = "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz";
+ sha1 = "fe8cf184ff6670b6baef01a9d4861a5cbec4120a";
+ };
+ }
+
+ {
+ name = "content_disposition___content_disposition_0.5.2.tgz";
+ path = fetchurl {
+ name = "content_disposition___content_disposition_0.5.2.tgz";
+ url = "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz";
+ sha1 = "0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4";
+ };
+ }
+
+ {
+ name = "content_type___content_type_1.0.4.tgz";
+ path = fetchurl {
+ name = "content_type___content_type_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz";
+ sha1 = "e138cc75e040c727b1966fe5e5f8c9aee256fe3b";
+ };
+ }
+
+ {
+ name = "convert_source_map___convert_source_map_1.6.0.tgz";
+ path = fetchurl {
+ name = "convert_source_map___convert_source_map_1.6.0.tgz";
+ url = "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz";
+ sha1 = "51b537a8c43e0f04dec1993bffcdd504e758ac20";
+ };
+ }
+
+ {
+ name = "cookie_signature___cookie_signature_1.0.6.tgz";
+ path = fetchurl {
+ name = "cookie_signature___cookie_signature_1.0.6.tgz";
+ url = "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz";
+ sha1 = "e303a882b342cc3ee8ca513a79999734dab3ae2c";
+ };
+ }
+
+ {
+ name = "cookie___cookie_0.3.1.tgz";
+ path = fetchurl {
+ name = "cookie___cookie_0.3.1.tgz";
+ url = "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz";
+ sha1 = "e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb";
+ };
+ }
+
+ {
+ name = "copy_concurrently___copy_concurrently_1.0.5.tgz";
+ path = fetchurl {
+ name = "copy_concurrently___copy_concurrently_1.0.5.tgz";
+ url = "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz";
+ sha1 = "92297398cae34937fcafd6ec8139c18051f0b5e0";
+ };
+ }
+
+ {
+ name = "copy_descriptor___copy_descriptor_0.1.1.tgz";
+ path = fetchurl {
+ name = "copy_descriptor___copy_descriptor_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz";
+ sha1 = "676f6eb3c39997c2ee1ac3a924fd6124748f578d";
+ };
+ }
+
+ {
+ name = "core_js___core_js_1.2.7.tgz";
+ path = fetchurl {
+ name = "core_js___core_js_1.2.7.tgz";
+ url = "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz";
+ sha1 = "652294c14651db28fa93bd2d5ff2983a4f08c636";
+ };
+ }
+
+ {
+ name = "core_js___core_js_2.6.1.tgz";
+ path = fetchurl {
+ name = "core_js___core_js_2.6.1.tgz";
+ url = "https://registry.yarnpkg.com/core-js/-/core-js-2.6.1.tgz";
+ sha1 = "87416ae817de957a3f249b3b5ca475d4aaed6042";
+ };
+ }
+
+ {
+ name = "core_util_is___core_util_is_1.0.2.tgz";
+ path = fetchurl {
+ name = "core_util_is___core_util_is_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz";
+ sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7";
+ };
+ }
+
+ {
+ name = "cosmiconfig___cosmiconfig_4.0.0.tgz";
+ path = fetchurl {
+ name = "cosmiconfig___cosmiconfig_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-4.0.0.tgz";
+ sha1 = "760391549580bbd2df1e562bc177b13c290972dc";
+ };
+ }
+
+ {
+ name = "cosmiconfig___cosmiconfig_5.0.7.tgz";
+ path = fetchurl {
+ name = "cosmiconfig___cosmiconfig_5.0.7.tgz";
+ url = "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.0.7.tgz";
+ sha1 = "39826b292ee0d78eda137dfa3173bd1c21a43b04";
+ };
+ }
+
+ {
+ name = "create_ecdh___create_ecdh_4.0.3.tgz";
+ path = fetchurl {
+ name = "create_ecdh___create_ecdh_4.0.3.tgz";
+ url = "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz";
+ sha1 = "c9111b6f33045c4697f144787f9254cdc77c45ff";
+ };
+ }
+
+ {
+ name = "create_emotion___create_emotion_10.0.5.tgz";
+ path = fetchurl {
+ name = "create_emotion___create_emotion_10.0.5.tgz";
+ url = "https://registry.yarnpkg.com/create-emotion/-/create-emotion-10.0.5.tgz";
+ sha1 = "22487f19b59a7ed10144f808289eadffebcfab06";
+ };
+ }
+
+ {
+ name = "create_hash___create_hash_1.2.0.tgz";
+ path = fetchurl {
+ name = "create_hash___create_hash_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz";
+ sha1 = "889078af11a63756bcfb59bd221996be3a9ef196";
+ };
+ }
+
+ {
+ name = "create_hmac___create_hmac_1.1.7.tgz";
+ path = fetchurl {
+ name = "create_hmac___create_hmac_1.1.7.tgz";
+ url = "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz";
+ sha1 = "69170c78b3ab957147b2b8b04572e47ead2243ff";
+ };
+ }
+
+ {
+ name = "cross_env___cross_env_5.2.0.tgz";
+ path = fetchurl {
+ name = "cross_env___cross_env_5.2.0.tgz";
+ url = "https://registry.yarnpkg.com/cross-env/-/cross-env-5.2.0.tgz";
+ sha1 = "6ecd4c015d5773e614039ee529076669b9d126f2";
+ };
+ }
+
+ {
+ name = "cross_spawn___cross_spawn_5.1.0.tgz";
+ path = fetchurl {
+ name = "cross_spawn___cross_spawn_5.1.0.tgz";
+ url = "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz";
+ sha1 = "e8bd0efee58fcff6f8f94510a0a554bbfa235449";
+ };
+ }
+
+ {
+ name = "cross_spawn___cross_spawn_6.0.5.tgz";
+ path = fetchurl {
+ name = "cross_spawn___cross_spawn_6.0.5.tgz";
+ url = "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz";
+ sha1 = "4a5ec7c64dfae22c3a14124dbacdee846d80cbc4";
+ };
+ }
+
+ {
+ name = "crypto_browserify___crypto_browserify_3.12.0.tgz";
+ path = fetchurl {
+ name = "crypto_browserify___crypto_browserify_3.12.0.tgz";
+ url = "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz";
+ sha1 = "396cf9f3137f03e4b8e532c58f698254e00f80ec";
+ };
+ }
+
+ {
+ name = "css_color_names___css_color_names_0.0.4.tgz";
+ path = fetchurl {
+ name = "css_color_names___css_color_names_0.0.4.tgz";
+ url = "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz";
+ sha1 = "808adc2e79cf84738069b646cb20ec27beb629e0";
+ };
+ }
+
+ {
+ name = "css_declaration_sorter___css_declaration_sorter_4.0.1.tgz";
+ path = fetchurl {
+ name = "css_declaration_sorter___css_declaration_sorter_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz";
+ sha1 = "c198940f63a76d7e36c1e71018b001721054cb22";
+ };
+ }
+
+ {
+ name = "css_font_size_keywords___css_font_size_keywords_1.0.0.tgz";
+ path = fetchurl {
+ name = "css_font_size_keywords___css_font_size_keywords_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/css-font-size-keywords/-/css-font-size-keywords-1.0.0.tgz";
+ sha1 = "854875ace9aca6a8d2ee0d345a44aae9bb6db6cb";
+ };
+ }
+
+ {
+ name = "css_font_stretch_keywords___css_font_stretch_keywords_1.0.1.tgz";
+ path = fetchurl {
+ name = "css_font_stretch_keywords___css_font_stretch_keywords_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/css-font-stretch-keywords/-/css-font-stretch-keywords-1.0.1.tgz";
+ sha1 = "50cee9b9ba031fb5c952d4723139f1e107b54b10";
+ };
+ }
+
+ {
+ name = "css_font_style_keywords___css_font_style_keywords_1.0.1.tgz";
+ path = fetchurl {
+ name = "css_font_style_keywords___css_font_style_keywords_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/css-font-style-keywords/-/css-font-style-keywords-1.0.1.tgz";
+ sha1 = "5c3532813f63b4a1de954d13cea86ab4333409e4";
+ };
+ }
+
+ {
+ name = "css_font_weight_keywords___css_font_weight_keywords_1.0.0.tgz";
+ path = fetchurl {
+ name = "css_font_weight_keywords___css_font_weight_keywords_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/css-font-weight-keywords/-/css-font-weight-keywords-1.0.0.tgz";
+ sha1 = "9bc04671ac85bc724b574ef5d3ac96b0d604fd97";
+ };
+ }
+
+ {
+ name = "css_global_keywords___css_global_keywords_1.0.1.tgz";
+ path = fetchurl {
+ name = "css_global_keywords___css_global_keywords_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/css-global-keywords/-/css-global-keywords-1.0.1.tgz";
+ sha1 = "72a9aea72796d019b1d2a3252de4e5aaa37e4a69";
+ };
+ }
+
+ {
+ name = "css_list_helpers___css_list_helpers_1.0.1.tgz";
+ path = fetchurl {
+ name = "css_list_helpers___css_list_helpers_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/css-list-helpers/-/css-list-helpers-1.0.1.tgz";
+ sha1 = "fff57192202db83240c41686f919e449a7024f7d";
+ };
+ }
+
+ {
+ name = "css_loader___css_loader_2.1.0.tgz";
+ path = fetchurl {
+ name = "css_loader___css_loader_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/css-loader/-/css-loader-2.1.0.tgz";
+ sha1 = "42952ac22bca5d076978638e9813abce49b8f0cc";
+ };
+ }
+
+ {
+ name = "css_select_base_adapter___css_select_base_adapter_0.1.1.tgz";
+ path = fetchurl {
+ name = "css_select_base_adapter___css_select_base_adapter_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz";
+ sha1 = "3b2ff4972cc362ab88561507a95408a1432135d7";
+ };
+ }
+
+ {
+ name = "css_select___css_select_2.0.2.tgz";
+ path = fetchurl {
+ name = "css_select___css_select_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/css-select/-/css-select-2.0.2.tgz";
+ sha1 = "ab4386cec9e1f668855564b17c3733b43b2a5ede";
+ };
+ }
+
+ {
+ name = "css_select___css_select_1.2.0.tgz";
+ path = fetchurl {
+ name = "css_select___css_select_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz";
+ sha1 = "2b3a110539c5355f1cd8d314623e870b121ec858";
+ };
+ }
+
+ {
+ name = "css_selector_tokenizer___css_selector_tokenizer_0.7.1.tgz";
+ path = fetchurl {
+ name = "css_selector_tokenizer___css_selector_tokenizer_0.7.1.tgz";
+ url = "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.1.tgz";
+ sha1 = "a177271a8bca5019172f4f891fc6eed9cbf68d5d";
+ };
+ }
+
+ {
+ name = "css_system_font_keywords___css_system_font_keywords_1.0.0.tgz";
+ path = fetchurl {
+ name = "css_system_font_keywords___css_system_font_keywords_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/css-system-font-keywords/-/css-system-font-keywords-1.0.0.tgz";
+ sha1 = "85c6f086aba4eb32c571a3086affc434b84823ed";
+ };
+ }
+
+ {
+ name = "css_tree___css_tree_1.0.0_alpha.28.tgz";
+ path = fetchurl {
+ name = "css_tree___css_tree_1.0.0_alpha.28.tgz";
+ url = "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.28.tgz";
+ sha1 = "8e8968190d886c9477bc8d61e96f61af3f7ffa7f";
+ };
+ }
+
+ {
+ name = "css_tree___css_tree_1.0.0_alpha.29.tgz";
+ path = fetchurl {
+ name = "css_tree___css_tree_1.0.0_alpha.29.tgz";
+ url = "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.29.tgz";
+ sha1 = "3fa9d4ef3142cbd1c301e7664c1f352bd82f5a39";
+ };
+ }
+
+ {
+ name = "css_unit_converter___css_unit_converter_1.1.1.tgz";
+ path = fetchurl {
+ name = "css_unit_converter___css_unit_converter_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/css-unit-converter/-/css-unit-converter-1.1.1.tgz";
+ sha1 = "d9b9281adcfd8ced935bdbaba83786897f64e996";
+ };
+ }
+
+ {
+ name = "css_url_regex___css_url_regex_1.1.0.tgz";
+ path = fetchurl {
+ name = "css_url_regex___css_url_regex_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/css-url-regex/-/css-url-regex-1.1.0.tgz";
+ sha1 = "83834230cc9f74c457de59eebd1543feeb83b7ec";
+ };
+ }
+
+ {
+ name = "css_what___css_what_2.1.2.tgz";
+ path = fetchurl {
+ name = "css_what___css_what_2.1.2.tgz";
+ url = "https://registry.yarnpkg.com/css-what/-/css-what-2.1.2.tgz";
+ sha1 = "c0876d9d0480927d7d4920dcd72af3595649554d";
+ };
+ }
+
+ {
+ name = "cssesc___cssesc_0.1.0.tgz";
+ path = fetchurl {
+ name = "cssesc___cssesc_0.1.0.tgz";
+ url = "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz";
+ sha1 = "c814903e45623371a0477b40109aaafbeeaddbb4";
+ };
+ }
+
+ {
+ name = "cssesc___cssesc_2.0.0.tgz";
+ path = fetchurl {
+ name = "cssesc___cssesc_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/cssesc/-/cssesc-2.0.0.tgz";
+ sha1 = "3b13bd1bb1cb36e1bcb5a4dcd27f54c5dcb35703";
+ };
+ }
+
+ {
+ name = "cssnano_preset_default___cssnano_preset_default_4.0.6.tgz";
+ path = fetchurl {
+ name = "cssnano_preset_default___cssnano_preset_default_4.0.6.tgz";
+ url = "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.6.tgz";
+ sha1 = "92379e2a6db4a91c0ea727f5f556eeac693eab6a";
+ };
+ }
+
+ {
+ name = "cssnano_util_get_arguments___cssnano_util_get_arguments_4.0.0.tgz";
+ path = fetchurl {
+ name = "cssnano_util_get_arguments___cssnano_util_get_arguments_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz";
+ sha1 = "ed3a08299f21d75741b20f3b81f194ed49cc150f";
+ };
+ }
+
+ {
+ name = "cssnano_util_get_match___cssnano_util_get_match_4.0.0.tgz";
+ path = fetchurl {
+ name = "cssnano_util_get_match___cssnano_util_get_match_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz";
+ sha1 = "c0e4ca07f5386bb17ec5e52250b4f5961365156d";
+ };
+ }
+
+ {
+ name = "cssnano_util_raw_cache___cssnano_util_raw_cache_4.0.1.tgz";
+ path = fetchurl {
+ name = "cssnano_util_raw_cache___cssnano_util_raw_cache_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz";
+ sha1 = "b26d5fd5f72a11dfe7a7846fb4c67260f96bf282";
+ };
+ }
+
+ {
+ name = "cssnano_util_same_parent___cssnano_util_same_parent_4.0.1.tgz";
+ path = fetchurl {
+ name = "cssnano_util_same_parent___cssnano_util_same_parent_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz";
+ sha1 = "574082fb2859d2db433855835d9a8456ea18bbf3";
+ };
+ }
+
+ {
+ name = "cssnano___cssnano_4.1.8.tgz";
+ path = fetchurl {
+ name = "cssnano___cssnano_4.1.8.tgz";
+ url = "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.8.tgz";
+ sha1 = "8014989679d5fd42491e4499a521dbfb85c95fd1";
+ };
+ }
+
+ {
+ name = "csso___csso_3.5.1.tgz";
+ path = fetchurl {
+ name = "csso___csso_3.5.1.tgz";
+ url = "https://registry.yarnpkg.com/csso/-/csso-3.5.1.tgz";
+ sha1 = "7b9eb8be61628973c1b261e169d2f024008e758b";
+ };
+ }
+
+ {
+ name = "cssom___cssom_0.3.4.tgz";
+ path = fetchurl {
+ name = "cssom___cssom_0.3.4.tgz";
+ url = "https://registry.yarnpkg.com/cssom/-/cssom-0.3.4.tgz";
+ sha1 = "8cd52e8a3acfd68d3aed38ee0a640177d2f9d797";
+ };
+ }
+
+ {
+ name = "cssstyle___cssstyle_1.1.1.tgz";
+ path = fetchurl {
+ name = "cssstyle___cssstyle_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.1.1.tgz";
+ sha1 = "18b038a9c44d65f7a8e428a653b9f6fe42faf5fb";
+ };
+ }
+
+ {
+ name = "csstype___csstype_2.6.0.tgz";
+ path = fetchurl {
+ name = "csstype___csstype_2.6.0.tgz";
+ url = "https://registry.yarnpkg.com/csstype/-/csstype-2.6.0.tgz";
+ sha1 = "6cf7b2fa7fc32aab3d746802c244d4eda71371a2";
+ };
+ }
+
+ {
+ name = "cyclist___cyclist_0.2.2.tgz";
+ path = fetchurl {
+ name = "cyclist___cyclist_0.2.2.tgz";
+ url = "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz";
+ sha1 = "1b33792e11e914a2fd6d6ed6447464444e5fa640";
+ };
+ }
+
+ {
+ name = "d___d_1.0.0.tgz";
+ path = fetchurl {
+ name = "d___d_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz";
+ sha1 = "754bb5bfe55451da69a58b94d45f4c5b0462d58f";
+ };
+ }
+
+ {
+ name = "damerau_levenshtein___damerau_levenshtein_1.0.4.tgz";
+ path = fetchurl {
+ name = "damerau_levenshtein___damerau_levenshtein_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.4.tgz";
+ sha1 = "03191c432cb6eea168bb77f3a55ffdccb8978514";
+ };
+ }
+
+ {
+ name = "dashdash___dashdash_1.14.1.tgz";
+ path = fetchurl {
+ name = "dashdash___dashdash_1.14.1.tgz";
+ url = "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz";
+ sha1 = "853cfa0f7cbe2fed5de20326b8dd581035f6e2f0";
+ };
+ }
+
+ {
+ name = "data_urls___data_urls_1.1.0.tgz";
+ path = fetchurl {
+ name = "data_urls___data_urls_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/data-urls/-/data-urls-1.1.0.tgz";
+ sha1 = "15ee0582baa5e22bb59c77140da8f9c76963bbfe";
+ };
+ }
+
+ {
+ name = "date_now___date_now_0.1.4.tgz";
+ path = fetchurl {
+ name = "date_now___date_now_0.1.4.tgz";
+ url = "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz";
+ sha1 = "eaf439fd4d4848ad74e5cc7dbef200672b9e345b";
+ };
+ }
+
+ {
+ name = "debug___debug_2.6.9.tgz";
+ path = fetchurl {
+ name = "debug___debug_2.6.9.tgz";
+ url = "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz";
+ sha1 = "5d128515df134ff327e90a4c93f4e077a536341f";
+ };
+ }
+
+ {
+ name = "debug___debug_3.1.0.tgz";
+ path = fetchurl {
+ name = "debug___debug_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz";
+ sha1 = "5bb5a0672628b64149566ba16819e61518c67261";
+ };
+ }
+
+ {
+ name = "debug___debug_3.2.6.tgz";
+ path = fetchurl {
+ name = "debug___debug_3.2.6.tgz";
+ url = "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz";
+ sha1 = "e83d17de16d8a7efb7717edbe5fb10135eee629b";
+ };
+ }
+
+ {
+ name = "debug___debug_4.1.1.tgz";
+ path = fetchurl {
+ name = "debug___debug_4.1.1.tgz";
+ url = "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz";
+ sha1 = "3b72260255109c6b589cee050f1d516139664791";
+ };
+ }
+
+ {
+ name = "decamelize___decamelize_1.2.0.tgz";
+ path = fetchurl {
+ name = "decamelize___decamelize_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz";
+ sha1 = "f6534d15148269b20352e7bee26f501f9a191290";
+ };
+ }
+
+ {
+ name = "decamelize___decamelize_2.0.0.tgz";
+ path = fetchurl {
+ name = "decamelize___decamelize_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/decamelize/-/decamelize-2.0.0.tgz";
+ sha1 = "656d7bbc8094c4c788ea53c5840908c9c7d063c7";
+ };
+ }
+
+ {
+ name = "decode_uri_component___decode_uri_component_0.2.0.tgz";
+ path = fetchurl {
+ name = "decode_uri_component___decode_uri_component_0.2.0.tgz";
+ url = "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz";
+ sha1 = "eb3913333458775cb84cd1a1fae062106bb87545";
+ };
+ }
+
+ {
+ name = "deep_equal___deep_equal_1.0.1.tgz";
+ path = fetchurl {
+ name = "deep_equal___deep_equal_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz";
+ sha1 = "f5d260292b660e084eff4cdbc9f08ad3247448b5";
+ };
+ }
+
+ {
+ name = "deep_extend___deep_extend_0.5.1.tgz";
+ path = fetchurl {
+ name = "deep_extend___deep_extend_0.5.1.tgz";
+ url = "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.5.1.tgz";
+ sha1 = "b894a9dd90d3023fbf1c55a394fb858eb2066f1f";
+ };
+ }
+
+ {
+ name = "deep_extend___deep_extend_0.6.0.tgz";
+ path = fetchurl {
+ name = "deep_extend___deep_extend_0.6.0.tgz";
+ url = "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz";
+ sha1 = "c4fa7c95404a17a9c3e8ca7e1537312b736330ac";
+ };
+ }
+
+ {
+ name = "deep_is___deep_is_0.1.3.tgz";
+ path = fetchurl {
+ name = "deep_is___deep_is_0.1.3.tgz";
+ url = "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz";
+ sha1 = "b369d6fb5dbc13eecf524f91b070feedc357cf34";
+ };
+ }
+
+ {
+ name = "default_gateway___default_gateway_2.7.2.tgz";
+ path = fetchurl {
+ name = "default_gateway___default_gateway_2.7.2.tgz";
+ url = "https://registry.yarnpkg.com/default-gateway/-/default-gateway-2.7.2.tgz";
+ sha1 = "b7ef339e5e024b045467af403d50348db4642d0f";
+ };
+ }
+
+ {
+ name = "default_require_extensions___default_require_extensions_1.0.0.tgz";
+ path = fetchurl {
+ name = "default_require_extensions___default_require_extensions_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-1.0.0.tgz";
+ sha1 = "f37ea15d3e13ffd9b437d33e1a75b5fb97874cb8";
+ };
+ }
+
+ {
+ name = "define_properties___define_properties_1.1.3.tgz";
+ path = fetchurl {
+ name = "define_properties___define_properties_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz";
+ sha1 = "cf88da6cbee26fe6db7094f61d870cbd84cee9f1";
+ };
+ }
+
+ {
+ name = "define_property___define_property_0.2.5.tgz";
+ path = fetchurl {
+ name = "define_property___define_property_0.2.5.tgz";
+ url = "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz";
+ sha1 = "c35b1ef918ec3c990f9a5bc57be04aacec5c8116";
+ };
+ }
+
+ {
+ name = "define_property___define_property_1.0.0.tgz";
+ path = fetchurl {
+ name = "define_property___define_property_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz";
+ sha1 = "769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6";
+ };
+ }
+
+ {
+ name = "define_property___define_property_2.0.2.tgz";
+ path = fetchurl {
+ name = "define_property___define_property_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz";
+ sha1 = "d459689e8d654ba77e02a817f8710d702cb16e9d";
+ };
+ }
+
+ {
+ name = "del___del_3.0.0.tgz";
+ path = fetchurl {
+ name = "del___del_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/del/-/del-3.0.0.tgz";
+ sha1 = "53ecf699ffcbcb39637691ab13baf160819766e5";
+ };
+ }
+
+ {
+ name = "delayed_stream___delayed_stream_1.0.0.tgz";
+ path = fetchurl {
+ name = "delayed_stream___delayed_stream_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz";
+ sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619";
+ };
+ }
+
+ {
+ name = "delegates___delegates_1.0.0.tgz";
+ path = fetchurl {
+ name = "delegates___delegates_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz";
+ sha1 = "84c6e159b81904fdca59a0ef44cd870d31250f9a";
+ };
+ }
+
+ {
+ name = "depd___depd_1.1.2.tgz";
+ path = fetchurl {
+ name = "depd___depd_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz";
+ sha1 = "9bcd52e14c097763e749b274c4346ed2e560b5a9";
+ };
+ }
+
+ {
+ name = "des.js___des.js_1.0.0.tgz";
+ path = fetchurl {
+ name = "des.js___des.js_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz";
+ sha1 = "c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc";
+ };
+ }
+
+ {
+ name = "destroy___destroy_1.0.4.tgz";
+ path = fetchurl {
+ name = "destroy___destroy_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz";
+ sha1 = "978857442c44749e4206613e37946205826abd80";
+ };
+ }
+
+ {
+ name = "detect_indent___detect_indent_4.0.0.tgz";
+ path = fetchurl {
+ name = "detect_indent___detect_indent_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz";
+ sha1 = "f76d064352cdf43a1cb6ce619c4ee3a9475de208";
+ };
+ }
+
+ {
+ name = "detect_libc___detect_libc_1.0.3.tgz";
+ path = fetchurl {
+ name = "detect_libc___detect_libc_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz";
+ sha1 = "fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b";
+ };
+ }
+
+ {
+ name = "detect_newline___detect_newline_2.1.0.tgz";
+ path = fetchurl {
+ name = "detect_newline___detect_newline_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz";
+ sha1 = "f41f1c10be4b00e87b5f13da680759f2c5bfd3e2";
+ };
+ }
+
+ {
+ name = "detect_node___detect_node_2.0.4.tgz";
+ path = fetchurl {
+ name = "detect_node___detect_node_2.0.4.tgz";
+ url = "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz";
+ sha1 = "014ee8f8f669c5c58023da64b8179c083a28c46c";
+ };
+ }
+
+ {
+ name = "detect_passive_events___detect_passive_events_1.0.4.tgz";
+ path = fetchurl {
+ name = "detect_passive_events___detect_passive_events_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/detect-passive-events/-/detect-passive-events-1.0.4.tgz";
+ sha1 = "6ed477e6e5bceb79079735dcd357789d37f9a91a";
+ };
+ }
+
+ {
+ name = "diff___diff_3.5.0.tgz";
+ path = fetchurl {
+ name = "diff___diff_3.5.0.tgz";
+ url = "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz";
+ sha1 = "800c0dd1e0a8bfbc95835c202ad220fe317e5a12";
+ };
+ }
+
+ {
+ name = "diffie_hellman___diffie_hellman_5.0.3.tgz";
+ path = fetchurl {
+ name = "diffie_hellman___diffie_hellman_5.0.3.tgz";
+ url = "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz";
+ sha1 = "40e8ee98f55a2149607146921c63e1ae5f3d2875";
+ };
+ }
+
+ {
+ name = "discontinuous_range___discontinuous_range_1.0.0.tgz";
+ path = fetchurl {
+ name = "discontinuous_range___discontinuous_range_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/discontinuous-range/-/discontinuous-range-1.0.0.tgz";
+ sha1 = "e38331f0844bba49b9a9cb71c771585aab1bc65a";
+ };
+ }
+
+ {
+ name = "dns_equal___dns_equal_1.0.0.tgz";
+ path = fetchurl {
+ name = "dns_equal___dns_equal_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz";
+ sha1 = "b39e7f1da6eb0a75ba9c17324b34753c47e0654d";
+ };
+ }
+
+ {
+ name = "dns_packet___dns_packet_1.3.1.tgz";
+ path = fetchurl {
+ name = "dns_packet___dns_packet_1.3.1.tgz";
+ url = "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.1.tgz";
+ sha1 = "12aa426981075be500b910eedcd0b47dd7deda5a";
+ };
+ }
+
+ {
+ name = "dns_txt___dns_txt_2.0.2.tgz";
+ path = fetchurl {
+ name = "dns_txt___dns_txt_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz";
+ sha1 = "b91d806f5d27188e4ab3e7d107d881a1cc4642b6";
+ };
+ }
+
+ {
+ name = "doctrine___doctrine_1.5.0.tgz";
+ path = fetchurl {
+ name = "doctrine___doctrine_1.5.0.tgz";
+ url = "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz";
+ sha1 = "379dce730f6166f76cefa4e6707a159b02c5a6fa";
+ };
+ }
+
+ {
+ name = "doctrine___doctrine_2.1.0.tgz";
+ path = fetchurl {
+ name = "doctrine___doctrine_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz";
+ sha1 = "5cd01fc101621b42c4cd7f5d1a66243716d3f39d";
+ };
+ }
+
+ {
+ name = "dom_helpers___dom_helpers_3.4.0.tgz";
+ path = fetchurl {
+ name = "dom_helpers___dom_helpers_3.4.0.tgz";
+ url = "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-3.4.0.tgz";
+ sha1 = "e9b369700f959f62ecde5a6babde4bccd9169af8";
+ };
+ }
+
+ {
+ name = "dom_serializer___dom_serializer_0.1.0.tgz";
+ path = fetchurl {
+ name = "dom_serializer___dom_serializer_0.1.0.tgz";
+ url = "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz";
+ sha1 = "073c697546ce0780ce23be4a28e293e40bc30c82";
+ };
+ }
+
+ {
+ name = "domain_browser___domain_browser_1.2.0.tgz";
+ path = fetchurl {
+ name = "domain_browser___domain_browser_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz";
+ sha1 = "3d31f50191a6749dd1375a7f522e823d42e54eda";
+ };
+ }
+
+ {
+ name = "domelementtype___domelementtype_1.3.1.tgz";
+ path = fetchurl {
+ name = "domelementtype___domelementtype_1.3.1.tgz";
+ url = "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz";
+ sha1 = "d048c44b37b0d10a7f2a3d5fee3f4333d790481f";
+ };
+ }
+
+ {
+ name = "domelementtype___domelementtype_1.1.3.tgz";
+ path = fetchurl {
+ name = "domelementtype___domelementtype_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz";
+ sha1 = "bd28773e2642881aec51544924299c5cd822185b";
+ };
+ }
+
+ {
+ name = "domexception___domexception_1.0.1.tgz";
+ path = fetchurl {
+ name = "domexception___domexception_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz";
+ sha1 = "937442644ca6a31261ef36e3ec677fe805582c90";
+ };
+ }
+
+ {
+ name = "domhandler___domhandler_2.4.2.tgz";
+ path = fetchurl {
+ name = "domhandler___domhandler_2.4.2.tgz";
+ url = "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz";
+ sha1 = "8805097e933d65e85546f726d60f5eb88b44f803";
+ };
+ }
+
+ {
+ name = "domutils___domutils_1.5.1.tgz";
+ path = fetchurl {
+ name = "domutils___domutils_1.5.1.tgz";
+ url = "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz";
+ sha1 = "dcd8488a26f563d61079e48c9f7b7e32373682cf";
+ };
+ }
+
+ {
+ name = "domutils___domutils_1.7.0.tgz";
+ path = fetchurl {
+ name = "domutils___domutils_1.7.0.tgz";
+ url = "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz";
+ sha1 = "56ea341e834e06e6748af7a1cb25da67ea9f8c2a";
+ };
+ }
+
+ {
+ name = "dot_prop___dot_prop_4.2.0.tgz";
+ path = fetchurl {
+ name = "dot_prop___dot_prop_4.2.0.tgz";
+ url = "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz";
+ sha1 = "1f19e0c2e1aa0e32797c49799f2837ac6af69c57";
+ };
+ }
+
+ {
+ name = "dotenv___dotenv_6.2.0.tgz";
+ path = fetchurl {
+ name = "dotenv___dotenv_6.2.0.tgz";
+ url = "https://registry.yarnpkg.com/dotenv/-/dotenv-6.2.0.tgz";
+ sha1 = "941c0410535d942c8becf28d3f357dbd9d476064";
+ };
+ }
+
+ {
+ name = "double_ended_queue___double_ended_queue_2.1.0_0.tgz";
+ path = fetchurl {
+ name = "double_ended_queue___double_ended_queue_2.1.0_0.tgz";
+ url = "https://registry.yarnpkg.com/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz";
+ sha1 = "103d3527fd31528f40188130c841efdd78264e5c";
+ };
+ }
+
+ {
+ name = "duplexer___duplexer_0.1.1.tgz";
+ path = fetchurl {
+ name = "duplexer___duplexer_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz";
+ sha1 = "ace6ff808c1ce66b57d1ebf97977acb02334cfc1";
+ };
+ }
+
+ {
+ name = "duplexify___duplexify_3.6.1.tgz";
+ path = fetchurl {
+ name = "duplexify___duplexify_3.6.1.tgz";
+ url = "https://registry.yarnpkg.com/duplexify/-/duplexify-3.6.1.tgz";
+ sha1 = "b1a7a29c4abfd639585efaecce80d666b1e34125";
+ };
+ }
+
+ {
+ name = "ecc_jsbn___ecc_jsbn_0.1.2.tgz";
+ path = fetchurl {
+ name = "ecc_jsbn___ecc_jsbn_0.1.2.tgz";
+ url = "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz";
+ sha1 = "3a83a904e54353287874c564b7549386849a98c9";
+ };
+ }
+
+ {
+ name = "ee_first___ee_first_1.1.1.tgz";
+ path = fetchurl {
+ name = "ee_first___ee_first_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz";
+ sha1 = "590c61156b0ae2f4f0255732a158b266bc56b21d";
+ };
+ }
+
+ {
+ name = "ejs___ejs_2.6.1.tgz";
+ path = fetchurl {
+ name = "ejs___ejs_2.6.1.tgz";
+ url = "https://registry.yarnpkg.com/ejs/-/ejs-2.6.1.tgz";
+ sha1 = "498ec0d495655abc6f23cd61868d926464071aa0";
+ };
+ }
+
+ {
+ name = "electron_to_chromium___electron_to_chromium_1.3.96.tgz";
+ path = fetchurl {
+ name = "electron_to_chromium___electron_to_chromium_1.3.96.tgz";
+ url = "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.96.tgz";
+ sha1 = "25770ec99b8b07706dedf3a5f43fa50cb54c4f9a";
+ };
+ }
+
+ {
+ name = "elliptic___elliptic_6.4.1.tgz";
+ path = fetchurl {
+ name = "elliptic___elliptic_6.4.1.tgz";
+ url = "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.1.tgz";
+ sha1 = "c2d0b7776911b86722c632c3c06c60f2f819939a";
+ };
+ }
+
+ {
+ name = "https___codeload.github.com_Gargron_emoji_mart_tar.gz_ff00dc470b5b2d9f145a6d6e977a54de5df2b4c9";
+ path = fetchurl {
+ name = "https___codeload.github.com_Gargron_emoji_mart_tar.gz_ff00dc470b5b2d9f145a6d6e977a54de5df2b4c9";
+ url = "https://codeload.github.com/Gargron/emoji-mart/tar.gz/ff00dc470b5b2d9f145a6d6e977a54de5df2b4c9";
+ sha1 = "4255dc41fa7df9c3a02c1595f058e248bc37b784";
+ };
+ }
+
+ {
+ name = "emoji_regex___emoji_regex_6.5.1.tgz";
+ path = fetchurl {
+ name = "emoji_regex___emoji_regex_6.5.1.tgz";
+ url = "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-6.5.1.tgz";
+ sha1 = "9baea929b155565c11ea41c6626eaa65cef992c2";
+ };
+ }
+
+ {
+ name = "emojis_list___emojis_list_2.1.0.tgz";
+ path = fetchurl {
+ name = "emojis_list___emojis_list_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz";
+ sha1 = "4daa4d9db00f9819880c79fa457ae5b09a1fd389";
+ };
+ }
+
+ {
+ name = "encodeurl___encodeurl_1.0.2.tgz";
+ path = fetchurl {
+ name = "encodeurl___encodeurl_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz";
+ sha1 = "ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59";
+ };
+ }
+
+ {
+ name = "encoding___encoding_0.1.12.tgz";
+ path = fetchurl {
+ name = "encoding___encoding_0.1.12.tgz";
+ url = "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz";
+ sha1 = "538b66f3ee62cd1ab51ec323829d1f9480c74beb";
+ };
+ }
+
+ {
+ name = "end_of_stream___end_of_stream_1.4.1.tgz";
+ path = fetchurl {
+ name = "end_of_stream___end_of_stream_1.4.1.tgz";
+ url = "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz";
+ sha1 = "ed29634d19baba463b6ce6b80a37213eab71ec43";
+ };
+ }
+
+ {
+ name = "enhanced_resolve___enhanced_resolve_4.1.0.tgz";
+ path = fetchurl {
+ name = "enhanced_resolve___enhanced_resolve_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz";
+ sha1 = "41c7e0bfdfe74ac1ffe1e57ad6a5c6c9f3742a7f";
+ };
+ }
+
+ {
+ name = "entities___entities_1.1.2.tgz";
+ path = fetchurl {
+ name = "entities___entities_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz";
+ sha1 = "bdfa735299664dfafd34529ed4f8522a275fea56";
+ };
+ }
+
+ {
+ name = "enzyme_adapter_react_16___enzyme_adapter_react_16_1.7.1.tgz";
+ path = fetchurl {
+ name = "enzyme_adapter_react_16___enzyme_adapter_react_16_1.7.1.tgz";
+ url = "https://registry.yarnpkg.com/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.7.1.tgz";
+ sha1 = "c37c4cb0fd75e88a063154a7a88096474914496a";
+ };
+ }
+
+ {
+ name = "enzyme_adapter_utils___enzyme_adapter_utils_1.9.0.tgz";
+ path = fetchurl {
+ name = "enzyme_adapter_utils___enzyme_adapter_utils_1.9.0.tgz";
+ url = "https://registry.yarnpkg.com/enzyme-adapter-utils/-/enzyme-adapter-utils-1.9.0.tgz";
+ sha1 = "3997c20f3387fdcd932b155b3740829ea10aa86c";
+ };
+ }
+
+ {
+ name = "enzyme___enzyme_3.8.0.tgz";
+ path = fetchurl {
+ name = "enzyme___enzyme_3.8.0.tgz";
+ url = "https://registry.yarnpkg.com/enzyme/-/enzyme-3.8.0.tgz";
+ sha1 = "646d2d5d0798cb98fdec39afcee8a53237b47ad5";
+ };
+ }
+
+ {
+ name = "errno___errno_0.1.7.tgz";
+ path = fetchurl {
+ name = "errno___errno_0.1.7.tgz";
+ url = "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz";
+ sha1 = "4684d71779ad39af177e3f007996f7c67c852618";
+ };
+ }
+
+ {
+ name = "error_ex___error_ex_1.3.2.tgz";
+ path = fetchurl {
+ name = "error_ex___error_ex_1.3.2.tgz";
+ url = "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz";
+ sha1 = "b4ac40648107fdcdcfae242f428bea8a14d4f1bf";
+ };
+ }
+
+ {
+ name = "es_abstract___es_abstract_1.12.0.tgz";
+ path = fetchurl {
+ name = "es_abstract___es_abstract_1.12.0.tgz";
+ url = "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.12.0.tgz";
+ sha1 = "9dbbdd27c6856f0001421ca18782d786bf8a6165";
+ };
+ }
+
+ {
+ name = "es_to_primitive___es_to_primitive_1.2.0.tgz";
+ path = fetchurl {
+ name = "es_to_primitive___es_to_primitive_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz";
+ sha1 = "edf72478033456e8dda8ef09e00ad9650707f377";
+ };
+ }
+
+ {
+ name = "es5_ext___es5_ext_0.10.46.tgz";
+ path = fetchurl {
+ name = "es5_ext___es5_ext_0.10.46.tgz";
+ url = "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.46.tgz";
+ sha1 = "efd99f67c5a7ec789baa3daa7f79870388f7f572";
+ };
+ }
+
+ {
+ name = "es6_iterator___es6_iterator_2.0.3.tgz";
+ path = fetchurl {
+ name = "es6_iterator___es6_iterator_2.0.3.tgz";
+ url = "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz";
+ sha1 = "a7de889141a05a94b0854403b2d0a0fbfa98f3b7";
+ };
+ }
+
+ {
+ name = "es6_symbol___es6_symbol_3.1.1.tgz";
+ path = fetchurl {
+ name = "es6_symbol___es6_symbol_3.1.1.tgz";
+ url = "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz";
+ sha1 = "bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77";
+ };
+ }
+
+ {
+ name = "escape_html___escape_html_1.0.3.tgz";
+ path = fetchurl {
+ name = "escape_html___escape_html_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz";
+ sha1 = "0258eae4d3d0c0974de1c169188ef0051d1d1988";
+ };
+ }
+
+ {
+ name = "escape_string_regexp___escape_string_regexp_1.0.5.tgz";
+ path = fetchurl {
+ name = "escape_string_regexp___escape_string_regexp_1.0.5.tgz";
+ url = "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz";
+ sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4";
+ };
+ }
+
+ {
+ name = "escodegen___escodegen_1.11.0.tgz";
+ path = fetchurl {
+ name = "escodegen___escodegen_1.11.0.tgz";
+ url = "https://registry.yarnpkg.com/escodegen/-/escodegen-1.11.0.tgz";
+ sha1 = "b27a9389481d5bfd5bec76f7bb1eb3f8f4556589";
+ };
+ }
+
+ {
+ name = "eslint_import_resolver_node___eslint_import_resolver_node_0.3.2.tgz";
+ path = fetchurl {
+ name = "eslint_import_resolver_node___eslint_import_resolver_node_0.3.2.tgz";
+ url = "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz";
+ sha1 = "58f15fb839b8d0576ca980413476aab2472db66a";
+ };
+ }
+
+ {
+ name = "eslint_module_utils___eslint_module_utils_2.2.0.tgz";
+ path = fetchurl {
+ name = "eslint_module_utils___eslint_module_utils_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz";
+ sha1 = "b270362cd88b1a48ad308976ce7fa54e98411746";
+ };
+ }
+
+ {
+ name = "eslint_plugin_import___eslint_plugin_import_2.14.0.tgz";
+ path = fetchurl {
+ name = "eslint_plugin_import___eslint_plugin_import_2.14.0.tgz";
+ url = "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.14.0.tgz";
+ sha1 = "6b17626d2e3e6ad52cfce8807a845d15e22111a8";
+ };
+ }
+
+ {
+ name = "eslint_plugin_jsx_a11y___eslint_plugin_jsx_a11y_6.1.2.tgz";
+ path = fetchurl {
+ name = "eslint_plugin_jsx_a11y___eslint_plugin_jsx_a11y_6.1.2.tgz";
+ url = "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.1.2.tgz";
+ sha1 = "69bca4890b36dcf0fe16dd2129d2d88b98f33f88";
+ };
+ }
+
+ {
+ name = "eslint_plugin_promise___eslint_plugin_promise_4.0.1.tgz";
+ path = fetchurl {
+ name = "eslint_plugin_promise___eslint_plugin_promise_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-4.0.1.tgz";
+ sha1 = "2d074b653f35a23d1ba89d8e976a985117d1c6a2";
+ };
+ }
+
+ {
+ name = "eslint_plugin_react___eslint_plugin_react_7.12.1.tgz";
+ path = fetchurl {
+ name = "eslint_plugin_react___eslint_plugin_react_7.12.1.tgz";
+ url = "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.12.1.tgz";
+ sha1 = "b9c4639f72469ff317ac31e3bd630d22d0dbf8f4";
+ };
+ }
+
+ {
+ name = "eslint_scope___eslint_scope_3.7.1.tgz";
+ path = fetchurl {
+ name = "eslint_scope___eslint_scope_3.7.1.tgz";
+ url = "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz";
+ sha1 = "3d63c3edfda02e06e01a452ad88caacc7cdcb6e8";
+ };
+ }
+
+ {
+ name = "eslint_scope___eslint_scope_4.0.0.tgz";
+ path = fetchurl {
+ name = "eslint_scope___eslint_scope_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.0.tgz";
+ sha1 = "50bf3071e9338bcdc43331794a0cb533f0136172";
+ };
+ }
+
+ {
+ name = "eslint_utils___eslint_utils_1.3.1.tgz";
+ path = fetchurl {
+ name = "eslint_utils___eslint_utils_1.3.1.tgz";
+ url = "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.3.1.tgz";
+ sha1 = "9a851ba89ee7c460346f97cf8939c7298827e512";
+ };
+ }
+
+ {
+ name = "eslint_visitor_keys___eslint_visitor_keys_1.0.0.tgz";
+ path = fetchurl {
+ name = "eslint_visitor_keys___eslint_visitor_keys_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz";
+ sha1 = "3f3180fb2e291017716acb4c9d6d5b5c34a6a81d";
+ };
+ }
+
+ {
+ name = "eslint___eslint_5.11.1.tgz";
+ path = fetchurl {
+ name = "eslint___eslint_5.11.1.tgz";
+ url = "https://registry.yarnpkg.com/eslint/-/eslint-5.11.1.tgz";
+ sha1 = "8deda83db9f354bf9d3f53f9677af7e0e13eadda";
+ };
+ }
+
+ {
+ name = "espree___espree_5.0.0.tgz";
+ path = fetchurl {
+ name = "espree___espree_5.0.0.tgz";
+ url = "https://registry.yarnpkg.com/espree/-/espree-5.0.0.tgz";
+ sha1 = "fc7f984b62b36a0f543b13fb9cd7b9f4a7f5b65c";
+ };
+ }
+
+ {
+ name = "esprima___esprima_3.1.3.tgz";
+ path = fetchurl {
+ name = "esprima___esprima_3.1.3.tgz";
+ url = "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz";
+ sha1 = "fdca51cee6133895e3c88d535ce49dbff62a4633";
+ };
+ }
+
+ {
+ name = "esprima___esprima_4.0.1.tgz";
+ path = fetchurl {
+ name = "esprima___esprima_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz";
+ sha1 = "13b04cdb3e6c5d19df91ab6987a8695619b0aa71";
+ };
+ }
+
+ {
+ name = "esquery___esquery_1.0.1.tgz";
+ path = fetchurl {
+ name = "esquery___esquery_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz";
+ sha1 = "406c51658b1f5991a5f9b62b1dc25b00e3e5c708";
+ };
+ }
+
+ {
+ name = "esrecurse___esrecurse_4.2.1.tgz";
+ path = fetchurl {
+ name = "esrecurse___esrecurse_4.2.1.tgz";
+ url = "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz";
+ sha1 = "007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf";
+ };
+ }
+
+ {
+ name = "estraverse___estraverse_4.2.0.tgz";
+ path = fetchurl {
+ name = "estraverse___estraverse_4.2.0.tgz";
+ url = "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz";
+ sha1 = "0dee3fed31fcd469618ce7342099fc1afa0bdb13";
+ };
+ }
+
+ {
+ name = "esutils___esutils_2.0.2.tgz";
+ path = fetchurl {
+ name = "esutils___esutils_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz";
+ sha1 = "0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b";
+ };
+ }
+
+ {
+ name = "etag___etag_1.8.1.tgz";
+ path = fetchurl {
+ name = "etag___etag_1.8.1.tgz";
+ url = "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz";
+ sha1 = "41ae2eeb65efa62268aebfea83ac7d79299b0887";
+ };
+ }
+
+ {
+ name = "eventemitter3___eventemitter3_3.1.0.tgz";
+ path = fetchurl {
+ name = "eventemitter3___eventemitter3_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.0.tgz";
+ sha1 = "090b4d6cdbd645ed10bf750d4b5407942d7ba163";
+ };
+ }
+
+ {
+ name = "events___events_1.1.1.tgz";
+ path = fetchurl {
+ name = "events___events_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz";
+ sha1 = "9ebdb7635ad099c70dcc4c2a1f5004288e8bd924";
+ };
+ }
+
+ {
+ name = "eventsource___eventsource_1.0.7.tgz";
+ path = fetchurl {
+ name = "eventsource___eventsource_1.0.7.tgz";
+ url = "https://registry.yarnpkg.com/eventsource/-/eventsource-1.0.7.tgz";
+ sha1 = "8fbc72c93fcd34088090bc0a4e64f4b5cee6d8d0";
+ };
+ }
+
+ {
+ name = "evp_bytestokey___evp_bytestokey_1.0.3.tgz";
+ path = fetchurl {
+ name = "evp_bytestokey___evp_bytestokey_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz";
+ sha1 = "7fcbdb198dc71959432efe13842684e0525acb02";
+ };
+ }
+
+ {
+ name = "exec_sh___exec_sh_0.2.2.tgz";
+ path = fetchurl {
+ name = "exec_sh___exec_sh_0.2.2.tgz";
+ url = "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.2.2.tgz";
+ sha1 = "2a5e7ffcbd7d0ba2755bdecb16e5a427dfbdec36";
+ };
+ }
+
+ {
+ name = "execa___execa_0.10.0.tgz";
+ path = fetchurl {
+ name = "execa___execa_0.10.0.tgz";
+ url = "https://registry.yarnpkg.com/execa/-/execa-0.10.0.tgz";
+ sha1 = "ff456a8f53f90f8eccc71a96d11bdfc7f082cb50";
+ };
+ }
+
+ {
+ name = "execa___execa_0.7.0.tgz";
+ path = fetchurl {
+ name = "execa___execa_0.7.0.tgz";
+ url = "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz";
+ sha1 = "944becd34cc41ee32a63a9faf27ad5a65fc59777";
+ };
+ }
+
+ {
+ name = "execa___execa_1.0.0.tgz";
+ path = fetchurl {
+ name = "execa___execa_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz";
+ sha1 = "c6236a5bb4df6d6f15e88e7f017798216749ddd8";
+ };
+ }
+
+ {
+ name = "exif_js___exif_js_2.3.0.tgz";
+ path = fetchurl {
+ name = "exif_js___exif_js_2.3.0.tgz";
+ url = "https://registry.yarnpkg.com/exif-js/-/exif-js-2.3.0.tgz";
+ sha1 = "9d10819bf571f873813e7640241255ab9ce1a814";
+ };
+ }
+
+ {
+ name = "exit___exit_0.1.2.tgz";
+ path = fetchurl {
+ name = "exit___exit_0.1.2.tgz";
+ url = "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz";
+ sha1 = "0632638f8d877cc82107d30a0fff1a17cba1cd0c";
+ };
+ }
+
+ {
+ name = "expand_brackets___expand_brackets_0.1.5.tgz";
+ path = fetchurl {
+ name = "expand_brackets___expand_brackets_0.1.5.tgz";
+ url = "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz";
+ sha1 = "df07284e342a807cd733ac5af72411e581d1177b";
+ };
+ }
+
+ {
+ name = "expand_brackets___expand_brackets_2.1.4.tgz";
+ path = fetchurl {
+ name = "expand_brackets___expand_brackets_2.1.4.tgz";
+ url = "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz";
+ sha1 = "b77735e315ce30f6b6eff0f83b04151a22449622";
+ };
+ }
+
+ {
+ name = "expand_range___expand_range_1.8.2.tgz";
+ path = fetchurl {
+ name = "expand_range___expand_range_1.8.2.tgz";
+ url = "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz";
+ sha1 = "a299effd335fe2721ebae8e257ec79644fc85337";
+ };
+ }
+
+ {
+ name = "expect___expect_23.6.0.tgz";
+ path = fetchurl {
+ name = "expect___expect_23.6.0.tgz";
+ url = "https://registry.yarnpkg.com/expect/-/expect-23.6.0.tgz";
+ sha1 = "1e0c8d3ba9a581c87bd71fb9bc8862d443425f98";
+ };
+ }
+
+ {
+ name = "express___express_4.16.4.tgz";
+ path = fetchurl {
+ name = "express___express_4.16.4.tgz";
+ url = "https://registry.yarnpkg.com/express/-/express-4.16.4.tgz";
+ sha1 = "fddef61926109e24c515ea97fd2f1bdbf62df12e";
+ };
+ }
+
+ {
+ name = "extend_shallow___extend_shallow_2.0.1.tgz";
+ path = fetchurl {
+ name = "extend_shallow___extend_shallow_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz";
+ sha1 = "51af7d614ad9a9f610ea1bafbb989d6b1c56890f";
+ };
+ }
+
+ {
+ name = "extend_shallow___extend_shallow_3.0.2.tgz";
+ path = fetchurl {
+ name = "extend_shallow___extend_shallow_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz";
+ sha1 = "26a71aaf073b39fb2127172746131c2704028db8";
+ };
+ }
+
+ {
+ name = "extend___extend_3.0.2.tgz";
+ path = fetchurl {
+ name = "extend___extend_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz";
+ sha1 = "f8b1136b4071fbd8eb140aff858b1019ec2915fa";
+ };
+ }
+
+ {
+ name = "external_editor___external_editor_3.0.3.tgz";
+ path = fetchurl {
+ name = "external_editor___external_editor_3.0.3.tgz";
+ url = "https://registry.yarnpkg.com/external-editor/-/external-editor-3.0.3.tgz";
+ sha1 = "5866db29a97826dbe4bf3afd24070ead9ea43a27";
+ };
+ }
+
+ {
+ name = "extglob___extglob_0.3.2.tgz";
+ path = fetchurl {
+ name = "extglob___extglob_0.3.2.tgz";
+ url = "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz";
+ sha1 = "2e18ff3d2f49ab2765cec9023f011daa8d8349a1";
+ };
+ }
+
+ {
+ name = "extglob___extglob_2.0.4.tgz";
+ path = fetchurl {
+ name = "extglob___extglob_2.0.4.tgz";
+ url = "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz";
+ sha1 = "ad00fe4dc612a9232e8718711dc5cb5ab0285543";
+ };
+ }
+
+ {
+ name = "extsprintf___extsprintf_1.3.0.tgz";
+ path = fetchurl {
+ name = "extsprintf___extsprintf_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz";
+ sha1 = "96918440e3041a7a414f8c52e3c574eb3c3e1e05";
+ };
+ }
+
+ {
+ name = "extsprintf___extsprintf_1.4.0.tgz";
+ path = fetchurl {
+ name = "extsprintf___extsprintf_1.4.0.tgz";
+ url = "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz";
+ sha1 = "e2689f8f356fad62cca65a3a91c5df5f9551692f";
+ };
+ }
+
+ {
+ name = "fast_deep_equal___fast_deep_equal_2.0.1.tgz";
+ path = fetchurl {
+ name = "fast_deep_equal___fast_deep_equal_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz";
+ sha1 = "7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49";
+ };
+ }
+
+ {
+ name = "fast_json_stable_stringify___fast_json_stable_stringify_2.0.0.tgz";
+ path = fetchurl {
+ name = "fast_json_stable_stringify___fast_json_stable_stringify_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz";
+ sha1 = "d5142c0caee6b1189f87d3a76111064f86c8bbf2";
+ };
+ }
+
+ {
+ name = "fast_levenshtein___fast_levenshtein_2.0.6.tgz";
+ path = fetchurl {
+ name = "fast_levenshtein___fast_levenshtein_2.0.6.tgz";
+ url = "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz";
+ sha1 = "3d8a5c66883a16a30ca8643e851f19baa7797917";
+ };
+ }
+
+ {
+ name = "fastparse___fastparse_1.1.2.tgz";
+ path = fetchurl {
+ name = "fastparse___fastparse_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz";
+ sha1 = "91728c5a5942eced8531283c79441ee4122c35a9";
+ };
+ }
+
+ {
+ name = "faye_websocket___faye_websocket_0.10.0.tgz";
+ path = fetchurl {
+ name = "faye_websocket___faye_websocket_0.10.0.tgz";
+ url = "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz";
+ sha1 = "4e492f8d04dfb6f89003507f6edbf2d501e7c6f4";
+ };
+ }
+
+ {
+ name = "faye_websocket___faye_websocket_0.11.1.tgz";
+ path = fetchurl {
+ name = "faye_websocket___faye_websocket_0.11.1.tgz";
+ url = "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.1.tgz";
+ sha1 = "f0efe18c4f56e4f40afc7e06c719fd5ee6188f38";
+ };
+ }
+
+ {
+ name = "fb_watchman___fb_watchman_2.0.0.tgz";
+ path = fetchurl {
+ name = "fb_watchman___fb_watchman_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.0.tgz";
+ sha1 = "54e9abf7dfa2f26cd9b1636c588c1afc05de5d58";
+ };
+ }
+
+ {
+ name = "fbjs___fbjs_0.8.17.tgz";
+ path = fetchurl {
+ name = "fbjs___fbjs_0.8.17.tgz";
+ url = "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.17.tgz";
+ sha1 = "c4d598ead6949112653d6588b01a5cdcd9f90fdd";
+ };
+ }
+
+ {
+ name = "fibers___fibers_3.1.1.tgz";
+ path = fetchurl {
+ name = "fibers___fibers_3.1.1.tgz";
+ url = "https://registry.yarnpkg.com/fibers/-/fibers-3.1.1.tgz";
+ sha1 = "0238902ca938347bd779523692fbeefdf4f688ab";
+ };
+ }
+
+ {
+ name = "figgy_pudding___figgy_pudding_3.5.1.tgz";
+ path = fetchurl {
+ name = "figgy_pudding___figgy_pudding_3.5.1.tgz";
+ url = "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz";
+ sha1 = "862470112901c727a0e495a80744bd5baa1d6790";
+ };
+ }
+
+ {
+ name = "figures___figures_2.0.0.tgz";
+ path = fetchurl {
+ name = "figures___figures_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz";
+ sha1 = "3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962";
+ };
+ }
+
+ {
+ name = "file_entry_cache___file_entry_cache_2.0.0.tgz";
+ path = fetchurl {
+ name = "file_entry_cache___file_entry_cache_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz";
+ sha1 = "c392990c3e684783d838b8c84a45d8a048458361";
+ };
+ }
+
+ {
+ name = "file_loader___file_loader_3.0.1.tgz";
+ path = fetchurl {
+ name = "file_loader___file_loader_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/file-loader/-/file-loader-3.0.1.tgz";
+ sha1 = "f8e0ba0b599918b51adfe45d66d1e771ad560faa";
+ };
+ }
+
+ {
+ name = "filename_regex___filename_regex_2.0.1.tgz";
+ path = fetchurl {
+ name = "filename_regex___filename_regex_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz";
+ sha1 = "c1c4b9bee3e09725ddb106b75c1e301fe2f18b26";
+ };
+ }
+
+ {
+ name = "fileset___fileset_2.0.3.tgz";
+ path = fetchurl {
+ name = "fileset___fileset_2.0.3.tgz";
+ url = "https://registry.yarnpkg.com/fileset/-/fileset-2.0.3.tgz";
+ sha1 = "8e7548a96d3cc2327ee5e674168723a333bba2a0";
+ };
+ }
+
+ {
+ name = "filesize___filesize_3.6.1.tgz";
+ path = fetchurl {
+ name = "filesize___filesize_3.6.1.tgz";
+ url = "https://registry.yarnpkg.com/filesize/-/filesize-3.6.1.tgz";
+ sha1 = "090bb3ee01b6f801a8a8be99d31710b3422bb317";
+ };
+ }
+
+ {
+ name = "fill_range___fill_range_2.2.4.tgz";
+ path = fetchurl {
+ name = "fill_range___fill_range_2.2.4.tgz";
+ url = "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz";
+ sha1 = "eb1e773abb056dcd8df2bfdf6af59b8b3a936565";
+ };
+ }
+
+ {
+ name = "fill_range___fill_range_4.0.0.tgz";
+ path = fetchurl {
+ name = "fill_range___fill_range_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz";
+ sha1 = "d544811d428f98eb06a63dc402d2403c328c38f7";
+ };
+ }
+
+ {
+ name = "finalhandler___finalhandler_1.1.1.tgz";
+ path = fetchurl {
+ name = "finalhandler___finalhandler_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.1.tgz";
+ sha1 = "eebf4ed840079c83f4249038c9d703008301b105";
+ };
+ }
+
+ {
+ name = "find_cache_dir___find_cache_dir_1.0.0.tgz";
+ path = fetchurl {
+ name = "find_cache_dir___find_cache_dir_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-1.0.0.tgz";
+ sha1 = "9288e3e9e3cc3748717d39eade17cf71fc30ee6f";
+ };
+ }
+
+ {
+ name = "find_cache_dir___find_cache_dir_2.0.0.tgz";
+ path = fetchurl {
+ name = "find_cache_dir___find_cache_dir_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.0.0.tgz";
+ sha1 = "4c1faed59f45184530fb9d7fa123a4d04a98472d";
+ };
+ }
+
+ {
+ name = "find_up___find_up_1.1.2.tgz";
+ path = fetchurl {
+ name = "find_up___find_up_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz";
+ sha1 = "6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f";
+ };
+ }
+
+ {
+ name = "find_up___find_up_2.1.0.tgz";
+ path = fetchurl {
+ name = "find_up___find_up_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz";
+ sha1 = "45d1b7e506c717ddd482775a2b77920a3c0c57a7";
+ };
+ }
+
+ {
+ name = "find_up___find_up_3.0.0.tgz";
+ path = fetchurl {
+ name = "find_up___find_up_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz";
+ sha1 = "49169f1d7993430646da61ecc5ae355c21c97b73";
+ };
+ }
+
+ {
+ name = "flat_cache___flat_cache_1.3.4.tgz";
+ path = fetchurl {
+ name = "flat_cache___flat_cache_1.3.4.tgz";
+ url = "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.4.tgz";
+ sha1 = "2c2ef77525cc2929007dfffa1dd314aa9c9dee6f";
+ };
+ }
+
+ {
+ name = "flush_write_stream___flush_write_stream_1.0.3.tgz";
+ path = fetchurl {
+ name = "flush_write_stream___flush_write_stream_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.0.3.tgz";
+ sha1 = "c5d586ef38af6097650b49bc41b55fabb19f35bd";
+ };
+ }
+
+ {
+ name = "follow_redirects___follow_redirects_1.6.0.tgz";
+ path = fetchurl {
+ name = "follow_redirects___follow_redirects_1.6.0.tgz";
+ url = "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.6.0.tgz";
+ sha1 = "d12452c031e8c67eb6637d861bfc7a8090167933";
+ };
+ }
+
+ {
+ name = "font_awesome___font_awesome_4.7.0.tgz";
+ path = fetchurl {
+ name = "font_awesome___font_awesome_4.7.0.tgz";
+ url = "https://registry.yarnpkg.com/font-awesome/-/font-awesome-4.7.0.tgz";
+ sha1 = "8fa8cf0411a1a31afd07b06d2902bb9fc815a133";
+ };
+ }
+
+ {
+ name = "for_in___for_in_0.1.8.tgz";
+ path = fetchurl {
+ name = "for_in___for_in_0.1.8.tgz";
+ url = "https://registry.yarnpkg.com/for-in/-/for-in-0.1.8.tgz";
+ sha1 = "d8773908e31256109952b1fdb9b3fa867d2775e1";
+ };
+ }
+
+ {
+ name = "for_in___for_in_1.0.2.tgz";
+ path = fetchurl {
+ name = "for_in___for_in_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz";
+ sha1 = "81068d295a8142ec0ac726c6e2200c30fb6d5e80";
+ };
+ }
+
+ {
+ name = "for_own___for_own_0.1.5.tgz";
+ path = fetchurl {
+ name = "for_own___for_own_0.1.5.tgz";
+ url = "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz";
+ sha1 = "5265c681a4f294dabbf17c9509b6763aa84510ce";
+ };
+ }
+
+ {
+ name = "for_own___for_own_1.0.0.tgz";
+ path = fetchurl {
+ name = "for_own___for_own_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/for-own/-/for-own-1.0.0.tgz";
+ sha1 = "c63332f415cedc4b04dbfe70cf836494c53cb44b";
+ };
+ }
+
+ {
+ name = "forever_agent___forever_agent_0.6.1.tgz";
+ path = fetchurl {
+ name = "forever_agent___forever_agent_0.6.1.tgz";
+ url = "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz";
+ sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91";
+ };
+ }
+
+ {
+ name = "form_data___form_data_2.3.3.tgz";
+ path = fetchurl {
+ name = "form_data___form_data_2.3.3.tgz";
+ url = "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz";
+ sha1 = "dcce52c05f644f298c6a7ab936bd724ceffbf3a6";
+ };
+ }
+
+ {
+ name = "forwarded___forwarded_0.1.2.tgz";
+ path = fetchurl {
+ name = "forwarded___forwarded_0.1.2.tgz";
+ url = "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz";
+ sha1 = "98c23dab1175657b8c0573e8ceccd91b0ff18c84";
+ };
+ }
+
+ {
+ name = "fragment_cache___fragment_cache_0.2.1.tgz";
+ path = fetchurl {
+ name = "fragment_cache___fragment_cache_0.2.1.tgz";
+ url = "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz";
+ sha1 = "4290fad27f13e89be7f33799c6bc5a0abfff0d19";
+ };
+ }
+
+ {
+ name = "fresh___fresh_0.5.2.tgz";
+ path = fetchurl {
+ name = "fresh___fresh_0.5.2.tgz";
+ url = "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz";
+ sha1 = "3d8cadd90d976569fa835ab1f8e4b23a105605a7";
+ };
+ }
+
+ {
+ name = "from2___from2_2.3.0.tgz";
+ path = fetchurl {
+ name = "from2___from2_2.3.0.tgz";
+ url = "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz";
+ sha1 = "8bfb5502bde4a4d36cfdeea007fcca21d7e382af";
+ };
+ }
+
+ {
+ name = "fs_minipass___fs_minipass_1.2.5.tgz";
+ path = fetchurl {
+ name = "fs_minipass___fs_minipass_1.2.5.tgz";
+ url = "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz";
+ sha1 = "06c277218454ec288df77ada54a03b8702aacb9d";
+ };
+ }
+
+ {
+ name = "fs_write_stream_atomic___fs_write_stream_atomic_1.0.10.tgz";
+ path = fetchurl {
+ name = "fs_write_stream_atomic___fs_write_stream_atomic_1.0.10.tgz";
+ url = "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz";
+ sha1 = "b47df53493ef911df75731e70a9ded0189db40c9";
+ };
+ }
+
+ {
+ name = "fs.realpath___fs.realpath_1.0.0.tgz";
+ path = fetchurl {
+ name = "fs.realpath___fs.realpath_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz";
+ sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f";
+ };
+ }
+
+ {
+ name = "fsevents___fsevents_1.2.4.tgz";
+ path = fetchurl {
+ name = "fsevents___fsevents_1.2.4.tgz";
+ url = "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.4.tgz";
+ sha1 = "f41dcb1af2582af3692da36fc55cbd8e1041c426";
+ };
+ }
+
+ {
+ name = "function_bind___function_bind_1.1.1.tgz";
+ path = fetchurl {
+ name = "function_bind___function_bind_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz";
+ sha1 = "a56899d3ea3c9bab874bb9773b7c5ede92f4895d";
+ };
+ }
+
+ {
+ name = "function.prototype.name___function.prototype.name_1.1.0.tgz";
+ path = fetchurl {
+ name = "function.prototype.name___function.prototype.name_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.0.tgz";
+ sha1 = "8bd763cc0af860a859cc5d49384d74b932cd2327";
+ };
+ }
+
+ {
+ name = "functional_red_black_tree___functional_red_black_tree_1.0.1.tgz";
+ path = fetchurl {
+ name = "functional_red_black_tree___functional_red_black_tree_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz";
+ sha1 = "1b0ab3bd553b2a0d6399d29c0e3ea0b252078327";
+ };
+ }
+
+ {
+ name = "gauge___gauge_2.7.4.tgz";
+ path = fetchurl {
+ name = "gauge___gauge_2.7.4.tgz";
+ url = "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz";
+ sha1 = "2c03405c7538c39d7eb37b317022e325fb018bf7";
+ };
+ }
+
+ {
+ name = "generic_pool___generic_pool_2.4.3.tgz";
+ path = fetchurl {
+ name = "generic_pool___generic_pool_2.4.3.tgz";
+ url = "https://registry.yarnpkg.com/generic-pool/-/generic-pool-2.4.3.tgz";
+ sha1 = "780c36f69dfad05a5a045dd37be7adca11a4f6ff";
+ };
+ }
+
+ {
+ name = "get_caller_file___get_caller_file_1.0.3.tgz";
+ path = fetchurl {
+ name = "get_caller_file___get_caller_file_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz";
+ sha1 = "f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a";
+ };
+ }
+
+ {
+ name = "get_stream___get_stream_3.0.0.tgz";
+ path = fetchurl {
+ name = "get_stream___get_stream_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz";
+ sha1 = "8e943d1358dc37555054ecbe2edb05aa174ede14";
+ };
+ }
+
+ {
+ name = "get_stream___get_stream_4.1.0.tgz";
+ path = fetchurl {
+ name = "get_stream___get_stream_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz";
+ sha1 = "c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5";
+ };
+ }
+
+ {
+ name = "get_value___get_value_2.0.6.tgz";
+ path = fetchurl {
+ name = "get_value___get_value_2.0.6.tgz";
+ url = "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz";
+ sha1 = "dc15ca1c672387ca76bd37ac0a395ba2042a2c28";
+ };
+ }
+
+ {
+ name = "getpass___getpass_0.1.7.tgz";
+ path = fetchurl {
+ name = "getpass___getpass_0.1.7.tgz";
+ url = "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz";
+ sha1 = "5eff8e3e684d569ae4cb2b1282604e8ba62149fa";
+ };
+ }
+
+ {
+ name = "glob_base___glob_base_0.3.0.tgz";
+ path = fetchurl {
+ name = "glob_base___glob_base_0.3.0.tgz";
+ url = "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz";
+ sha1 = "dbb164f6221b1c0b1ccf82aea328b497df0ea3c4";
+ };
+ }
+
+ {
+ name = "glob_parent___glob_parent_2.0.0.tgz";
+ path = fetchurl {
+ name = "glob_parent___glob_parent_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz";
+ sha1 = "81383d72db054fcccf5336daa902f182f6edbb28";
+ };
+ }
+
+ {
+ name = "glob_parent___glob_parent_3.1.0.tgz";
+ path = fetchurl {
+ name = "glob_parent___glob_parent_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz";
+ sha1 = "9e6af6299d8d3bd2bd40430832bd113df906c5ae";
+ };
+ }
+
+ {
+ name = "glob___glob_7.1.3.tgz";
+ path = fetchurl {
+ name = "glob___glob_7.1.3.tgz";
+ url = "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz";
+ sha1 = "3960832d3f1574108342dafd3a67b332c0969df1";
+ };
+ }
+
+ {
+ name = "global_modules_path___global_modules_path_2.3.1.tgz";
+ path = fetchurl {
+ name = "global_modules_path___global_modules_path_2.3.1.tgz";
+ url = "https://registry.yarnpkg.com/global-modules-path/-/global-modules-path-2.3.1.tgz";
+ sha1 = "e541f4c800a1a8514a990477b267ac67525b9931";
+ };
+ }
+
+ {
+ name = "globals___globals_11.9.0.tgz";
+ path = fetchurl {
+ name = "globals___globals_11.9.0.tgz";
+ url = "https://registry.yarnpkg.com/globals/-/globals-11.9.0.tgz";
+ sha1 = "bde236808e987f290768a93d065060d78e6ab249";
+ };
+ }
+
+ {
+ name = "globals___globals_9.18.0.tgz";
+ path = fetchurl {
+ name = "globals___globals_9.18.0.tgz";
+ url = "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz";
+ sha1 = "aa3896b3e69b487f17e31ed2143d69a8e30c2d8a";
+ };
+ }
+
+ {
+ name = "globby___globby_6.1.0.tgz";
+ path = fetchurl {
+ name = "globby___globby_6.1.0.tgz";
+ url = "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz";
+ sha1 = "f5a6d70e8395e21c858fb0489d64df02424d506c";
+ };
+ }
+
+ {
+ name = "graceful_fs___graceful_fs_4.1.15.tgz";
+ path = fetchurl {
+ name = "graceful_fs___graceful_fs_4.1.15.tgz";
+ url = "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz";
+ sha1 = "ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00";
+ };
+ }
+
+ {
+ name = "growly___growly_1.3.0.tgz";
+ path = fetchurl {
+ name = "growly___growly_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz";
+ sha1 = "f10748cbe76af964b7c96c93c6bcc28af120c081";
+ };
+ }
+
+ {
+ name = "gzip_size___gzip_size_5.0.0.tgz";
+ path = fetchurl {
+ name = "gzip_size___gzip_size_5.0.0.tgz";
+ url = "https://registry.yarnpkg.com/gzip-size/-/gzip-size-5.0.0.tgz";
+ sha1 = "a55ecd99222f4c48fd8c01c625ce3b349d0a0e80";
+ };
+ }
+
+ {
+ name = "handle_thing___handle_thing_2.0.0.tgz";
+ path = fetchurl {
+ name = "handle_thing___handle_thing_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.0.tgz";
+ sha1 = "0e039695ff50c93fc288557d696f3c1dc6776754";
+ };
+ }
+
+ {
+ name = "handlebars___handlebars_4.0.12.tgz";
+ path = fetchurl {
+ name = "handlebars___handlebars_4.0.12.tgz";
+ url = "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.12.tgz";
+ sha1 = "2c15c8a96d46da5e266700518ba8cb8d919d5bc5";
+ };
+ }
+
+ {
+ name = "har_schema___har_schema_2.0.0.tgz";
+ path = fetchurl {
+ name = "har_schema___har_schema_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz";
+ sha1 = "a94c2224ebcac04782a0d9035521f24735b7ec92";
+ };
+ }
+
+ {
+ name = "har_validator___har_validator_5.1.3.tgz";
+ path = fetchurl {
+ name = "har_validator___har_validator_5.1.3.tgz";
+ url = "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz";
+ sha1 = "1ef89ebd3e4996557675eed9893110dc350fa080";
+ };
+ }
+
+ {
+ name = "has_ansi___has_ansi_2.0.0.tgz";
+ path = fetchurl {
+ name = "has_ansi___has_ansi_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz";
+ sha1 = "34f5049ce1ecdf2b0649af3ef24e45ed35416d91";
+ };
+ }
+
+ {
+ name = "has_flag___has_flag_1.0.0.tgz";
+ path = fetchurl {
+ name = "has_flag___has_flag_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz";
+ sha1 = "9d9e793165ce017a00f00418c43f942a7b1d11fa";
+ };
+ }
+
+ {
+ name = "has_flag___has_flag_3.0.0.tgz";
+ path = fetchurl {
+ name = "has_flag___has_flag_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz";
+ sha1 = "b5d454dc2199ae225699f3467e5a07f3b955bafd";
+ };
+ }
+
+ {
+ name = "has_symbols___has_symbols_1.0.0.tgz";
+ path = fetchurl {
+ name = "has_symbols___has_symbols_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz";
+ sha1 = "ba1a8f1af2a0fc39650f5c850367704122063b44";
+ };
+ }
+
+ {
+ name = "has_unicode___has_unicode_2.0.1.tgz";
+ path = fetchurl {
+ name = "has_unicode___has_unicode_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz";
+ sha1 = "e0e6fe6a28cf51138855e086d1691e771de2a8b9";
+ };
+ }
+
+ {
+ name = "has_value___has_value_0.3.1.tgz";
+ path = fetchurl {
+ name = "has_value___has_value_0.3.1.tgz";
+ url = "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz";
+ sha1 = "7b1f58bada62ca827ec0a2078025654845995e1f";
+ };
+ }
+
+ {
+ name = "has_value___has_value_1.0.0.tgz";
+ path = fetchurl {
+ name = "has_value___has_value_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz";
+ sha1 = "18b281da585b1c5c51def24c930ed29a0be6b177";
+ };
+ }
+
+ {
+ name = "has_values___has_values_0.1.4.tgz";
+ path = fetchurl {
+ name = "has_values___has_values_0.1.4.tgz";
+ url = "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz";
+ sha1 = "6d61de95d91dfca9b9a02089ad384bff8f62b771";
+ };
+ }
+
+ {
+ name = "has_values___has_values_1.0.0.tgz";
+ path = fetchurl {
+ name = "has_values___has_values_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz";
+ sha1 = "95b0b63fec2146619a6fe57fe75628d5a39efe4f";
+ };
+ }
+
+ {
+ name = "has___has_1.0.3.tgz";
+ path = fetchurl {
+ name = "has___has_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz";
+ sha1 = "722d7cbfc1f6aa8241f16dd814e011e1f41e8796";
+ };
+ }
+
+ {
+ name = "hash_base___hash_base_3.0.4.tgz";
+ path = fetchurl {
+ name = "hash_base___hash_base_3.0.4.tgz";
+ url = "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz";
+ sha1 = "5fc8686847ecd73499403319a6b0a3f3f6ae4918";
+ };
+ }
+
+ {
+ name = "hash.js___hash.js_1.1.7.tgz";
+ path = fetchurl {
+ name = "hash.js___hash.js_1.1.7.tgz";
+ url = "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz";
+ sha1 = "0babca538e8d4ee4a0f8988d68866537a003cf42";
+ };
+ }
+
+ {
+ name = "hex_color_regex___hex_color_regex_1.1.0.tgz";
+ path = fetchurl {
+ name = "hex_color_regex___hex_color_regex_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz";
+ sha1 = "4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e";
+ };
+ }
+
+ {
+ name = "history___history_4.7.2.tgz";
+ path = fetchurl {
+ name = "history___history_4.7.2.tgz";
+ url = "https://registry.yarnpkg.com/history/-/history-4.7.2.tgz";
+ sha1 = "22b5c7f31633c5b8021c7f4a8a954ac139ee8d5b";
+ };
+ }
+
+ {
+ name = "hmac_drbg___hmac_drbg_1.0.1.tgz";
+ path = fetchurl {
+ name = "hmac_drbg___hmac_drbg_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz";
+ sha1 = "d2745701025a6c775a6c545793ed502fc0c649a1";
+ };
+ }
+
+ {
+ name = "hoist_non_react_statics___hoist_non_react_statics_2.5.5.tgz";
+ path = fetchurl {
+ name = "hoist_non_react_statics___hoist_non_react_statics_2.5.5.tgz";
+ url = "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz";
+ sha1 = "c5903cf409c0dfd908f388e619d86b9c1174cb47";
+ };
+ }
+
+ {
+ name = "hoist_non_react_statics___hoist_non_react_statics_3.2.1.tgz";
+ path = fetchurl {
+ name = "hoist_non_react_statics___hoist_non_react_statics_3.2.1.tgz";
+ url = "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.2.1.tgz";
+ sha1 = "c09c0555c84b38a7ede6912b61efddafd6e75e1e";
+ };
+ }
+
+ {
+ name = "home_or_tmp___home_or_tmp_2.0.0.tgz";
+ path = fetchurl {
+ name = "home_or_tmp___home_or_tmp_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz";
+ sha1 = "e36c3f2d2cae7d746a857e38d18d5f32a7882db8";
+ };
+ }
+
+ {
+ name = "hoopy___hoopy_0.1.4.tgz";
+ path = fetchurl {
+ name = "hoopy___hoopy_0.1.4.tgz";
+ url = "https://registry.yarnpkg.com/hoopy/-/hoopy-0.1.4.tgz";
+ sha1 = "609207d661100033a9a9402ad3dea677381c1b1d";
+ };
+ }
+
+ {
+ name = "hosted_git_info___hosted_git_info_2.7.1.tgz";
+ path = fetchurl {
+ name = "hosted_git_info___hosted_git_info_2.7.1.tgz";
+ url = "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz";
+ sha1 = "97f236977bd6e125408930ff6de3eec6281ec047";
+ };
+ }
+
+ {
+ name = "hpack.js___hpack.js_2.1.6.tgz";
+ path = fetchurl {
+ name = "hpack.js___hpack.js_2.1.6.tgz";
+ url = "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz";
+ sha1 = "87774c0949e513f42e84575b3c45681fade2a0b2";
+ };
+ }
+
+ {
+ name = "hsl_regex___hsl_regex_1.0.0.tgz";
+ path = fetchurl {
+ name = "hsl_regex___hsl_regex_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz";
+ sha1 = "d49330c789ed819e276a4c0d272dffa30b18fe6e";
+ };
+ }
+
+ {
+ name = "hsla_regex___hsla_regex_1.0.0.tgz";
+ path = fetchurl {
+ name = "hsla_regex___hsla_regex_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz";
+ sha1 = "c1ce7a3168c8c6614033a4b5f7877f3b225f9c38";
+ };
+ }
+
+ {
+ name = "html_comment_regex___html_comment_regex_1.1.2.tgz";
+ path = fetchurl {
+ name = "html_comment_regex___html_comment_regex_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz";
+ sha1 = "97d4688aeb5c81886a364faa0cad1dda14d433a7";
+ };
+ }
+
+ {
+ name = "html_encoding_sniffer___html_encoding_sniffer_1.0.2.tgz";
+ path = fetchurl {
+ name = "html_encoding_sniffer___html_encoding_sniffer_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz";
+ sha1 = "e70d84b94da53aa375e11fe3a351be6642ca46f8";
+ };
+ }
+
+ {
+ name = "html_entities___html_entities_1.2.1.tgz";
+ path = fetchurl {
+ name = "html_entities___html_entities_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz";
+ sha1 = "0df29351f0721163515dfb9e5543e5f6eed5162f";
+ };
+ }
+
+ {
+ name = "htmlparser2___htmlparser2_3.10.0.tgz";
+ path = fetchurl {
+ name = "htmlparser2___htmlparser2_3.10.0.tgz";
+ url = "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.0.tgz";
+ sha1 = "5f5e422dcf6119c0d983ed36260ce9ded0bee464";
+ };
+ }
+
+ {
+ name = "http_deceiver___http_deceiver_1.2.7.tgz";
+ path = fetchurl {
+ name = "http_deceiver___http_deceiver_1.2.7.tgz";
+ url = "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz";
+ sha1 = "fa7168944ab9a519d337cb0bec7284dc3e723d87";
+ };
+ }
+
+ {
+ name = "http_errors___http_errors_1.6.3.tgz";
+ path = fetchurl {
+ name = "http_errors___http_errors_1.6.3.tgz";
+ url = "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz";
+ sha1 = "8b55680bb4be283a0b5bf4ea2e38580be1d9320d";
+ };
+ }
+
+ {
+ name = "http_link_header___http_link_header_1.0.2.tgz";
+ path = fetchurl {
+ name = "http_link_header___http_link_header_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/http-link-header/-/http-link-header-1.0.2.tgz";
+ sha1 = "bea50f02e1c7996021f1013b428c63f77e0f4e11";
+ };
+ }
+
+ {
+ name = "http_parser_js___http_parser_js_0.5.0.tgz";
+ path = fetchurl {
+ name = "http_parser_js___http_parser_js_0.5.0.tgz";
+ url = "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.0.tgz";
+ sha1 = "d65edbede84349d0dc30320815a15d39cc3cbbd8";
+ };
+ }
+
+ {
+ name = "http_proxy_middleware___http_proxy_middleware_0.18.0.tgz";
+ path = fetchurl {
+ name = "http_proxy_middleware___http_proxy_middleware_0.18.0.tgz";
+ url = "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.18.0.tgz";
+ sha1 = "0987e6bb5a5606e5a69168d8f967a87f15dd8aab";
+ };
+ }
+
+ {
+ name = "http_proxy___http_proxy_1.17.0.tgz";
+ path = fetchurl {
+ name = "http_proxy___http_proxy_1.17.0.tgz";
+ url = "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.17.0.tgz";
+ sha1 = "7ad38494658f84605e2f6db4436df410f4e5be9a";
+ };
+ }
+
+ {
+ name = "http_signature___http_signature_1.2.0.tgz";
+ path = fetchurl {
+ name = "http_signature___http_signature_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz";
+ sha1 = "9aecd925114772f3d95b65a60abb8f7c18fbace1";
+ };
+ }
+
+ {
+ name = "https_browserify___https_browserify_1.0.0.tgz";
+ path = fetchurl {
+ name = "https_browserify___https_browserify_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz";
+ sha1 = "ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73";
+ };
+ }
+
+ {
+ name = "iconv_lite___iconv_lite_0.4.23.tgz";
+ path = fetchurl {
+ name = "iconv_lite___iconv_lite_0.4.23.tgz";
+ url = "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz";
+ sha1 = "297871f63be507adcfbfca715d0cd0eed84e9a63";
+ };
+ }
+
+ {
+ name = "iconv_lite___iconv_lite_0.4.24.tgz";
+ path = fetchurl {
+ name = "iconv_lite___iconv_lite_0.4.24.tgz";
+ url = "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz";
+ sha1 = "2022b4b25fbddc21d2f524974a474aafe733908b";
+ };
+ }
+
+ {
+ name = "icss_replace_symbols___icss_replace_symbols_1.1.0.tgz";
+ path = fetchurl {
+ name = "icss_replace_symbols___icss_replace_symbols_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz";
+ sha1 = "06ea6f83679a7749e386cfe1fe812ae5db223ded";
+ };
+ }
+
+ {
+ name = "icss_utils___icss_utils_4.0.0.tgz";
+ path = fetchurl {
+ name = "icss_utils___icss_utils_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.0.0.tgz";
+ sha1 = "d52cf4bcdcfa1c45c2dbefb4ffdf6b00ef608098";
+ };
+ }
+
+ {
+ name = "ieee754___ieee754_1.1.12.tgz";
+ path = fetchurl {
+ name = "ieee754___ieee754_1.1.12.tgz";
+ url = "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.12.tgz";
+ sha1 = "50bf24e5b9c8bb98af4964c941cdb0918da7b60b";
+ };
+ }
+
+ {
+ name = "iferr___iferr_0.1.5.tgz";
+ path = fetchurl {
+ name = "iferr___iferr_0.1.5.tgz";
+ url = "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz";
+ sha1 = "c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501";
+ };
+ }
+
+ {
+ name = "ignore_walk___ignore_walk_3.0.1.tgz";
+ path = fetchurl {
+ name = "ignore_walk___ignore_walk_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz";
+ sha1 = "a83e62e7d272ac0e3b551aaa82831a19b69f82f8";
+ };
+ }
+
+ {
+ name = "ignore___ignore_4.0.6.tgz";
+ path = fetchurl {
+ name = "ignore___ignore_4.0.6.tgz";
+ url = "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz";
+ sha1 = "750e3db5862087b4737ebac8207ffd1ef27b25fc";
+ };
+ }
+
+ {
+ name = "immutable___immutable_3.8.2.tgz";
+ path = fetchurl {
+ name = "immutable___immutable_3.8.2.tgz";
+ url = "https://registry.yarnpkg.com/immutable/-/immutable-3.8.2.tgz";
+ sha1 = "c2439951455bb39913daf281376f1530e104adf3";
+ };
+ }
+
+ {
+ name = "import_cwd___import_cwd_2.1.0.tgz";
+ path = fetchurl {
+ name = "import_cwd___import_cwd_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz";
+ sha1 = "aa6cf36e722761285cb371ec6519f53e2435b0a9";
+ };
+ }
+
+ {
+ name = "import_fresh___import_fresh_2.0.0.tgz";
+ path = fetchurl {
+ name = "import_fresh___import_fresh_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz";
+ sha1 = "d81355c15612d386c61f9ddd3922d4304822a546";
+ };
+ }
+
+ {
+ name = "import_from___import_from_2.1.0.tgz";
+ path = fetchurl {
+ name = "import_from___import_from_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz";
+ sha1 = "335db7f2a7affd53aaa471d4b8021dee36b7f3b1";
+ };
+ }
+
+ {
+ name = "import_local___import_local_1.0.0.tgz";
+ path = fetchurl {
+ name = "import_local___import_local_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/import-local/-/import-local-1.0.0.tgz";
+ sha1 = "5e4ffdc03f4fe6c009c6729beb29631c2f8227bc";
+ };
+ }
+
+ {
+ name = "import_local___import_local_2.0.0.tgz";
+ path = fetchurl {
+ name = "import_local___import_local_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz";
+ sha1 = "55070be38a5993cf18ef6db7e961f5bee5c5a09d";
+ };
+ }
+
+ {
+ name = "imports_loader___imports_loader_0.8.0.tgz";
+ path = fetchurl {
+ name = "imports_loader___imports_loader_0.8.0.tgz";
+ url = "https://registry.yarnpkg.com/imports-loader/-/imports-loader-0.8.0.tgz";
+ sha1 = "030ea51b8ca05977c40a3abfd9b4088fe0be9a69";
+ };
+ }
+
+ {
+ name = "imurmurhash___imurmurhash_0.1.4.tgz";
+ path = fetchurl {
+ name = "imurmurhash___imurmurhash_0.1.4.tgz";
+ url = "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz";
+ sha1 = "9218b9b2b928a238b13dc4fb6b6d576f231453ea";
+ };
+ }
+
+ {
+ name = "indexes_of___indexes_of_1.0.1.tgz";
+ path = fetchurl {
+ name = "indexes_of___indexes_of_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz";
+ sha1 = "f30f716c8e2bd346c7b67d3df3915566a7c05607";
+ };
+ }
+
+ {
+ name = "indexof___indexof_0.0.1.tgz";
+ path = fetchurl {
+ name = "indexof___indexof_0.0.1.tgz";
+ url = "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz";
+ sha1 = "82dc336d232b9062179d05ab3293a66059fd435d";
+ };
+ }
+
+ {
+ name = "inflight___inflight_1.0.6.tgz";
+ path = fetchurl {
+ name = "inflight___inflight_1.0.6.tgz";
+ url = "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz";
+ sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9";
+ };
+ }
+
+ {
+ name = "inherits___inherits_2.0.3.tgz";
+ path = fetchurl {
+ name = "inherits___inherits_2.0.3.tgz";
+ url = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz";
+ sha1 = "633c2c83e3da42a502f52466022480f4208261de";
+ };
+ }
+
+ {
+ name = "inherits___inherits_2.0.1.tgz";
+ path = fetchurl {
+ name = "inherits___inherits_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz";
+ sha1 = "b17d08d326b4423e568eff719f91b0b1cbdf69f1";
+ };
+ }
+
+ {
+ name = "ini___ini_1.3.5.tgz";
+ path = fetchurl {
+ name = "ini___ini_1.3.5.tgz";
+ url = "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz";
+ sha1 = "eee25f56db1c9ec6085e0c22778083f596abf927";
+ };
+ }
+
+ {
+ name = "inquirer___inquirer_6.2.1.tgz";
+ path = fetchurl {
+ name = "inquirer___inquirer_6.2.1.tgz";
+ url = "https://registry.yarnpkg.com/inquirer/-/inquirer-6.2.1.tgz";
+ sha1 = "9943fc4882161bdb0b0c9276769c75b32dbfcd52";
+ };
+ }
+
+ {
+ name = "internal_ip___internal_ip_3.0.1.tgz";
+ path = fetchurl {
+ name = "internal_ip___internal_ip_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/internal-ip/-/internal-ip-3.0.1.tgz";
+ sha1 = "df5c99876e1d2eb2ea2d74f520e3f669a00ece27";
+ };
+ }
+
+ {
+ name = "interpret___interpret_1.2.0.tgz";
+ path = fetchurl {
+ name = "interpret___interpret_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz";
+ sha1 = "d5061a6224be58e8083985f5014d844359576296";
+ };
+ }
+
+ {
+ name = "intersection_observer___intersection_observer_0.5.1.tgz";
+ path = fetchurl {
+ name = "intersection_observer___intersection_observer_0.5.1.tgz";
+ url = "https://registry.yarnpkg.com/intersection-observer/-/intersection-observer-0.5.1.tgz";
+ sha1 = "e340fc56ce74290fe2b2394d1ce88c4353ac6dfa";
+ };
+ }
+
+ {
+ name = "intl_format_cache___intl_format_cache_2.1.0.tgz";
+ path = fetchurl {
+ name = "intl_format_cache___intl_format_cache_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/intl-format-cache/-/intl-format-cache-2.1.0.tgz";
+ sha1 = "04a369fecbfad6da6005bae1f14333332dcf9316";
+ };
+ }
+
+ {
+ name = "intl_messageformat_parser___intl_messageformat_parser_1.4.0.tgz";
+ path = fetchurl {
+ name = "intl_messageformat_parser___intl_messageformat_parser_1.4.0.tgz";
+ url = "https://registry.yarnpkg.com/intl-messageformat-parser/-/intl-messageformat-parser-1.4.0.tgz";
+ sha1 = "b43d45a97468cadbe44331d74bb1e8dea44fc075";
+ };
+ }
+
+ {
+ name = "intl_messageformat___intl_messageformat_2.2.0.tgz";
+ path = fetchurl {
+ name = "intl_messageformat___intl_messageformat_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-2.2.0.tgz";
+ sha1 = "345bcd46de630b7683330c2e52177ff5eab484fc";
+ };
+ }
+
+ {
+ name = "intl_relativeformat___intl_relativeformat_2.1.0.tgz";
+ path = fetchurl {
+ name = "intl_relativeformat___intl_relativeformat_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/intl-relativeformat/-/intl-relativeformat-2.1.0.tgz";
+ sha1 = "010f1105802251f40ac47d0e3e1a201348a255df";
+ };
+ }
+
+ {
+ name = "intl___intl_1.2.5.tgz";
+ path = fetchurl {
+ name = "intl___intl_1.2.5.tgz";
+ url = "https://registry.yarnpkg.com/intl/-/intl-1.2.5.tgz";
+ sha1 = "82244a2190c4e419f8371f5aa34daa3420e2abde";
+ };
+ }
+
+ {
+ name = "invariant___invariant_2.2.4.tgz";
+ path = fetchurl {
+ name = "invariant___invariant_2.2.4.tgz";
+ url = "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz";
+ sha1 = "610f3c92c9359ce1db616e538008d23ff35158e6";
+ };
+ }
+
+ {
+ name = "invert_kv___invert_kv_1.0.0.tgz";
+ path = fetchurl {
+ name = "invert_kv___invert_kv_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz";
+ sha1 = "104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6";
+ };
+ }
+
+ {
+ name = "invert_kv___invert_kv_2.0.0.tgz";
+ path = fetchurl {
+ name = "invert_kv___invert_kv_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz";
+ sha1 = "7393f5afa59ec9ff5f67a27620d11c226e3eec02";
+ };
+ }
+
+ {
+ name = "ip_regex___ip_regex_2.1.0.tgz";
+ path = fetchurl {
+ name = "ip_regex___ip_regex_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz";
+ sha1 = "fa78bf5d2e6913c911ce9f819ee5146bb6d844e9";
+ };
+ }
+
+ {
+ name = "ip___ip_1.1.5.tgz";
+ path = fetchurl {
+ name = "ip___ip_1.1.5.tgz";
+ url = "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz";
+ sha1 = "bdded70114290828c0a039e72ef25f5aaec4354a";
+ };
+ }
+
+ {
+ name = "ipaddr.js___ipaddr.js_1.8.0.tgz";
+ path = fetchurl {
+ name = "ipaddr.js___ipaddr.js_1.8.0.tgz";
+ url = "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.8.0.tgz";
+ sha1 = "eaa33d6ddd7ace8f7f6fe0c9ca0440e706738b1e";
+ };
+ }
+
+ {
+ name = "ipaddr.js___ipaddr.js_1.8.1.tgz";
+ path = fetchurl {
+ name = "ipaddr.js___ipaddr.js_1.8.1.tgz";
+ url = "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.8.1.tgz";
+ sha1 = "fa4b79fa47fd3def5e3b159825161c0a519c9427";
+ };
+ }
+
+ {
+ name = "is_absolute_url___is_absolute_url_2.1.0.tgz";
+ path = fetchurl {
+ name = "is_absolute_url___is_absolute_url_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz";
+ sha1 = "50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6";
+ };
+ }
+
+ {
+ name = "is_accessor_descriptor___is_accessor_descriptor_0.1.6.tgz";
+ path = fetchurl {
+ name = "is_accessor_descriptor___is_accessor_descriptor_0.1.6.tgz";
+ url = "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz";
+ sha1 = "a9e12cb3ae8d876727eeef3843f8a0897b5c98d6";
+ };
+ }
+
+ {
+ name = "is_accessor_descriptor___is_accessor_descriptor_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_accessor_descriptor___is_accessor_descriptor_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz";
+ sha1 = "169c2f6d3df1f992618072365c9b0ea1f6878656";
+ };
+ }
+
+ {
+ name = "is_arrayish___is_arrayish_0.2.1.tgz";
+ path = fetchurl {
+ name = "is_arrayish___is_arrayish_0.2.1.tgz";
+ url = "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz";
+ sha1 = "77c99840527aa8ecb1a8ba697b80645a7a926a9d";
+ };
+ }
+
+ {
+ name = "is_arrayish___is_arrayish_0.3.2.tgz";
+ path = fetchurl {
+ name = "is_arrayish___is_arrayish_0.3.2.tgz";
+ url = "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz";
+ sha1 = "4574a2ae56f7ab206896fb431eaeed066fdf8f03";
+ };
+ }
+
+ {
+ name = "is_binary_path___is_binary_path_1.0.1.tgz";
+ path = fetchurl {
+ name = "is_binary_path___is_binary_path_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz";
+ sha1 = "75f16642b480f187a711c814161fd3a4a7655898";
+ };
+ }
+
+ {
+ name = "is_boolean_object___is_boolean_object_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_boolean_object___is_boolean_object_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.0.0.tgz";
+ sha1 = "98f8b28030684219a95f375cfbd88ce3405dff93";
+ };
+ }
+
+ {
+ name = "is_buffer___is_buffer_1.1.6.tgz";
+ path = fetchurl {
+ name = "is_buffer___is_buffer_1.1.6.tgz";
+ url = "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz";
+ sha1 = "efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be";
+ };
+ }
+
+ {
+ name = "is_builtin_module___is_builtin_module_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_builtin_module___is_builtin_module_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz";
+ sha1 = "540572d34f7ac3119f8f76c30cbc1b1e037affbe";
+ };
+ }
+
+ {
+ name = "is_callable___is_callable_1.1.4.tgz";
+ path = fetchurl {
+ name = "is_callable___is_callable_1.1.4.tgz";
+ url = "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz";
+ sha1 = "1e1adf219e1eeb684d691f9d6a05ff0d30a24d75";
+ };
+ }
+
+ {
+ name = "is_ci___is_ci_1.2.1.tgz";
+ path = fetchurl {
+ name = "is_ci___is_ci_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz";
+ sha1 = "e3779c8ee17fccf428488f6e281187f2e632841c";
+ };
+ }
+
+ {
+ name = "is_color_stop___is_color_stop_1.1.0.tgz";
+ path = fetchurl {
+ name = "is_color_stop___is_color_stop_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz";
+ sha1 = "cfff471aee4dd5c9e158598fbe12967b5cdad345";
+ };
+ }
+
+ {
+ name = "is_data_descriptor___is_data_descriptor_0.1.4.tgz";
+ path = fetchurl {
+ name = "is_data_descriptor___is_data_descriptor_0.1.4.tgz";
+ url = "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz";
+ sha1 = "0b5ee648388e2c860282e793f1856fec3f301b56";
+ };
+ }
+
+ {
+ name = "is_data_descriptor___is_data_descriptor_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_data_descriptor___is_data_descriptor_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz";
+ sha1 = "d84876321d0e7add03990406abbbbd36ba9268c7";
+ };
+ }
+
+ {
+ name = "is_date_object___is_date_object_1.0.1.tgz";
+ path = fetchurl {
+ name = "is_date_object___is_date_object_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz";
+ sha1 = "9aa20eb6aeebbff77fbd33e74ca01b33581d3a16";
+ };
+ }
+
+ {
+ name = "is_descriptor___is_descriptor_0.1.6.tgz";
+ path = fetchurl {
+ name = "is_descriptor___is_descriptor_0.1.6.tgz";
+ url = "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz";
+ sha1 = "366d8240dde487ca51823b1ab9f07a10a78251ca";
+ };
+ }
+
+ {
+ name = "is_descriptor___is_descriptor_1.0.2.tgz";
+ path = fetchurl {
+ name = "is_descriptor___is_descriptor_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz";
+ sha1 = "3b159746a66604b04f8c81524ba365c5f14d86ec";
+ };
+ }
+
+ {
+ name = "is_directory___is_directory_0.3.1.tgz";
+ path = fetchurl {
+ name = "is_directory___is_directory_0.3.1.tgz";
+ url = "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz";
+ sha1 = "61339b6f2475fc772fd9c9d83f5c8575dc154ae1";
+ };
+ }
+
+ {
+ name = "is_dotfile___is_dotfile_1.0.3.tgz";
+ path = fetchurl {
+ name = "is_dotfile___is_dotfile_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz";
+ sha1 = "a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1";
+ };
+ }
+
+ {
+ name = "is_equal_shallow___is_equal_shallow_0.1.3.tgz";
+ path = fetchurl {
+ name = "is_equal_shallow___is_equal_shallow_0.1.3.tgz";
+ url = "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz";
+ sha1 = "2238098fc221de0bcfa5d9eac4c45d638aa1c534";
+ };
+ }
+
+ {
+ name = "is_extendable___is_extendable_0.1.1.tgz";
+ path = fetchurl {
+ name = "is_extendable___is_extendable_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz";
+ sha1 = "62b110e289a471418e3ec36a617d472e301dfc89";
+ };
+ }
+
+ {
+ name = "is_extendable___is_extendable_1.0.1.tgz";
+ path = fetchurl {
+ name = "is_extendable___is_extendable_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz";
+ sha1 = "a7470f9e426733d81bd81e1155264e3a3507cab4";
+ };
+ }
+
+ {
+ name = "is_extglob___is_extglob_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_extglob___is_extglob_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz";
+ sha1 = "ac468177c4943405a092fc8f29760c6ffc6206c0";
+ };
+ }
+
+ {
+ name = "is_extglob___is_extglob_2.1.1.tgz";
+ path = fetchurl {
+ name = "is_extglob___is_extglob_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz";
+ sha1 = "a88c02535791f02ed37c76a1b9ea9773c833f8c2";
+ };
+ }
+
+ {
+ name = "is_finite___is_finite_1.0.2.tgz";
+ path = fetchurl {
+ name = "is_finite___is_finite_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz";
+ sha1 = "cc6677695602be550ef11e8b4aa6305342b6d0aa";
+ };
+ }
+
+ {
+ name = "is_fullwidth_code_point___is_fullwidth_code_point_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_fullwidth_code_point___is_fullwidth_code_point_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz";
+ sha1 = "ef9e31386f031a7f0d643af82fde50c457ef00cb";
+ };
+ }
+
+ {
+ name = "is_fullwidth_code_point___is_fullwidth_code_point_2.0.0.tgz";
+ path = fetchurl {
+ name = "is_fullwidth_code_point___is_fullwidth_code_point_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz";
+ sha1 = "a3b30a5c4f199183167aaab93beefae3ddfb654f";
+ };
+ }
+
+ {
+ name = "is_generator_fn___is_generator_fn_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_generator_fn___is_generator_fn_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-1.0.0.tgz";
+ sha1 = "969d49e1bb3329f6bb7f09089be26578b2ddd46a";
+ };
+ }
+
+ {
+ name = "is_glob___is_glob_2.0.1.tgz";
+ path = fetchurl {
+ name = "is_glob___is_glob_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz";
+ sha1 = "d096f926a3ded5600f3fdfd91198cb0888c2d863";
+ };
+ }
+
+ {
+ name = "is_glob___is_glob_3.1.0.tgz";
+ path = fetchurl {
+ name = "is_glob___is_glob_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz";
+ sha1 = "7ba5ae24217804ac70707b96922567486cc3e84a";
+ };
+ }
+
+ {
+ name = "is_glob___is_glob_4.0.0.tgz";
+ path = fetchurl {
+ name = "is_glob___is_glob_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.0.tgz";
+ sha1 = "9521c76845cc2610a85203ddf080a958c2ffabc0";
+ };
+ }
+
+ {
+ name = "is_nan___is_nan_1.2.1.tgz";
+ path = fetchurl {
+ name = "is_nan___is_nan_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/is-nan/-/is-nan-1.2.1.tgz";
+ sha1 = "9faf65b6fb6db24b7f5c0628475ea71f988401e2";
+ };
+ }
+
+ {
+ name = "is_number_object___is_number_object_1.0.3.tgz";
+ path = fetchurl {
+ name = "is_number_object___is_number_object_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.3.tgz";
+ sha1 = "f265ab89a9f445034ef6aff15a8f00b00f551799";
+ };
+ }
+
+ {
+ name = "is_number___is_number_2.1.0.tgz";
+ path = fetchurl {
+ name = "is_number___is_number_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz";
+ sha1 = "01fcbbb393463a548f2f466cce16dece49db908f";
+ };
+ }
+
+ {
+ name = "is_number___is_number_3.0.0.tgz";
+ path = fetchurl {
+ name = "is_number___is_number_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz";
+ sha1 = "24fd6201a4782cf50561c810276afc7d12d71195";
+ };
+ }
+
+ {
+ name = "is_number___is_number_4.0.0.tgz";
+ path = fetchurl {
+ name = "is_number___is_number_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz";
+ sha1 = "0026e37f5454d73e356dfe6564699867c6a7f0ff";
+ };
+ }
+
+ {
+ name = "is_obj___is_obj_1.0.1.tgz";
+ path = fetchurl {
+ name = "is_obj___is_obj_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz";
+ sha1 = "3e4729ac1f5fde025cd7d83a896dab9f4f67db0f";
+ };
+ }
+
+ {
+ name = "is_path_cwd___is_path_cwd_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_path_cwd___is_path_cwd_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz";
+ sha1 = "d225ec23132e89edd38fda767472e62e65f1106d";
+ };
+ }
+
+ {
+ name = "is_path_in_cwd___is_path_in_cwd_1.0.1.tgz";
+ path = fetchurl {
+ name = "is_path_in_cwd___is_path_in_cwd_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz";
+ sha1 = "5ac48b345ef675339bd6c7a48a912110b241cf52";
+ };
+ }
+
+ {
+ name = "is_path_inside___is_path_inside_1.0.1.tgz";
+ path = fetchurl {
+ name = "is_path_inside___is_path_inside_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz";
+ sha1 = "8ef5b7de50437a3fdca6b4e865ef7aa55cb48036";
+ };
+ }
+
+ {
+ name = "is_plain_object___is_plain_object_2.0.4.tgz";
+ path = fetchurl {
+ name = "is_plain_object___is_plain_object_2.0.4.tgz";
+ url = "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz";
+ sha1 = "2c163b3fafb1b606d9d17928f05c2a1c38e07677";
+ };
+ }
+
+ {
+ name = "is_posix_bracket___is_posix_bracket_0.1.1.tgz";
+ path = fetchurl {
+ name = "is_posix_bracket___is_posix_bracket_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz";
+ sha1 = "3334dc79774368e92f016e6fbc0a88f5cd6e6bc4";
+ };
+ }
+
+ {
+ name = "is_primitive___is_primitive_2.0.0.tgz";
+ path = fetchurl {
+ name = "is_primitive___is_primitive_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz";
+ sha1 = "207bab91638499c07b2adf240a41a87210034575";
+ };
+ }
+
+ {
+ name = "is_promise___is_promise_2.1.0.tgz";
+ path = fetchurl {
+ name = "is_promise___is_promise_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz";
+ sha1 = "79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa";
+ };
+ }
+
+ {
+ name = "is_regex___is_regex_1.0.4.tgz";
+ path = fetchurl {
+ name = "is_regex___is_regex_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz";
+ sha1 = "5517489b547091b0930e095654ced25ee97e9491";
+ };
+ }
+
+ {
+ name = "is_resolvable___is_resolvable_1.1.0.tgz";
+ path = fetchurl {
+ name = "is_resolvable___is_resolvable_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz";
+ sha1 = "fb18f87ce1feb925169c9a407c19318a3206ed88";
+ };
+ }
+
+ {
+ name = "is_stream___is_stream_1.1.0.tgz";
+ path = fetchurl {
+ name = "is_stream___is_stream_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz";
+ sha1 = "12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44";
+ };
+ }
+
+ {
+ name = "is_string___is_string_1.0.4.tgz";
+ path = fetchurl {
+ name = "is_string___is_string_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/is-string/-/is-string-1.0.4.tgz";
+ sha1 = "cc3a9b69857d621e963725a24caeec873b826e64";
+ };
+ }
+
+ {
+ name = "is_subset___is_subset_0.1.1.tgz";
+ path = fetchurl {
+ name = "is_subset___is_subset_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/is-subset/-/is-subset-0.1.1.tgz";
+ sha1 = "8a59117d932de1de00f245fcdd39ce43f1e939a6";
+ };
+ }
+
+ {
+ name = "is_svg___is_svg_3.0.0.tgz";
+ path = fetchurl {
+ name = "is_svg___is_svg_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-svg/-/is-svg-3.0.0.tgz";
+ sha1 = "9321dbd29c212e5ca99c4fa9794c714bcafa2f75";
+ };
+ }
+
+ {
+ name = "is_symbol___is_symbol_1.0.2.tgz";
+ path = fetchurl {
+ name = "is_symbol___is_symbol_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz";
+ sha1 = "a055f6ae57192caee329e7a860118b497a950f38";
+ };
+ }
+
+ {
+ name = "is_typedarray___is_typedarray_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_typedarray___is_typedarray_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz";
+ sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a";
+ };
+ }
+
+ {
+ name = "is_utf8___is_utf8_0.2.1.tgz";
+ path = fetchurl {
+ name = "is_utf8___is_utf8_0.2.1.tgz";
+ url = "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz";
+ sha1 = "4b0da1442104d1b336340e80797e865cf39f7d72";
+ };
+ }
+
+ {
+ name = "is_windows___is_windows_1.0.2.tgz";
+ path = fetchurl {
+ name = "is_windows___is_windows_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz";
+ sha1 = "d1850eb9791ecd18e6182ce12a30f396634bb19d";
+ };
+ }
+
+ {
+ name = "is_wsl___is_wsl_1.1.0.tgz";
+ path = fetchurl {
+ name = "is_wsl___is_wsl_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz";
+ sha1 = "1f16e4aa22b04d1336b66188a66af3c600c3a66d";
+ };
+ }
+
+ {
+ name = "isarray___isarray_0.0.1.tgz";
+ path = fetchurl {
+ name = "isarray___isarray_0.0.1.tgz";
+ url = "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz";
+ sha1 = "8a18acfca9a8f4177e09abfc6038939b05d1eedf";
+ };
+ }
+
+ {
+ name = "isarray___isarray_1.0.0.tgz";
+ path = fetchurl {
+ name = "isarray___isarray_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz";
+ sha1 = "bb935d48582cba168c06834957a54a3e07124f11";
+ };
+ }
+
+ {
+ name = "isexe___isexe_2.0.0.tgz";
+ path = fetchurl {
+ name = "isexe___isexe_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz";
+ sha1 = "e8fbf374dc556ff8947a10dcb0572d633f2cfa10";
+ };
+ }
+
+ {
+ name = "isobject___isobject_2.1.0.tgz";
+ path = fetchurl {
+ name = "isobject___isobject_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz";
+ sha1 = "f065561096a3f1da2ef46272f815c840d87e0c89";
+ };
+ }
+
+ {
+ name = "isobject___isobject_3.0.1.tgz";
+ path = fetchurl {
+ name = "isobject___isobject_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz";
+ sha1 = "4e431e92b11a9731636aa1f9c8d1ccbcfdab78df";
+ };
+ }
+
+ {
+ name = "isomorphic_fetch___isomorphic_fetch_2.2.1.tgz";
+ path = fetchurl {
+ name = "isomorphic_fetch___isomorphic_fetch_2.2.1.tgz";
+ url = "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz";
+ sha1 = "611ae1acf14f5e81f729507472819fe9733558a9";
+ };
+ }
+
+ {
+ name = "isstream___isstream_0.1.2.tgz";
+ path = fetchurl {
+ name = "isstream___isstream_0.1.2.tgz";
+ url = "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz";
+ sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a";
+ };
+ }
+
+ {
+ name = "istanbul_api___istanbul_api_1.3.7.tgz";
+ path = fetchurl {
+ name = "istanbul_api___istanbul_api_1.3.7.tgz";
+ url = "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.3.7.tgz";
+ sha1 = "a86c770d2b03e11e3f778cd7aedd82d2722092aa";
+ };
+ }
+
+ {
+ name = "istanbul_lib_coverage___istanbul_lib_coverage_1.2.1.tgz";
+ path = fetchurl {
+ name = "istanbul_lib_coverage___istanbul_lib_coverage_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.1.tgz";
+ sha1 = "ccf7edcd0a0bb9b8f729feeb0930470f9af664f0";
+ };
+ }
+
+ {
+ name = "istanbul_lib_hook___istanbul_lib_hook_1.2.2.tgz";
+ path = fetchurl {
+ name = "istanbul_lib_hook___istanbul_lib_hook_1.2.2.tgz";
+ url = "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.2.2.tgz";
+ sha1 = "bc6bf07f12a641fbf1c85391d0daa8f0aea6bf86";
+ };
+ }
+
+ {
+ name = "istanbul_lib_instrument___istanbul_lib_instrument_1.10.2.tgz";
+ path = fetchurl {
+ name = "istanbul_lib_instrument___istanbul_lib_instrument_1.10.2.tgz";
+ url = "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.2.tgz";
+ sha1 = "1f55ed10ac3c47f2bdddd5307935126754d0a9ca";
+ };
+ }
+
+ {
+ name = "istanbul_lib_report___istanbul_lib_report_1.1.5.tgz";
+ path = fetchurl {
+ name = "istanbul_lib_report___istanbul_lib_report_1.1.5.tgz";
+ url = "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.5.tgz";
+ sha1 = "f2a657fc6282f96170aaf281eb30a458f7f4170c";
+ };
+ }
+
+ {
+ name = "istanbul_lib_source_maps___istanbul_lib_source_maps_1.2.6.tgz";
+ path = fetchurl {
+ name = "istanbul_lib_source_maps___istanbul_lib_source_maps_1.2.6.tgz";
+ url = "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.6.tgz";
+ sha1 = "37b9ff661580f8fca11232752ee42e08c6675d8f";
+ };
+ }
+
+ {
+ name = "istanbul_reports___istanbul_reports_1.5.1.tgz";
+ path = fetchurl {
+ name = "istanbul_reports___istanbul_reports_1.5.1.tgz";
+ url = "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.5.1.tgz";
+ sha1 = "97e4dbf3b515e8c484caea15d6524eebd3ff4e1a";
+ };
+ }
+
+ {
+ name = "jest_changed_files___jest_changed_files_23.4.2.tgz";
+ path = fetchurl {
+ name = "jest_changed_files___jest_changed_files_23.4.2.tgz";
+ url = "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-23.4.2.tgz";
+ sha1 = "1eed688370cd5eebafe4ae93d34bb3b64968fe83";
+ };
+ }
+
+ {
+ name = "jest_cli___jest_cli_23.6.0.tgz";
+ path = fetchurl {
+ name = "jest_cli___jest_cli_23.6.0.tgz";
+ url = "https://registry.yarnpkg.com/jest-cli/-/jest-cli-23.6.0.tgz";
+ sha1 = "61ab917744338f443ef2baa282ddffdd658a5da4";
+ };
+ }
+
+ {
+ name = "jest_config___jest_config_23.6.0.tgz";
+ path = fetchurl {
+ name = "jest_config___jest_config_23.6.0.tgz";
+ url = "https://registry.yarnpkg.com/jest-config/-/jest-config-23.6.0.tgz";
+ sha1 = "f82546a90ade2d8c7026fbf6ac5207fc22f8eb1d";
+ };
+ }
+
+ {
+ name = "jest_diff___jest_diff_23.6.0.tgz";
+ path = fetchurl {
+ name = "jest_diff___jest_diff_23.6.0.tgz";
+ url = "https://registry.yarnpkg.com/jest-diff/-/jest-diff-23.6.0.tgz";
+ sha1 = "1500f3f16e850bb3d71233408089be099f610c7d";
+ };
+ }
+
+ {
+ name = "jest_docblock___jest_docblock_23.2.0.tgz";
+ path = fetchurl {
+ name = "jest_docblock___jest_docblock_23.2.0.tgz";
+ url = "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-23.2.0.tgz";
+ sha1 = "f085e1f18548d99fdd69b20207e6fd55d91383a7";
+ };
+ }
+
+ {
+ name = "jest_each___jest_each_23.6.0.tgz";
+ path = fetchurl {
+ name = "jest_each___jest_each_23.6.0.tgz";
+ url = "https://registry.yarnpkg.com/jest-each/-/jest-each-23.6.0.tgz";
+ sha1 = "ba0c3a82a8054387016139c733a05242d3d71575";
+ };
+ }
+
+ {
+ name = "jest_environment_jsdom___jest_environment_jsdom_23.4.0.tgz";
+ path = fetchurl {
+ name = "jest_environment_jsdom___jest_environment_jsdom_23.4.0.tgz";
+ url = "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-23.4.0.tgz";
+ sha1 = "056a7952b3fea513ac62a140a2c368c79d9e6023";
+ };
+ }
+
+ {
+ name = "jest_environment_node___jest_environment_node_23.4.0.tgz";
+ path = fetchurl {
+ name = "jest_environment_node___jest_environment_node_23.4.0.tgz";
+ url = "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-23.4.0.tgz";
+ sha1 = "57e80ed0841dea303167cce8cd79521debafde10";
+ };
+ }
+
+ {
+ name = "jest_get_type___jest_get_type_22.4.3.tgz";
+ path = fetchurl {
+ name = "jest_get_type___jest_get_type_22.4.3.tgz";
+ url = "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-22.4.3.tgz";
+ sha1 = "e3a8504d8479342dd4420236b322869f18900ce4";
+ };
+ }
+
+ {
+ name = "jest_haste_map___jest_haste_map_23.6.0.tgz";
+ path = fetchurl {
+ name = "jest_haste_map___jest_haste_map_23.6.0.tgz";
+ url = "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-23.6.0.tgz";
+ sha1 = "2e3eb997814ca696d62afdb3f2529f5bbc935e16";
+ };
+ }
+
+ {
+ name = "jest_jasmine2___jest_jasmine2_23.6.0.tgz";
+ path = fetchurl {
+ name = "jest_jasmine2___jest_jasmine2_23.6.0.tgz";
+ url = "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-23.6.0.tgz";
+ sha1 = "840e937f848a6c8638df24360ab869cc718592e0";
+ };
+ }
+
+ {
+ name = "jest_leak_detector___jest_leak_detector_23.6.0.tgz";
+ path = fetchurl {
+ name = "jest_leak_detector___jest_leak_detector_23.6.0.tgz";
+ url = "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-23.6.0.tgz";
+ sha1 = "e4230fd42cf381a1a1971237ad56897de7e171de";
+ };
+ }
+
+ {
+ name = "jest_matcher_utils___jest_matcher_utils_23.6.0.tgz";
+ path = fetchurl {
+ name = "jest_matcher_utils___jest_matcher_utils_23.6.0.tgz";
+ url = "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-23.6.0.tgz";
+ sha1 = "726bcea0c5294261a7417afb6da3186b4b8cac80";
+ };
+ }
+
+ {
+ name = "jest_message_util___jest_message_util_23.4.0.tgz";
+ path = fetchurl {
+ name = "jest_message_util___jest_message_util_23.4.0.tgz";
+ url = "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-23.4.0.tgz";
+ sha1 = "17610c50942349508d01a3d1e0bda2c079086a9f";
+ };
+ }
+
+ {
+ name = "jest_mock___jest_mock_23.2.0.tgz";
+ path = fetchurl {
+ name = "jest_mock___jest_mock_23.2.0.tgz";
+ url = "https://registry.yarnpkg.com/jest-mock/-/jest-mock-23.2.0.tgz";
+ sha1 = "ad1c60f29e8719d47c26e1138098b6d18b261134";
+ };
+ }
+
+ {
+ name = "jest_regex_util___jest_regex_util_23.3.0.tgz";
+ path = fetchurl {
+ name = "jest_regex_util___jest_regex_util_23.3.0.tgz";
+ url = "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-23.3.0.tgz";
+ sha1 = "5f86729547c2785c4002ceaa8f849fe8ca471bc5";
+ };
+ }
+
+ {
+ name = "jest_resolve_dependencies___jest_resolve_dependencies_23.6.0.tgz";
+ path = fetchurl {
+ name = "jest_resolve_dependencies___jest_resolve_dependencies_23.6.0.tgz";
+ url = "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-23.6.0.tgz";
+ sha1 = "b4526af24c8540d9a3fab102c15081cf509b723d";
+ };
+ }
+
+ {
+ name = "jest_resolve___jest_resolve_23.6.0.tgz";
+ path = fetchurl {
+ name = "jest_resolve___jest_resolve_23.6.0.tgz";
+ url = "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-23.6.0.tgz";
+ sha1 = "cf1d1a24ce7ee7b23d661c33ba2150f3aebfa0ae";
+ };
+ }
+
+ {
+ name = "jest_runner___jest_runner_23.6.0.tgz";
+ path = fetchurl {
+ name = "jest_runner___jest_runner_23.6.0.tgz";
+ url = "https://registry.yarnpkg.com/jest-runner/-/jest-runner-23.6.0.tgz";
+ sha1 = "3894bd219ffc3f3cb94dc48a4170a2e6f23a5a38";
+ };
+ }
+
+ {
+ name = "jest_runtime___jest_runtime_23.6.0.tgz";
+ path = fetchurl {
+ name = "jest_runtime___jest_runtime_23.6.0.tgz";
+ url = "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-23.6.0.tgz";
+ sha1 = "059e58c8ab445917cd0e0d84ac2ba68de8f23082";
+ };
+ }
+
+ {
+ name = "jest_serializer___jest_serializer_23.0.1.tgz";
+ path = fetchurl {
+ name = "jest_serializer___jest_serializer_23.0.1.tgz";
+ url = "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-23.0.1.tgz";
+ sha1 = "a3776aeb311e90fe83fab9e533e85102bd164165";
+ };
+ }
+
+ {
+ name = "jest_snapshot___jest_snapshot_23.6.0.tgz";
+ path = fetchurl {
+ name = "jest_snapshot___jest_snapshot_23.6.0.tgz";
+ url = "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-23.6.0.tgz";
+ sha1 = "f9c2625d1b18acda01ec2d2b826c0ce58a5aa17a";
+ };
+ }
+
+ {
+ name = "jest_util___jest_util_23.4.0.tgz";
+ path = fetchurl {
+ name = "jest_util___jest_util_23.4.0.tgz";
+ url = "https://registry.yarnpkg.com/jest-util/-/jest-util-23.4.0.tgz";
+ sha1 = "4d063cb927baf0a23831ff61bec2cbbf49793561";
+ };
+ }
+
+ {
+ name = "jest_validate___jest_validate_23.6.0.tgz";
+ path = fetchurl {
+ name = "jest_validate___jest_validate_23.6.0.tgz";
+ url = "https://registry.yarnpkg.com/jest-validate/-/jest-validate-23.6.0.tgz";
+ sha1 = "36761f99d1ed33fcd425b4e4c5595d62b6597474";
+ };
+ }
+
+ {
+ name = "jest_watcher___jest_watcher_23.4.0.tgz";
+ path = fetchurl {
+ name = "jest_watcher___jest_watcher_23.4.0.tgz";
+ url = "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-23.4.0.tgz";
+ sha1 = "d2e28ce74f8dad6c6afc922b92cabef6ed05c91c";
+ };
+ }
+
+ {
+ name = "jest_worker___jest_worker_23.2.0.tgz";
+ path = fetchurl {
+ name = "jest_worker___jest_worker_23.2.0.tgz";
+ url = "https://registry.yarnpkg.com/jest-worker/-/jest-worker-23.2.0.tgz";
+ sha1 = "faf706a8da36fae60eb26957257fa7b5d8ea02b9";
+ };
+ }
+
+ {
+ name = "jest___jest_23.6.0.tgz";
+ path = fetchurl {
+ name = "jest___jest_23.6.0.tgz";
+ url = "https://registry.yarnpkg.com/jest/-/jest-23.6.0.tgz";
+ sha1 = "ad5835e923ebf6e19e7a1d7529a432edfee7813d";
+ };
+ }
+
+ {
+ name = "js_base64___js_base64_2.5.0.tgz";
+ path = fetchurl {
+ name = "js_base64___js_base64_2.5.0.tgz";
+ url = "https://registry.yarnpkg.com/js-base64/-/js-base64-2.5.0.tgz";
+ sha1 = "42255ba183ab67ce59a0dee640afdc00ab5ae93e";
+ };
+ }
+
+ {
+ name = "js_levenshtein___js_levenshtein_1.1.4.tgz";
+ path = fetchurl {
+ name = "js_levenshtein___js_levenshtein_1.1.4.tgz";
+ url = "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.4.tgz";
+ sha1 = "3a56e3cbf589ca0081eb22cd9ba0b1290a16d26e";
+ };
+ }
+
+ {
+ name = "js_string_escape___js_string_escape_1.0.1.tgz";
+ path = fetchurl {
+ name = "js_string_escape___js_string_escape_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/js-string-escape/-/js-string-escape-1.0.1.tgz";
+ sha1 = "e2625badbc0d67c7533e9edc1068c587ae4137ef";
+ };
+ }
+
+ {
+ name = "js_tokens___js_tokens_4.0.0.tgz";
+ path = fetchurl {
+ name = "js_tokens___js_tokens_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz";
+ sha1 = "19203fb59991df98e3a287050d4647cdeaf32499";
+ };
+ }
+
+ {
+ name = "js_tokens___js_tokens_3.0.2.tgz";
+ path = fetchurl {
+ name = "js_tokens___js_tokens_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz";
+ sha1 = "9866df395102130e38f7f996bceb65443209c25b";
+ };
+ }
+
+ {
+ name = "js_yaml___js_yaml_3.12.0.tgz";
+ path = fetchurl {
+ name = "js_yaml___js_yaml_3.12.0.tgz";
+ url = "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz";
+ sha1 = "eaed656ec8344f10f527c6bfa1b6e2244de167d1";
+ };
+ }
+
+ {
+ name = "jsbn___jsbn_0.1.1.tgz";
+ path = fetchurl {
+ name = "jsbn___jsbn_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz";
+ sha1 = "a5e654c2e5a2deb5f201d96cefbca80c0ef2f513";
+ };
+ }
+
+ {
+ name = "jsdom___jsdom_11.12.0.tgz";
+ path = fetchurl {
+ name = "jsdom___jsdom_11.12.0.tgz";
+ url = "https://registry.yarnpkg.com/jsdom/-/jsdom-11.12.0.tgz";
+ sha1 = "1a80d40ddd378a1de59656e9e6dc5a3ba8657bc8";
+ };
+ }
+
+ {
+ name = "jsesc___jsesc_1.3.0.tgz";
+ path = fetchurl {
+ name = "jsesc___jsesc_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz";
+ sha1 = "46c3fec8c1892b12b0833db9bc7622176dbab34b";
+ };
+ }
+
+ {
+ name = "jsesc___jsesc_2.5.2.tgz";
+ path = fetchurl {
+ name = "jsesc___jsesc_2.5.2.tgz";
+ url = "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz";
+ sha1 = "80564d2e483dacf6e8ef209650a67df3f0c283a4";
+ };
+ }
+
+ {
+ name = "jsesc___jsesc_0.5.0.tgz";
+ path = fetchurl {
+ name = "jsesc___jsesc_0.5.0.tgz";
+ url = "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz";
+ sha1 = "e7dee66e35d6fc16f710fe91d5cf69f70f08911d";
+ };
+ }
+
+ {
+ name = "json_parse_better_errors___json_parse_better_errors_1.0.2.tgz";
+ path = fetchurl {
+ name = "json_parse_better_errors___json_parse_better_errors_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz";
+ sha1 = "bb867cfb3450e69107c131d1c514bab3dc8bcaa9";
+ };
+ }
+
+ {
+ name = "json_schema_traverse___json_schema_traverse_0.4.1.tgz";
+ path = fetchurl {
+ name = "json_schema_traverse___json_schema_traverse_0.4.1.tgz";
+ url = "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz";
+ sha1 = "69f6a87d9513ab8bb8fe63bdb0979c448e684660";
+ };
+ }
+
+ {
+ name = "json_schema___json_schema_0.2.3.tgz";
+ path = fetchurl {
+ name = "json_schema___json_schema_0.2.3.tgz";
+ url = "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz";
+ sha1 = "b480c892e59a2f05954ce727bd3f2a4e882f9e13";
+ };
+ }
+
+ {
+ name = "json_stable_stringify_without_jsonify___json_stable_stringify_without_jsonify_1.0.1.tgz";
+ path = fetchurl {
+ name = "json_stable_stringify_without_jsonify___json_stable_stringify_without_jsonify_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz";
+ sha1 = "9db7b59496ad3f3cfef30a75142d2d930ad72651";
+ };
+ }
+
+ {
+ name = "json_stable_stringify___json_stable_stringify_1.0.1.tgz";
+ path = fetchurl {
+ name = "json_stable_stringify___json_stable_stringify_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz";
+ sha1 = "9a759d39c5f2ff503fd5300646ed445f88c4f9af";
+ };
+ }
+
+ {
+ name = "json_stringify_safe___json_stringify_safe_5.0.1.tgz";
+ path = fetchurl {
+ name = "json_stringify_safe___json_stringify_safe_5.0.1.tgz";
+ url = "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz";
+ sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb";
+ };
+ }
+
+ {
+ name = "json3___json3_3.3.2.tgz";
+ path = fetchurl {
+ name = "json3___json3_3.3.2.tgz";
+ url = "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz";
+ sha1 = "3c0434743df93e2f5c42aee7b19bcb483575f4e1";
+ };
+ }
+
+ {
+ name = "json5___json5_0.5.1.tgz";
+ path = fetchurl {
+ name = "json5___json5_0.5.1.tgz";
+ url = "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz";
+ sha1 = "1eade7acc012034ad84e2396767ead9fa5495821";
+ };
+ }
+
+ {
+ name = "json5___json5_1.0.1.tgz";
+ path = fetchurl {
+ name = "json5___json5_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz";
+ sha1 = "779fb0018604fa854eacbf6252180d83543e3dbe";
+ };
+ }
+
+ {
+ name = "json5___json5_2.1.0.tgz";
+ path = fetchurl {
+ name = "json5___json5_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/json5/-/json5-2.1.0.tgz";
+ sha1 = "e7a0c62c48285c628d20a10b85c89bb807c32850";
+ };
+ }
+
+ {
+ name = "jsonify___jsonify_0.0.0.tgz";
+ path = fetchurl {
+ name = "jsonify___jsonify_0.0.0.tgz";
+ url = "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz";
+ sha1 = "2c74b6ee41d93ca51b7b5aaee8f503631d252a73";
+ };
+ }
+
+ {
+ name = "jsprim___jsprim_1.4.1.tgz";
+ path = fetchurl {
+ name = "jsprim___jsprim_1.4.1.tgz";
+ url = "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz";
+ sha1 = "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2";
+ };
+ }
+
+ {
+ name = "jsx_ast_utils___jsx_ast_utils_2.0.1.tgz";
+ path = fetchurl {
+ name = "jsx_ast_utils___jsx_ast_utils_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz";
+ sha1 = "e801b1b39985e20fffc87b40e3748080e2dcac7f";
+ };
+ }
+
+ {
+ name = "keycode___keycode_2.2.0.tgz";
+ path = fetchurl {
+ name = "keycode___keycode_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/keycode/-/keycode-2.2.0.tgz";
+ sha1 = "3d0af56dc7b8b8e5cba8d0a97f107204eec22b04";
+ };
+ }
+
+ {
+ name = "killable___killable_1.0.1.tgz";
+ path = fetchurl {
+ name = "killable___killable_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz";
+ sha1 = "4c8ce441187a061c7474fb87ca08e2a638194892";
+ };
+ }
+
+ {
+ name = "kind_of___kind_of_3.2.2.tgz";
+ path = fetchurl {
+ name = "kind_of___kind_of_3.2.2.tgz";
+ url = "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz";
+ sha1 = "31ea21a734bab9bbb0f32466d893aea51e4a3c64";
+ };
+ }
+
+ {
+ name = "kind_of___kind_of_4.0.0.tgz";
+ path = fetchurl {
+ name = "kind_of___kind_of_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz";
+ sha1 = "20813df3d712928b207378691a45066fae72dd57";
+ };
+ }
+
+ {
+ name = "kind_of___kind_of_5.1.0.tgz";
+ path = fetchurl {
+ name = "kind_of___kind_of_5.1.0.tgz";
+ url = "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz";
+ sha1 = "729c91e2d857b7a419a1f9aa65685c4c33f5845d";
+ };
+ }
+
+ {
+ name = "kind_of___kind_of_6.0.2.tgz";
+ path = fetchurl {
+ name = "kind_of___kind_of_6.0.2.tgz";
+ url = "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz";
+ sha1 = "01146b36a6218e64e58f3a8d66de5d7fc6f6d051";
+ };
+ }
+
+ {
+ name = "kleur___kleur_2.0.2.tgz";
+ path = fetchurl {
+ name = "kleur___kleur_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/kleur/-/kleur-2.0.2.tgz";
+ sha1 = "b704f4944d95e255d038f0cb05fb8a602c55a300";
+ };
+ }
+
+ {
+ name = "knot.js___knot.js_1.1.5.tgz";
+ path = fetchurl {
+ name = "knot.js___knot.js_1.1.5.tgz";
+ url = "https://registry.yarnpkg.com/knot.js/-/knot.js-1.1.5.tgz";
+ sha1 = "28e72522f703f50fe98812fde224dd72728fef5d";
+ };
+ }
+
+ {
+ name = "lcid___lcid_1.0.0.tgz";
+ path = fetchurl {
+ name = "lcid___lcid_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz";
+ sha1 = "308accafa0bc483a3867b4b6f2b9506251d1b835";
+ };
+ }
+
+ {
+ name = "lcid___lcid_2.0.0.tgz";
+ path = fetchurl {
+ name = "lcid___lcid_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz";
+ sha1 = "6ef5d2df60e52f82eb228a4c373e8d1f397253cf";
+ };
+ }
+
+ {
+ name = "left_pad___left_pad_1.3.0.tgz";
+ path = fetchurl {
+ name = "left_pad___left_pad_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz";
+ sha1 = "5b8a3a7765dfe001261dde915589e782f8c94d1e";
+ };
+ }
+
+ {
+ name = "leven___leven_2.1.0.tgz";
+ path = fetchurl {
+ name = "leven___leven_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz";
+ sha1 = "c2e7a9f772094dee9d34202ae8acce4687875580";
+ };
+ }
+
+ {
+ name = "levn___levn_0.3.0.tgz";
+ path = fetchurl {
+ name = "levn___levn_0.3.0.tgz";
+ url = "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz";
+ sha1 = "3b09924edf9f083c0490fdd4c0bc4421e04764ee";
+ };
+ }
+
+ {
+ name = "load_json_file___load_json_file_1.1.0.tgz";
+ path = fetchurl {
+ name = "load_json_file___load_json_file_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz";
+ sha1 = "956905708d58b4bab4c2261b04f59f31c99374c0";
+ };
+ }
+
+ {
+ name = "load_json_file___load_json_file_2.0.0.tgz";
+ path = fetchurl {
+ name = "load_json_file___load_json_file_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz";
+ sha1 = "7947e42149af80d696cbf797bcaabcfe1fe29ca8";
+ };
+ }
+
+ {
+ name = "loader_runner___loader_runner_2.3.1.tgz";
+ path = fetchurl {
+ name = "loader_runner___loader_runner_2.3.1.tgz";
+ url = "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.1.tgz";
+ sha1 = "026f12fe7c3115992896ac02ba022ba92971b979";
+ };
+ }
+
+ {
+ name = "loader_utils___loader_utils_0.2.17.tgz";
+ path = fetchurl {
+ name = "loader_utils___loader_utils_0.2.17.tgz";
+ url = "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz";
+ sha1 = "f86e6374d43205a6e6c60e9196f17c0299bfb348";
+ };
+ }
+
+ {
+ name = "loader_utils___loader_utils_1.2.3.tgz";
+ path = fetchurl {
+ name = "loader_utils___loader_utils_1.2.3.tgz";
+ url = "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz";
+ sha1 = "1ff5dc6911c9f0a062531a4c04b609406108c2c7";
+ };
+ }
+
+ {
+ name = "locate_path___locate_path_2.0.0.tgz";
+ path = fetchurl {
+ name = "locate_path___locate_path_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz";
+ sha1 = "2b568b265eec944c6d9c0de9c3dbbbca0354cd8e";
+ };
+ }
+
+ {
+ name = "locate_path___locate_path_3.0.0.tgz";
+ path = fetchurl {
+ name = "locate_path___locate_path_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz";
+ sha1 = "dbec3b3ab759758071b58fe59fc41871af21400e";
+ };
+ }
+
+ {
+ name = "lodash.debounce___lodash.debounce_4.0.8.tgz";
+ path = fetchurl {
+ name = "lodash.debounce___lodash.debounce_4.0.8.tgz";
+ url = "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz";
+ sha1 = "82d79bff30a67c4005ffd5e2515300ad9ca4d7af";
+ };
+ }
+
+ {
+ name = "lodash.defaults___lodash.defaults_4.2.0.tgz";
+ path = fetchurl {
+ name = "lodash.defaults___lodash.defaults_4.2.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz";
+ sha1 = "d09178716ffea4dde9e5fb7b37f6f0802274580c";
+ };
+ }
+
+ {
+ name = "lodash.escape___lodash.escape_4.0.1.tgz";
+ path = fetchurl {
+ name = "lodash.escape___lodash.escape_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-4.0.1.tgz";
+ sha1 = "c9044690c21e04294beaa517712fded1fa88de98";
+ };
+ }
+
+ {
+ name = "lodash.flattendeep___lodash.flattendeep_4.4.0.tgz";
+ path = fetchurl {
+ name = "lodash.flattendeep___lodash.flattendeep_4.4.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz";
+ sha1 = "fb030917f86a3134e5bc9bec0d69e0013ddfedb2";
+ };
+ }
+
+ {
+ name = "lodash.get___lodash.get_4.4.2.tgz";
+ path = fetchurl {
+ name = "lodash.get___lodash.get_4.4.2.tgz";
+ url = "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz";
+ sha1 = "2d177f652fa31e939b4438d5341499dfa3825e99";
+ };
+ }
+
+ {
+ name = "lodash.has___lodash.has_4.5.2.tgz";
+ path = fetchurl {
+ name = "lodash.has___lodash.has_4.5.2.tgz";
+ url = "https://registry.yarnpkg.com/lodash.has/-/lodash.has-4.5.2.tgz";
+ sha1 = "d19f4dc1095058cccbe2b0cdf4ee0fe4aa37c862";
+ };
+ }
+
+ {
+ name = "lodash.isboolean___lodash.isboolean_3.0.3.tgz";
+ path = fetchurl {
+ name = "lodash.isboolean___lodash.isboolean_3.0.3.tgz";
+ url = "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz";
+ sha1 = "6c2e171db2a257cd96802fd43b01b20d5f5870f6";
+ };
+ }
+
+ {
+ name = "lodash.isequal___lodash.isequal_4.5.0.tgz";
+ path = fetchurl {
+ name = "lodash.isequal___lodash.isequal_4.5.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz";
+ sha1 = "415c4478f2bcc30120c22ce10ed3226f7d3e18e0";
+ };
+ }
+
+ {
+ name = "lodash.isobject___lodash.isobject_3.0.2.tgz";
+ path = fetchurl {
+ name = "lodash.isobject___lodash.isobject_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/lodash.isobject/-/lodash.isobject-3.0.2.tgz";
+ sha1 = "3c8fb8d5b5bf4bf90ae06e14f2a530a4ed935e1d";
+ };
+ }
+
+ {
+ name = "lodash.memoize___lodash.memoize_4.1.2.tgz";
+ path = fetchurl {
+ name = "lodash.memoize___lodash.memoize_4.1.2.tgz";
+ url = "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz";
+ sha1 = "bcc6c49a42a2840ed997f323eada5ecd182e0bfe";
+ };
+ }
+
+ {
+ name = "lodash.sortby___lodash.sortby_4.7.0.tgz";
+ path = fetchurl {
+ name = "lodash.sortby___lodash.sortby_4.7.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz";
+ sha1 = "edd14c824e2cc9c1e0b0a1b42bb5210516a42438";
+ };
+ }
+
+ {
+ name = "lodash.tail___lodash.tail_4.1.1.tgz";
+ path = fetchurl {
+ name = "lodash.tail___lodash.tail_4.1.1.tgz";
+ url = "https://registry.yarnpkg.com/lodash.tail/-/lodash.tail-4.1.1.tgz";
+ sha1 = "d2333a36d9e7717c8ad2f7cacafec7c32b444664";
+ };
+ }
+
+ {
+ name = "lodash.uniq___lodash.uniq_4.5.0.tgz";
+ path = fetchurl {
+ name = "lodash.uniq___lodash.uniq_4.5.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz";
+ sha1 = "d0225373aeb652adc1bc82e4945339a842754773";
+ };
+ }
+
+ {
+ name = "lodash___lodash_4.17.11.tgz";
+ path = fetchurl {
+ name = "lodash___lodash_4.17.11.tgz";
+ url = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz";
+ sha1 = "b39ea6229ef607ecd89e2c8df12536891cac9b8d";
+ };
+ }
+
+ {
+ name = "loglevel___loglevel_1.6.1.tgz";
+ path = fetchurl {
+ name = "loglevel___loglevel_1.6.1.tgz";
+ url = "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.1.tgz";
+ sha1 = "e0fc95133b6ef276cdc8887cdaf24aa6f156f8fa";
+ };
+ }
+
+ {
+ name = "loose_envify___loose_envify_1.4.0.tgz";
+ path = fetchurl {
+ name = "loose_envify___loose_envify_1.4.0.tgz";
+ url = "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz";
+ sha1 = "71ee51fa7be4caec1a63839f7e682d8132d30caf";
+ };
+ }
+
+ {
+ name = "lru_cache___lru_cache_4.1.5.tgz";
+ path = fetchurl {
+ name = "lru_cache___lru_cache_4.1.5.tgz";
+ url = "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz";
+ sha1 = "8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd";
+ };
+ }
+
+ {
+ name = "lru_cache___lru_cache_5.1.1.tgz";
+ path = fetchurl {
+ name = "lru_cache___lru_cache_5.1.1.tgz";
+ url = "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz";
+ sha1 = "1da27e6710271947695daf6848e847f01d84b920";
+ };
+ }
+
+ {
+ name = "make_dir___make_dir_1.3.0.tgz";
+ path = fetchurl {
+ name = "make_dir___make_dir_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz";
+ sha1 = "79c1033b80515bd6d24ec9933e860ca75ee27f0c";
+ };
+ }
+
+ {
+ name = "makeerror___makeerror_1.0.11.tgz";
+ path = fetchurl {
+ name = "makeerror___makeerror_1.0.11.tgz";
+ url = "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz";
+ sha1 = "e01a5c9109f2af79660e4e8b9587790184f5a96c";
+ };
+ }
+
+ {
+ name = "map_age_cleaner___map_age_cleaner_0.1.3.tgz";
+ path = fetchurl {
+ name = "map_age_cleaner___map_age_cleaner_0.1.3.tgz";
+ url = "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz";
+ sha1 = "7d583a7306434c055fe474b0f45078e6e1b4b92a";
+ };
+ }
+
+ {
+ name = "map_cache___map_cache_0.2.2.tgz";
+ path = fetchurl {
+ name = "map_cache___map_cache_0.2.2.tgz";
+ url = "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz";
+ sha1 = "c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf";
+ };
+ }
+
+ {
+ name = "map_visit___map_visit_1.0.0.tgz";
+ path = fetchurl {
+ name = "map_visit___map_visit_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz";
+ sha1 = "ecdca8f13144e660f1b5bd41f12f3479d98dfb8f";
+ };
+ }
+
+ {
+ name = "mark_loader___mark_loader_0.1.6.tgz";
+ path = fetchurl {
+ name = "mark_loader___mark_loader_0.1.6.tgz";
+ url = "https://registry.yarnpkg.com/mark-loader/-/mark-loader-0.1.6.tgz";
+ sha1 = "0abb477dca7421d70e20128ff6489f5cae8676d5";
+ };
+ }
+
+ {
+ name = "marky___marky_1.2.1.tgz";
+ path = fetchurl {
+ name = "marky___marky_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/marky/-/marky-1.2.1.tgz";
+ sha1 = "a3fcf82ffd357756b8b8affec9fdbf3a30dc1b02";
+ };
+ }
+
+ {
+ name = "math_random___math_random_1.0.1.tgz";
+ path = fetchurl {
+ name = "math_random___math_random_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/math-random/-/math-random-1.0.1.tgz";
+ sha1 = "8b3aac588b8a66e4975e3cdea67f7bb329601fac";
+ };
+ }
+
+ {
+ name = "md5.js___md5.js_1.3.5.tgz";
+ path = fetchurl {
+ name = "md5.js___md5.js_1.3.5.tgz";
+ url = "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz";
+ sha1 = "b5d07b8e3216e3e27cd728d72f70d1e6a342005f";
+ };
+ }
+
+ {
+ name = "mdn_data___mdn_data_1.1.4.tgz";
+ path = fetchurl {
+ name = "mdn_data___mdn_data_1.1.4.tgz";
+ url = "https://registry.yarnpkg.com/mdn-data/-/mdn-data-1.1.4.tgz";
+ sha1 = "50b5d4ffc4575276573c4eedb8780812a8419f01";
+ };
+ }
+
+ {
+ name = "media_typer___media_typer_0.3.0.tgz";
+ path = fetchurl {
+ name = "media_typer___media_typer_0.3.0.tgz";
+ url = "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz";
+ sha1 = "8710d7af0aa626f8fffa1ce00168545263255748";
+ };
+ }
+
+ {
+ name = "mem___mem_1.1.0.tgz";
+ path = fetchurl {
+ name = "mem___mem_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz";
+ sha1 = "5edd52b485ca1d900fe64895505399a0dfa45f76";
+ };
+ }
+
+ {
+ name = "mem___mem_4.0.0.tgz";
+ path = fetchurl {
+ name = "mem___mem_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/mem/-/mem-4.0.0.tgz";
+ sha1 = "6437690d9471678f6cc83659c00cbafcd6b0cdaf";
+ };
+ }
+
+ {
+ name = "memoize_one___memoize_one_4.1.0.tgz";
+ path = fetchurl {
+ name = "memoize_one___memoize_one_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/memoize-one/-/memoize-one-4.1.0.tgz";
+ sha1 = "a2387c58c03fff27ca390c31b764a79addf3f906";
+ };
+ }
+
+ {
+ name = "memory_fs___memory_fs_0.4.1.tgz";
+ path = fetchurl {
+ name = "memory_fs___memory_fs_0.4.1.tgz";
+ url = "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz";
+ sha1 = "3a9a20b8462523e447cfbc7e8bb80ed667bfc552";
+ };
+ }
+
+ {
+ name = "merge_descriptors___merge_descriptors_1.0.1.tgz";
+ path = fetchurl {
+ name = "merge_descriptors___merge_descriptors_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz";
+ sha1 = "b00aaa556dd8b44568150ec9d1b953f3f90cbb61";
+ };
+ }
+
+ {
+ name = "merge_stream___merge_stream_1.0.1.tgz";
+ path = fetchurl {
+ name = "merge_stream___merge_stream_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz";
+ sha1 = "4041202d508a342ba00174008df0c251b8c135e1";
+ };
+ }
+
+ {
+ name = "merge___merge_1.2.1.tgz";
+ path = fetchurl {
+ name = "merge___merge_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/merge/-/merge-1.2.1.tgz";
+ sha1 = "38bebf80c3220a8a487b6fcfb3941bb11720c145";
+ };
+ }
+
+ {
+ name = "methods___methods_1.1.2.tgz";
+ path = fetchurl {
+ name = "methods___methods_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz";
+ sha1 = "5529a4d67654134edcc5266656835b0f851afcee";
+ };
+ }
+
+ {
+ name = "micromatch___micromatch_2.3.11.tgz";
+ path = fetchurl {
+ name = "micromatch___micromatch_2.3.11.tgz";
+ url = "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz";
+ sha1 = "86677c97d1720b363431d04d0d15293bd38c1565";
+ };
+ }
+
+ {
+ name = "micromatch___micromatch_3.1.10.tgz";
+ path = fetchurl {
+ name = "micromatch___micromatch_3.1.10.tgz";
+ url = "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz";
+ sha1 = "70859bc95c9840952f359a068a3fc49f9ecfac23";
+ };
+ }
+
+ {
+ name = "miller_rabin___miller_rabin_4.0.1.tgz";
+ path = fetchurl {
+ name = "miller_rabin___miller_rabin_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz";
+ sha1 = "f080351c865b0dc562a8462966daa53543c78a4d";
+ };
+ }
+
+ {
+ name = "mime_db___mime_db_1.37.0.tgz";
+ path = fetchurl {
+ name = "mime_db___mime_db_1.37.0.tgz";
+ url = "https://registry.yarnpkg.com/mime-db/-/mime-db-1.37.0.tgz";
+ sha1 = "0b6a0ce6fdbe9576e25f1f2d2fde8830dc0ad0d8";
+ };
+ }
+
+ {
+ name = "mime_types___mime_types_2.1.21.tgz";
+ path = fetchurl {
+ name = "mime_types___mime_types_2.1.21.tgz";
+ url = "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.21.tgz";
+ sha1 = "28995aa1ecb770742fe6ae7e58f9181c744b3f96";
+ };
+ }
+
+ {
+ name = "mime___mime_1.4.1.tgz";
+ path = fetchurl {
+ name = "mime___mime_1.4.1.tgz";
+ url = "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz";
+ sha1 = "121f9ebc49e3766f311a76e1fa1c8003c4b03aa6";
+ };
+ }
+
+ {
+ name = "mime___mime_2.4.0.tgz";
+ path = fetchurl {
+ name = "mime___mime_2.4.0.tgz";
+ url = "https://registry.yarnpkg.com/mime/-/mime-2.4.0.tgz";
+ sha1 = "e051fd881358585f3279df333fe694da0bcffdd6";
+ };
+ }
+
+ {
+ name = "mimic_fn___mimic_fn_1.2.0.tgz";
+ path = fetchurl {
+ name = "mimic_fn___mimic_fn_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz";
+ sha1 = "820c86a39334640e99516928bd03fca88057d022";
+ };
+ }
+
+ {
+ name = "mini_css_extract_plugin___mini_css_extract_plugin_0.5.0.tgz";
+ path = fetchurl {
+ name = "mini_css_extract_plugin___mini_css_extract_plugin_0.5.0.tgz";
+ url = "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.5.0.tgz";
+ sha1 = "ac0059b02b9692515a637115b0cc9fed3a35c7b0";
+ };
+ }
+
+ {
+ name = "minimalistic_assert___minimalistic_assert_1.0.1.tgz";
+ path = fetchurl {
+ name = "minimalistic_assert___minimalistic_assert_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz";
+ sha1 = "2e194de044626d4a10e7f7fbc00ce73e83e4d5c7";
+ };
+ }
+
+ {
+ name = "minimalistic_crypto_utils___minimalistic_crypto_utils_1.0.1.tgz";
+ path = fetchurl {
+ name = "minimalistic_crypto_utils___minimalistic_crypto_utils_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz";
+ sha1 = "f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a";
+ };
+ }
+
+ {
+ name = "minimatch___minimatch_3.0.4.tgz";
+ path = fetchurl {
+ name = "minimatch___minimatch_3.0.4.tgz";
+ url = "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz";
+ sha1 = "5166e286457f03306064be5497e8dbb0c3d32083";
+ };
+ }
+
+ {
+ name = "minimist___minimist_0.0.8.tgz";
+ path = fetchurl {
+ name = "minimist___minimist_0.0.8.tgz";
+ url = "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz";
+ sha1 = "857fcabfc3397d2625b8228262e86aa7a011b05d";
+ };
+ }
+
+ {
+ name = "minimist___minimist_1.2.0.tgz";
+ path = fetchurl {
+ name = "minimist___minimist_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz";
+ sha1 = "a35008b20f41383eec1fb914f4cd5df79a264284";
+ };
+ }
+
+ {
+ name = "minimist___minimist_0.0.10.tgz";
+ path = fetchurl {
+ name = "minimist___minimist_0.0.10.tgz";
+ url = "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz";
+ sha1 = "de3f98543dbf96082be48ad1a0c7cda836301dcf";
+ };
+ }
+
+ {
+ name = "minipass___minipass_2.3.5.tgz";
+ path = fetchurl {
+ name = "minipass___minipass_2.3.5.tgz";
+ url = "https://registry.yarnpkg.com/minipass/-/minipass-2.3.5.tgz";
+ sha1 = "cacebe492022497f656b0f0f51e2682a9ed2d848";
+ };
+ }
+
+ {
+ name = "minizlib___minizlib_1.2.1.tgz";
+ path = fetchurl {
+ name = "minizlib___minizlib_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/minizlib/-/minizlib-1.2.1.tgz";
+ sha1 = "dd27ea6136243c7c880684e8672bb3a45fd9b614";
+ };
+ }
+
+ {
+ name = "mississippi___mississippi_3.0.0.tgz";
+ path = fetchurl {
+ name = "mississippi___mississippi_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz";
+ sha1 = "ea0a3291f97e0b5e8776b363d5f0a12d94c67022";
+ };
+ }
+
+ {
+ name = "mixin_deep___mixin_deep_1.3.1.tgz";
+ path = fetchurl {
+ name = "mixin_deep___mixin_deep_1.3.1.tgz";
+ url = "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz";
+ sha1 = "a49e7268dce1a0d9698e45326c5626df3543d0fe";
+ };
+ }
+
+ {
+ name = "mixin_object___mixin_object_2.0.1.tgz";
+ path = fetchurl {
+ name = "mixin_object___mixin_object_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/mixin-object/-/mixin-object-2.0.1.tgz";
+ sha1 = "4fb949441dab182540f1fe035ba60e1947a5e57e";
+ };
+ }
+
+ {
+ name = "mkdirp___mkdirp_0.5.1.tgz";
+ path = fetchurl {
+ name = "mkdirp___mkdirp_0.5.1.tgz";
+ url = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz";
+ sha1 = "30057438eac6cf7f8c4767f38648d6697d75c903";
+ };
+ }
+
+ {
+ name = "moo___moo_0.4.3.tgz";
+ path = fetchurl {
+ name = "moo___moo_0.4.3.tgz";
+ url = "https://registry.yarnpkg.com/moo/-/moo-0.4.3.tgz";
+ sha1 = "3f847a26f31cf625a956a87f2b10fbc013bfd10e";
+ };
+ }
+
+ {
+ name = "mousetrap___mousetrap_1.6.2.tgz";
+ path = fetchurl {
+ name = "mousetrap___mousetrap_1.6.2.tgz";
+ url = "https://registry.yarnpkg.com/mousetrap/-/mousetrap-1.6.2.tgz";
+ sha1 = "caadd9cf886db0986fb2fee59a82f6bd37527587";
+ };
+ }
+
+ {
+ name = "move_concurrently___move_concurrently_1.0.1.tgz";
+ path = fetchurl {
+ name = "move_concurrently___move_concurrently_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz";
+ sha1 = "be2c005fda32e0b29af1f05d7c4b33214c701f92";
+ };
+ }
+
+ {
+ name = "ms___ms_2.0.0.tgz";
+ path = fetchurl {
+ name = "ms___ms_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz";
+ sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8";
+ };
+ }
+
+ {
+ name = "ms___ms_2.1.1.tgz";
+ path = fetchurl {
+ name = "ms___ms_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz";
+ sha1 = "30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a";
+ };
+ }
+
+ {
+ name = "multicast_dns_service_types___multicast_dns_service_types_1.1.0.tgz";
+ path = fetchurl {
+ name = "multicast_dns_service_types___multicast_dns_service_types_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz";
+ sha1 = "899f11d9686e5e05cb91b35d5f0e63b773cfc901";
+ };
+ }
+
+ {
+ name = "multicast_dns___multicast_dns_6.2.3.tgz";
+ path = fetchurl {
+ name = "multicast_dns___multicast_dns_6.2.3.tgz";
+ url = "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz";
+ sha1 = "a0ec7bd9055c4282f790c3c82f4e28db3b31b229";
+ };
+ }
+
+ {
+ name = "mute_stream___mute_stream_0.0.7.tgz";
+ path = fetchurl {
+ name = "mute_stream___mute_stream_0.0.7.tgz";
+ url = "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz";
+ sha1 = "3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab";
+ };
+ }
+
+ {
+ name = "nan___nan_2.12.1.tgz";
+ path = fetchurl {
+ name = "nan___nan_2.12.1.tgz";
+ url = "https://registry.yarnpkg.com/nan/-/nan-2.12.1.tgz";
+ sha1 = "7b1aa193e9aa86057e3c7bbd0ac448e770925552";
+ };
+ }
+
+ {
+ name = "nanomatch___nanomatch_1.2.13.tgz";
+ path = fetchurl {
+ name = "nanomatch___nanomatch_1.2.13.tgz";
+ url = "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz";
+ sha1 = "b87a8aa4fc0de8fe6be88895b38983ff265bd119";
+ };
+ }
+
+ {
+ name = "natural_compare___natural_compare_1.4.0.tgz";
+ path = fetchurl {
+ name = "natural_compare___natural_compare_1.4.0.tgz";
+ url = "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz";
+ sha1 = "4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7";
+ };
+ }
+
+ {
+ name = "nearley___nearley_2.16.0.tgz";
+ path = fetchurl {
+ name = "nearley___nearley_2.16.0.tgz";
+ url = "https://registry.yarnpkg.com/nearley/-/nearley-2.16.0.tgz";
+ sha1 = "77c297d041941d268290ec84b739d0ee297e83a7";
+ };
+ }
+
+ {
+ name = "needle___needle_2.2.4.tgz";
+ path = fetchurl {
+ name = "needle___needle_2.2.4.tgz";
+ url = "https://registry.yarnpkg.com/needle/-/needle-2.2.4.tgz";
+ sha1 = "51931bff82533b1928b7d1d69e01f1b00ffd2a4e";
+ };
+ }
+
+ {
+ name = "negotiator___negotiator_0.6.1.tgz";
+ path = fetchurl {
+ name = "negotiator___negotiator_0.6.1.tgz";
+ url = "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz";
+ sha1 = "2b327184e8992101177b28563fb5e7102acd0ca9";
+ };
+ }
+
+ {
+ name = "neo_async___neo_async_2.6.0.tgz";
+ path = fetchurl {
+ name = "neo_async___neo_async_2.6.0.tgz";
+ url = "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.0.tgz";
+ sha1 = "b9d15e4d71c6762908654b5183ed38b753340835";
+ };
+ }
+
+ {
+ name = "next_tick___next_tick_1.0.0.tgz";
+ path = fetchurl {
+ name = "next_tick___next_tick_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz";
+ sha1 = "ca86d1fe8828169b0120208e3dc8424b9db8342c";
+ };
+ }
+
+ {
+ name = "nice_try___nice_try_1.0.5.tgz";
+ path = fetchurl {
+ name = "nice_try___nice_try_1.0.5.tgz";
+ url = "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz";
+ sha1 = "a3378a7696ce7d223e88fc9b764bd7ef1089e366";
+ };
+ }
+
+ {
+ name = "node_fetch___node_fetch_1.7.3.tgz";
+ path = fetchurl {
+ name = "node_fetch___node_fetch_1.7.3.tgz";
+ url = "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz";
+ sha1 = "980f6f72d85211a5347c6b2bc18c5b84c3eb47ef";
+ };
+ }
+
+ {
+ name = "node_forge___node_forge_0.7.5.tgz";
+ path = fetchurl {
+ name = "node_forge___node_forge_0.7.5.tgz";
+ url = "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.5.tgz";
+ sha1 = "6c152c345ce11c52f465c2abd957e8639cd674df";
+ };
+ }
+
+ {
+ name = "node_int64___node_int64_0.4.0.tgz";
+ path = fetchurl {
+ name = "node_int64___node_int64_0.4.0.tgz";
+ url = "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz";
+ sha1 = "87a9065cdb355d3182d8f94ce11188b825c68a3b";
+ };
+ }
+
+ {
+ name = "node_libs_browser___node_libs_browser_2.1.0.tgz";
+ path = fetchurl {
+ name = "node_libs_browser___node_libs_browser_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.1.0.tgz";
+ sha1 = "5f94263d404f6e44767d726901fff05478d600df";
+ };
+ }
+
+ {
+ name = "node_notifier___node_notifier_5.3.0.tgz";
+ path = fetchurl {
+ name = "node_notifier___node_notifier_5.3.0.tgz";
+ url = "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.3.0.tgz";
+ sha1 = "c77a4a7b84038733d5fb351aafd8a268bfe19a01";
+ };
+ }
+
+ {
+ name = "node_pre_gyp___node_pre_gyp_0.10.3.tgz";
+ path = fetchurl {
+ name = "node_pre_gyp___node_pre_gyp_0.10.3.tgz";
+ url = "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.10.3.tgz";
+ sha1 = "3070040716afdc778747b61b6887bf78880b80fc";
+ };
+ }
+
+ {
+ name = "node_releases___node_releases_1.1.3.tgz";
+ path = fetchurl {
+ name = "node_releases___node_releases_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.3.tgz";
+ sha1 = "aad9ce0dcb98129c753f772c0aa01360fb90fbd2";
+ };
+ }
+
+ {
+ name = "nopt___nopt_4.0.1.tgz";
+ path = fetchurl {
+ name = "nopt___nopt_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz";
+ sha1 = "d0d4685afd5415193c8c7505602d0d17cd64474d";
+ };
+ }
+
+ {
+ name = "normalize_package_data___normalize_package_data_2.4.0.tgz";
+ path = fetchurl {
+ name = "normalize_package_data___normalize_package_data_2.4.0.tgz";
+ url = "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz";
+ sha1 = "12f95a307d58352075a04907b84ac8be98ac012f";
+ };
+ }
+
+ {
+ name = "normalize_path___normalize_path_2.1.1.tgz";
+ path = fetchurl {
+ name = "normalize_path___normalize_path_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz";
+ sha1 = "1ab28b556e198363a8c1a6f7e6fa20137fe6aed9";
+ };
+ }
+
+ {
+ name = "normalize_range___normalize_range_0.1.2.tgz";
+ path = fetchurl {
+ name = "normalize_range___normalize_range_0.1.2.tgz";
+ url = "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz";
+ sha1 = "2d10c06bdfd312ea9777695a4d28439456b75942";
+ };
+ }
+
+ {
+ name = "normalize_url___normalize_url_3.3.0.tgz";
+ path = fetchurl {
+ name = "normalize_url___normalize_url_3.3.0.tgz";
+ url = "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz";
+ sha1 = "b2e1c4dc4f7c6d57743df733a4f5978d18650559";
+ };
+ }
+
+ {
+ name = "npm_bundled___npm_bundled_1.0.5.tgz";
+ path = fetchurl {
+ name = "npm_bundled___npm_bundled_1.0.5.tgz";
+ url = "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.5.tgz";
+ sha1 = "3c1732b7ba936b3a10325aef616467c0ccbcc979";
+ };
+ }
+
+ {
+ name = "npm_packlist___npm_packlist_1.1.12.tgz";
+ path = fetchurl {
+ name = "npm_packlist___npm_packlist_1.1.12.tgz";
+ url = "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.12.tgz";
+ sha1 = "22bde2ebc12e72ca482abd67afc51eb49377243a";
+ };
+ }
+
+ {
+ name = "npm_run_path___npm_run_path_2.0.2.tgz";
+ path = fetchurl {
+ name = "npm_run_path___npm_run_path_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz";
+ sha1 = "35a9232dfa35d7067b4cb2ddf2357b1871536c5f";
+ };
+ }
+
+ {
+ name = "npmlog___npmlog_4.1.2.tgz";
+ path = fetchurl {
+ name = "npmlog___npmlog_4.1.2.tgz";
+ url = "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz";
+ sha1 = "08a7f2a8bf734604779a9efa4ad5cc717abb954b";
+ };
+ }
+
+ {
+ name = "nth_check___nth_check_1.0.2.tgz";
+ path = fetchurl {
+ name = "nth_check___nth_check_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz";
+ sha1 = "b2bd295c37e3dd58a3bf0700376663ba4d9cf05c";
+ };
+ }
+
+ {
+ name = "num2fraction___num2fraction_1.2.2.tgz";
+ path = fetchurl {
+ name = "num2fraction___num2fraction_1.2.2.tgz";
+ url = "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz";
+ sha1 = "6f682b6a027a4e9ddfa4564cd2589d1d4e669ede";
+ };
+ }
+
+ {
+ name = "number_is_nan___number_is_nan_1.0.1.tgz";
+ path = fetchurl {
+ name = "number_is_nan___number_is_nan_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz";
+ sha1 = "097b602b53422a522c1afb8790318336941a011d";
+ };
+ }
+
+ {
+ name = "nwsapi___nwsapi_2.0.9.tgz";
+ path = fetchurl {
+ name = "nwsapi___nwsapi_2.0.9.tgz";
+ url = "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.0.9.tgz";
+ sha1 = "77ac0cdfdcad52b6a1151a84e73254edc33ed016";
+ };
+ }
+
+ {
+ name = "oauth_sign___oauth_sign_0.9.0.tgz";
+ path = fetchurl {
+ name = "oauth_sign___oauth_sign_0.9.0.tgz";
+ url = "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz";
+ sha1 = "47a7b016baa68b5fa0ecf3dee08a85c679ac6455";
+ };
+ }
+
+ {
+ name = "object_assign___object_assign_4.1.0.tgz";
+ path = fetchurl {
+ name = "object_assign___object_assign_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.0.tgz";
+ sha1 = "7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0";
+ };
+ }
+
+ {
+ name = "object_assign___object_assign_4.1.1.tgz";
+ path = fetchurl {
+ name = "object_assign___object_assign_4.1.1.tgz";
+ url = "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz";
+ sha1 = "2109adc7965887cfc05cbbd442cac8bfbb360863";
+ };
+ }
+
+ {
+ name = "object_copy___object_copy_0.1.0.tgz";
+ path = fetchurl {
+ name = "object_copy___object_copy_0.1.0.tgz";
+ url = "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz";
+ sha1 = "7e7d858b781bd7c991a41ba975ed3812754e998c";
+ };
+ }
+
+ {
+ name = "object_fit_images___object_fit_images_3.2.4.tgz";
+ path = fetchurl {
+ name = "object_fit_images___object_fit_images_3.2.4.tgz";
+ url = "https://registry.yarnpkg.com/object-fit-images/-/object-fit-images-3.2.4.tgz";
+ sha1 = "6c299d38fdf207746e5d2d46c2877f6f25d15b52";
+ };
+ }
+
+ {
+ name = "object_inspect___object_inspect_1.6.0.tgz";
+ path = fetchurl {
+ name = "object_inspect___object_inspect_1.6.0.tgz";
+ url = "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.6.0.tgz";
+ sha1 = "c70b6cbf72f274aab4c34c0c82f5167bf82cf15b";
+ };
+ }
+
+ {
+ name = "object_is___object_is_1.0.1.tgz";
+ path = fetchurl {
+ name = "object_is___object_is_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/object-is/-/object-is-1.0.1.tgz";
+ sha1 = "0aa60ec9989a0b3ed795cf4d06f62cf1ad6539b6";
+ };
+ }
+
+ {
+ name = "object_keys___object_keys_1.0.12.tgz";
+ path = fetchurl {
+ name = "object_keys___object_keys_1.0.12.tgz";
+ url = "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.12.tgz";
+ sha1 = "09c53855377575310cca62f55bb334abff7b3ed2";
+ };
+ }
+
+ {
+ name = "object_visit___object_visit_1.0.1.tgz";
+ path = fetchurl {
+ name = "object_visit___object_visit_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz";
+ sha1 = "f79c4493af0c5377b59fe39d395e41042dd045bb";
+ };
+ }
+
+ {
+ name = "object.assign___object.assign_4.1.0.tgz";
+ path = fetchurl {
+ name = "object.assign___object.assign_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz";
+ sha1 = "968bf1100d7956bb3ca086f006f846b3bc4008da";
+ };
+ }
+
+ {
+ name = "object.entries___object.entries_1.1.0.tgz";
+ path = fetchurl {
+ name = "object.entries___object.entries_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.0.tgz";
+ sha1 = "2024fc6d6ba246aee38bdb0ffd5cfbcf371b7519";
+ };
+ }
+
+ {
+ name = "object.fromentries___object.fromentries_2.0.0.tgz";
+ path = fetchurl {
+ name = "object.fromentries___object.fromentries_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.0.tgz";
+ sha1 = "49a543d92151f8277b3ac9600f1e930b189d30ab";
+ };
+ }
+
+ {
+ name = "object.getownpropertydescriptors___object.getownpropertydescriptors_2.0.3.tgz";
+ path = fetchurl {
+ name = "object.getownpropertydescriptors___object.getownpropertydescriptors_2.0.3.tgz";
+ url = "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz";
+ sha1 = "8758c846f5b407adab0f236e0986f14b051caa16";
+ };
+ }
+
+ {
+ name = "object.omit___object.omit_2.0.1.tgz";
+ path = fetchurl {
+ name = "object.omit___object.omit_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz";
+ sha1 = "1a9c744829f39dbb858c76ca3579ae2a54ebd1fa";
+ };
+ }
+
+ {
+ name = "object.pick___object.pick_1.3.0.tgz";
+ path = fetchurl {
+ name = "object.pick___object.pick_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz";
+ sha1 = "87a10ac4c1694bd2e1cbf53591a66141fb5dd747";
+ };
+ }
+
+ {
+ name = "object.values___object.values_1.0.4.tgz";
+ path = fetchurl {
+ name = "object.values___object.values_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/object.values/-/object.values-1.0.4.tgz";
+ sha1 = "e524da09b4f66ff05df457546ec72ac99f13069a";
+ };
+ }
+
+ {
+ name = "obuf___obuf_1.1.2.tgz";
+ path = fetchurl {
+ name = "obuf___obuf_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz";
+ sha1 = "09bea3343d41859ebd446292d11c9d4db619084e";
+ };
+ }
+
+ {
+ name = "offline_plugin___offline_plugin_5.0.6.tgz";
+ path = fetchurl {
+ name = "offline_plugin___offline_plugin_5.0.6.tgz";
+ url = "https://registry.yarnpkg.com/offline-plugin/-/offline-plugin-5.0.6.tgz";
+ sha1 = "7a7b244220cddb8a8cabecb172ec5c0be03e74b2";
+ };
+ }
+
+ {
+ name = "on_finished___on_finished_2.3.0.tgz";
+ path = fetchurl {
+ name = "on_finished___on_finished_2.3.0.tgz";
+ url = "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz";
+ sha1 = "20f1336481b083cd75337992a16971aa2d906947";
+ };
+ }
+
+ {
+ name = "on_headers___on_headers_1.0.1.tgz";
+ path = fetchurl {
+ name = "on_headers___on_headers_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.1.tgz";
+ sha1 = "928f5d0f470d49342651ea6794b0857c100693f7";
+ };
+ }
+
+ {
+ name = "once___once_1.4.0.tgz";
+ path = fetchurl {
+ name = "once___once_1.4.0.tgz";
+ url = "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz";
+ sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1";
+ };
+ }
+
+ {
+ name = "onetime___onetime_2.0.1.tgz";
+ path = fetchurl {
+ name = "onetime___onetime_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz";
+ sha1 = "067428230fd67443b2794b22bba528b6867962d4";
+ };
+ }
+
+ {
+ name = "opener___opener_1.5.1.tgz";
+ path = fetchurl {
+ name = "opener___opener_1.5.1.tgz";
+ url = "https://registry.yarnpkg.com/opener/-/opener-1.5.1.tgz";
+ sha1 = "6d2f0e77f1a0af0032aca716c2c1fbb8e7e8abed";
+ };
+ }
+
+ {
+ name = "opn___opn_5.4.0.tgz";
+ path = fetchurl {
+ name = "opn___opn_5.4.0.tgz";
+ url = "https://registry.yarnpkg.com/opn/-/opn-5.4.0.tgz";
+ sha1 = "cb545e7aab78562beb11aa3bfabc7042e1761035";
+ };
+ }
+
+ {
+ name = "optimist___optimist_0.6.1.tgz";
+ path = fetchurl {
+ name = "optimist___optimist_0.6.1.tgz";
+ url = "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz";
+ sha1 = "da3ea74686fa21a19a111c326e90eb15a0196686";
+ };
+ }
+
+ {
+ name = "optionator___optionator_0.8.2.tgz";
+ path = fetchurl {
+ name = "optionator___optionator_0.8.2.tgz";
+ url = "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz";
+ sha1 = "364c5e409d3f4d6301d6c0b4c05bba50180aeb64";
+ };
+ }
+
+ {
+ name = "original___original_1.0.2.tgz";
+ path = fetchurl {
+ name = "original___original_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz";
+ sha1 = "e442a61cffe1c5fd20a65f3261c26663b303f25f";
+ };
+ }
+
+ {
+ name = "os_browserify___os_browserify_0.3.0.tgz";
+ path = fetchurl {
+ name = "os_browserify___os_browserify_0.3.0.tgz";
+ url = "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz";
+ sha1 = "854373c7f5c2315914fc9bfc6bd8238fdda1ec27";
+ };
+ }
+
+ {
+ name = "os_homedir___os_homedir_1.0.2.tgz";
+ path = fetchurl {
+ name = "os_homedir___os_homedir_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz";
+ sha1 = "ffbc4988336e0e833de0c168c7ef152121aa7fb3";
+ };
+ }
+
+ {
+ name = "os_locale___os_locale_2.1.0.tgz";
+ path = fetchurl {
+ name = "os_locale___os_locale_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz";
+ sha1 = "42bc2900a6b5b8bd17376c8e882b65afccf24bf2";
+ };
+ }
+
+ {
+ name = "os_locale___os_locale_3.1.0.tgz";
+ path = fetchurl {
+ name = "os_locale___os_locale_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz";
+ sha1 = "a802a6ee17f24c10483ab9935719cef4ed16bf1a";
+ };
+ }
+
+ {
+ name = "os_tmpdir___os_tmpdir_1.0.2.tgz";
+ path = fetchurl {
+ name = "os_tmpdir___os_tmpdir_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz";
+ sha1 = "bbe67406c79aa85c5cfec766fe5734555dfa1274";
+ };
+ }
+
+ {
+ name = "osenv___osenv_0.1.5.tgz";
+ path = fetchurl {
+ name = "osenv___osenv_0.1.5.tgz";
+ url = "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz";
+ sha1 = "85cdfafaeb28e8677f416e287592b5f3f49ea410";
+ };
+ }
+
+ {
+ name = "p_defer___p_defer_1.0.0.tgz";
+ path = fetchurl {
+ name = "p_defer___p_defer_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz";
+ sha1 = "9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c";
+ };
+ }
+
+ {
+ name = "p_finally___p_finally_1.0.0.tgz";
+ path = fetchurl {
+ name = "p_finally___p_finally_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz";
+ sha1 = "3fbcfb15b899a44123b34b6dcc18b724336a2cae";
+ };
+ }
+
+ {
+ name = "p_is_promise___p_is_promise_1.1.0.tgz";
+ path = fetchurl {
+ name = "p_is_promise___p_is_promise_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-1.1.0.tgz";
+ sha1 = "9c9456989e9f6588017b0434d56097675c3da05e";
+ };
+ }
+
+ {
+ name = "p_limit___p_limit_1.3.0.tgz";
+ path = fetchurl {
+ name = "p_limit___p_limit_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz";
+ sha1 = "b86bd5f0c25690911c7590fcbfc2010d54b3ccb8";
+ };
+ }
+
+ {
+ name = "p_limit___p_limit_2.1.0.tgz";
+ path = fetchurl {
+ name = "p_limit___p_limit_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/p-limit/-/p-limit-2.1.0.tgz";
+ sha1 = "1d5a0d20fb12707c758a655f6bbc4386b5930d68";
+ };
+ }
+
+ {
+ name = "p_locate___p_locate_2.0.0.tgz";
+ path = fetchurl {
+ name = "p_locate___p_locate_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz";
+ sha1 = "20a0103b222a70c8fd39cc2e580680f3dde5ec43";
+ };
+ }
+
+ {
+ name = "p_locate___p_locate_3.0.0.tgz";
+ path = fetchurl {
+ name = "p_locate___p_locate_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz";
+ sha1 = "322d69a05c0264b25997d9f40cd8a891ab0064a4";
+ };
+ }
+
+ {
+ name = "p_map___p_map_1.2.0.tgz";
+ path = fetchurl {
+ name = "p_map___p_map_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz";
+ sha1 = "e4e94f311eabbc8633a1e79908165fca26241b6b";
+ };
+ }
+
+ {
+ name = "p_try___p_try_1.0.0.tgz";
+ path = fetchurl {
+ name = "p_try___p_try_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz";
+ sha1 = "cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3";
+ };
+ }
+
+ {
+ name = "p_try___p_try_2.0.0.tgz";
+ path = fetchurl {
+ name = "p_try___p_try_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/p-try/-/p-try-2.0.0.tgz";
+ sha1 = "85080bb87c64688fa47996fe8f7dfbe8211760b1";
+ };
+ }
+
+ {
+ name = "packet_reader___packet_reader_0.3.1.tgz";
+ path = fetchurl {
+ name = "packet_reader___packet_reader_0.3.1.tgz";
+ url = "https://registry.yarnpkg.com/packet-reader/-/packet-reader-0.3.1.tgz";
+ sha1 = "cd62e60af8d7fea8a705ec4ff990871c46871f27";
+ };
+ }
+
+ {
+ name = "pako___pako_1.0.7.tgz";
+ path = fetchurl {
+ name = "pako___pako_1.0.7.tgz";
+ url = "https://registry.yarnpkg.com/pako/-/pako-1.0.7.tgz";
+ sha1 = "2473439021b57f1516c82f58be7275ad8ef1bb27";
+ };
+ }
+
+ {
+ name = "parallel_transform___parallel_transform_1.1.0.tgz";
+ path = fetchurl {
+ name = "parallel_transform___parallel_transform_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.1.0.tgz";
+ sha1 = "d410f065b05da23081fcd10f28854c29bda33b06";
+ };
+ }
+
+ {
+ name = "parse_asn1___parse_asn1_5.1.1.tgz";
+ path = fetchurl {
+ name = "parse_asn1___parse_asn1_5.1.1.tgz";
+ url = "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.1.tgz";
+ sha1 = "f6bf293818332bd0dab54efb16087724745e6ca8";
+ };
+ }
+
+ {
+ name = "parse_css_font___parse_css_font_2.0.2.tgz";
+ path = fetchurl {
+ name = "parse_css_font___parse_css_font_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/parse-css-font/-/parse-css-font-2.0.2.tgz";
+ sha1 = "7b60b060705a25a9b90b7f0ed493e5823248a652";
+ };
+ }
+
+ {
+ name = "parse_glob___parse_glob_3.0.4.tgz";
+ path = fetchurl {
+ name = "parse_glob___parse_glob_3.0.4.tgz";
+ url = "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz";
+ sha1 = "b2c376cfb11f35513badd173ef0bb6e3a388391c";
+ };
+ }
+
+ {
+ name = "parse_json___parse_json_2.2.0.tgz";
+ path = fetchurl {
+ name = "parse_json___parse_json_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz";
+ sha1 = "f480f40434ef80741f8469099f8dea18f55a4dc9";
+ };
+ }
+
+ {
+ name = "parse_json___parse_json_4.0.0.tgz";
+ path = fetchurl {
+ name = "parse_json___parse_json_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz";
+ sha1 = "be35f5425be1f7f6c747184f98a788cb99477ee0";
+ };
+ }
+
+ {
+ name = "parse5___parse5_4.0.0.tgz";
+ path = fetchurl {
+ name = "parse5___parse5_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz";
+ sha1 = "6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608";
+ };
+ }
+
+ {
+ name = "parse5___parse5_3.0.3.tgz";
+ path = fetchurl {
+ name = "parse5___parse5_3.0.3.tgz";
+ url = "https://registry.yarnpkg.com/parse5/-/parse5-3.0.3.tgz";
+ sha1 = "042f792ffdd36851551cf4e9e066b3874ab45b5c";
+ };
+ }
+
+ {
+ name = "parseurl___parseurl_1.3.2.tgz";
+ path = fetchurl {
+ name = "parseurl___parseurl_1.3.2.tgz";
+ url = "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz";
+ sha1 = "fc289d4ed8993119460c156253262cdc8de65bf3";
+ };
+ }
+
+ {
+ name = "pascalcase___pascalcase_0.1.1.tgz";
+ path = fetchurl {
+ name = "pascalcase___pascalcase_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz";
+ sha1 = "b363e55e8006ca6fe21784d2db22bd15d7917f14";
+ };
+ }
+
+ {
+ name = "path_browserify___path_browserify_0.0.0.tgz";
+ path = fetchurl {
+ name = "path_browserify___path_browserify_0.0.0.tgz";
+ url = "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz";
+ sha1 = "a0b870729aae214005b7d5032ec2cbbb0fb4451a";
+ };
+ }
+
+ {
+ name = "path_complete_extname___path_complete_extname_1.0.0.tgz";
+ path = fetchurl {
+ name = "path_complete_extname___path_complete_extname_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/path-complete-extname/-/path-complete-extname-1.0.0.tgz";
+ sha1 = "f889985dc91000c815515c0bfed06c5acda0752b";
+ };
+ }
+
+ {
+ name = "path_dirname___path_dirname_1.0.2.tgz";
+ path = fetchurl {
+ name = "path_dirname___path_dirname_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz";
+ sha1 = "cc33d24d525e099a5388c0336c6e32b9160609e0";
+ };
+ }
+
+ {
+ name = "path_exists___path_exists_2.1.0.tgz";
+ path = fetchurl {
+ name = "path_exists___path_exists_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz";
+ sha1 = "0feb6c64f0fc518d9a754dd5efb62c7022761f4b";
+ };
+ }
+
+ {
+ name = "path_exists___path_exists_3.0.0.tgz";
+ path = fetchurl {
+ name = "path_exists___path_exists_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz";
+ sha1 = "ce0ebeaa5f78cb18925ea7d810d7b59b010fd515";
+ };
+ }
+
+ {
+ name = "path_is_absolute___path_is_absolute_1.0.1.tgz";
+ path = fetchurl {
+ name = "path_is_absolute___path_is_absolute_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz";
+ sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f";
+ };
+ }
+
+ {
+ name = "path_is_inside___path_is_inside_1.0.2.tgz";
+ path = fetchurl {
+ name = "path_is_inside___path_is_inside_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz";
+ sha1 = "365417dede44430d1c11af61027facf074bdfc53";
+ };
+ }
+
+ {
+ name = "path_key___path_key_2.0.1.tgz";
+ path = fetchurl {
+ name = "path_key___path_key_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz";
+ sha1 = "411cadb574c5a140d3a4b1910d40d80cc9f40b40";
+ };
+ }
+
+ {
+ name = "path_parse___path_parse_1.0.6.tgz";
+ path = fetchurl {
+ name = "path_parse___path_parse_1.0.6.tgz";
+ url = "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz";
+ sha1 = "d62dbb5679405d72c4737ec58600e9ddcf06d24c";
+ };
+ }
+
+ {
+ name = "path_to_regexp___path_to_regexp_0.1.7.tgz";
+ path = fetchurl {
+ name = "path_to_regexp___path_to_regexp_0.1.7.tgz";
+ url = "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz";
+ sha1 = "df604178005f522f15eb4490e7247a1bfaa67f8c";
+ };
+ }
+
+ {
+ name = "path_to_regexp___path_to_regexp_1.7.0.tgz";
+ path = fetchurl {
+ name = "path_to_regexp___path_to_regexp_1.7.0.tgz";
+ url = "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.7.0.tgz";
+ sha1 = "59fde0f435badacba103a84e9d3bc64e96b9937d";
+ };
+ }
+
+ {
+ name = "path_type___path_type_1.1.0.tgz";
+ path = fetchurl {
+ name = "path_type___path_type_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz";
+ sha1 = "59c44f7ee491da704da415da5a4070ba4f8fe441";
+ };
+ }
+
+ {
+ name = "path_type___path_type_2.0.0.tgz";
+ path = fetchurl {
+ name = "path_type___path_type_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz";
+ sha1 = "f012ccb8415b7096fc2daa1054c3d72389594c73";
+ };
+ }
+
+ {
+ name = "pbkdf2___pbkdf2_3.0.17.tgz";
+ path = fetchurl {
+ name = "pbkdf2___pbkdf2_3.0.17.tgz";
+ url = "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz";
+ sha1 = "976c206530617b14ebb32114239f7b09336e93a6";
+ };
+ }
+
+ {
+ name = "performance_now___performance_now_0.2.0.tgz";
+ path = fetchurl {
+ name = "performance_now___performance_now_0.2.0.tgz";
+ url = "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz";
+ sha1 = "33ef30c5c77d4ea21c5a53869d91b56d8f2555e5";
+ };
+ }
+
+ {
+ name = "performance_now___performance_now_2.1.0.tgz";
+ path = fetchurl {
+ name = "performance_now___performance_now_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz";
+ sha1 = "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b";
+ };
+ }
+
+ {
+ name = "pg_connection_string___pg_connection_string_0.1.3.tgz";
+ path = fetchurl {
+ name = "pg_connection_string___pg_connection_string_0.1.3.tgz";
+ url = "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-0.1.3.tgz";
+ sha1 = "da1847b20940e42ee1492beaf65d49d91b245df7";
+ };
+ }
+
+ {
+ name = "pg_int8___pg_int8_1.0.1.tgz";
+ path = fetchurl {
+ name = "pg_int8___pg_int8_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/pg-int8/-/pg-int8-1.0.1.tgz";
+ sha1 = "943bd463bf5b71b4170115f80f8efc9a0c0eb78c";
+ };
+ }
+
+ {
+ name = "pg_pool___pg_pool_1.8.0.tgz";
+ path = fetchurl {
+ name = "pg_pool___pg_pool_1.8.0.tgz";
+ url = "https://registry.yarnpkg.com/pg-pool/-/pg-pool-1.8.0.tgz";
+ sha1 = "f7ec73824c37a03f076f51bfdf70e340147c4f37";
+ };
+ }
+
+ {
+ name = "pg_types___pg_types_1.13.0.tgz";
+ path = fetchurl {
+ name = "pg_types___pg_types_1.13.0.tgz";
+ url = "https://registry.yarnpkg.com/pg-types/-/pg-types-1.13.0.tgz";
+ sha1 = "75f490b8a8abf75f1386ef5ec4455ecf6b345c63";
+ };
+ }
+
+ {
+ name = "pg___pg_6.4.2.tgz";
+ path = fetchurl {
+ name = "pg___pg_6.4.2.tgz";
+ url = "https://registry.yarnpkg.com/pg/-/pg-6.4.2.tgz";
+ sha1 = "c364011060eac7a507a2ae063eb857ece910e27f";
+ };
+ }
+
+ {
+ name = "pgpass___pgpass_1.0.2.tgz";
+ path = fetchurl {
+ name = "pgpass___pgpass_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/pgpass/-/pgpass-1.0.2.tgz";
+ sha1 = "2a7bb41b6065b67907e91da1b07c1847c877b306";
+ };
+ }
+
+ {
+ name = "pify___pify_2.3.0.tgz";
+ path = fetchurl {
+ name = "pify___pify_2.3.0.tgz";
+ url = "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz";
+ sha1 = "ed141a6ac043a849ea588498e7dca8b15330e90c";
+ };
+ }
+
+ {
+ name = "pify___pify_3.0.0.tgz";
+ path = fetchurl {
+ name = "pify___pify_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz";
+ sha1 = "e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176";
+ };
+ }
+
+ {
+ name = "pinkie_promise___pinkie_promise_2.0.1.tgz";
+ path = fetchurl {
+ name = "pinkie_promise___pinkie_promise_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz";
+ sha1 = "2135d6dfa7a358c069ac9b178776288228450ffa";
+ };
+ }
+
+ {
+ name = "pinkie___pinkie_2.0.4.tgz";
+ path = fetchurl {
+ name = "pinkie___pinkie_2.0.4.tgz";
+ url = "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz";
+ sha1 = "72556b80cfa0d48a974e80e77248e80ed4f7f870";
+ };
+ }
+
+ {
+ name = "pkg_dir___pkg_dir_1.0.0.tgz";
+ path = fetchurl {
+ name = "pkg_dir___pkg_dir_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz";
+ sha1 = "7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4";
+ };
+ }
+
+ {
+ name = "pkg_dir___pkg_dir_2.0.0.tgz";
+ path = fetchurl {
+ name = "pkg_dir___pkg_dir_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz";
+ sha1 = "f6d5d1109e19d63edf428e0bd57e12777615334b";
+ };
+ }
+
+ {
+ name = "pkg_dir___pkg_dir_3.0.0.tgz";
+ path = fetchurl {
+ name = "pkg_dir___pkg_dir_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz";
+ sha1 = "2749020f239ed990881b1f71210d51eb6523bea3";
+ };
+ }
+
+ {
+ name = "pluralize___pluralize_7.0.0.tgz";
+ path = fetchurl {
+ name = "pluralize___pluralize_7.0.0.tgz";
+ url = "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz";
+ sha1 = "298b89df8b93b0221dbf421ad2b1b1ea23fc6777";
+ };
+ }
+
+ {
+ name = "pn___pn_1.1.0.tgz";
+ path = fetchurl {
+ name = "pn___pn_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz";
+ sha1 = "e2f4cef0e219f463c179ab37463e4e1ecdccbafb";
+ };
+ }
+
+ {
+ name = "portfinder___portfinder_1.0.20.tgz";
+ path = fetchurl {
+ name = "portfinder___portfinder_1.0.20.tgz";
+ url = "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.20.tgz";
+ sha1 = "bea68632e54b2e13ab7b0c4775e9b41bf270e44a";
+ };
+ }
+
+ {
+ name = "posix_character_classes___posix_character_classes_0.1.1.tgz";
+ path = fetchurl {
+ name = "posix_character_classes___posix_character_classes_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz";
+ sha1 = "01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab";
+ };
+ }
+
+ {
+ name = "postcss_calc___postcss_calc_7.0.1.tgz";
+ path = fetchurl {
+ name = "postcss_calc___postcss_calc_7.0.1.tgz";
+ url = "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.1.tgz";
+ sha1 = "36d77bab023b0ecbb9789d84dcb23c4941145436";
+ };
+ }
+
+ {
+ name = "postcss_colormin___postcss_colormin_4.0.2.tgz";
+ path = fetchurl {
+ name = "postcss_colormin___postcss_colormin_4.0.2.tgz";
+ url = "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.2.tgz";
+ sha1 = "93cd1fa11280008696887db1a528048b18e7ed99";
+ };
+ }
+
+ {
+ name = "postcss_convert_values___postcss_convert_values_4.0.1.tgz";
+ path = fetchurl {
+ name = "postcss_convert_values___postcss_convert_values_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz";
+ sha1 = "ca3813ed4da0f812f9d43703584e449ebe189a7f";
+ };
+ }
+
+ {
+ name = "postcss_discard_comments___postcss_discard_comments_4.0.1.tgz";
+ path = fetchurl {
+ name = "postcss_discard_comments___postcss_discard_comments_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.1.tgz";
+ sha1 = "30697735b0c476852a7a11050eb84387a67ef55d";
+ };
+ }
+
+ {
+ name = "postcss_discard_duplicates___postcss_discard_duplicates_4.0.2.tgz";
+ path = fetchurl {
+ name = "postcss_discard_duplicates___postcss_discard_duplicates_4.0.2.tgz";
+ url = "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz";
+ sha1 = "3fe133cd3c82282e550fc9b239176a9207b784eb";
+ };
+ }
+
+ {
+ name = "postcss_discard_empty___postcss_discard_empty_4.0.1.tgz";
+ path = fetchurl {
+ name = "postcss_discard_empty___postcss_discard_empty_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz";
+ sha1 = "c8c951e9f73ed9428019458444a02ad90bb9f765";
+ };
+ }
+
+ {
+ name = "postcss_discard_overridden___postcss_discard_overridden_4.0.1.tgz";
+ path = fetchurl {
+ name = "postcss_discard_overridden___postcss_discard_overridden_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz";
+ sha1 = "652aef8a96726f029f5e3e00146ee7a4e755ff57";
+ };
+ }
+
+ {
+ name = "postcss_load_config___postcss_load_config_2.0.0.tgz";
+ path = fetchurl {
+ name = "postcss_load_config___postcss_load_config_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.0.0.tgz";
+ sha1 = "f1312ddbf5912cd747177083c5ef7a19d62ee484";
+ };
+ }
+
+ {
+ name = "postcss_loader___postcss_loader_3.0.0.tgz";
+ path = fetchurl {
+ name = "postcss_loader___postcss_loader_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-3.0.0.tgz";
+ sha1 = "6b97943e47c72d845fa9e03f273773d4e8dd6c2d";
+ };
+ }
+
+ {
+ name = "postcss_merge_longhand___postcss_merge_longhand_4.0.10.tgz";
+ path = fetchurl {
+ name = "postcss_merge_longhand___postcss_merge_longhand_4.0.10.tgz";
+ url = "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.10.tgz";
+ sha1 = "c4d63ab57bdc054ab4067ab075d488c8c2978380";
+ };
+ }
+
+ {
+ name = "postcss_merge_rules___postcss_merge_rules_4.0.2.tgz";
+ path = fetchurl {
+ name = "postcss_merge_rules___postcss_merge_rules_4.0.2.tgz";
+ url = "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.2.tgz";
+ sha1 = "2be44401bf19856f27f32b8b12c0df5af1b88e74";
+ };
+ }
+
+ {
+ name = "postcss_minify_font_values___postcss_minify_font_values_4.0.2.tgz";
+ path = fetchurl {
+ name = "postcss_minify_font_values___postcss_minify_font_values_4.0.2.tgz";
+ url = "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz";
+ sha1 = "cd4c344cce474343fac5d82206ab2cbcb8afd5a6";
+ };
+ }
+
+ {
+ name = "postcss_minify_gradients___postcss_minify_gradients_4.0.1.tgz";
+ path = fetchurl {
+ name = "postcss_minify_gradients___postcss_minify_gradients_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.1.tgz";
+ sha1 = "6da95c6e92a809f956bb76bf0c04494953e1a7dd";
+ };
+ }
+
+ {
+ name = "postcss_minify_params___postcss_minify_params_4.0.1.tgz";
+ path = fetchurl {
+ name = "postcss_minify_params___postcss_minify_params_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.1.tgz";
+ sha1 = "5b2e2d0264dd645ef5d68f8fec0d4c38c1cf93d2";
+ };
+ }
+
+ {
+ name = "postcss_minify_selectors___postcss_minify_selectors_4.0.1.tgz";
+ path = fetchurl {
+ name = "postcss_minify_selectors___postcss_minify_selectors_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.1.tgz";
+ sha1 = "a891c197977cc37abf60b3ea06b84248b1c1e9cd";
+ };
+ }
+
+ {
+ name = "postcss_modules_extract_imports___postcss_modules_extract_imports_2.0.0.tgz";
+ path = fetchurl {
+ name = "postcss_modules_extract_imports___postcss_modules_extract_imports_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz";
+ sha1 = "818719a1ae1da325f9832446b01136eeb493cd7e";
+ };
+ }
+
+ {
+ name = "postcss_modules_local_by_default___postcss_modules_local_by_default_2.0.3.tgz";
+ path = fetchurl {
+ name = "postcss_modules_local_by_default___postcss_modules_local_by_default_2.0.3.tgz";
+ url = "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-2.0.3.tgz";
+ sha1 = "6a199d596ec3ef57b8f5ced96d786b8cb16a7dec";
+ };
+ }
+
+ {
+ name = "postcss_modules_scope___postcss_modules_scope_2.0.1.tgz";
+ path = fetchurl {
+ name = "postcss_modules_scope___postcss_modules_scope_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.0.1.tgz";
+ sha1 = "2c0f2394cde4cd09147db054c68917e38f6d43a4";
+ };
+ }
+
+ {
+ name = "postcss_modules_values___postcss_modules_values_2.0.0.tgz";
+ path = fetchurl {
+ name = "postcss_modules_values___postcss_modules_values_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-2.0.0.tgz";
+ sha1 = "479b46dc0c5ca3dc7fa5270851836b9ec7152f64";
+ };
+ }
+
+ {
+ name = "postcss_normalize_charset___postcss_normalize_charset_4.0.1.tgz";
+ path = fetchurl {
+ name = "postcss_normalize_charset___postcss_normalize_charset_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz";
+ sha1 = "8b35add3aee83a136b0471e0d59be58a50285dd4";
+ };
+ }
+
+ {
+ name = "postcss_normalize_display_values___postcss_normalize_display_values_4.0.1.tgz";
+ path = fetchurl {
+ name = "postcss_normalize_display_values___postcss_normalize_display_values_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.1.tgz";
+ sha1 = "d9a83d47c716e8a980f22f632c8b0458cfb48a4c";
+ };
+ }
+
+ {
+ name = "postcss_normalize_positions___postcss_normalize_positions_4.0.1.tgz";
+ path = fetchurl {
+ name = "postcss_normalize_positions___postcss_normalize_positions_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.1.tgz";
+ sha1 = "ee2d4b67818c961964c6be09d179894b94fd6ba1";
+ };
+ }
+
+ {
+ name = "postcss_normalize_repeat_style___postcss_normalize_repeat_style_4.0.1.tgz";
+ path = fetchurl {
+ name = "postcss_normalize_repeat_style___postcss_normalize_repeat_style_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.1.tgz";
+ sha1 = "5293f234b94d7669a9f805495d35b82a581c50e5";
+ };
+ }
+
+ {
+ name = "postcss_normalize_string___postcss_normalize_string_4.0.1.tgz";
+ path = fetchurl {
+ name = "postcss_normalize_string___postcss_normalize_string_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.1.tgz";
+ sha1 = "23c5030c2cc24175f66c914fa5199e2e3c10fef3";
+ };
+ }
+
+ {
+ name = "postcss_normalize_timing_functions___postcss_normalize_timing_functions_4.0.1.tgz";
+ path = fetchurl {
+ name = "postcss_normalize_timing_functions___postcss_normalize_timing_functions_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.1.tgz";
+ sha1 = "8be83e0b9cb3ff2d1abddee032a49108f05f95d7";
+ };
+ }
+
+ {
+ name = "postcss_normalize_unicode___postcss_normalize_unicode_4.0.1.tgz";
+ path = fetchurl {
+ name = "postcss_normalize_unicode___postcss_normalize_unicode_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz";
+ sha1 = "841bd48fdcf3019ad4baa7493a3d363b52ae1cfb";
+ };
+ }
+
+ {
+ name = "postcss_normalize_url___postcss_normalize_url_4.0.1.tgz";
+ path = fetchurl {
+ name = "postcss_normalize_url___postcss_normalize_url_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz";
+ sha1 = "10e437f86bc7c7e58f7b9652ed878daaa95faae1";
+ };
+ }
+
+ {
+ name = "postcss_normalize_whitespace___postcss_normalize_whitespace_4.0.1.tgz";
+ path = fetchurl {
+ name = "postcss_normalize_whitespace___postcss_normalize_whitespace_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.1.tgz";
+ sha1 = "d14cb639b61238418ac8bc8d3b7bdd65fc86575e";
+ };
+ }
+
+ {
+ name = "postcss_object_fit_images___postcss_object_fit_images_1.1.2.tgz";
+ path = fetchurl {
+ name = "postcss_object_fit_images___postcss_object_fit_images_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/postcss-object-fit-images/-/postcss-object-fit-images-1.1.2.tgz";
+ sha1 = "8b773043db14672ef6cd6f2cb1f0d8b26a9f573b";
+ };
+ }
+
+ {
+ name = "postcss_ordered_values___postcss_ordered_values_4.1.1.tgz";
+ path = fetchurl {
+ name = "postcss_ordered_values___postcss_ordered_values_4.1.1.tgz";
+ url = "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.1.tgz";
+ sha1 = "2e3b432ef3e489b18333aeca1f1295eb89be9fc2";
+ };
+ }
+
+ {
+ name = "postcss_reduce_initial___postcss_reduce_initial_4.0.2.tgz";
+ path = fetchurl {
+ name = "postcss_reduce_initial___postcss_reduce_initial_4.0.2.tgz";
+ url = "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.2.tgz";
+ sha1 = "bac8e325d67510ee01fa460676dc8ea9e3b40f15";
+ };
+ }
+
+ {
+ name = "postcss_reduce_transforms___postcss_reduce_transforms_4.0.1.tgz";
+ path = fetchurl {
+ name = "postcss_reduce_transforms___postcss_reduce_transforms_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.1.tgz";
+ sha1 = "8600d5553bdd3ad640f43bff81eb52f8760d4561";
+ };
+ }
+
+ {
+ name = "postcss_selector_parser___postcss_selector_parser_3.1.1.tgz";
+ path = fetchurl {
+ name = "postcss_selector_parser___postcss_selector_parser_3.1.1.tgz";
+ url = "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz";
+ sha1 = "4f875f4afb0c96573d5cf4d74011aee250a7e865";
+ };
+ }
+
+ {
+ name = "postcss_selector_parser___postcss_selector_parser_5.0.0.tgz";
+ path = fetchurl {
+ name = "postcss_selector_parser___postcss_selector_parser_5.0.0.tgz";
+ url = "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz";
+ sha1 = "249044356697b33b64f1a8f7c80922dddee7195c";
+ };
+ }
+
+ {
+ name = "postcss_svgo___postcss_svgo_4.0.1.tgz";
+ path = fetchurl {
+ name = "postcss_svgo___postcss_svgo_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.1.tgz";
+ sha1 = "5628cdb38f015de6b588ce6d0bf0724b492b581d";
+ };
+ }
+
+ {
+ name = "postcss_unique_selectors___postcss_unique_selectors_4.0.1.tgz";
+ path = fetchurl {
+ name = "postcss_unique_selectors___postcss_unique_selectors_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz";
+ sha1 = "9446911f3289bfd64c6d680f073c03b1f9ee4bac";
+ };
+ }
+
+ {
+ name = "postcss_value_parser___postcss_value_parser_3.3.1.tgz";
+ path = fetchurl {
+ name = "postcss_value_parser___postcss_value_parser_3.3.1.tgz";
+ url = "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz";
+ sha1 = "9ff822547e2893213cf1c30efa51ac5fd1ba8281";
+ };
+ }
+
+ {
+ name = "postcss___postcss_5.2.18.tgz";
+ path = fetchurl {
+ name = "postcss___postcss_5.2.18.tgz";
+ url = "https://registry.yarnpkg.com/postcss/-/postcss-5.2.18.tgz";
+ sha1 = "badfa1497d46244f6390f58b319830d9107853c5";
+ };
+ }
+
+ {
+ name = "postcss___postcss_7.0.7.tgz";
+ path = fetchurl {
+ name = "postcss___postcss_7.0.7.tgz";
+ url = "https://registry.yarnpkg.com/postcss/-/postcss-7.0.7.tgz";
+ sha1 = "2754d073f77acb4ef08f1235c36c5721a7201614";
+ };
+ }
+
+ {
+ name = "postgres_array___postgres_array_1.0.3.tgz";
+ path = fetchurl {
+ name = "postgres_array___postgres_array_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/postgres-array/-/postgres-array-1.0.3.tgz";
+ sha1 = "c561fc3b266b21451fc6555384f4986d78ec80f5";
+ };
+ }
+
+ {
+ name = "postgres_bytea___postgres_bytea_1.0.0.tgz";
+ path = fetchurl {
+ name = "postgres_bytea___postgres_bytea_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/postgres-bytea/-/postgres-bytea-1.0.0.tgz";
+ sha1 = "027b533c0aa890e26d172d47cf9ccecc521acd35";
+ };
+ }
+
+ {
+ name = "postgres_date___postgres_date_1.0.3.tgz";
+ path = fetchurl {
+ name = "postgres_date___postgres_date_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/postgres-date/-/postgres-date-1.0.3.tgz";
+ sha1 = "e2d89702efdb258ff9d9cee0fe91bd06975257a8";
+ };
+ }
+
+ {
+ name = "postgres_interval___postgres_interval_1.1.2.tgz";
+ path = fetchurl {
+ name = "postgres_interval___postgres_interval_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/postgres-interval/-/postgres-interval-1.1.2.tgz";
+ sha1 = "bf71ff902635f21cb241a013fc421d81d1db15a9";
+ };
+ }
+
+ {
+ name = "precond___precond_0.2.3.tgz";
+ path = fetchurl {
+ name = "precond___precond_0.2.3.tgz";
+ url = "https://registry.yarnpkg.com/precond/-/precond-0.2.3.tgz";
+ sha1 = "aa9591bcaa24923f1e0f4849d240f47efc1075ac";
+ };
+ }
+
+ {
+ name = "prelude_ls___prelude_ls_1.1.2.tgz";
+ path = fetchurl {
+ name = "prelude_ls___prelude_ls_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz";
+ sha1 = "21932a549f5e52ffd9a827f570e04be62a97da54";
+ };
+ }
+
+ {
+ name = "preserve___preserve_0.2.0.tgz";
+ path = fetchurl {
+ name = "preserve___preserve_0.2.0.tgz";
+ url = "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz";
+ sha1 = "815ed1f6ebc65926f865b310c0713bcb3315ce4b";
+ };
+ }
+
+ {
+ name = "pretty_format___pretty_format_23.6.0.tgz";
+ path = fetchurl {
+ name = "pretty_format___pretty_format_23.6.0.tgz";
+ url = "https://registry.yarnpkg.com/pretty-format/-/pretty-format-23.6.0.tgz";
+ sha1 = "5eaac8eeb6b33b987b7fe6097ea6a8a146ab5760";
+ };
+ }
+
+ {
+ name = "private___private_0.1.8.tgz";
+ path = fetchurl {
+ name = "private___private_0.1.8.tgz";
+ url = "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz";
+ sha1 = "2381edb3689f7a53d653190060fcf822d2f368ff";
+ };
+ }
+
+ {
+ name = "process_nextick_args___process_nextick_args_2.0.0.tgz";
+ path = fetchurl {
+ name = "process_nextick_args___process_nextick_args_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz";
+ sha1 = "a37d732f4271b4ab1ad070d35508e8290788ffaa";
+ };
+ }
+
+ {
+ name = "process___process_0.11.10.tgz";
+ path = fetchurl {
+ name = "process___process_0.11.10.tgz";
+ url = "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz";
+ sha1 = "7332300e840161bda3e69a1d1d91a7d4bc16f182";
+ };
+ }
+
+ {
+ name = "progress___progress_2.0.3.tgz";
+ path = fetchurl {
+ name = "progress___progress_2.0.3.tgz";
+ url = "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz";
+ sha1 = "7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8";
+ };
+ }
+
+ {
+ name = "promise_inflight___promise_inflight_1.0.1.tgz";
+ path = fetchurl {
+ name = "promise_inflight___promise_inflight_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz";
+ sha1 = "98472870bf228132fcbdd868129bad12c3c029e3";
+ };
+ }
+
+ {
+ name = "promise___promise_7.3.1.tgz";
+ path = fetchurl {
+ name = "promise___promise_7.3.1.tgz";
+ url = "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz";
+ sha1 = "064b72602b18f90f29192b8b1bc418ffd1ebd3bf";
+ };
+ }
+
+ {
+ name = "prompts___prompts_0.1.14.tgz";
+ path = fetchurl {
+ name = "prompts___prompts_0.1.14.tgz";
+ url = "https://registry.yarnpkg.com/prompts/-/prompts-0.1.14.tgz";
+ sha1 = "a8e15c612c5c9ec8f8111847df3337c9cbd443b2";
+ };
+ }
+
+ {
+ name = "prop_types_extra___prop_types_extra_1.1.0.tgz";
+ path = fetchurl {
+ name = "prop_types_extra___prop_types_extra_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/prop-types-extra/-/prop-types-extra-1.1.0.tgz";
+ sha1 = "32609910ea2dcf190366bacd3490d5a6412a605f";
+ };
+ }
+
+ {
+ name = "prop_types___prop_types_15.6.2.tgz";
+ path = fetchurl {
+ name = "prop_types___prop_types_15.6.2.tgz";
+ url = "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.2.tgz";
+ sha1 = "05d5ca77b4453e985d60fc7ff8c859094a497102";
+ };
+ }
+
+ {
+ name = "proxy_addr___proxy_addr_2.0.4.tgz";
+ path = fetchurl {
+ name = "proxy_addr___proxy_addr_2.0.4.tgz";
+ url = "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.4.tgz";
+ sha1 = "ecfc733bf22ff8c6f407fa275327b9ab67e48b93";
+ };
+ }
+
+ {
+ name = "prr___prr_1.0.1.tgz";
+ path = fetchurl {
+ name = "prr___prr_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz";
+ sha1 = "d3fc114ba06995a45ec6893f484ceb1d78f5f476";
+ };
+ }
+
+ {
+ name = "pseudomap___pseudomap_1.0.2.tgz";
+ path = fetchurl {
+ name = "pseudomap___pseudomap_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz";
+ sha1 = "f052a28da70e618917ef0a8ac34c1ae5a68286b3";
+ };
+ }
+
+ {
+ name = "psl___psl_1.1.31.tgz";
+ path = fetchurl {
+ name = "psl___psl_1.1.31.tgz";
+ url = "https://registry.yarnpkg.com/psl/-/psl-1.1.31.tgz";
+ sha1 = "e9aa86d0101b5b105cbe93ac6b784cd547276184";
+ };
+ }
+
+ {
+ name = "public_encrypt___public_encrypt_4.0.3.tgz";
+ path = fetchurl {
+ name = "public_encrypt___public_encrypt_4.0.3.tgz";
+ url = "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz";
+ sha1 = "4fcc9d77a07e48ba7527e7cbe0de33d0701331e0";
+ };
+ }
+
+ {
+ name = "pump___pump_2.0.1.tgz";
+ path = fetchurl {
+ name = "pump___pump_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz";
+ sha1 = "12399add6e4cf7526d973cbc8b5ce2e2908b3909";
+ };
+ }
+
+ {
+ name = "pump___pump_3.0.0.tgz";
+ path = fetchurl {
+ name = "pump___pump_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz";
+ sha1 = "b4a2116815bde2f4e1ea602354e8c75565107a64";
+ };
+ }
+
+ {
+ name = "pumpify___pumpify_1.5.1.tgz";
+ path = fetchurl {
+ name = "pumpify___pumpify_1.5.1.tgz";
+ url = "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz";
+ sha1 = "36513be246ab27570b1a374a5ce278bfd74370ce";
+ };
+ }
+
+ {
+ name = "punycode___punycode_1.3.2.tgz";
+ path = fetchurl {
+ name = "punycode___punycode_1.3.2.tgz";
+ url = "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz";
+ sha1 = "9653a036fb7c1ee42342f2325cceefea3926c48d";
+ };
+ }
+
+ {
+ name = "punycode___punycode_1.4.1.tgz";
+ path = fetchurl {
+ name = "punycode___punycode_1.4.1.tgz";
+ url = "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz";
+ sha1 = "c0d5a63b2718800ad8e1eb0fa5269c84dd41845e";
+ };
+ }
+
+ {
+ name = "punycode___punycode_2.1.1.tgz";
+ path = fetchurl {
+ name = "punycode___punycode_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz";
+ sha1 = "b58b010ac40c22c5657616c8d2c2c02c7bf479ec";
+ };
+ }
+
+ {
+ name = "q___q_1.5.1.tgz";
+ path = fetchurl {
+ name = "q___q_1.5.1.tgz";
+ url = "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz";
+ sha1 = "7e32f75b41381291d04611f1bf14109ac00651d7";
+ };
+ }
+
+ {
+ name = "qs___qs_6.5.2.tgz";
+ path = fetchurl {
+ name = "qs___qs_6.5.2.tgz";
+ url = "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz";
+ sha1 = "cb3ae806e8740444584ef154ce8ee98d403f3e36";
+ };
+ }
+
+ {
+ name = "querystring_es3___querystring_es3_0.2.1.tgz";
+ path = fetchurl {
+ name = "querystring_es3___querystring_es3_0.2.1.tgz";
+ url = "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz";
+ sha1 = "9ec61f79049875707d69414596fd907a4d711e73";
+ };
+ }
+
+ {
+ name = "querystring___querystring_0.2.0.tgz";
+ path = fetchurl {
+ name = "querystring___querystring_0.2.0.tgz";
+ url = "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz";
+ sha1 = "b209849203bb25df820da756e747005878521620";
+ };
+ }
+
+ {
+ name = "querystringify___querystringify_2.1.0.tgz";
+ path = fetchurl {
+ name = "querystringify___querystringify_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.0.tgz";
+ sha1 = "7ded8dfbf7879dcc60d0a644ac6754b283ad17ef";
+ };
+ }
+
+ {
+ name = "quote___quote_0.4.0.tgz";
+ path = fetchurl {
+ name = "quote___quote_0.4.0.tgz";
+ url = "https://registry.yarnpkg.com/quote/-/quote-0.4.0.tgz";
+ sha1 = "10839217f6c1362b89194044d29b233fd7f32f01";
+ };
+ }
+
+ {
+ name = "raf___raf_3.4.1.tgz";
+ path = fetchurl {
+ name = "raf___raf_3.4.1.tgz";
+ url = "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz";
+ sha1 = "0742e99a4a6552f445d73e3ee0328af0ff1ede39";
+ };
+ }
+
+ {
+ name = "railroad_diagrams___railroad_diagrams_1.0.0.tgz";
+ path = fetchurl {
+ name = "railroad_diagrams___railroad_diagrams_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz";
+ sha1 = "eb7e6267548ddedfb899c1b90e57374559cddb7e";
+ };
+ }
+
+ {
+ name = "rails_ujs___rails_ujs_5.2.2.tgz";
+ path = fetchurl {
+ name = "rails_ujs___rails_ujs_5.2.2.tgz";
+ url = "https://registry.yarnpkg.com/rails-ujs/-/rails-ujs-5.2.2.tgz";
+ sha1 = "ab01dd087a323975637b50e93e7afcc0f9068568";
+ };
+ }
+
+ {
+ name = "randexp___randexp_0.4.6.tgz";
+ path = fetchurl {
+ name = "randexp___randexp_0.4.6.tgz";
+ url = "https://registry.yarnpkg.com/randexp/-/randexp-0.4.6.tgz";
+ sha1 = "e986ad5e5e31dae13ddd6f7b3019aa7c87f60ca3";
+ };
+ }
+
+ {
+ name = "randomatic___randomatic_3.1.1.tgz";
+ path = fetchurl {
+ name = "randomatic___randomatic_3.1.1.tgz";
+ url = "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.1.tgz";
+ sha1 = "b776efc59375984e36c537b2f51a1f0aff0da1ed";
+ };
+ }
+
+ {
+ name = "randombytes___randombytes_2.0.6.tgz";
+ path = fetchurl {
+ name = "randombytes___randombytes_2.0.6.tgz";
+ url = "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.6.tgz";
+ sha1 = "d302c522948588848a8d300c932b44c24231da80";
+ };
+ }
+
+ {
+ name = "randomfill___randomfill_1.0.4.tgz";
+ path = fetchurl {
+ name = "randomfill___randomfill_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz";
+ sha1 = "c92196fc86ab42be983f1bf31778224931d61458";
+ };
+ }
+
+ {
+ name = "range_parser___range_parser_1.2.0.tgz";
+ path = fetchurl {
+ name = "range_parser___range_parser_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz";
+ sha1 = "f49be6b487894ddc40dcc94a322f611092e00d5e";
+ };
+ }
+
+ {
+ name = "raw_body___raw_body_2.3.3.tgz";
+ path = fetchurl {
+ name = "raw_body___raw_body_2.3.3.tgz";
+ url = "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.3.tgz";
+ sha1 = "1b324ece6b5706e153855bc1148c65bb7f6ea0c3";
+ };
+ }
+
+ {
+ name = "rc___rc_1.2.8.tgz";
+ path = fetchurl {
+ name = "rc___rc_1.2.8.tgz";
+ url = "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz";
+ sha1 = "cd924bf5200a075b83c188cd6b9e211b7fc0d3ed";
+ };
+ }
+
+ {
+ name = "react_dom___react_dom_16.7.0.tgz";
+ path = fetchurl {
+ name = "react_dom___react_dom_16.7.0.tgz";
+ url = "https://registry.yarnpkg.com/react-dom/-/react-dom-16.7.0.tgz";
+ sha1 = "a17b2a7ca89ee7390bc1ed5eb81783c7461748b8";
+ };
+ }
+
+ {
+ name = "react_event_listener___react_event_listener_0.6.5.tgz";
+ path = fetchurl {
+ name = "react_event_listener___react_event_listener_0.6.5.tgz";
+ url = "https://registry.yarnpkg.com/react-event-listener/-/react-event-listener-0.6.5.tgz";
+ sha1 = "d374dbe5da485c9f9d4702f0e76971afbe9b6b2e";
+ };
+ }
+
+ {
+ name = "react_hotkeys___react_hotkeys_1.1.4.tgz";
+ path = fetchurl {
+ name = "react_hotkeys___react_hotkeys_1.1.4.tgz";
+ url = "https://registry.yarnpkg.com/react-hotkeys/-/react-hotkeys-1.1.4.tgz";
+ sha1 = "a0712aa2e0c03a759fd7885808598497a4dace72";
+ };
+ }
+
+ {
+ name = "react_immutable_proptypes___react_immutable_proptypes_2.1.0.tgz";
+ path = fetchurl {
+ name = "react_immutable_proptypes___react_immutable_proptypes_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/react-immutable-proptypes/-/react-immutable-proptypes-2.1.0.tgz";
+ sha1 = "023d6f39bb15c97c071e9e60d00d136eac5fa0b4";
+ };
+ }
+
+ {
+ name = "react_immutable_pure_component___react_immutable_pure_component_1.2.3.tgz";
+ path = fetchurl {
+ name = "react_immutable_pure_component___react_immutable_pure_component_1.2.3.tgz";
+ url = "https://registry.yarnpkg.com/react-immutable-pure-component/-/react-immutable-pure-component-1.2.3.tgz";
+ sha1 = "fa33638df68cfe9f73ccbee1d5861c17f3053f86";
+ };
+ }
+
+ {
+ name = "react_infinite_scroller___react_infinite_scroller_1.2.4.tgz";
+ path = fetchurl {
+ name = "react_infinite_scroller___react_infinite_scroller_1.2.4.tgz";
+ url = "https://registry.yarnpkg.com/react-infinite-scroller/-/react-infinite-scroller-1.2.4.tgz";
+ sha1 = "f67eaec4940a4ce6417bebdd6e3433bfc38826e9";
+ };
+ }
+
+ {
+ name = "react_input_autosize___react_input_autosize_2.2.1.tgz";
+ path = fetchurl {
+ name = "react_input_autosize___react_input_autosize_2.2.1.tgz";
+ url = "https://registry.yarnpkg.com/react-input-autosize/-/react-input-autosize-2.2.1.tgz";
+ sha1 = "ec428fa15b1592994fb5f9aa15bb1eb6baf420f8";
+ };
+ }
+
+ {
+ name = "react_intl_translations_manager___react_intl_translations_manager_5.0.3.tgz";
+ path = fetchurl {
+ name = "react_intl_translations_manager___react_intl_translations_manager_5.0.3.tgz";
+ url = "https://registry.yarnpkg.com/react-intl-translations-manager/-/react-intl-translations-manager-5.0.3.tgz";
+ sha1 = "aee010ecf35975673e033ca5d7d3f4147894324d";
+ };
+ }
+
+ {
+ name = "react_intl___react_intl_2.7.2.tgz";
+ path = fetchurl {
+ name = "react_intl___react_intl_2.7.2.tgz";
+ url = "https://registry.yarnpkg.com/react-intl/-/react-intl-2.7.2.tgz";
+ sha1 = "efe97e3fc0e99b4e88a6e6150854d3d1852a4381";
+ };
+ }
+
+ {
+ name = "react_is___react_is_16.7.0.tgz";
+ path = fetchurl {
+ name = "react_is___react_is_16.7.0.tgz";
+ url = "https://registry.yarnpkg.com/react-is/-/react-is-16.7.0.tgz";
+ sha1 = "c1bd21c64f1f1364c6f70695ec02d69392f41bfa";
+ };
+ }
+
+ {
+ name = "react_lifecycles_compat___react_lifecycles_compat_3.0.4.tgz";
+ path = fetchurl {
+ name = "react_lifecycles_compat___react_lifecycles_compat_3.0.4.tgz";
+ url = "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz";
+ sha1 = "4f1a273afdfc8f3488a8c516bfda78f872352362";
+ };
+ }
+
+ {
+ name = "react_masonry_infinite___react_masonry_infinite_1.2.2.tgz";
+ path = fetchurl {
+ name = "react_masonry_infinite___react_masonry_infinite_1.2.2.tgz";
+ url = "https://registry.yarnpkg.com/react-masonry-infinite/-/react-masonry-infinite-1.2.2.tgz";
+ sha1 = "20c1386f9ccdda9747527c8f42bc2c02dd2e7951";
+ };
+ }
+
+ {
+ name = "react_motion___react_motion_0.5.2.tgz";
+ path = fetchurl {
+ name = "react_motion___react_motion_0.5.2.tgz";
+ url = "https://registry.yarnpkg.com/react-motion/-/react-motion-0.5.2.tgz";
+ sha1 = "0dd3a69e411316567927917c6626551ba0607316";
+ };
+ }
+
+ {
+ name = "react_notification___react_notification_6.8.4.tgz";
+ path = fetchurl {
+ name = "react_notification___react_notification_6.8.4.tgz";
+ url = "https://registry.yarnpkg.com/react-notification/-/react-notification-6.8.4.tgz";
+ sha1 = "c189d23f47b0e1b240932f4cfab2f4082cd420bf";
+ };
+ }
+
+ {
+ name = "react_overlays___react_overlays_0.8.3.tgz";
+ path = fetchurl {
+ name = "react_overlays___react_overlays_0.8.3.tgz";
+ url = "https://registry.yarnpkg.com/react-overlays/-/react-overlays-0.8.3.tgz";
+ sha1 = "fad65eea5b24301cca192a169f5dddb0b20d3ac5";
+ };
+ }
+
+ {
+ name = "react_redux_loading_bar___react_redux_loading_bar_4.0.8.tgz";
+ path = fetchurl {
+ name = "react_redux_loading_bar___react_redux_loading_bar_4.0.8.tgz";
+ url = "https://registry.yarnpkg.com/react-redux-loading-bar/-/react-redux-loading-bar-4.0.8.tgz";
+ sha1 = "e84d59d1517b79f53b0f39c8ddb40682af648c1b";
+ };
+ }
+
+ {
+ name = "react_redux___react_redux_6.0.0.tgz";
+ path = fetchurl {
+ name = "react_redux___react_redux_6.0.0.tgz";
+ url = "https://registry.yarnpkg.com/react-redux/-/react-redux-6.0.0.tgz";
+ sha1 = "09e86eeed5febb98e9442458ad2970c8f1a173ef";
+ };
+ }
+
+ {
+ name = "react_router_dom___react_router_dom_4.3.1.tgz";
+ path = fetchurl {
+ name = "react_router_dom___react_router_dom_4.3.1.tgz";
+ url = "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-4.3.1.tgz";
+ sha1 = "4c2619fc24c4fa87c9fd18f4fb4a43fe63fbd5c6";
+ };
+ }
+
+ {
+ name = "react_router_scroll_4___react_router_scroll_4_1.0.0_beta.2.tgz";
+ path = fetchurl {
+ name = "react_router_scroll_4___react_router_scroll_4_1.0.0_beta.2.tgz";
+ url = "https://registry.yarnpkg.com/react-router-scroll-4/-/react-router-scroll-4-1.0.0-beta.2.tgz";
+ sha1 = "d887063ec0f66124aaf450158dd158ff7d3dc279";
+ };
+ }
+
+ {
+ name = "react_router___react_router_4.3.1.tgz";
+ path = fetchurl {
+ name = "react_router___react_router_4.3.1.tgz";
+ url = "https://registry.yarnpkg.com/react-router/-/react-router-4.3.1.tgz";
+ sha1 = "aada4aef14c809cb2e686b05cee4742234506c4e";
+ };
+ }
+
+ {
+ name = "react_select___react_select_2.2.0.tgz";
+ path = fetchurl {
+ name = "react_select___react_select_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/react-select/-/react-select-2.2.0.tgz";
+ sha1 = "67c8b5c2dcb8df0384f2a103efe952570f5d6b93";
+ };
+ }
+
+ {
+ name = "react_sparklines___react_sparklines_1.7.0.tgz";
+ path = fetchurl {
+ name = "react_sparklines___react_sparklines_1.7.0.tgz";
+ url = "https://registry.yarnpkg.com/react-sparklines/-/react-sparklines-1.7.0.tgz";
+ sha1 = "9b1d97e8c8610095eeb2ad658d2e1fcf91f91a60";
+ };
+ }
+
+ {
+ name = "react_swipeable_views_core___react_swipeable_views_core_0.13.0.tgz";
+ path = fetchurl {
+ name = "react_swipeable_views_core___react_swipeable_views_core_0.13.0.tgz";
+ url = "https://registry.yarnpkg.com/react-swipeable-views-core/-/react-swipeable-views-core-0.13.0.tgz";
+ sha1 = "6bf8a8132a756355444537672a14e84b1e3b53c2";
+ };
+ }
+
+ {
+ name = "react_swipeable_views_utils___react_swipeable_views_utils_0.13.0.tgz";
+ path = fetchurl {
+ name = "react_swipeable_views_utils___react_swipeable_views_utils_0.13.0.tgz";
+ url = "https://registry.yarnpkg.com/react-swipeable-views-utils/-/react-swipeable-views-utils-0.13.0.tgz";
+ sha1 = "0ea17aa67f88a69d534c79d591f8d82ef98346a4";
+ };
+ }
+
+ {
+ name = "react_swipeable_views___react_swipeable_views_0.13.0.tgz";
+ path = fetchurl {
+ name = "react_swipeable_views___react_swipeable_views_0.13.0.tgz";
+ url = "https://registry.yarnpkg.com/react-swipeable-views/-/react-swipeable-views-0.13.0.tgz";
+ sha1 = "a200cef1005d55af6a27b97048afe9a4056e0ab8";
+ };
+ }
+
+ {
+ name = "react_test_renderer___react_test_renderer_16.7.0.tgz";
+ path = fetchurl {
+ name = "react_test_renderer___react_test_renderer_16.7.0.tgz";
+ url = "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.7.0.tgz";
+ sha1 = "1ca96c2b450ab47c36ba92cd8c03fcefc52ea01c";
+ };
+ }
+
+ {
+ name = "react_textarea_autosize___react_textarea_autosize_7.1.0.tgz";
+ path = fetchurl {
+ name = "react_textarea_autosize___react_textarea_autosize_7.1.0.tgz";
+ url = "https://registry.yarnpkg.com/react-textarea-autosize/-/react-textarea-autosize-7.1.0.tgz";
+ sha1 = "3132cb77e65d94417558d37c0bfe415a5afd3445";
+ };
+ }
+
+ {
+ name = "react_toggle___react_toggle_4.0.2.tgz";
+ path = fetchurl {
+ name = "react_toggle___react_toggle_4.0.2.tgz";
+ url = "https://registry.yarnpkg.com/react-toggle/-/react-toggle-4.0.2.tgz";
+ sha1 = "77f487860efb87fafd197672a2db8c885be1440f";
+ };
+ }
+
+ {
+ name = "react_transition_group___react_transition_group_2.5.2.tgz";
+ path = fetchurl {
+ name = "react_transition_group___react_transition_group_2.5.2.tgz";
+ url = "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-2.5.2.tgz";
+ sha1 = "9457166a9ba6ce697a3e1b076b3c049b9fb2c408";
+ };
+ }
+
+ {
+ name = "react___react_16.7.0.tgz";
+ path = fetchurl {
+ name = "react___react_16.7.0.tgz";
+ url = "https://registry.yarnpkg.com/react/-/react-16.7.0.tgz";
+ sha1 = "b674ec396b0a5715873b350446f7ea0802ab6381";
+ };
+ }
+
+ {
+ name = "read_pkg_up___read_pkg_up_1.0.1.tgz";
+ path = fetchurl {
+ name = "read_pkg_up___read_pkg_up_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz";
+ sha1 = "9d63c13276c065918d57f002a57f40a1b643fb02";
+ };
+ }
+
+ {
+ name = "read_pkg_up___read_pkg_up_2.0.0.tgz";
+ path = fetchurl {
+ name = "read_pkg_up___read_pkg_up_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz";
+ sha1 = "6b72a8048984e0c41e79510fd5e9fa99b3b549be";
+ };
+ }
+
+ {
+ name = "read_pkg___read_pkg_1.1.0.tgz";
+ path = fetchurl {
+ name = "read_pkg___read_pkg_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz";
+ sha1 = "f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28";
+ };
+ }
+
+ {
+ name = "read_pkg___read_pkg_2.0.0.tgz";
+ path = fetchurl {
+ name = "read_pkg___read_pkg_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz";
+ sha1 = "8ef1c0623c6a6db0dc6713c4bfac46332b2368f8";
+ };
+ }
+
+ {
+ name = "readable_stream___readable_stream_2.3.6.tgz";
+ path = fetchurl {
+ name = "readable_stream___readable_stream_2.3.6.tgz";
+ url = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz";
+ sha1 = "b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf";
+ };
+ }
+
+ {
+ name = "readable_stream___readable_stream_3.1.1.tgz";
+ path = fetchurl {
+ name = "readable_stream___readable_stream_3.1.1.tgz";
+ url = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.1.1.tgz";
+ sha1 = "ed6bbc6c5ba58b090039ff18ce670515795aeb06";
+ };
+ }
+
+ {
+ name = "readdirp___readdirp_2.2.1.tgz";
+ path = fetchurl {
+ name = "readdirp___readdirp_2.2.1.tgz";
+ url = "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz";
+ sha1 = "0e87622a3325aa33e892285caf8b4e846529a525";
+ };
+ }
+
+ {
+ name = "realpath_native___realpath_native_1.0.2.tgz";
+ path = fetchurl {
+ name = "realpath_native___realpath_native_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/realpath-native/-/realpath-native-1.0.2.tgz";
+ sha1 = "cd51ce089b513b45cf9b1516c82989b51ccc6560";
+ };
+ }
+
+ {
+ name = "redis_commands___redis_commands_1.4.0.tgz";
+ path = fetchurl {
+ name = "redis_commands___redis_commands_1.4.0.tgz";
+ url = "https://registry.yarnpkg.com/redis-commands/-/redis-commands-1.4.0.tgz";
+ sha1 = "52f9cf99153efcce56a8f86af986bd04e988602f";
+ };
+ }
+
+ {
+ name = "redis_parser___redis_parser_2.6.0.tgz";
+ path = fetchurl {
+ name = "redis_parser___redis_parser_2.6.0.tgz";
+ url = "https://registry.yarnpkg.com/redis-parser/-/redis-parser-2.6.0.tgz";
+ sha1 = "52ed09dacac108f1a631c07e9b69941e7a19504b";
+ };
+ }
+
+ {
+ name = "redis___redis_2.8.0.tgz";
+ path = fetchurl {
+ name = "redis___redis_2.8.0.tgz";
+ url = "https://registry.yarnpkg.com/redis/-/redis-2.8.0.tgz";
+ sha1 = "202288e3f58c49f6079d97af7a10e1303ae14b02";
+ };
+ }
+
+ {
+ name = "redux_immutable___redux_immutable_4.0.0.tgz";
+ path = fetchurl {
+ name = "redux_immutable___redux_immutable_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/redux-immutable/-/redux-immutable-4.0.0.tgz";
+ sha1 = "3a1a32df66366462b63691f0e1dc35e472bbc9f3";
+ };
+ }
+
+ {
+ name = "redux_thunk___redux_thunk_2.3.0.tgz";
+ path = fetchurl {
+ name = "redux_thunk___redux_thunk_2.3.0.tgz";
+ url = "https://registry.yarnpkg.com/redux-thunk/-/redux-thunk-2.3.0.tgz";
+ sha1 = "51c2c19a185ed5187aaa9a2d08b666d0d6467622";
+ };
+ }
+
+ {
+ name = "redux___redux_4.0.1.tgz";
+ path = fetchurl {
+ name = "redux___redux_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/redux/-/redux-4.0.1.tgz";
+ sha1 = "436cae6cc40fbe4727689d7c8fae44808f1bfef5";
+ };
+ }
+
+ {
+ name = "regenerate_unicode_properties___regenerate_unicode_properties_7.0.0.tgz";
+ path = fetchurl {
+ name = "regenerate_unicode_properties___regenerate_unicode_properties_7.0.0.tgz";
+ url = "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-7.0.0.tgz";
+ sha1 = "107405afcc4a190ec5ed450ecaa00ed0cafa7a4c";
+ };
+ }
+
+ {
+ name = "regenerate___regenerate_1.4.0.tgz";
+ path = fetchurl {
+ name = "regenerate___regenerate_1.4.0.tgz";
+ url = "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz";
+ sha1 = "4a856ec4b56e4077c557589cae85e7a4c8869a11";
+ };
+ }
+
+ {
+ name = "regenerator_runtime___regenerator_runtime_0.11.1.tgz";
+ path = fetchurl {
+ name = "regenerator_runtime___regenerator_runtime_0.11.1.tgz";
+ url = "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz";
+ sha1 = "be05ad7f9bf7d22e056f9726cee5017fbf19e2e9";
+ };
+ }
+
+ {
+ name = "regenerator_runtime___regenerator_runtime_0.12.1.tgz";
+ path = fetchurl {
+ name = "regenerator_runtime___regenerator_runtime_0.12.1.tgz";
+ url = "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz";
+ sha1 = "fa1a71544764c036f8c49b13a08b2594c9f8a0de";
+ };
+ }
+
+ {
+ name = "regenerator_transform___regenerator_transform_0.13.3.tgz";
+ path = fetchurl {
+ name = "regenerator_transform___regenerator_transform_0.13.3.tgz";
+ url = "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.13.3.tgz";
+ sha1 = "264bd9ff38a8ce24b06e0636496b2c856b57bcbb";
+ };
+ }
+
+ {
+ name = "regex_cache___regex_cache_0.4.4.tgz";
+ path = fetchurl {
+ name = "regex_cache___regex_cache_0.4.4.tgz";
+ url = "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz";
+ sha1 = "75bdc58a2a1496cec48a12835bc54c8d562336dd";
+ };
+ }
+
+ {
+ name = "regex_not___regex_not_1.0.2.tgz";
+ path = fetchurl {
+ name = "regex_not___regex_not_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz";
+ sha1 = "1f4ece27e00b0b65e0247a6810e6a85d83a5752c";
+ };
+ }
+
+ {
+ name = "regexpp___regexpp_2.0.1.tgz";
+ path = fetchurl {
+ name = "regexpp___regexpp_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz";
+ sha1 = "8d19d31cf632482b589049f8281f93dbcba4d07f";
+ };
+ }
+
+ {
+ name = "regexpu_core___regexpu_core_1.0.0.tgz";
+ path = fetchurl {
+ name = "regexpu_core___regexpu_core_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-1.0.0.tgz";
+ sha1 = "86a763f58ee4d7c2f6b102e4764050de7ed90c6b";
+ };
+ }
+
+ {
+ name = "regexpu_core___regexpu_core_4.4.0.tgz";
+ path = fetchurl {
+ name = "regexpu_core___regexpu_core_4.4.0.tgz";
+ url = "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.4.0.tgz";
+ sha1 = "8d43e0d1266883969720345e70c275ee0aec0d32";
+ };
+ }
+
+ {
+ name = "regjsgen___regjsgen_0.2.0.tgz";
+ path = fetchurl {
+ name = "regjsgen___regjsgen_0.2.0.tgz";
+ url = "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz";
+ sha1 = "6c016adeac554f75823fe37ac05b92d5a4edb1f7";
+ };
+ }
+
+ {
+ name = "regjsgen___regjsgen_0.5.0.tgz";
+ path = fetchurl {
+ name = "regjsgen___regjsgen_0.5.0.tgz";
+ url = "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.0.tgz";
+ sha1 = "a7634dc08f89209c2049adda3525711fb97265dd";
+ };
+ }
+
+ {
+ name = "regjsparser___regjsparser_0.1.5.tgz";
+ path = fetchurl {
+ name = "regjsparser___regjsparser_0.1.5.tgz";
+ url = "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz";
+ sha1 = "7ee8f84dc6fa792d3fd0ae228d24bd949ead205c";
+ };
+ }
+
+ {
+ name = "regjsparser___regjsparser_0.6.0.tgz";
+ path = fetchurl {
+ name = "regjsparser___regjsparser_0.6.0.tgz";
+ url = "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.0.tgz";
+ sha1 = "f1e6ae8b7da2bae96c99399b868cd6c933a2ba9c";
+ };
+ }
+
+ {
+ name = "rellax___rellax_1.7.1.tgz";
+ path = fetchurl {
+ name = "rellax___rellax_1.7.1.tgz";
+ url = "https://registry.yarnpkg.com/rellax/-/rellax-1.7.1.tgz";
+ sha1 = "2f82aaa1c1d8116eef08fc533c59655a097c8be2";
+ };
+ }
+
+ {
+ name = "remove_trailing_separator___remove_trailing_separator_1.1.0.tgz";
+ path = fetchurl {
+ name = "remove_trailing_separator___remove_trailing_separator_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz";
+ sha1 = "c24bce2a283adad5bc3f58e0d48249b92379d8ef";
+ };
+ }
+
+ {
+ name = "repeat_element___repeat_element_1.1.3.tgz";
+ path = fetchurl {
+ name = "repeat_element___repeat_element_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz";
+ sha1 = "782e0d825c0c5a3bb39731f84efee6b742e6b1ce";
+ };
+ }
+
+ {
+ name = "repeat_string___repeat_string_1.6.1.tgz";
+ path = fetchurl {
+ name = "repeat_string___repeat_string_1.6.1.tgz";
+ url = "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz";
+ sha1 = "8dcae470e1c88abc2d600fff4a776286da75e637";
+ };
+ }
+
+ {
+ name = "repeating___repeating_2.0.1.tgz";
+ path = fetchurl {
+ name = "repeating___repeating_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz";
+ sha1 = "5214c53a926d3552707527fbab415dbc08d06dda";
+ };
+ }
+
+ {
+ name = "request_promise_core___request_promise_core_1.1.1.tgz";
+ path = fetchurl {
+ name = "request_promise_core___request_promise_core_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.1.tgz";
+ sha1 = "3eee00b2c5aa83239cfb04c5700da36f81cd08b6";
+ };
+ }
+
+ {
+ name = "request_promise_native___request_promise_native_1.0.5.tgz";
+ path = fetchurl {
+ name = "request_promise_native___request_promise_native_1.0.5.tgz";
+ url = "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.5.tgz";
+ sha1 = "5281770f68e0c9719e5163fd3fab482215f4fda5";
+ };
+ }
+
+ {
+ name = "request___request_2.88.0.tgz";
+ path = fetchurl {
+ name = "request___request_2.88.0.tgz";
+ url = "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz";
+ sha1 = "9c2fca4f7d35b592efe57c7f0a55e81052124fef";
+ };
+ }
+
+ {
+ name = "requestidlecallback___requestidlecallback_0.3.0.tgz";
+ path = fetchurl {
+ name = "requestidlecallback___requestidlecallback_0.3.0.tgz";
+ url = "https://registry.yarnpkg.com/requestidlecallback/-/requestidlecallback-0.3.0.tgz";
+ sha1 = "6fb74e0733f90df3faa4838f9f6a2a5f9b742ac5";
+ };
+ }
+
+ {
+ name = "require_directory___require_directory_2.1.1.tgz";
+ path = fetchurl {
+ name = "require_directory___require_directory_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz";
+ sha1 = "8c64ad5fd30dab1c976e2344ffe7f792a6a6df42";
+ };
+ }
+
+ {
+ name = "require_from_string___require_from_string_2.0.2.tgz";
+ path = fetchurl {
+ name = "require_from_string___require_from_string_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz";
+ sha1 = "89a7fdd938261267318eafe14f9c32e598c36909";
+ };
+ }
+
+ {
+ name = "require_main_filename___require_main_filename_1.0.1.tgz";
+ path = fetchurl {
+ name = "require_main_filename___require_main_filename_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz";
+ sha1 = "97f717b69d48784f5f526a6c5aa8ffdda055a4d1";
+ };
+ }
+
+ {
+ name = "require_package_name___require_package_name_2.0.1.tgz";
+ path = fetchurl {
+ name = "require_package_name___require_package_name_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/require-package-name/-/require-package-name-2.0.1.tgz";
+ sha1 = "c11e97276b65b8e2923f75dabf5fb2ef0c3841b9";
+ };
+ }
+
+ {
+ name = "require_uncached___require_uncached_1.0.3.tgz";
+ path = fetchurl {
+ name = "require_uncached___require_uncached_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz";
+ sha1 = "4e0d56d6c9662fd31e43011c4b95aa49955421d3";
+ };
+ }
+
+ {
+ name = "requires_port___requires_port_1.0.0.tgz";
+ path = fetchurl {
+ name = "requires_port___requires_port_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz";
+ sha1 = "925d2601d39ac485e091cf0da5c6e694dc3dcaff";
+ };
+ }
+
+ {
+ name = "reselect___reselect_4.0.0.tgz";
+ path = fetchurl {
+ name = "reselect___reselect_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/reselect/-/reselect-4.0.0.tgz";
+ sha1 = "f2529830e5d3d0e021408b246a206ef4ea4437f7";
+ };
+ }
+
+ {
+ name = "resolve_cwd___resolve_cwd_2.0.0.tgz";
+ path = fetchurl {
+ name = "resolve_cwd___resolve_cwd_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz";
+ sha1 = "00a9f7387556e27038eae232caa372a6a59b665a";
+ };
+ }
+
+ {
+ name = "resolve_from___resolve_from_1.0.1.tgz";
+ path = fetchurl {
+ name = "resolve_from___resolve_from_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz";
+ sha1 = "26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226";
+ };
+ }
+
+ {
+ name = "resolve_from___resolve_from_3.0.0.tgz";
+ path = fetchurl {
+ name = "resolve_from___resolve_from_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz";
+ sha1 = "b22c7af7d9d6881bc8b6e653335eebcb0a188748";
+ };
+ }
+
+ {
+ name = "resolve_pathname___resolve_pathname_2.2.0.tgz";
+ path = fetchurl {
+ name = "resolve_pathname___resolve_pathname_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-2.2.0.tgz";
+ sha1 = "7e9ae21ed815fd63ab189adeee64dc831eefa879";
+ };
+ }
+
+ {
+ name = "resolve_url___resolve_url_0.2.1.tgz";
+ path = fetchurl {
+ name = "resolve_url___resolve_url_0.2.1.tgz";
+ url = "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz";
+ sha1 = "2c637fe77c893afd2a663fe21aa9080068e2052a";
+ };
+ }
+
+ {
+ name = "resolve___resolve_1.1.7.tgz";
+ path = fetchurl {
+ name = "resolve___resolve_1.1.7.tgz";
+ url = "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz";
+ sha1 = "203114d82ad2c5ed9e8e0411b3932875e889e97b";
+ };
+ }
+
+ {
+ name = "resolve___resolve_1.9.0.tgz";
+ path = fetchurl {
+ name = "resolve___resolve_1.9.0.tgz";
+ url = "https://registry.yarnpkg.com/resolve/-/resolve-1.9.0.tgz";
+ sha1 = "a14c6fdfa8f92a7df1d996cb7105fa744658ea06";
+ };
+ }
+
+ {
+ name = "restore_cursor___restore_cursor_2.0.0.tgz";
+ path = fetchurl {
+ name = "restore_cursor___restore_cursor_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz";
+ sha1 = "9f7ee287f82fd326d4fd162923d62129eee0dfaf";
+ };
+ }
+
+ {
+ name = "ret___ret_0.1.15.tgz";
+ path = fetchurl {
+ name = "ret___ret_0.1.15.tgz";
+ url = "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz";
+ sha1 = "b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc";
+ };
+ }
+
+ {
+ name = "rgb_regex___rgb_regex_1.0.1.tgz";
+ path = fetchurl {
+ name = "rgb_regex___rgb_regex_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz";
+ sha1 = "c0e0d6882df0e23be254a475e8edd41915feaeb1";
+ };
+ }
+
+ {
+ name = "rgba_regex___rgba_regex_1.0.0.tgz";
+ path = fetchurl {
+ name = "rgba_regex___rgba_regex_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz";
+ sha1 = "43374e2e2ca0968b0ef1523460b7d730ff22eeb3";
+ };
+ }
+
+ {
+ name = "rimraf___rimraf_2.6.2.tgz";
+ path = fetchurl {
+ name = "rimraf___rimraf_2.6.2.tgz";
+ url = "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz";
+ sha1 = "2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36";
+ };
+ }
+
+ {
+ name = "ripemd160___ripemd160_2.0.2.tgz";
+ path = fetchurl {
+ name = "ripemd160___ripemd160_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz";
+ sha1 = "a1c1a6f624751577ba5d07914cbc92850585890c";
+ };
+ }
+
+ {
+ name = "rst_selector_parser___rst_selector_parser_2.2.3.tgz";
+ path = fetchurl {
+ name = "rst_selector_parser___rst_selector_parser_2.2.3.tgz";
+ url = "https://registry.yarnpkg.com/rst-selector-parser/-/rst-selector-parser-2.2.3.tgz";
+ sha1 = "81b230ea2fcc6066c89e3472de794285d9b03d91";
+ };
+ }
+
+ {
+ name = "rsvp___rsvp_3.6.2.tgz";
+ path = fetchurl {
+ name = "rsvp___rsvp_3.6.2.tgz";
+ url = "https://registry.yarnpkg.com/rsvp/-/rsvp-3.6.2.tgz";
+ sha1 = "2e96491599a96cde1b515d5674a8f7a91452926a";
+ };
+ }
+
+ {
+ name = "run_async___run_async_2.3.0.tgz";
+ path = fetchurl {
+ name = "run_async___run_async_2.3.0.tgz";
+ url = "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz";
+ sha1 = "0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0";
+ };
+ }
+
+ {
+ name = "run_queue___run_queue_1.0.3.tgz";
+ path = fetchurl {
+ name = "run_queue___run_queue_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz";
+ sha1 = "e848396f057d223f24386924618e25694161ec47";
+ };
+ }
+
+ {
+ name = "rxjs___rxjs_6.3.3.tgz";
+ path = fetchurl {
+ name = "rxjs___rxjs_6.3.3.tgz";
+ url = "https://registry.yarnpkg.com/rxjs/-/rxjs-6.3.3.tgz";
+ sha1 = "3c6a7fa420e844a81390fb1158a9ec614f4bad55";
+ };
+ }
+
+ {
+ name = "safe_buffer___safe_buffer_5.1.2.tgz";
+ path = fetchurl {
+ name = "safe_buffer___safe_buffer_5.1.2.tgz";
+ url = "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz";
+ sha1 = "991ec69d296e0313747d59bdfd2b745c35f8828d";
+ };
+ }
+
+ {
+ name = "safe_regex___safe_regex_1.1.0.tgz";
+ path = fetchurl {
+ name = "safe_regex___safe_regex_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz";
+ sha1 = "40a3669f3b077d1e943d44629e157dd48023bf2e";
+ };
+ }
+
+ {
+ name = "safer_buffer___safer_buffer_2.1.2.tgz";
+ path = fetchurl {
+ name = "safer_buffer___safer_buffer_2.1.2.tgz";
+ url = "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz";
+ sha1 = "44fa161b0187b9549dd84bb91802f9bd8385cd6a";
+ };
+ }
+
+ {
+ name = "sane___sane_2.5.2.tgz";
+ path = fetchurl {
+ name = "sane___sane_2.5.2.tgz";
+ url = "https://registry.yarnpkg.com/sane/-/sane-2.5.2.tgz";
+ sha1 = "b4dc1861c21b427e929507a3e751e2a2cb8ab3fa";
+ };
+ }
+
+ {
+ name = "sass_loader___sass_loader_7.1.0.tgz";
+ path = fetchurl {
+ name = "sass_loader___sass_loader_7.1.0.tgz";
+ url = "https://registry.yarnpkg.com/sass-loader/-/sass-loader-7.1.0.tgz";
+ sha1 = "16fd5138cb8b424bf8a759528a1972d72aad069d";
+ };
+ }
+
+ {
+ name = "sass___sass_1.15.2.tgz";
+ path = fetchurl {
+ name = "sass___sass_1.15.2.tgz";
+ url = "https://registry.yarnpkg.com/sass/-/sass-1.15.2.tgz";
+ sha1 = "539f464a61e29a9e4f560ec9dc2ccc5236db8474";
+ };
+ }
+
+ {
+ name = "sax___sax_1.2.4.tgz";
+ path = fetchurl {
+ name = "sax___sax_1.2.4.tgz";
+ url = "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz";
+ sha1 = "2816234e2378bddc4e5354fab5caa895df7100d9";
+ };
+ }
+
+ {
+ name = "scheduler___scheduler_0.12.0.tgz";
+ path = fetchurl {
+ name = "scheduler___scheduler_0.12.0.tgz";
+ url = "https://registry.yarnpkg.com/scheduler/-/scheduler-0.12.0.tgz";
+ sha1 = "8ab17699939c0aedc5a196a657743c496538647b";
+ };
+ }
+
+ {
+ name = "schema_utils___schema_utils_0.4.7.tgz";
+ path = fetchurl {
+ name = "schema_utils___schema_utils_0.4.7.tgz";
+ url = "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.7.tgz";
+ sha1 = "ba74f597d2be2ea880131746ee17d0a093c68187";
+ };
+ }
+
+ {
+ name = "schema_utils___schema_utils_1.0.0.tgz";
+ path = fetchurl {
+ name = "schema_utils___schema_utils_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz";
+ sha1 = "0b79a93204d7b600d4b2850d1f66c2a34951c770";
+ };
+ }
+
+ {
+ name = "scroll_behavior___scroll_behavior_0.9.9.tgz";
+ path = fetchurl {
+ name = "scroll_behavior___scroll_behavior_0.9.9.tgz";
+ url = "https://registry.yarnpkg.com/scroll-behavior/-/scroll-behavior-0.9.9.tgz";
+ sha1 = "ebfe0658455b82ad885b66195215416674dacce2";
+ };
+ }
+
+ {
+ name = "select_hose___select_hose_2.0.0.tgz";
+ path = fetchurl {
+ name = "select_hose___select_hose_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz";
+ sha1 = "625d8658f865af43ec962bfc376a37359a4994ca";
+ };
+ }
+
+ {
+ name = "selfsigned___selfsigned_1.10.4.tgz";
+ path = fetchurl {
+ name = "selfsigned___selfsigned_1.10.4.tgz";
+ url = "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.4.tgz";
+ sha1 = "cdd7eccfca4ed7635d47a08bf2d5d3074092e2cd";
+ };
+ }
+
+ {
+ name = "semver___semver_5.6.0.tgz";
+ path = fetchurl {
+ name = "semver___semver_5.6.0.tgz";
+ url = "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz";
+ sha1 = "7e74256fbaa49c75aa7c7a205cc22799cac80004";
+ };
+ }
+
+ {
+ name = "semver___semver_4.3.2.tgz";
+ path = fetchurl {
+ name = "semver___semver_4.3.2.tgz";
+ url = "https://registry.yarnpkg.com/semver/-/semver-4.3.2.tgz";
+ sha1 = "c7a07158a80bedd052355b770d82d6640f803be7";
+ };
+ }
+
+ {
+ name = "send___send_0.16.2.tgz";
+ path = fetchurl {
+ name = "send___send_0.16.2.tgz";
+ url = "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz";
+ sha1 = "6ecca1e0f8c156d141597559848df64730a6bbc1";
+ };
+ }
+
+ {
+ name = "serialize_javascript___serialize_javascript_1.6.1.tgz";
+ path = fetchurl {
+ name = "serialize_javascript___serialize_javascript_1.6.1.tgz";
+ url = "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.6.1.tgz";
+ sha1 = "4d1f697ec49429a847ca6f442a2a755126c4d879";
+ };
+ }
+
+ {
+ name = "serve_index___serve_index_1.9.1.tgz";
+ path = fetchurl {
+ name = "serve_index___serve_index_1.9.1.tgz";
+ url = "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz";
+ sha1 = "d3768d69b1e7d82e5ce050fff5b453bea12a9239";
+ };
+ }
+
+ {
+ name = "serve_static___serve_static_1.13.2.tgz";
+ path = fetchurl {
+ name = "serve_static___serve_static_1.13.2.tgz";
+ url = "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.2.tgz";
+ sha1 = "095e8472fd5b46237db50ce486a43f4b86c6cec1";
+ };
+ }
+
+ {
+ name = "set_blocking___set_blocking_2.0.0.tgz";
+ path = fetchurl {
+ name = "set_blocking___set_blocking_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz";
+ sha1 = "045f9782d011ae9a6803ddd382b24392b3d890f7";
+ };
+ }
+
+ {
+ name = "set_value___set_value_0.4.3.tgz";
+ path = fetchurl {
+ name = "set_value___set_value_0.4.3.tgz";
+ url = "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz";
+ sha1 = "7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1";
+ };
+ }
+
+ {
+ name = "set_value___set_value_2.0.0.tgz";
+ path = fetchurl {
+ name = "set_value___set_value_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz";
+ sha1 = "71ae4a88f0feefbbf52d1ea604f3fb315ebb6274";
+ };
+ }
+
+ {
+ name = "setimmediate___setimmediate_1.0.5.tgz";
+ path = fetchurl {
+ name = "setimmediate___setimmediate_1.0.5.tgz";
+ url = "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz";
+ sha1 = "290cbb232e306942d7d7ea9b83732ab7856f8285";
+ };
+ }
+
+ {
+ name = "setprototypeof___setprototypeof_1.1.0.tgz";
+ path = fetchurl {
+ name = "setprototypeof___setprototypeof_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz";
+ sha1 = "d0bd85536887b6fe7c0d818cb962d9d91c54e656";
+ };
+ }
+
+ {
+ name = "sha.js___sha.js_2.4.11.tgz";
+ path = fetchurl {
+ name = "sha.js___sha.js_2.4.11.tgz";
+ url = "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz";
+ sha1 = "37a5cf0b81ecbc6943de109ba2960d1b26584ae7";
+ };
+ }
+
+ {
+ name = "shallow_clone___shallow_clone_1.0.0.tgz";
+ path = fetchurl {
+ name = "shallow_clone___shallow_clone_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-1.0.0.tgz";
+ sha1 = "4480cd06e882ef68b2ad88a3ea54832e2c48b571";
+ };
+ }
+
+ {
+ name = "shebang_command___shebang_command_1.2.0.tgz";
+ path = fetchurl {
+ name = "shebang_command___shebang_command_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz";
+ sha1 = "44aac65b695b03398968c39f363fee5deafdf1ea";
+ };
+ }
+
+ {
+ name = "shebang_regex___shebang_regex_1.0.0.tgz";
+ path = fetchurl {
+ name = "shebang_regex___shebang_regex_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz";
+ sha1 = "da42f49740c0b42db2ca9728571cb190c98efea3";
+ };
+ }
+
+ {
+ name = "shellwords___shellwords_0.1.1.tgz";
+ path = fetchurl {
+ name = "shellwords___shellwords_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz";
+ sha1 = "d6b9181c1a48d397324c84871efbcfc73fc0654b";
+ };
+ }
+
+ {
+ name = "signal_exit___signal_exit_3.0.2.tgz";
+ path = fetchurl {
+ name = "signal_exit___signal_exit_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz";
+ sha1 = "b5fdc08f1287ea1178628e415e25132b73646c6d";
+ };
+ }
+
+ {
+ name = "simple_swizzle___simple_swizzle_0.2.2.tgz";
+ path = fetchurl {
+ name = "simple_swizzle___simple_swizzle_0.2.2.tgz";
+ url = "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz";
+ sha1 = "a4da6b635ffcccca33f70d17cb92592de95e557a";
+ };
+ }
+
+ {
+ name = "sisteransi___sisteransi_0.1.1.tgz";
+ path = fetchurl {
+ name = "sisteransi___sisteransi_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/sisteransi/-/sisteransi-0.1.1.tgz";
+ sha1 = "5431447d5f7d1675aac667ccd0b865a4994cb3ce";
+ };
+ }
+
+ {
+ name = "slash___slash_1.0.0.tgz";
+ path = fetchurl {
+ name = "slash___slash_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz";
+ sha1 = "c41f2f6c39fc16d1cd17ad4b5d896114ae470d55";
+ };
+ }
+
+ {
+ name = "slice_ansi___slice_ansi_2.0.0.tgz";
+ path = fetchurl {
+ name = "slice_ansi___slice_ansi_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.0.0.tgz";
+ sha1 = "5373bdb8559b45676e8541c66916cdd6251612e7";
+ };
+ }
+
+ {
+ name = "snapdragon_node___snapdragon_node_2.1.1.tgz";
+ path = fetchurl {
+ name = "snapdragon_node___snapdragon_node_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz";
+ sha1 = "6c175f86ff14bdb0724563e8f3c1b021a286853b";
+ };
+ }
+
+ {
+ name = "snapdragon_util___snapdragon_util_3.0.1.tgz";
+ path = fetchurl {
+ name = "snapdragon_util___snapdragon_util_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz";
+ sha1 = "f956479486f2acd79700693f6f7b805e45ab56e2";
+ };
+ }
+
+ {
+ name = "snapdragon___snapdragon_0.8.2.tgz";
+ path = fetchurl {
+ name = "snapdragon___snapdragon_0.8.2.tgz";
+ url = "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz";
+ sha1 = "64922e7c565b0e14204ba1aa7d6964278d25182d";
+ };
+ }
+
+ {
+ name = "sockjs_client___sockjs_client_1.3.0.tgz";
+ path = fetchurl {
+ name = "sockjs_client___sockjs_client_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.3.0.tgz";
+ sha1 = "12fc9d6cb663da5739d3dc5fb6e8687da95cb177";
+ };
+ }
+
+ {
+ name = "sockjs___sockjs_0.3.19.tgz";
+ path = fetchurl {
+ name = "sockjs___sockjs_0.3.19.tgz";
+ url = "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.19.tgz";
+ sha1 = "d976bbe800af7bd20ae08598d582393508993c0d";
+ };
+ }
+
+ {
+ name = "source_list_map___source_list_map_2.0.1.tgz";
+ path = fetchurl {
+ name = "source_list_map___source_list_map_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz";
+ sha1 = "3993bd873bfc48479cca9ea3a547835c7c154b34";
+ };
+ }
+
+ {
+ name = "source_map_resolve___source_map_resolve_0.5.2.tgz";
+ path = fetchurl {
+ name = "source_map_resolve___source_map_resolve_0.5.2.tgz";
+ url = "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz";
+ sha1 = "72e2cc34095543e43b2c62b2c4c10d4a9054f259";
+ };
+ }
+
+ {
+ name = "source_map_support___source_map_support_0.4.18.tgz";
+ path = fetchurl {
+ name = "source_map_support___source_map_support_0.4.18.tgz";
+ url = "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz";
+ sha1 = "0286a6de8be42641338594e97ccea75f0a2c585f";
+ };
+ }
+
+ {
+ name = "source_map_support___source_map_support_0.5.9.tgz";
+ path = fetchurl {
+ name = "source_map_support___source_map_support_0.5.9.tgz";
+ url = "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.9.tgz";
+ sha1 = "41bc953b2534267ea2d605bccfa7bfa3111ced5f";
+ };
+ }
+
+ {
+ name = "source_map_url___source_map_url_0.4.0.tgz";
+ path = fetchurl {
+ name = "source_map_url___source_map_url_0.4.0.tgz";
+ url = "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz";
+ sha1 = "3e935d7ddd73631b97659956d55128e87b5084a3";
+ };
+ }
+
+ {
+ name = "source_map___source_map_0.5.7.tgz";
+ path = fetchurl {
+ name = "source_map___source_map_0.5.7.tgz";
+ url = "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz";
+ sha1 = "8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc";
+ };
+ }
+
+ {
+ name = "source_map___source_map_0.6.1.tgz";
+ path = fetchurl {
+ name = "source_map___source_map_0.6.1.tgz";
+ url = "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz";
+ sha1 = "74722af32e9614e9c287a8d0bbde48b5e2f1a263";
+ };
+ }
+
+ {
+ name = "spdx_correct___spdx_correct_3.1.0.tgz";
+ path = fetchurl {
+ name = "spdx_correct___spdx_correct_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz";
+ sha1 = "fb83e504445268f154b074e218c87c003cd31df4";
+ };
+ }
+
+ {
+ name = "spdx_exceptions___spdx_exceptions_2.2.0.tgz";
+ path = fetchurl {
+ name = "spdx_exceptions___spdx_exceptions_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz";
+ sha1 = "2ea450aee74f2a89bfb94519c07fcd6f41322977";
+ };
+ }
+
+ {
+ name = "spdx_expression_parse___spdx_expression_parse_3.0.0.tgz";
+ path = fetchurl {
+ name = "spdx_expression_parse___spdx_expression_parse_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz";
+ sha1 = "99e119b7a5da00e05491c9fa338b7904823b41d0";
+ };
+ }
+
+ {
+ name = "spdx_license_ids___spdx_license_ids_3.0.3.tgz";
+ path = fetchurl {
+ name = "spdx_license_ids___spdx_license_ids_3.0.3.tgz";
+ url = "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.3.tgz";
+ sha1 = "81c0ce8f21474756148bbb5f3bfc0f36bf15d76e";
+ };
+ }
+
+ {
+ name = "spdy_transport___spdy_transport_3.0.0.tgz";
+ path = fetchurl {
+ name = "spdy_transport___spdy_transport_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz";
+ sha1 = "00d4863a6400ad75df93361a1608605e5dcdcf31";
+ };
+ }
+
+ {
+ name = "spdy___spdy_4.0.0.tgz";
+ path = fetchurl {
+ name = "spdy___spdy_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/spdy/-/spdy-4.0.0.tgz";
+ sha1 = "81f222b5a743a329aa12cea6a390e60e9b613c52";
+ };
+ }
+
+ {
+ name = "split_string___split_string_3.1.0.tgz";
+ path = fetchurl {
+ name = "split_string___split_string_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz";
+ sha1 = "7cb09dda3a86585705c64b39a6466038682e8fe2";
+ };
+ }
+
+ {
+ name = "split___split_1.0.1.tgz";
+ path = fetchurl {
+ name = "split___split_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz";
+ sha1 = "605bd9be303aa59fb35f9229fbea0ddec9ea07d9";
+ };
+ }
+
+ {
+ name = "sprintf_js___sprintf_js_1.0.3.tgz";
+ path = fetchurl {
+ name = "sprintf_js___sprintf_js_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz";
+ sha1 = "04e6926f662895354f3dd015203633b857297e2c";
+ };
+ }
+
+ {
+ name = "sshpk___sshpk_1.16.0.tgz";
+ path = fetchurl {
+ name = "sshpk___sshpk_1.16.0.tgz";
+ url = "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.0.tgz";
+ sha1 = "1d4963a2fbffe58050aa9084ca20be81741c07de";
+ };
+ }
+
+ {
+ name = "ssri___ssri_6.0.1.tgz";
+ path = fetchurl {
+ name = "ssri___ssri_6.0.1.tgz";
+ url = "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz";
+ sha1 = "2a3c41b28dd45b62b63676ecb74001265ae9edd8";
+ };
+ }
+
+ {
+ name = "stable___stable_0.1.8.tgz";
+ path = fetchurl {
+ name = "stable___stable_0.1.8.tgz";
+ url = "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz";
+ sha1 = "836eb3c8382fe2936feaf544631017ce7d47a3cf";
+ };
+ }
+
+ {
+ name = "stack_utils___stack_utils_1.0.2.tgz";
+ path = fetchurl {
+ name = "stack_utils___stack_utils_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.2.tgz";
+ sha1 = "33eba3897788558bebfc2db059dc158ec36cebb8";
+ };
+ }
+
+ {
+ name = "static_extend___static_extend_0.1.2.tgz";
+ path = fetchurl {
+ name = "static_extend___static_extend_0.1.2.tgz";
+ url = "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz";
+ sha1 = "60809c39cbff55337226fd5e0b520f341f1fb5c6";
+ };
+ }
+
+ {
+ name = "statuses___statuses_1.5.0.tgz";
+ path = fetchurl {
+ name = "statuses___statuses_1.5.0.tgz";
+ url = "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz";
+ sha1 = "161c7dac177659fd9811f43771fa99381478628c";
+ };
+ }
+
+ {
+ name = "statuses___statuses_1.4.0.tgz";
+ path = fetchurl {
+ name = "statuses___statuses_1.4.0.tgz";
+ url = "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz";
+ sha1 = "bb73d446da2796106efcc1b601a253d6c46bd087";
+ };
+ }
+
+ {
+ name = "stealthy_require___stealthy_require_1.1.1.tgz";
+ path = fetchurl {
+ name = "stealthy_require___stealthy_require_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz";
+ sha1 = "35b09875b4ff49f26a777e509b3090a3226bf24b";
+ };
+ }
+
+ {
+ name = "stream_browserify___stream_browserify_2.0.1.tgz";
+ path = fetchurl {
+ name = "stream_browserify___stream_browserify_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz";
+ sha1 = "66266ee5f9bdb9940a4e4514cafb43bb71e5c9db";
+ };
+ }
+
+ {
+ name = "stream_each___stream_each_1.2.3.tgz";
+ path = fetchurl {
+ name = "stream_each___stream_each_1.2.3.tgz";
+ url = "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz";
+ sha1 = "ebe27a0c389b04fbcc233642952e10731afa9bae";
+ };
+ }
+
+ {
+ name = "stream_http___stream_http_2.8.3.tgz";
+ path = fetchurl {
+ name = "stream_http___stream_http_2.8.3.tgz";
+ url = "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz";
+ sha1 = "b2d242469288a5a27ec4fe8933acf623de6514fc";
+ };
+ }
+
+ {
+ name = "stream_shift___stream_shift_1.0.0.tgz";
+ path = fetchurl {
+ name = "stream_shift___stream_shift_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz";
+ sha1 = "d5c752825e5367e786f78e18e445ea223a155952";
+ };
+ }
+
+ {
+ name = "string_length___string_length_2.0.0.tgz";
+ path = fetchurl {
+ name = "string_length___string_length_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/string-length/-/string-length-2.0.0.tgz";
+ sha1 = "d40dbb686a3ace960c1cffca562bf2c45f8363ed";
+ };
+ }
+
+ {
+ name = "string_width___string_width_1.0.2.tgz";
+ path = fetchurl {
+ name = "string_width___string_width_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz";
+ sha1 = "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3";
+ };
+ }
+
+ {
+ name = "string_width___string_width_2.1.1.tgz";
+ path = fetchurl {
+ name = "string_width___string_width_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz";
+ sha1 = "ab93f27a8dc13d28cac815c462143a6d9012ae9e";
+ };
+ }
+
+ {
+ name = "string.prototype.trim___string.prototype.trim_1.1.2.tgz";
+ path = fetchurl {
+ name = "string.prototype.trim___string.prototype.trim_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz";
+ sha1 = "d04de2c89e137f4d7d206f086b5ed2fae6be8cea";
+ };
+ }
+
+ {
+ name = "string_decoder___string_decoder_1.2.0.tgz";
+ path = fetchurl {
+ name = "string_decoder___string_decoder_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.2.0.tgz";
+ sha1 = "fe86e738b19544afe70469243b2a1ee9240eae8d";
+ };
+ }
+
+ {
+ name = "string_decoder___string_decoder_1.1.1.tgz";
+ path = fetchurl {
+ name = "string_decoder___string_decoder_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz";
+ sha1 = "9cf1611ba62685d7030ae9e4ba34149c3af03fc8";
+ };
+ }
+
+ {
+ name = "stringz___stringz_1.0.0.tgz";
+ path = fetchurl {
+ name = "stringz___stringz_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/stringz/-/stringz-1.0.0.tgz";
+ sha1 = "d2acba994e4ce3c725ee15c86fff4281280d2025";
+ };
+ }
+
+ {
+ name = "strip_ansi___strip_ansi_3.0.1.tgz";
+ path = fetchurl {
+ name = "strip_ansi___strip_ansi_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz";
+ sha1 = "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf";
+ };
+ }
+
+ {
+ name = "strip_ansi___strip_ansi_4.0.0.tgz";
+ path = fetchurl {
+ name = "strip_ansi___strip_ansi_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz";
+ sha1 = "a8479022eb1ac368a871389b635262c505ee368f";
+ };
+ }
+
+ {
+ name = "strip_ansi___strip_ansi_5.0.0.tgz";
+ path = fetchurl {
+ name = "strip_ansi___strip_ansi_5.0.0.tgz";
+ url = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.0.0.tgz";
+ sha1 = "f78f68b5d0866c20b2c9b8c61b5298508dc8756f";
+ };
+ }
+
+ {
+ name = "strip_bom___strip_bom_3.0.0.tgz";
+ path = fetchurl {
+ name = "strip_bom___strip_bom_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz";
+ sha1 = "2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3";
+ };
+ }
+
+ {
+ name = "strip_bom___strip_bom_2.0.0.tgz";
+ path = fetchurl {
+ name = "strip_bom___strip_bom_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz";
+ sha1 = "6219a85616520491f35788bdbf1447a99c7e6b0e";
+ };
+ }
+
+ {
+ name = "strip_eof___strip_eof_1.0.0.tgz";
+ path = fetchurl {
+ name = "strip_eof___strip_eof_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz";
+ sha1 = "bb43ff5598a6eb05d89b59fcd129c983313606bf";
+ };
+ }
+
+ {
+ name = "strip_json_comments___strip_json_comments_2.0.1.tgz";
+ path = fetchurl {
+ name = "strip_json_comments___strip_json_comments_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz";
+ sha1 = "3c531942e908c2697c0ec344858c286c7ca0a60a";
+ };
+ }
+
+ {
+ name = "style_loader___style_loader_0.23.1.tgz";
+ path = fetchurl {
+ name = "style_loader___style_loader_0.23.1.tgz";
+ url = "https://registry.yarnpkg.com/style-loader/-/style-loader-0.23.1.tgz";
+ sha1 = "cb9154606f3e771ab6c4ab637026a1049174d925";
+ };
+ }
+
+ {
+ name = "stylehacks___stylehacks_4.0.1.tgz";
+ path = fetchurl {
+ name = "stylehacks___stylehacks_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.1.tgz";
+ sha1 = "3186595d047ab0df813d213e51c8b94e0b9010f2";
+ };
+ }
+
+ {
+ name = "substring_trie___substring_trie_1.0.2.tgz";
+ path = fetchurl {
+ name = "substring_trie___substring_trie_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/substring-trie/-/substring-trie-1.0.2.tgz";
+ sha1 = "7b42592391628b4f2cb17365c6cce4257c7b7af5";
+ };
+ }
+
+ {
+ name = "supports_color___supports_color_2.0.0.tgz";
+ path = fetchurl {
+ name = "supports_color___supports_color_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz";
+ sha1 = "535d045ce6b6363fa40117084629995e9df324c7";
+ };
+ }
+
+ {
+ name = "supports_color___supports_color_3.2.3.tgz";
+ path = fetchurl {
+ name = "supports_color___supports_color_3.2.3.tgz";
+ url = "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz";
+ sha1 = "65ac0504b3954171d8a64946b2ae3cbb8a5f54f6";
+ };
+ }
+
+ {
+ name = "supports_color___supports_color_5.5.0.tgz";
+ path = fetchurl {
+ name = "supports_color___supports_color_5.5.0.tgz";
+ url = "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz";
+ sha1 = "e2e69a44ac8772f78a1ec0b35b689df6530efc8f";
+ };
+ }
+
+ {
+ name = "svgo___svgo_1.1.1.tgz";
+ path = fetchurl {
+ name = "svgo___svgo_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/svgo/-/svgo-1.1.1.tgz";
+ sha1 = "12384b03335bcecd85cfa5f4e3375fed671cb985";
+ };
+ }
+
+ {
+ name = "symbol_observable___symbol_observable_1.2.0.tgz";
+ path = fetchurl {
+ name = "symbol_observable___symbol_observable_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz";
+ sha1 = "c22688aed4eab3cdc2dfeacbb561660560a00804";
+ };
+ }
+
+ {
+ name = "symbol_tree___symbol_tree_3.2.2.tgz";
+ path = fetchurl {
+ name = "symbol_tree___symbol_tree_3.2.2.tgz";
+ url = "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.2.tgz";
+ sha1 = "ae27db38f660a7ae2e1c3b7d1bc290819b8519e6";
+ };
+ }
+
+ {
+ name = "table___table_5.1.1.tgz";
+ path = fetchurl {
+ name = "table___table_5.1.1.tgz";
+ url = "https://registry.yarnpkg.com/table/-/table-5.1.1.tgz";
+ sha1 = "92030192f1b7b51b6eeab23ed416862e47b70837";
+ };
+ }
+
+ {
+ name = "tapable___tapable_1.1.1.tgz";
+ path = fetchurl {
+ name = "tapable___tapable_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/tapable/-/tapable-1.1.1.tgz";
+ sha1 = "4d297923c5a72a42360de2ab52dadfaaec00018e";
+ };
+ }
+
+ {
+ name = "tar___tar_4.4.8.tgz";
+ path = fetchurl {
+ name = "tar___tar_4.4.8.tgz";
+ url = "https://registry.yarnpkg.com/tar/-/tar-4.4.8.tgz";
+ sha1 = "b19eec3fde2a96e64666df9fdb40c5ca1bc3747d";
+ };
+ }
+
+ {
+ name = "tcomb___tcomb_2.7.0.tgz";
+ path = fetchurl {
+ name = "tcomb___tcomb_2.7.0.tgz";
+ url = "https://registry.yarnpkg.com/tcomb/-/tcomb-2.7.0.tgz";
+ sha1 = "10d62958041669a5d53567b9a4ee8cde22b1c2b0";
+ };
+ }
+
+ {
+ name = "terser_webpack_plugin___terser_webpack_plugin_1.2.1.tgz";
+ path = fetchurl {
+ name = "terser_webpack_plugin___terser_webpack_plugin_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.2.1.tgz";
+ sha1 = "7545da9ae5f4f9ae6a0ac961eb46f5e7c845cc26";
+ };
+ }
+
+ {
+ name = "terser___terser_3.14.0.tgz";
+ path = fetchurl {
+ name = "terser___terser_3.14.0.tgz";
+ url = "https://registry.yarnpkg.com/terser/-/terser-3.14.0.tgz";
+ sha1 = "49a8ddf34a1308a901d787dab03a42c51b557447";
+ };
+ }
+
+ {
+ name = "test_exclude___test_exclude_4.2.3.tgz";
+ path = fetchurl {
+ name = "test_exclude___test_exclude_4.2.3.tgz";
+ url = "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.2.3.tgz";
+ sha1 = "a9a5e64474e4398339245a0a769ad7c2f4a97c20";
+ };
+ }
+
+ {
+ name = "text_table___text_table_0.2.0.tgz";
+ path = fetchurl {
+ name = "text_table___text_table_0.2.0.tgz";
+ url = "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz";
+ sha1 = "7f5ee823ae805207c00af2df4a84ec3fcfa570b4";
+ };
+ }
+
+ {
+ name = "throat___throat_4.1.0.tgz";
+ path = fetchurl {
+ name = "throat___throat_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz";
+ sha1 = "89037cbc92c56ab18926e6ba4cbb200e15672a6a";
+ };
+ }
+
+ {
+ name = "throng___throng_4.0.0.tgz";
+ path = fetchurl {
+ name = "throng___throng_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/throng/-/throng-4.0.0.tgz";
+ sha1 = "983c6ba1993b58eae859998aa687ffe88df84c17";
+ };
+ }
+
+ {
+ name = "through2___through2_2.0.5.tgz";
+ path = fetchurl {
+ name = "through2___through2_2.0.5.tgz";
+ url = "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz";
+ sha1 = "01c1e39eb31d07cb7d03a96a70823260b23132cd";
+ };
+ }
+
+ {
+ name = "through___through_2.3.8.tgz";
+ path = fetchurl {
+ name = "through___through_2.3.8.tgz";
+ url = "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz";
+ sha1 = "0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5";
+ };
+ }
+
+ {
+ name = "thunky___thunky_1.0.3.tgz";
+ path = fetchurl {
+ name = "thunky___thunky_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/thunky/-/thunky-1.0.3.tgz";
+ sha1 = "f5df732453407b09191dae73e2a8cc73f381a826";
+ };
+ }
+
+ {
+ name = "timers_browserify___timers_browserify_2.0.10.tgz";
+ path = fetchurl {
+ name = "timers_browserify___timers_browserify_2.0.10.tgz";
+ url = "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.10.tgz";
+ sha1 = "1d28e3d2aadf1d5a5996c4e9f95601cd053480ae";
+ };
+ }
+
+ {
+ name = "timsort___timsort_0.3.0.tgz";
+ path = fetchurl {
+ name = "timsort___timsort_0.3.0.tgz";
+ url = "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz";
+ sha1 = "405411a8e7e6339fe64db9a234de11dc31e02bd4";
+ };
+ }
+
+ {
+ name = "tiny_queue___tiny_queue_0.2.1.tgz";
+ path = fetchurl {
+ name = "tiny_queue___tiny_queue_0.2.1.tgz";
+ url = "https://registry.yarnpkg.com/tiny-queue/-/tiny-queue-0.2.1.tgz";
+ sha1 = "25a67f2c6e253b2ca941977b5ef7442ef97a6046";
+ };
+ }
+
+ {
+ name = "tmp___tmp_0.0.33.tgz";
+ path = fetchurl {
+ name = "tmp___tmp_0.0.33.tgz";
+ url = "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz";
+ sha1 = "6d34335889768d21b2bcda0aa277ced3b1bfadf9";
+ };
+ }
+
+ {
+ name = "tmpl___tmpl_1.0.4.tgz";
+ path = fetchurl {
+ name = "tmpl___tmpl_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz";
+ sha1 = "23640dd7b42d00433911140820e5cf440e521dd1";
+ };
+ }
+
+ {
+ name = "to_arraybuffer___to_arraybuffer_1.0.1.tgz";
+ path = fetchurl {
+ name = "to_arraybuffer___to_arraybuffer_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz";
+ sha1 = "7d229b1fcc637e466ca081180836a7aabff83f43";
+ };
+ }
+
+ {
+ name = "to_fast_properties___to_fast_properties_1.0.3.tgz";
+ path = fetchurl {
+ name = "to_fast_properties___to_fast_properties_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz";
+ sha1 = "b83571fa4d8c25b82e231b06e3a3055de4ca1a47";
+ };
+ }
+
+ {
+ name = "to_fast_properties___to_fast_properties_2.0.0.tgz";
+ path = fetchurl {
+ name = "to_fast_properties___to_fast_properties_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz";
+ sha1 = "dc5e698cbd079265bc73e0377681a4e4e83f616e";
+ };
+ }
+
+ {
+ name = "to_object_path___to_object_path_0.3.0.tgz";
+ path = fetchurl {
+ name = "to_object_path___to_object_path_0.3.0.tgz";
+ url = "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz";
+ sha1 = "297588b7b0e7e0ac08e04e672f85c1f4999e17af";
+ };
+ }
+
+ {
+ name = "to_regex_range___to_regex_range_2.1.1.tgz";
+ path = fetchurl {
+ name = "to_regex_range___to_regex_range_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz";
+ sha1 = "7c80c17b9dfebe599e27367e0d4dd5590141db38";
+ };
+ }
+
+ {
+ name = "to_regex___to_regex_3.0.2.tgz";
+ path = fetchurl {
+ name = "to_regex___to_regex_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz";
+ sha1 = "13cfdd9b336552f30b51f33a8ae1b42a7a7599ce";
+ };
+ }
+
+ {
+ name = "tough_cookie___tough_cookie_2.5.0.tgz";
+ path = fetchurl {
+ name = "tough_cookie___tough_cookie_2.5.0.tgz";
+ url = "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz";
+ sha1 = "cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2";
+ };
+ }
+
+ {
+ name = "tough_cookie___tough_cookie_2.4.3.tgz";
+ path = fetchurl {
+ name = "tough_cookie___tough_cookie_2.4.3.tgz";
+ url = "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz";
+ sha1 = "53f36da3f47783b0925afa06ff9f3b165280f781";
+ };
+ }
+
+ {
+ name = "tr46___tr46_1.0.1.tgz";
+ path = fetchurl {
+ name = "tr46___tr46_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz";
+ sha1 = "a8b13fd6bfd2489519674ccde55ba3693b706d09";
+ };
+ }
+
+ {
+ name = "trim_right___trim_right_1.0.1.tgz";
+ path = fetchurl {
+ name = "trim_right___trim_right_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz";
+ sha1 = "cb2e1203067e0c8de1f614094b9fe45704ea6003";
+ };
+ }
+
+ {
+ name = "tryer___tryer_1.0.1.tgz";
+ path = fetchurl {
+ name = "tryer___tryer_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/tryer/-/tryer-1.0.1.tgz";
+ sha1 = "f2c85406800b9b0f74c9f7465b81eaad241252f8";
+ };
+ }
+
+ {
+ name = "tslib___tslib_1.9.3.tgz";
+ path = fetchurl {
+ name = "tslib___tslib_1.9.3.tgz";
+ url = "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz";
+ sha1 = "d7e4dd79245d85428c4d7e4822a79917954ca286";
+ };
+ }
+
+ {
+ name = "tty_browserify___tty_browserify_0.0.0.tgz";
+ path = fetchurl {
+ name = "tty_browserify___tty_browserify_0.0.0.tgz";
+ url = "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz";
+ sha1 = "a157ba402da24e9bf957f9aa69d524eed42901a6";
+ };
+ }
+
+ {
+ name = "tunnel_agent___tunnel_agent_0.6.0.tgz";
+ path = fetchurl {
+ name = "tunnel_agent___tunnel_agent_0.6.0.tgz";
+ url = "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz";
+ sha1 = "27a5dea06b36b04a0a9966774b290868f0fc40fd";
+ };
+ }
+
+ {
+ name = "tweetnacl___tweetnacl_0.14.5.tgz";
+ path = fetchurl {
+ name = "tweetnacl___tweetnacl_0.14.5.tgz";
+ url = "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz";
+ sha1 = "5ae68177f192d4456269d108afa93ff8743f4f64";
+ };
+ }
+
+ {
+ name = "type_check___type_check_0.3.2.tgz";
+ path = fetchurl {
+ name = "type_check___type_check_0.3.2.tgz";
+ url = "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz";
+ sha1 = "5884cab512cf1d355e3fb784f30804b2b520db72";
+ };
+ }
+
+ {
+ name = "type_is___type_is_1.6.16.tgz";
+ path = fetchurl {
+ name = "type_is___type_is_1.6.16.tgz";
+ url = "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz";
+ sha1 = "f89ce341541c672b25ee7ae3c73dee3b2be50194";
+ };
+ }
+
+ {
+ name = "typedarray___typedarray_0.0.6.tgz";
+ path = fetchurl {
+ name = "typedarray___typedarray_0.0.6.tgz";
+ url = "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz";
+ sha1 = "867ac74e3864187b1d3d47d996a78ec5c8830777";
+ };
+ }
+
+ {
+ name = "ua_parser_js___ua_parser_js_0.7.19.tgz";
+ path = fetchurl {
+ name = "ua_parser_js___ua_parser_js_0.7.19.tgz";
+ url = "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.19.tgz";
+ sha1 = "94151be4c0a7fb1d001af7022fdaca4642659e4b";
+ };
+ }
+
+ {
+ name = "uglify_js___uglify_js_3.4.9.tgz";
+ path = fetchurl {
+ name = "uglify_js___uglify_js_3.4.9.tgz";
+ url = "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.9.tgz";
+ sha1 = "af02f180c1207d76432e473ed24a28f4a782bae3";
+ };
+ }
+
+ {
+ name = "uglifyjs_webpack_plugin___uglifyjs_webpack_plugin_2.1.1.tgz";
+ path = fetchurl {
+ name = "uglifyjs_webpack_plugin___uglifyjs_webpack_plugin_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-2.1.1.tgz";
+ sha1 = "6937d7513a37280d4792f1fb536bef35e08e420a";
+ };
+ }
+
+ {
+ name = "unicode_astral_regex___unicode_astral_regex_1.0.1.tgz";
+ path = fetchurl {
+ name = "unicode_astral_regex___unicode_astral_regex_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/unicode-astral-regex/-/unicode-astral-regex-1.0.1.tgz";
+ sha1 = "2cab8529480646f9614ddbc7b62158ad05123feb";
+ };
+ }
+
+ {
+ name = "unicode_canonical_property_names_ecmascript___unicode_canonical_property_names_ecmascript_1.0.4.tgz";
+ path = fetchurl {
+ name = "unicode_canonical_property_names_ecmascript___unicode_canonical_property_names_ecmascript_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz";
+ sha1 = "2619800c4c825800efdd8343af7dd9933cbe2818";
+ };
+ }
+
+ {
+ name = "unicode_match_property_ecmascript___unicode_match_property_ecmascript_1.0.4.tgz";
+ path = fetchurl {
+ name = "unicode_match_property_ecmascript___unicode_match_property_ecmascript_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz";
+ sha1 = "8ed2a32569961bce9227d09cd3ffbb8fed5f020c";
+ };
+ }
+
+ {
+ name = "unicode_match_property_value_ecmascript___unicode_match_property_value_ecmascript_1.0.2.tgz";
+ path = fetchurl {
+ name = "unicode_match_property_value_ecmascript___unicode_match_property_value_ecmascript_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.0.2.tgz";
+ sha1 = "9f1dc76926d6ccf452310564fd834ace059663d4";
+ };
+ }
+
+ {
+ name = "unicode_property_aliases_ecmascript___unicode_property_aliases_ecmascript_1.0.4.tgz";
+ path = fetchurl {
+ name = "unicode_property_aliases_ecmascript___unicode_property_aliases_ecmascript_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.4.tgz";
+ sha1 = "5a533f31b4317ea76f17d807fa0d116546111dd0";
+ };
+ }
+
+ {
+ name = "union_value___union_value_1.0.0.tgz";
+ path = fetchurl {
+ name = "union_value___union_value_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz";
+ sha1 = "5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4";
+ };
+ }
+
+ {
+ name = "uniq___uniq_1.0.1.tgz";
+ path = fetchurl {
+ name = "uniq___uniq_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz";
+ sha1 = "b31c5ae8254844a3a8281541ce2b04b865a734ff";
+ };
+ }
+
+ {
+ name = "uniqs___uniqs_2.0.0.tgz";
+ path = fetchurl {
+ name = "uniqs___uniqs_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz";
+ sha1 = "ffede4b36b25290696e6e165d4a59edb998e6b02";
+ };
+ }
+
+ {
+ name = "unique_filename___unique_filename_1.1.1.tgz";
+ path = fetchurl {
+ name = "unique_filename___unique_filename_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz";
+ sha1 = "1d69769369ada0583103a1e6ae87681b56573230";
+ };
+ }
+
+ {
+ name = "unique_slug___unique_slug_2.0.1.tgz";
+ path = fetchurl {
+ name = "unique_slug___unique_slug_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.1.tgz";
+ sha1 = "5e9edc6d1ce8fb264db18a507ef9bd8544451ca6";
+ };
+ }
+
+ {
+ name = "unpipe___unpipe_1.0.0.tgz";
+ path = fetchurl {
+ name = "unpipe___unpipe_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz";
+ sha1 = "b2bf4ee8514aae6165b4817829d21b2ef49904ec";
+ };
+ }
+
+ {
+ name = "unquote___unquote_1.1.1.tgz";
+ path = fetchurl {
+ name = "unquote___unquote_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz";
+ sha1 = "8fded7324ec6e88a0ff8b905e7c098cdc086d544";
+ };
+ }
+
+ {
+ name = "unset_value___unset_value_1.0.0.tgz";
+ path = fetchurl {
+ name = "unset_value___unset_value_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz";
+ sha1 = "8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559";
+ };
+ }
+
+ {
+ name = "upath___upath_1.1.0.tgz";
+ path = fetchurl {
+ name = "upath___upath_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/upath/-/upath-1.1.0.tgz";
+ sha1 = "35256597e46a581db4793d0ce47fa9aebfc9fabd";
+ };
+ }
+
+ {
+ name = "uri_js___uri_js_4.2.2.tgz";
+ path = fetchurl {
+ name = "uri_js___uri_js_4.2.2.tgz";
+ url = "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz";
+ sha1 = "94c540e1ff772956e2299507c010aea6c8838eb0";
+ };
+ }
+
+ {
+ name = "urix___urix_0.1.0.tgz";
+ path = fetchurl {
+ name = "urix___urix_0.1.0.tgz";
+ url = "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz";
+ sha1 = "da937f7a62e21fec1fd18d49b35c2935067a6c72";
+ };
+ }
+
+ {
+ name = "url_parse___url_parse_1.4.4.tgz";
+ path = fetchurl {
+ name = "url_parse___url_parse_1.4.4.tgz";
+ url = "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.4.tgz";
+ sha1 = "cac1556e95faa0303691fec5cf9d5a1bc34648f8";
+ };
+ }
+
+ {
+ name = "url___url_0.11.0.tgz";
+ path = fetchurl {
+ name = "url___url_0.11.0.tgz";
+ url = "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz";
+ sha1 = "3838e97cfc60521eb73c525a8e55bfdd9e2e28f1";
+ };
+ }
+
+ {
+ name = "use___use_3.1.1.tgz";
+ path = fetchurl {
+ name = "use___use_3.1.1.tgz";
+ url = "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz";
+ sha1 = "d50c8cac79a19fbc20f2911f56eb973f4e10070f";
+ };
+ }
+
+ {
+ name = "util_deprecate___util_deprecate_1.0.2.tgz";
+ path = fetchurl {
+ name = "util_deprecate___util_deprecate_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz";
+ sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf";
+ };
+ }
+
+ {
+ name = "util.promisify___util.promisify_1.0.0.tgz";
+ path = fetchurl {
+ name = "util.promisify___util.promisify_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz";
+ sha1 = "440f7165a459c9a16dc145eb8e72f35687097030";
+ };
+ }
+
+ {
+ name = "util___util_0.10.3.tgz";
+ path = fetchurl {
+ name = "util___util_0.10.3.tgz";
+ url = "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz";
+ sha1 = "7afb1afe50805246489e3db7fe0ed379336ac0f9";
+ };
+ }
+
+ {
+ name = "util___util_0.10.4.tgz";
+ path = fetchurl {
+ name = "util___util_0.10.4.tgz";
+ url = "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz";
+ sha1 = "3aa0125bfe668a4672de58857d3ace27ecb76901";
+ };
+ }
+
+ {
+ name = "utils_merge___utils_merge_1.0.1.tgz";
+ path = fetchurl {
+ name = "utils_merge___utils_merge_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz";
+ sha1 = "9f95710f50a267947b2ccc124741c1028427e713";
+ };
+ }
+
+ {
+ name = "uuid___uuid_3.3.2.tgz";
+ path = fetchurl {
+ name = "uuid___uuid_3.3.2.tgz";
+ url = "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz";
+ sha1 = "1b4af4955eb3077c501c23872fc6513811587131";
+ };
+ }
+
+ {
+ name = "uws___uws_10.148.0.tgz";
+ path = fetchurl {
+ name = "uws___uws_10.148.0.tgz";
+ url = "https://registry.yarnpkg.com/uws/-/uws-10.148.0.tgz";
+ sha1 = "3fcd35f083ca515e091cd33b2d78f0f51a666215";
+ };
+ }
+
+ {
+ name = "v8_compile_cache___v8_compile_cache_2.0.2.tgz";
+ path = fetchurl {
+ name = "v8_compile_cache___v8_compile_cache_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.2.tgz";
+ sha1 = "a428b28bb26790734c4fc8bc9fa106fccebf6a6c";
+ };
+ }
+
+ {
+ name = "validate_npm_package_license___validate_npm_package_license_3.0.4.tgz";
+ path = fetchurl {
+ name = "validate_npm_package_license___validate_npm_package_license_3.0.4.tgz";
+ url = "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz";
+ sha1 = "fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a";
+ };
+ }
+
+ {
+ name = "value_equal___value_equal_0.4.0.tgz";
+ path = fetchurl {
+ name = "value_equal___value_equal_0.4.0.tgz";
+ url = "https://registry.yarnpkg.com/value-equal/-/value-equal-0.4.0.tgz";
+ sha1 = "c5bdd2f54ee093c04839d71ce2e4758a6890abc7";
+ };
+ }
+
+ {
+ name = "vary___vary_1.1.2.tgz";
+ path = fetchurl {
+ name = "vary___vary_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz";
+ sha1 = "2299f02c6ded30d4a5961b0b9f74524a18f634fc";
+ };
+ }
+
+ {
+ name = "vendors___vendors_1.0.2.tgz";
+ path = fetchurl {
+ name = "vendors___vendors_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/vendors/-/vendors-1.0.2.tgz";
+ sha1 = "7fcb5eef9f5623b156bcea89ec37d63676f21801";
+ };
+ }
+
+ {
+ name = "verror___verror_1.10.0.tgz";
+ path = fetchurl {
+ name = "verror___verror_1.10.0.tgz";
+ url = "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz";
+ sha1 = "3a105ca17053af55d6e270c1f8288682e18da400";
+ };
+ }
+
+ {
+ name = "vm_browserify___vm_browserify_0.0.4.tgz";
+ path = fetchurl {
+ name = "vm_browserify___vm_browserify_0.0.4.tgz";
+ url = "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz";
+ sha1 = "5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73";
+ };
+ }
+
+ {
+ name = "w3c_hr_time___w3c_hr_time_1.0.1.tgz";
+ path = fetchurl {
+ name = "w3c_hr_time___w3c_hr_time_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz";
+ sha1 = "82ac2bff63d950ea9e3189a58a65625fedf19045";
+ };
+ }
+
+ {
+ name = "walker___walker_1.0.7.tgz";
+ path = fetchurl {
+ name = "walker___walker_1.0.7.tgz";
+ url = "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz";
+ sha1 = "2f7f9b8fd10d677262b18a884e28d19618e028fb";
+ };
+ }
+
+ {
+ name = "warning___warning_3.0.0.tgz";
+ path = fetchurl {
+ name = "warning___warning_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/warning/-/warning-3.0.0.tgz";
+ sha1 = "32e5377cb572de4ab04753bdf8821c01ed605b7c";
+ };
+ }
+
+ {
+ name = "warning___warning_4.0.2.tgz";
+ path = fetchurl {
+ name = "warning___warning_4.0.2.tgz";
+ url = "https://registry.yarnpkg.com/warning/-/warning-4.0.2.tgz";
+ sha1 = "aa6876480872116fa3e11d434b0d0d8d91e44607";
+ };
+ }
+
+ {
+ name = "watch___watch_0.18.0.tgz";
+ path = fetchurl {
+ name = "watch___watch_0.18.0.tgz";
+ url = "https://registry.yarnpkg.com/watch/-/watch-0.18.0.tgz";
+ sha1 = "28095476c6df7c90c963138990c0a5423eb4b986";
+ };
+ }
+
+ {
+ name = "watchpack___watchpack_1.6.0.tgz";
+ path = fetchurl {
+ name = "watchpack___watchpack_1.6.0.tgz";
+ url = "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz";
+ sha1 = "4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00";
+ };
+ }
+
+ {
+ name = "wbuf___wbuf_1.7.3.tgz";
+ path = fetchurl {
+ name = "wbuf___wbuf_1.7.3.tgz";
+ url = "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz";
+ sha1 = "c1d8d149316d3ea852848895cb6a0bfe887b87df";
+ };
+ }
+
+ {
+ name = "webidl_conversions___webidl_conversions_4.0.2.tgz";
+ path = fetchurl {
+ name = "webidl_conversions___webidl_conversions_4.0.2.tgz";
+ url = "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz";
+ sha1 = "a855980b1f0b6b359ba1d5d9fb39ae941faa63ad";
+ };
+ }
+
+ {
+ name = "webpack_assets_manifest___webpack_assets_manifest_3.1.1.tgz";
+ path = fetchurl {
+ name = "webpack_assets_manifest___webpack_assets_manifest_3.1.1.tgz";
+ url = "https://registry.yarnpkg.com/webpack-assets-manifest/-/webpack-assets-manifest-3.1.1.tgz";
+ sha1 = "39bbc3bf2ee57fcd8ba07cda51c9ba4a3c6ae1de";
+ };
+ }
+
+ {
+ name = "webpack_bundle_analyzer___webpack_bundle_analyzer_3.0.3.tgz";
+ path = fetchurl {
+ name = "webpack_bundle_analyzer___webpack_bundle_analyzer_3.0.3.tgz";
+ url = "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.0.3.tgz";
+ sha1 = "dbc7fff8f52058b6714a20fddf309d0790e3e0a0";
+ };
+ }
+
+ {
+ name = "webpack_cli___webpack_cli_3.1.2.tgz";
+ path = fetchurl {
+ name = "webpack_cli___webpack_cli_3.1.2.tgz";
+ url = "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.1.2.tgz";
+ sha1 = "17d7e01b77f89f884a2bbf9db545f0f6a648e746";
+ };
+ }
+
+ {
+ name = "webpack_dev_middleware___webpack_dev_middleware_3.4.0.tgz";
+ path = fetchurl {
+ name = "webpack_dev_middleware___webpack_dev_middleware_3.4.0.tgz";
+ url = "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.4.0.tgz";
+ sha1 = "1132fecc9026fd90f0ecedac5cbff75d1fb45890";
+ };
+ }
+
+ {
+ name = "webpack_dev_server___webpack_dev_server_3.1.14.tgz";
+ path = fetchurl {
+ name = "webpack_dev_server___webpack_dev_server_3.1.14.tgz";
+ url = "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.1.14.tgz";
+ sha1 = "60fb229b997fc5a0a1fc6237421030180959d469";
+ };
+ }
+
+ {
+ name = "webpack_log___webpack_log_2.0.0.tgz";
+ path = fetchurl {
+ name = "webpack_log___webpack_log_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz";
+ sha1 = "5b7928e0637593f119d32f6227c1e0ac31e1b47f";
+ };
+ }
+
+ {
+ name = "webpack_merge___webpack_merge_4.1.5.tgz";
+ path = fetchurl {
+ name = "webpack_merge___webpack_merge_4.1.5.tgz";
+ url = "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.1.5.tgz";
+ sha1 = "2be31e846c20767d1bef56bdca64c328a681190a";
+ };
+ }
+
+ {
+ name = "webpack_sources___webpack_sources_1.3.0.tgz";
+ path = fetchurl {
+ name = "webpack_sources___webpack_sources_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.3.0.tgz";
+ sha1 = "2a28dcb9f1f45fe960d8f1493252b5ee6530fa85";
+ };
+ }
+
+ {
+ name = "webpack___webpack_4.28.3.tgz";
+ path = fetchurl {
+ name = "webpack___webpack_4.28.3.tgz";
+ url = "https://registry.yarnpkg.com/webpack/-/webpack-4.28.3.tgz";
+ sha1 = "8acef6e77fad8a01bfd0c2b25aa3636d46511874";
+ };
+ }
+
+ {
+ name = "websocket_driver___websocket_driver_0.7.0.tgz";
+ path = fetchurl {
+ name = "websocket_driver___websocket_driver_0.7.0.tgz";
+ url = "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.0.tgz";
+ sha1 = "0caf9d2d755d93aee049d4bdd0d3fe2cca2a24eb";
+ };
+ }
+
+ {
+ name = "websocket_extensions___websocket_extensions_0.1.3.tgz";
+ path = fetchurl {
+ name = "websocket_extensions___websocket_extensions_0.1.3.tgz";
+ url = "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz";
+ sha1 = "5d2ff22977003ec687a4b87073dfbbac146ccf29";
+ };
+ }
+
+ {
+ name = "websocket.js___websocket.js_0.1.12.tgz";
+ path = fetchurl {
+ name = "websocket.js___websocket.js_0.1.12.tgz";
+ url = "https://registry.yarnpkg.com/websocket.js/-/websocket.js-0.1.12.tgz";
+ sha1 = "46c980787c57ebc8edcf44a0263e5d639367b85b";
+ };
+ }
+
+ {
+ name = "whatwg_encoding___whatwg_encoding_1.0.5.tgz";
+ path = fetchurl {
+ name = "whatwg_encoding___whatwg_encoding_1.0.5.tgz";
+ url = "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz";
+ sha1 = "5abacf777c32166a51d085d6b4f3e7d27113ddb0";
+ };
+ }
+
+ {
+ name = "whatwg_fetch___whatwg_fetch_3.0.0.tgz";
+ path = fetchurl {
+ name = "whatwg_fetch___whatwg_fetch_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz";
+ sha1 = "fc804e458cc460009b1a2b966bc8817d2578aefb";
+ };
+ }
+
+ {
+ name = "whatwg_mimetype___whatwg_mimetype_2.3.0.tgz";
+ path = fetchurl {
+ name = "whatwg_mimetype___whatwg_mimetype_2.3.0.tgz";
+ url = "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz";
+ sha1 = "3d4b1e0312d2079879f826aff18dbeeca5960fbf";
+ };
+ }
+
+ {
+ name = "whatwg_url___whatwg_url_6.5.0.tgz";
+ path = fetchurl {
+ name = "whatwg_url___whatwg_url_6.5.0.tgz";
+ url = "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-6.5.0.tgz";
+ sha1 = "f2df02bff176fd65070df74ad5ccbb5a199965a8";
+ };
+ }
+
+ {
+ name = "whatwg_url___whatwg_url_7.0.0.tgz";
+ path = fetchurl {
+ name = "whatwg_url___whatwg_url_7.0.0.tgz";
+ url = "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.0.0.tgz";
+ sha1 = "fde926fa54a599f3adf82dff25a9f7be02dc6edd";
+ };
+ }
+
+ {
+ name = "which_module___which_module_2.0.0.tgz";
+ path = fetchurl {
+ name = "which_module___which_module_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz";
+ sha1 = "d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a";
+ };
+ }
+
+ {
+ name = "which___which_1.3.1.tgz";
+ path = fetchurl {
+ name = "which___which_1.3.1.tgz";
+ url = "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz";
+ sha1 = "a45043d54f5805316da8d62f9f50918d3da70b0a";
+ };
+ }
+
+ {
+ name = "wide_align___wide_align_1.1.3.tgz";
+ path = fetchurl {
+ name = "wide_align___wide_align_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz";
+ sha1 = "ae074e6bdc0c14a431e804e624549c633b000457";
+ };
+ }
+
+ {
+ name = "wordwrap___wordwrap_0.0.3.tgz";
+ path = fetchurl {
+ name = "wordwrap___wordwrap_0.0.3.tgz";
+ url = "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz";
+ sha1 = "a3d5da6cd5c0bc0008d37234bbaf1bed63059107";
+ };
+ }
+
+ {
+ name = "wordwrap___wordwrap_1.0.0.tgz";
+ path = fetchurl {
+ name = "wordwrap___wordwrap_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz";
+ sha1 = "27584810891456a4171c8d0226441ade90cbcaeb";
+ };
+ }
+
+ {
+ name = "worker_farm___worker_farm_1.6.0.tgz";
+ path = fetchurl {
+ name = "worker_farm___worker_farm_1.6.0.tgz";
+ url = "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.6.0.tgz";
+ sha1 = "aecc405976fab5a95526180846f0dba288f3a4a0";
+ };
+ }
+
+ {
+ name = "wrap_ansi___wrap_ansi_2.1.0.tgz";
+ path = fetchurl {
+ name = "wrap_ansi___wrap_ansi_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz";
+ sha1 = "d8fc3d284dd05794fe84973caecdd1cf824fdd85";
+ };
+ }
+
+ {
+ name = "wrappy___wrappy_1.0.2.tgz";
+ path = fetchurl {
+ name = "wrappy___wrappy_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz";
+ sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f";
+ };
+ }
+
+ {
+ name = "write_file_atomic___write_file_atomic_2.3.0.tgz";
+ path = fetchurl {
+ name = "write_file_atomic___write_file_atomic_2.3.0.tgz";
+ url = "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.3.0.tgz";
+ sha1 = "1ff61575c2e2a4e8e510d6fa4e243cce183999ab";
+ };
+ }
+
+ {
+ name = "write___write_0.2.1.tgz";
+ path = fetchurl {
+ name = "write___write_0.2.1.tgz";
+ url = "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz";
+ sha1 = "5fc03828e264cea3fe91455476f7a3c566cb0757";
+ };
+ }
+
+ {
+ name = "ws___ws_5.2.2.tgz";
+ path = fetchurl {
+ name = "ws___ws_5.2.2.tgz";
+ url = "https://registry.yarnpkg.com/ws/-/ws-5.2.2.tgz";
+ sha1 = "dffef14866b8e8dc9133582514d1befaf96e980f";
+ };
+ }
+
+ {
+ name = "ws___ws_6.1.2.tgz";
+ path = fetchurl {
+ name = "ws___ws_6.1.2.tgz";
+ url = "https://registry.yarnpkg.com/ws/-/ws-6.1.2.tgz";
+ sha1 = "3cc7462e98792f0ac679424148903ded3b9c3ad8";
+ };
+ }
+
+ {
+ name = "xml_name_validator___xml_name_validator_3.0.0.tgz";
+ path = fetchurl {
+ name = "xml_name_validator___xml_name_validator_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz";
+ sha1 = "6ae73e06de4d8c6e47f9fb181f78d648ad457c6a";
+ };
+ }
+
+ {
+ name = "xregexp___xregexp_4.0.0.tgz";
+ path = fetchurl {
+ name = "xregexp___xregexp_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/xregexp/-/xregexp-4.0.0.tgz";
+ sha1 = "e698189de49dd2a18cc5687b05e17c8e43943020";
+ };
+ }
+
+ {
+ name = "xtend___xtend_4.0.1.tgz";
+ path = fetchurl {
+ name = "xtend___xtend_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz";
+ sha1 = "a5c6d532be656e23db820efb943a1f04998d63af";
+ };
+ }
+
+ {
+ name = "y18n___y18n_3.2.1.tgz";
+ path = fetchurl {
+ name = "y18n___y18n_3.2.1.tgz";
+ url = "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz";
+ sha1 = "6d15fba884c08679c0d77e88e7759e811e07fa41";
+ };
+ }
+
+ {
+ name = "y18n___y18n_4.0.0.tgz";
+ path = fetchurl {
+ name = "y18n___y18n_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz";
+ sha1 = "95ef94f85ecc81d007c264e190a120f0a3c8566b";
+ };
+ }
+
+ {
+ name = "yallist___yallist_2.1.2.tgz";
+ path = fetchurl {
+ name = "yallist___yallist_2.1.2.tgz";
+ url = "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz";
+ sha1 = "1c11f9218f076089a47dd512f93c6699a6a81d52";
+ };
+ }
+
+ {
+ name = "yallist___yallist_3.0.3.tgz";
+ path = fetchurl {
+ name = "yallist___yallist_3.0.3.tgz";
+ url = "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz";
+ sha1 = "b4b049e314be545e3ce802236d6cd22cd91c3de9";
+ };
+ }
+
+ {
+ name = "yargs_parser___yargs_parser_10.1.0.tgz";
+ path = fetchurl {
+ name = "yargs_parser___yargs_parser_10.1.0.tgz";
+ url = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz";
+ sha1 = "7202265b89f7e9e9f2e5765e0fe735a905edbaa8";
+ };
+ }
+
+ {
+ name = "yargs_parser___yargs_parser_11.1.1.tgz";
+ path = fetchurl {
+ name = "yargs_parser___yargs_parser_11.1.1.tgz";
+ url = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz";
+ sha1 = "879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4";
+ };
+ }
+
+ {
+ name = "yargs_parser___yargs_parser_7.0.0.tgz";
+ path = fetchurl {
+ name = "yargs_parser___yargs_parser_7.0.0.tgz";
+ url = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz";
+ sha1 = "8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9";
+ };
+ }
+
+ {
+ name = "yargs_parser___yargs_parser_9.0.2.tgz";
+ path = fetchurl {
+ name = "yargs_parser___yargs_parser_9.0.2.tgz";
+ url = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-9.0.2.tgz";
+ sha1 = "9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077";
+ };
+ }
+
+ {
+ name = "yargs___yargs_12.0.2.tgz";
+ path = fetchurl {
+ name = "yargs___yargs_12.0.2.tgz";
+ url = "https://registry.yarnpkg.com/yargs/-/yargs-12.0.2.tgz";
+ sha1 = "fe58234369392af33ecbef53819171eff0f5aadc";
+ };
+ }
+
+ {
+ name = "yargs___yargs_11.1.0.tgz";
+ path = fetchurl {
+ name = "yargs___yargs_11.1.0.tgz";
+ url = "https://registry.yarnpkg.com/yargs/-/yargs-11.1.0.tgz";
+ sha1 = "90b869934ed6e871115ea2ff58b03f4724ed2d77";
+ };
+ }
+
+ {
+ name = "yargs___yargs_12.0.5.tgz";
+ path = fetchurl {
+ name = "yargs___yargs_12.0.5.tgz";
+ url = "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz";
+ sha1 = "05f5997b609647b64f66b81e3b4b10a368e7ad13";
+ };
+ }
+
+ {
+ name = "yargs___yargs_8.0.2.tgz";
+ path = fetchurl {
+ name = "yargs___yargs_8.0.2.tgz";
+ url = "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz";
+ sha1 = "6299a9055b1cefc969ff7e79c1d918dceb22c360";
+ };
+ }
+ ];
+}
--- /dev/null
+# Generated by bower2nix v3.2.0 (https://github.com/rvl/bower2nix)
+{ fetchbower, buildEnv }:
+buildEnv { name = "bower-env"; ignoreCollisions = true; paths = [
+ (fetchbower "jquery" "2.1.4" "~2.1.3" "1ywrpk2xsr6ghkm3j9gfnl9r3jn6xarfamp99b0bcm57kq9fm2k0")
+ (fetchbower "video.js" "4.11.4" "~4.11.4" "05prdvyk0rxbkh7sdd0d9ns5l5crwvc68wzkyqmrdjw367pcv8sn")
+ (fetchbower "leaflet" "0.7.7" "~0.7.3" "0jim285bljmxxngpm3yx6bnnd10n2whwkgmmhzpcd1rdksnr5nca")
+ (fetchbower "tinymce" "4.1.10" "~4.1.7" "16jyvdb9bq8gjwhs69q8p88vdixalajrz81nsmbrzzxhkih57dyx")
+]; }
--- /dev/null
+{ makeWrapper, stdenv, writeScript, fetchurl, buildBowerComponents, mylibs, which, python36, gst_all_1, automake, autoconf, nodejs, nodePackages }:
+let
+ overridePython = let
+ packageOverrides = self: super: {
+ celery = super.celery.overridePythonAttrs(old: rec {
+ version = "3.1.26.post2";
+ src = self.fetchPypi {
+ inherit version;
+ inherit (old) pname;
+ sha256 = "5493e172ae817b81ba7d09443ada114886765a8ce02f16a56e6fac68d953a9b2";
+ };
+ patches = [];
+ doCheck = false;
+ });
+ billiard = super.billiard.overridePythonAttrs(old: rec {
+ version = "3.3.0.23";
+ src = self.fetchPypi {
+ inherit version;
+ inherit (old) pname;
+ sha256 = "02wxsc6bhqvzh8j6w758kvgqbnj14l796mvmrcms8fgfamd2lak9";
+ };
+ });
+ amqp = super.amqp.overridePythonAttrs(old: rec {
+ version = "1.4.9";
+ src = self.fetchPypi {
+ inherit version;
+ inherit (old) pname;
+ sha256 = "2dea4d16d073c902c3b89d9b96620fb6729ac0f7a923bbc777cb4ad827c0c61a";
+ };
+ });
+ kombu = super.kombu.overridePythonAttrs(old: rec {
+ version = "3.0.37";
+ src = self.fetchPypi {
+ inherit version;
+ inherit (old) pname;
+ sha256 = "e064a00c66b4d1058cd2b0523fb8d98c82c18450244177b6c0f7913016642650";
+ };
+ propagatedBuildInputs = old.propagatedBuildInputs ++ [ self.anyjson ];
+ doCheck = false;
+ });
+ sqlalchemy = super.sqlalchemy.overridePythonAttrs(old: rec {
+ version = "1.1.18";
+ src = self.fetchPypi {
+ inherit version;
+ inherit (old) pname;
+ sha256 = "8b0ec71af9291191ba83a91c03d157b19ab3e7119e27da97932a4773a3f664a9";
+ };
+ });
+ tempita_5_3_dev = super.buildPythonPackage (mylibs.fetchedGithub ./tempita.json // rec {
+ buildInputs = with self; [ nose ];
+ disabled = false;
+ });
+ sqlalchemy_migrate = super.sqlalchemy_migrate.overridePythonAttrs(old: rec {
+ propagatedBuildInputs = with self; [ pbr tempita_5_3_dev decorator sqlalchemy six sqlparse ];
+ });
+ pasteScript = super.pasteScript.overridePythonAttrs(old: rec {
+ version = "2.0.2";
+ name = "PasteScript-${version}";
+ src = fetchurl {
+ url = "mirror://pypi/P/PasteScript/${name}.tar.gz";
+ sha256 = "1h3nnhn45kf4pbcv669ik4faw04j58k8vbj1hwrc532k0nc28gy0";
+ };
+ propagatedBuildInputs = with self; [ six paste PasteDeploy ];
+ });
+ };
+ in
+ python36.override { inherit packageOverrides; };
+ pythonEnv = python-pkgs: with python-pkgs; [
+ waitress alembic dateutil wtforms pybcrypt
+ pytest pytest_xdist werkzeug celery
+ kombu jinja2 Babel webtest configobj markdown
+ sqlalchemy itsdangerous pytz sphinx six
+ oauthlib unidecode jsonschema PasteDeploy
+ requests PyLD exifread
+ typing pasteScript lxml
+ # For images plugin
+ pillow
+ # For video plugin
+ gst-python
+ # migrations
+ sqlalchemy_migrate
+ # authentication
+ ldap3
+ redis
+ psycopg2
+ ];
+ python = overridePython.withPackages pythonEnv;
+ gmg = writeScript "gmg" ''
+ #!${python}/bin/python
+ __requires__ = 'mediagoblin'
+ import sys
+ from pkg_resources import load_entry_point
+
+ if __name__ == '__main__':
+ sys.exit(
+ load_entry_point('mediagoblin', 'console_scripts', 'gmg')()
+ )
+ '';
+ bowerComponents = buildBowerComponents {
+ name = "mediagoblin-bower-components";
+ generated = ./bower-packages.nix;
+ src = (mylibs.fetchedGit ./mediagoblin.json).src;
+ };
+ withPlugins = plugins: package.overrideAttrs(old: {
+ name = "${old.name}-with-plugins";
+ postBuild = old.postBuild + (
+ builtins.concatStringsSep "\n" (
+ map (value: "ln -s ${value} mediagoblin/plugins/${value.pluginName}") plugins
+ )
+ );
+ passthru = old.passthru // {
+ inherit plugins;
+ withPlugins = morePlugins: old.withPlugins (morePlugins ++ plugins);
+ };
+ });
+ package = stdenv.mkDerivation (mylibs.fetchedGit ./mediagoblin.json // rec {
+ preConfigure = ''
+ # ./bootstrap.sh
+ aclocal -I m4 --install
+ autoreconf -fvi
+ # end
+ export HOME=$PWD
+ '';
+ configureFlags = [ "--with-python3" "--without-virtualenv" ];
+ postBuild = ''
+ cp -a ${bowerComponents}/bower_components/* extlib
+ chmod -R u+w extlib
+ make extlib
+ '';
+ installPhase = let
+ libpaths = with gst_all_1; [
+ python
+ gstreamer
+ gst-plugins-base
+ gst-libav
+ gst-plugins-good
+ gst-plugins-bad
+ gst-plugins-ugly
+ ];
+ plugin_paths = builtins.concatStringsSep ":" (map (x: "${x}/lib") libpaths);
+ typelib_paths = with gst_all_1; "${gstreamer}/lib/girepository-1.0:${gst-plugins-base}/lib/girepository-1.0";
+ in ''
+ sed -i "s/registry.has_key(current_theme_name)/current_theme_name in registry/" mediagoblin/tools/theme.py
+ sed -i -e "s@\[DEFAULT\]@[DEFAULT]\nhere = $out@" mediagoblin/config_spec.ini
+ sed -i -e "/from gi.repository import GstPbutils/s/^/gi.require_version('GstPbutils', '1.0')\n/" mediagoblin/media_types/video/transcoders.py
+ cp ${./ldap_fix.py} mediagoblin/plugins/ldap/tools.py
+ find . -name '*.pyc' -delete
+ find . -type f -exec sed -i "s|$PWD|$out|g" {} \;
+ python setup.py build
+ cp -a . $out
+ mkdir $out/bin
+ makeWrapper ${gmg} $out/bin/gmg --prefix PYTHONPATH : "$out:$PYTHONPATH" \
+ --prefix GST_PLUGIN_SYSTEM_PATH : ${plugin_paths} \
+ --prefix GI_TYPELIB_PATH : ${typelib_paths}
+ makeWrapper ${python}/bin/paster $out/bin/paster --prefix PYTHONPATH : "$out:$PYTHONPATH" \
+ --prefix GST_PLUGIN_SYSTEM_PATH : ${plugin_paths} \
+ --prefix GI_TYPELIB_PATH : ${typelib_paths}
+ makeWrapper ${python}/bin/celery $out/bin/celery --prefix PYTHONPATH : "$out:$PYTHONPATH" \
+ --prefix GST_PLUGIN_SYSTEM_PATH : ${plugin_paths} \
+ --prefix GI_TYPELIB_PATH : ${typelib_paths}
+ '';
+ buildInputs = [ makeWrapper automake autoconf which nodePackages.bower nodejs python ];
+ propagatedBuildInputs = with gst_all_1; [ python gst-libav gst-plugins-good gst-plugins-bad gst-plugins-ugly gstreamer ];
+ passthru = {
+ plugins = [];
+ inherit withPlugins;
+ };
+ });
+in package
--- /dev/null
+# GNU MediaGoblin -- federated, autonomous media hosting
+# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+from ldap3 import Server, Connection, SUBTREE
+from ldap3.core.exceptions import LDAPException
+import logging
+
+import six
+
+from mediagoblin.tools import pluginapi
+
+_log = logging.getLogger(__name__)
+
+
+class LDAP(object):
+ def __init__(self):
+ self.ldap_settings = pluginapi.get_config('mediagoblin.plugins.ldap')
+
+ def _connect(self, server):
+ _log.info('Connecting to {0}.'.format(server['LDAP_SERVER_URI']))
+ self.server = Server(server['LDAP_SERVER_URI'])
+
+ if 'LDAP_START_TLS' in server and server['LDAP_START_TLS'] == 'true':
+ _log.info('Initiating TLS')
+ self.server.start_tls()
+
+ def _manager_auth(self, settings, username, password):
+ conn = Connection(self.server,
+ settings['LDAP_BIND_DN'],
+ settings['LDAP_BIND_PW'],
+ auto_bind=True)
+ found = conn.search(
+ search_base=settings['LDAP_SEARCH_BASE'],
+ search_filter=settings['LDAP_SEARCH_FILTER'].format(username=username),
+ search_scope=SUBTREE,
+ attributes=[settings['EMAIL_SEARCH_FIELD']])
+ if (not found) or len(conn.entries) > 1:
+ return False, None
+
+ user = conn.entries[0]
+ user_dn = user.entry_dn
+ try:
+ email = user.entry_attributes_as_dict[settings['EMAIL_SEARCH_FIELD']][0]
+ except KeyError:
+ email = None
+
+ Connection(self.server, user_dn, password, auto_bind=True)
+
+ return username, email
+
+ def _direct_auth(self, settings, username, password):
+ user_dn = settings['LDAP_USER_DN_TEMPLATE'].format(username=username)
+ conn = Connection(self.server, user_dn, password, auto_bind=True)
+ email_found = conn.search(
+ search_base=settings['LDAP_SEARCH_BASE'],
+ search_filter='uid={0}'.format(username),
+ search_scope=SUBTREE,
+ attributes=[settings['EMAIL_SEARCH_FIELD']])
+
+ if email_found:
+ try:
+ email = conn.entries[0].entry_attributes_as_dict[settings['EMAIL_SEARCH_FIELD']][0]
+ except KeyError:
+ email = None
+
+ return username, email
+
+ def login(self, username, password):
+ for k, v in six.iteritems(self.ldap_settings):
+ try:
+ self._connect(v)
+
+ if 'LDAP_BIND_DN' in v:
+ return self._manager_auth(v, username, password)
+ else:
+ return self._direct_auth(v, username, password)
+
+ except LDAPException as e:
+ _log.info(e)
+
+ return False, None
--- /dev/null
+{
+ "tag": "cd465eb-stable",
+ "meta": {
+ "name": "mediagoblin",
+ "url": "git://git.savannah.gnu.org/mediagoblin.git",
+ "branch": "stable"
+ },
+ "git": {
+ "url": "git://git.savannah.gnu.org/mediagoblin.git",
+ "rev": "cd465ebfec837a75a44c4ebd727dffe2fff6d850",
+ "sha256": "1yz4i4i97z3rxl534a6psaybyjbyp5nnc52v3nvbpzc4pd2s69mx",
+ "fetchSubmodules": true
+ }
+}
--- /dev/null
+{ stdenv, fetchFromGitHub }:
+stdenv.mkDerivation rec {
+ name = "mediagoblin-plugin-basicsearch-${version}";
+ version = "ba0a154-master";
+ src = fetchFromGitHub {
+ owner = "ayleph";
+ repo = "mediagoblin-basicsearch";
+ rev = "ba0a1547bd24ebaf363227fe17644d38c6ce8a6b";
+ sha256 = "0d4r7xkf4gxmgaxlb264l44xbanis77g49frwfhfzsflxmdwgncy";
+ };
+ phases = "unpackPhase installPhase";
+ installPhase = ''
+ cp -R ./basicsearch $out
+ '';
+ passthru = {
+ pluginName = "basicsearch";
+ };
+}
--- /dev/null
+{
+ "tag": "47414a7-master",
+ "meta": {
+ "name": "tempita",
+ "url": "https://github.com/gjhiggins/tempita",
+ "branch": "master"
+ },
+ "github": {
+ "owner": "gjhiggins",
+ "repo": "tempita",
+ "rev": "47414a7c6e46a9a9afe78f0bce2ea299fa84d10d",
+ "sha256": "0f33jjjs5rvp7ar2j6ggyfykcrsrn04jaqcq71qfvycf6b7nw3rn",
+ "fetchSubmodules": true
+ }
+}
--- /dev/null
+{ buildApp }:
+buildApp rec {
+ appName = "audioplayer";
+ version = "2.7.0";
+ url = "https://github.com/Rello/${appName}/releases/download/${version}/${appName}-${version}.tar.gz";
+ sha256 = "05dylw45hs32agy6wqjy4r2x3h1dxzyzn0378ig6h5a22xd52mik";
+}
--- /dev/null
+{ buildApp }:
+buildApp rec {
+ appName = "bookmarks";
+ version = "1.0.2";
+ url = "https://github.com/nextcloud/${appName}/releases/download/v${version}/${appName}-${version}.tar.gz";
+ sha256 = "1ph123d0pram9a0vq73rn0zw0pyg4l0xqg162b59ds68179m2jfp";
+}
--- /dev/null
+{ buildApp }:
+buildApp rec {
+ appName = "calendar";
+ version = "1.7.0";
+ url = "https://github.com/nextcloud/${appName}/releases/download/v${version}/${appName}.tar.gz";
+ sha256 = "0cgvvgzc2kgs2ng36hzff8rrpw9n58f0hyrr41n3wjkf0iynm56r";
+}
--- /dev/null
+{ buildApp }:
+buildApp rec {
+ appName = "carnet";
+ version = "0.15.2";
+ url = "https://github.com/PhieF/CarnetNextcloud/releases/download/v${version}/${appName}-nc-v${version}.tar.gz";
+ sha256 = "1npjb2bgwcfxlf22ygl2hfhfgaigk1kpdk795yc79mx2l1iicmg0";
+}
--- /dev/null
+{ buildApp }:
+buildApp rec {
+ appName = "contacts";
+ version = "3.1.1";
+ url = "https://github.com/nextcloud/${appName}/releases/download/v${version}/${appName}.tar.gz";
+ sha256 = "1qfn532p1pb4m6q2jzyzlyw4c5qccmq6vj0h2zv9xfkajfvz7i7v";
+}
--- /dev/null
+{ buildApp }:
+buildApp rec {
+ appName = "deck";
+ version = "0.6.1";
+ url = "https://github.com/nextcloud/${appName}/releases/download/v${version}/${appName}.tar.gz";
+ sha256 = "1hafgj67zbhs4higf7nyr61p4s31axzxrsq09c4wmcwviz7p7zvs";
+}
--- /dev/null
+{ buildApp }:
+buildApp rec {
+ appName = "files_markdown";
+ version = "2.0.6";
+ url = "https://github.com/icewind1991/${appName}/releases/download/v${version}/${appName}.tar.gz";
+ sha256 = "1ng8gpjl3g1141k1nii59cg005viidlcbsg4x9brzcj25c5qhjjp";
+}
--- /dev/null
+{ buildApp }:
+buildApp rec {
+ appName = "flowupload";
+ version = "0.1.0";
+ url = "https://github.com/e-alfred/${appName}/releases/download/${version}/${appName}.tar.gz";
+ sha256 = "0cai76hcjrwvq32yav0nd9kkhslandp1sj5czz119gsfjlkpalw9";
+}
--- /dev/null
+{ buildApp }:
+buildApp rec {
+ appName = "gpxedit";
+ version = "0.0.11";
+ url = "https://gitlab.com/eneiluj/gpxedit-oc/wikis/uploads/18058077d0170256c3f4c9201443d09d/${appName}-${version}.tar.gz";
+ sha256 = "1ww32jysjnwxrn8r9fjdfhbfqnzgaakn08m64wcmavx29dd42y6m";
+ otherConfig = {
+ mimetypealiases = {
+ "application/gpx+xml" = "gpx";
+ };
+ mimetypemapping = {
+ "gpx" = ["application/gpx+xml"];
+ };
+ };
+}
--- /dev/null
+{ buildApp }:
+buildApp rec {
+ appName = "gpxpod";
+ version = "3.0.3";
+ url = "https://gitlab.com/eneiluj/gpxpod-oc/wikis/uploads/34af9435d7a2cd8fa915b84f0dda0724/${appName}-${version}.tar.gz";
+ sha256 = "0v30j5b4ki6nbxqdmnlkrgl1lpg2x2nir9gik6rfj0c3jhmb5mch";
+ otherConfig = {
+ mimetypealiases = {
+ "application/gpx+xml" = "gpx";
+ };
+ mimetypemapping = {
+ "gpx" = ["application/gpx+xml"];
+ };
+ };
+}
--- /dev/null
+{ buildApp }:
+buildApp rec {
+ appName = "keeweb";
+ version = "0.5.0";
+ url = "https://github.com/jhass/nextcloud-keeweb/releases/download/v${version}/${appName}-${version}.tar.gz";
+ sha256 = "0wdr6ywlirmac7w1ld5ma7fwb4bykclbxfq2sxwg6pvzfid5vc8x";
+ installPhase = ''
+ mkdir -p $out
+ cp -R . $out/
+ sed -i -e 's/max-version="15"/max-version="16"/' $out/appinfo/info.xml
+ '';
+ otherConfig = {
+ mimetypealiases = {
+ "x-application/kdbx" = "kdbx";
+ };
+ mimetypemapping = {
+ "kdbx" = ["x-application/kdbx"];
+ };
+ };
+}
--- /dev/null
+{ buildApp }:
+buildApp rec {
+ appName = "music";
+ version = "0.9.5";
+ url = "https://github.com/owncloud/${appName}/archive/v${version}.tar.gz";
+ sha256 = "0dx136z7anmi18harc1v2hyfdaq568lqf3wpy9hgx309ggb4wwzx";
+}
--- /dev/null
+{ buildApp }:
+buildApp rec {
+ appName = "notes";
+ version = "2.6.0";
+ url = "https://github.com/nextcloud/${appName}/releases/download/v${version}/${appName}.tar.gz";
+ sha256 = "1b1vc8plv4mpsxl7mgwgrcrswphclsm9xa89vxf3s4xzlwwq11c4";
+}
--- /dev/null
+{ buildApp }:
+buildApp rec {
+ appName = "ocsms";
+ version = "2.1.1";
+ url = "https://github.com/nextcloud/${appName}/releases/download/${version}/${appName}-${version}.tar.gz";
+ sha256 = "0sgfbmy1c8rgzjvf9snc7rzgp8aqsc65zfwgi6qcsf2g6gam5n7a";
+ installPhase = ''
+ sed -i -e "/addScript.*devel/d" -e "s@//\(.*addScript.*app.min\)@\1@" templates/main.php
+ sed -i -e 's/max-version="15.0"/max-version="16.0"/' appinfo/info.xml
+ mkdir -p $out
+ cp -R . $out/
+ '';
+}
--- /dev/null
+{ buildApp }:
+buildApp rec {
+ appName = "passman";
+ version = "2.2.1";
+ url = "https://releases.passman.cc/${appName}_${version}.tar.gz";
+ sha256 = "064pq9d0pl3y1vcywpi19fg47zy7j4h0jaxy6jklwzwcrmzagbka";
+}
--- /dev/null
+{ buildApp }:
+buildApp rec {
+ appName = "spreed";
+ version = "6.0.0";
+ url = "https://github.com/nextcloud/${appName}/releases/download/v${version}/${appName}-${version}.tar.gz";
+ sha256 = "14rcskp4pdcf0g816cdp070c8pzrj33fg2w7jb3af8maf1d77306";
+}
--- /dev/null
+{ buildApp }:
+buildApp rec {
+ appName = "tasks";
+ version = "0.10.1";
+ url = "https://github.com/nextcloud/${appName}/releases/download/v${version}/${appName}.tar.gz";
+ sha256 = "0r888yr6bl2y5mp65q8md5k139as1a0xw4yfzvkv7y77wmqn9wsm";
+}
--- /dev/null
+{ varDir ? "/var/lib/nextcloud", otherConfig ? {}, lib, stdenv, fetchurl }:
+let
+ buildApp = { appName, version, url, sha256, otherConfig ? {}, installPhase ? "mkdir -p $out && cp -R . $out/" }:
+ stdenv.mkDerivation rec {
+ name = "nextcloud-app-${appName}-${version}";
+ inherit version;
+ phases = "unpackPhase installPhase";
+ inherit installPhase;
+ src = fetchurl { inherit url sha256; };
+ passthru = {
+ inherit appName otherConfig;
+ };
+ };
+ withApps = apps: package.overrideAttrs(old: {
+ name = "${old.name}-with-apps";
+
+ installPhase = old.installPhase + (
+ builtins.concatStringsSep "\n" (
+ map (value: "ln -sf ${value} $out/apps/${value.appName}") apps
+ ));
+
+ passthru = old.passthru // {
+ otherConfig = with lib.attrsets; with lib.lists; let
+ zipped = zipAttrs ([old.otherConfig or {}] ++ map (v: v.otherConfig) apps);
+ in
+ {
+ mimetypealiases = foldr (h: prev: prev // h) {} zipped.mimetypealiases;
+ mimetypemapping = mapAttrs (_: v: unique (flatten v)) (zipAttrs zipped.mimetypemapping);
+ };
+ inherit apps;
+ withApps = moreApps: old.withApps (moreApps ++ apps);
+ };
+ });
+
+ package = stdenv.mkDerivation rec {
+ name = "nextcloud-${version}";
+ version = "16.0.0";
+
+ src = fetchurl {
+ url = "https://download.nextcloud.com/server/releases/${name}.tar.bz2";
+ sha256 = "0bj014vczlrql1w32pqmr7cyqn9awnyzpi2syxhg16qxic1gfcj5";
+ };
+
+ installPhase = ''
+ mkdir -p $out/
+ cp -R . $out/
+ rm -r $out/config
+ ln -sf ${varDir}/config $out/config
+ '';
+
+ passthru = {
+ apps = [];
+ inherit otherConfig buildApp withApps varDir;
+ };
+ meta = {
+ description = "Sharing solution for files, calendars, contacts and more";
+ homepage = https://nextcloud.com;
+ maintainers = with lib.maintainers; [ schneefux bachp globin fpletz ];
+ license = lib.licenses.agpl3Plus;
+ platforms = with lib.platforms; unix;
+ };
+ };
+in package
--- /dev/null
+{ ldap ? false
+, lib, stdenv, fetchzip, youtube-dl, fetchurl, mylibs, python, nodejs, nodePackages }:
+let
+ nodeHeaders = fetchurl {
+ url = "https://nodejs.org/download/release/v${nodejs.version}/node-v${nodejs.version}-headers.tar.gz";
+ sha256 = "16f20ya3ys6w5w6y6l4536f7jrgk4gz46bf71w1r1xxb26a54m32";
+ };
+ patchedPackages = stdenv.mkDerivation (mylibs.fetchedGithub ./peertube.json // rec {
+ patches = if ldap then [ ./ldap.patch ././yarn_fix_bluebird_ldap.patch ] else [ ./yarn_fix_bluebird.patch ];
+ installPhase = ''
+ mkdir $out
+ cp package.json yarn.lock $out/
+ '';
+ });
+ # if yarn complains about
+ # TypeError: Cannot read property 'lang' of undefined yarn
+ # make sure that all package names in yarn-packages.nix finish in
+ # .tar.gz where due (especially jsonld-signatures)
+ # Most errors where due to jsonld-signature (name, git version, etc.)
+ # or bluebird (3.5.18 instead vs 3.5.21)
+ yarnModulesArg = rec {
+ pname = "peertube-yarn-modules";
+ version = "1.2.0";
+ name = "peertube-yarn-modules-${version}";
+ packageJSON = "${patchedPackages}/package.json";
+ yarnLock = "${patchedPackages}/yarn.lock";
+ yarnNix = ./yarn-packages.nix;
+ pkgConfig = {
+ all = {
+ buildInputs = [ mylibs.yarn2nixPackage.src ];
+ };
+ bcrypt = {
+ buildInputs = [ nodePackages.node-pre-gyp ];
+ postInstall = let
+ bcrypt_lib = fetchurl {
+ url = "https://github.com/kelektiv/node.bcrypt.js/releases/download/v3.0.2/bcrypt_lib-v3.0.2-node-v57-linux-x64-glibc.tar.gz";
+ sha256 = "04bj3yn1wi8a6izihskyks0bb4nls3mndgb2yj12iraiv5dmg097";
+ };
+ in
+ ''
+ mkdir lib && tar -C lib -xf ${bcrypt_lib}
+ patchShebangs ../node-pre-gyp
+ npm run install
+ '';
+ };
+ dtrace-provider = {
+ buildInputs = [ python nodePackages.node-gyp ];
+ postInstall = ''
+ npx node-gyp rebuild --tarball=${nodeHeaders}
+ '';
+ };
+ rdf-canonize = {
+ buildInputs = [ python nodePackages.node-gyp ];
+ postInstall = ''
+ npx node-gyp rebuild --tarball=${nodeHeaders}
+ '';
+ };
+ sharp = {
+ buildInputs = [ python nodePackages.node-gyp ];
+ postInstall =
+ let
+ tarball = fetchurl {
+ url = "https://github.com/lovell/sharp-libvips/releases/download/v8.7.0/libvips-8.7.0-linux-x64.tar.gz";
+ sha256 = "1sq7qrp1q1pcrd165c3sky7qjx1kqihfpr4ailb5k73rwyh8lxg4";
+ };
+ in
+ ''
+ mkdir vendor
+ tar -C vendor -xf ${tarball}
+ patchShebangs ../prebuild-install
+ npx node install/libvips
+ npx node install/dll-copy
+ npx prebuild-install || npx node-gyp rebuild --tarball=${nodeHeaders}
+ '';
+ };
+ utf-8-validate = {
+ buildInputs = [ nodePackages.node-gyp-build ];
+ };
+ youtube-dl = {
+ postInstall = ''
+ mkdir bin
+ ln -s ${youtube-dl}/bin/youtube-dl bin/youtube-dl
+ cat > bin/details <<EOF
+ {"version":"${youtube-dl.version}","path":null,"exec":"youtube-dl"}
+ EOF
+ '';
+ };
+ };
+ };
+ yarnModules = mylibs.yarn2nixPackage.mkYarnModules yarnModulesArg;
+ yarnModulesProd = mylibs.yarn2nixPackage.mkYarnModules (yarnModulesArg // { yarnFlags = mylibs.yarn2nixPackage.defaultYarnFlags ++ [ "--production" ]; });
+ patchedServer = stdenv.mkDerivation (mylibs.fetchedGithub ./peertube.json // rec {
+ patches = lib.optionals ldap [ ./ldap.patch ] ++ [ ./sendmail.patch ];
+ buildPhase = ''
+ ln -s ${yarnModules}/node_modules .
+ npm run build:server
+ '';
+ installPhase = ''
+ mkdir $out
+ cp -a dist/server $out
+ '';
+ buildInputs = [ nodejs yarnModules ];
+ });
+in
+ stdenv.mkDerivation rec {
+ version = "v1.2.0";
+ name = "peertube-${version}";
+ src = fetchzip {
+ url = "https://github.com/Chocobozzz/PeerTube/releases/download/${version}/${name}.zip";
+ sha256 = "18fp3fy1crw67gdpc29nr38b5zy2f68l70w47zwp7dzhd8bbbipp";
+ };
+ patches = lib.optionals ldap [ ./ldap_yarn.patch ];
+ buildPhase = ''
+ ln -s ${yarnModulesProd}/node_modules .
+ rm -rf dist/server && cp -a ${patchedServer}/server dist
+ '';
+ installPhase = ''
+ mkdir $out
+ cp -a * $out
+ ln -s /tmp $out/.cache
+ '';
+ buildInputs = [ yarnModulesProd ];
+ }
--- /dev/null
+commit 45a9e4a7b1badbea15d74bd8b3990303a424dfa6
+Author: Ismaël Bouya <ismael.bouya@normalesup.org>
+Date: Tue Feb 12 18:47:53 2019 +0100
+
+ Add LDAP authentication
+
+diff --git a/config/default.yaml b/config/default.yaml
+index e16b8c35..eac0dd3f 100644
+--- a/config/default.yaml
++++ b/config/default.yaml
+@@ -33,6 +33,9 @@ redis:
+ auth: null
+ db: 0
+
++ldap:
++ enable: false
++
+ smtp:
+ hostname: null
+ port: 465
+diff --git a/config/production.yaml.example b/config/production.yaml.example
+index 661eac0d..bb5ac251 100644
+--- a/config/production.yaml.example
++++ b/config/production.yaml.example
+@@ -33,6 +33,17 @@ redis:
+ auth: null
+ db: 0
+
++ldap:
++ enable: true
++ # Disallow non-ldap users (it also disables root!)
++ ldap_only: true
++ url: ldap://localhost:389/dc=example,dc=com
++ bind_dn: cn=admin,dc=example,dc=com
++ bind_password: adminPass
++ base: dc=example,dc=com
++ mail_entry: "mail"
++ user_filter: "(|(email=%username%)(uid=%username%))"
++
+ # SMTP server to send emails
+ smtp:
+ hostname: null
+diff --git a/package.json b/package.json
+index 0cf39c7e..fd1ce3ea 100644
+--- a/package.json
++++ b/package.json
+@@ -125,6 +125,7 @@
+ "js-yaml": "^3.5.4",
+ "jsonld": "^1.0.1",
+ "jsonld-signatures": "https://github.com/Chocobozzz/jsonld-signatures#rsa2017",
++ "ldapjs": "^1.0.2",
+ "lodash": "^4.17.10",
+ "magnet-uri": "^5.1.4",
+ "memoizee": "^0.4.14",
+diff --git a/server/initializers/constants.ts b/server/initializers/constants.ts
+index 6f3ebb9a..fb21df37 100644
+--- a/server/initializers/constants.ts
++++ b/server/initializers/constants.ts
+@@ -16,7 +16,7 @@ let config: IConfig = require('config')
+
+ // ---------------------------------------------------------------------------
+
+-const LAST_MIGRATION_VERSION = 325
++const LAST_MIGRATION_VERSION = 326
+
+ // ---------------------------------------------------------------------------
+
+@@ -177,6 +177,16 @@ const CONFIG = {
+ AUTH: config.has('redis.auth') ? config.get<string>('redis.auth') : null,
+ DB: config.has('redis.db') ? config.get<number>('redis.db') : null
+ },
++ LDAP: {
++ ENABLE: config.has('ldap.enable') ? config.get<boolean>('ldap.enable') : false,
++ LDAP_ONLY: config.has('ldap.ldap_only') ? config.get<boolean>('ldap.ldap_only') : false,
++ URL: config.has('ldap.url') ? config.get<string>('ldap.url') : null,
++ BIND_DN: config.has('ldap.bind_dn') ? config.get<string>('ldap.bind_dn') : null,
++ BIND_PASSWORD: config.has('ldap.bind_password') ? config.get<string>('ldap.bind_password') : null,
++ BASE: config.has('ldap.base') ? config.get<string>('ldap.base') : null,
++ MAIL_ENTRY: config.has('ldap.mail_entry') ? config.get<string>('ldap.mail_entry') : 'mail',
++ USER_FILTER: config.has('ldap.user_filter') ? config.get<string>('ldap.user_filter') : '(|(email=%username%)(uid=%username%))'
++ },
+ SMTP: {
+ HOSTNAME: config.get<string>('smtp.hostname'),
+ PORT: config.get<number>('smtp.port'),
+diff --git a/server/initializers/migrations/0326-user-ldap-dn.ts b/server/initializers/migrations/0326-user-ldap-dn.ts
+new file mode 100644
+index 00000000..a9d68124
+--- /dev/null
++++ b/server/initializers/migrations/0326-user-ldap-dn.ts
+@@ -0,0 +1,26 @@
++import * as Sequelize from 'sequelize'
++
++async function up (utils: {
++ transaction: Sequelize.Transaction,
++ queryInterface: Sequelize.QueryInterface,
++ sequelize: Sequelize.Sequelize
++}): Promise<void> {
++
++ {
++ const data = {
++ type: Sequelize.STRING,
++ allowNull: true,
++ defaultValue: null
++ }
++ await utils.queryInterface.addColumn('user', 'ldapDn', data)
++ }
++}
++
++function down (options) {
++ throw new Error('Not implemented.')
++}
++
++export {
++ up,
++ down
++}
+diff --git a/server/lib/oauth-model.ts b/server/lib/oauth-model.ts
+index 2cd2ae97..3f14b216 100644
+--- a/server/lib/oauth-model.ts
++++ b/server/lib/oauth-model.ts
+@@ -66,7 +66,13 @@ function getRefreshToken (refreshToken: string) {
+ async function getUser (usernameOrEmail: string, password: string) {
+ logger.debug('Getting User (username/email: ' + usernameOrEmail + ', password: ******).')
+
+- const user = await UserModel.loadByUsernameOrEmail(usernameOrEmail)
++ let user
++ if (CONFIG.LDAP.ENABLE) {
++ user = await UserModel.findOrCreateLDAPUser(usernameOrEmail)
++ }
++ if (!user && (!CONFIG.LDAP.ENABLE || !CONFIG.LDAP.LDAP_ONLY)) {
++ user = await UserModel.loadByUsernameOrEmail(usernameOrEmail)
++ }
+ if (!user) return null
+
+ const passwordMatch = await user.isPasswordMatch(password)
+diff --git a/server/models/account/user.ts b/server/models/account/user.ts
+index 017a9665..a4d0145c 100644
+--- a/server/models/account/user.ts
++++ b/server/models/account/user.ts
+@@ -1,3 +1,4 @@
++import * as ldap from 'ldapjs'
+ import * as Sequelize from 'sequelize'
+ import {
+ AfterDestroy,
+@@ -42,8 +43,9 @@ import { VideoChannelModel } from '../video/video-channel'
+ import { AccountModel } from './account'
+ import { NSFWPolicyType } from '../../../shared/models/videos/nsfw-policy.type'
+ import { values } from 'lodash'
+-import { NSFW_POLICY_TYPES } from '../../initializers'
++import { CONFIG, NSFW_POLICY_TYPES } from '../../initializers'
+ import { clearCacheByUserId } from '../../lib/oauth-model'
++import { createUserAccountAndChannel } from '../../lib/user'
+ import { UserNotificationSettingModel } from './user-notification-setting'
+ import { VideoModel } from '../video/video'
+ import { ActorModel } from '../activitypub/actor'
+@@ -111,6 +113,11 @@ export class UserModel extends Model<UserModel> {
+ @Column(DataType.STRING(400))
+ email: string
+
++ @AllowNull(true)
++ @Default(null)
++ @Column
++ ldapDn: string
++
+ @AllowNull(true)
+ @Default(null)
+ @Is('UserEmailVerified', value => throwIfNotValid(value, isUserEmailVerifiedValid, 'email verified boolean'))
+@@ -354,6 +361,90 @@ export class UserModel extends Model<UserModel> {
+ return UserModel.findOne(query)
+ }
+
++ static loadByLdapDn (ldapDn: string) {
++ const query = {
++ where: {
++ ldapDn
++ }
++ }
++
++ return UserModel.findOne(query)
++ }
++
++ static findOrCreateLDAPUser (username: string) {
++ let userInfos
++
++ return Promise.resolve(UserModel.findLDAPUser(username))
++ .then((_userInfos) => {
++ userInfos = _userInfos
++ return UserModel.loadByLdapDn(userInfos['dn'])
++ })
++ .then((user) => {
++ if (user) {
++ return user
++ } else {
++ return UserModel.createLDAPUser(username, userInfos)
++ }
++ })
++ .catch(() => { return null })
++ }
++
++ static findLDAPUser (username: string) {
++ const client = ldap.createClient({
++ url: CONFIG.LDAP.URL
++ })
++ const filter = ldap.parseFilter(CONFIG.LDAP.USER_FILTER)
++ filter.forEach(function (element) {
++ if (element.value === '%username%') element.value = username
++ })
++ const opts = {
++ filter,
++ scope: 'sub',
++ attributes: [ CONFIG.LDAP.MAIL_ENTRY, 'dn' ]
++ }
++
++ return new Promise(function (resolve, reject) {
++ client.bind(CONFIG.LDAP.BIND_DN, CONFIG.LDAP.BIND_PASSWORD, function (err) {
++ if (err) reject()
++ let entries = []
++ client.search(CONFIG.LDAP.BASE, opts, function (err, search) {
++ if (err) reject()
++ search.on('searchEntry', function (entry) {
++ entries.push(entry.object)
++ })
++ search.on('end', function (result) {
++ if (entries.length === 1) {
++ resolve(entries[0])
++ } else {
++ reject()
++ }
++ })
++ })
++ })
++ })
++ }
++
++ static createLDAPUser (username: string, userInfos: {}) {
++ return Promise.resolve(userInfos)
++ .then((userInfos) => {
++ const userToCreate = new UserModel({
++ username: username,
++ password: 'SomeInvalidPassword',
++ email: userInfos[CONFIG.LDAP.MAIL_ENTRY],
++ ldapDn: userInfos['dn'],
++ nsfwPolicy: CONFIG.INSTANCE.DEFAULT_NSFW_POLICY,
++ autoPlayVideo: true,
++ role: UserRole.USER,
++ videoQuota: CONFIG.USER.VIDEO_QUOTA,
++ videoQuotaDaily: CONFIG.USER.VIDEO_QUOTA_DAILY,
++ emailVerified: true
++ })
++
++ return createUserAccountAndChannel(userToCreate)
++ })
++ .then(({ user }) => { return user })
++ }
++
+ static loadByUsernameAndPopulateChannels (username: string) {
+ const query = {
+ where: {
+@@ -516,8 +607,22 @@ export class UserModel extends Model<UserModel> {
+ return hasUserRight(this.role, right)
+ }
+
++ static checkLDAPUser (dn: string, password: string) {
++ const client = ldap.createClient({ url: CONFIG.LDAP.URL })
++
++ return new Promise(function (resolve, reject) {
++ client.bind(dn, password, function (err) {
++ resolve(!err)
++ })
++ })
++ }
++
+ isPasswordMatch (password: string) {
+- return comparePassword(password, this.password)
++ if (this.ldapDn === null) {
++ return comparePassword(password, this.password)
++ } else {
++ return UserModel.checkLDAPUser(this.ldapDn, password)
++ }
+ }
+
+ toFormattedJSON (): User {
+diff --git a/yarn.lock b/yarn.lock
+index 1e759af1..1eb61a9f 100644
+--- a/yarn.lock
++++ b/yarn.lock
+@@ -674,6 +674,11 @@ asap@^2.0.0:
+ resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46"
+ integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=
+
++asn1@0.2.3:
++ version "0.2.3"
++ resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86"
++ integrity sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=
++
+ asn1@~0.2.3:
+ version "0.2.4"
+ resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136"
+@@ -681,6 +686,11 @@ asn1@~0.2.3:
+ dependencies:
+ safer-buffer "~2.1.0"
+
++assert-plus@0.1.5:
++ version "0.1.5"
++ resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.1.5.tgz#ee74009413002d84cec7219c6ac811812e723160"
++ integrity sha1-7nQAlBMALYTOxyGcasgRgS5yMWA=
++
+ assert-plus@1.0.0, assert-plus@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
+@@ -779,6 +789,13 @@ backo2@1.0.2:
+ resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947"
+ integrity sha1-MasayLEpNjRj41s+u2n038+6eUc=
+
++backoff@^2.5.0:
++ version "2.5.0"
++ resolved "https://registry.yarnpkg.com/backoff/-/backoff-2.5.0.tgz#f616eda9d3e4b66b8ca7fca79f695722c5f8e26f"
++ integrity sha1-9hbtqdPktmuMp/ynn2lXIsX44m8=
++ dependencies:
++ precond "0.2"
++
+ balanced-match@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
+@@ -1186,6 +1203,16 @@ bull@^3.4.2:
+ semver "^5.6.0"
+ uuid "^3.2.1"
+
++bunyan@^1.8.3:
++ version "1.8.12"
++ resolved "https://registry.yarnpkg.com/bunyan/-/bunyan-1.8.12.tgz#f150f0f6748abdd72aeae84f04403be2ef113797"
++ integrity sha1-8VDw9nSKvdcq6uhPBEA74u8RN5c=
++ optionalDependencies:
++ dtrace-provider "~0.8"
++ moment "^2.10.6"
++ mv "~2"
++ safe-json-stringify "~1"
++
+ busboy@^0.2.11:
+ version "0.2.14"
+ resolved "https://registry.yarnpkg.com/busboy/-/busboy-0.2.14.tgz#6c2a622efcf47c57bbbe1e2a9c37ad36c7925453"
+@@ -1966,7 +1993,7 @@ d@1:
+ dependencies:
+ es5-ext "^0.10.9"
+
+-dashdash@^1.12.0:
++dashdash@^1.12.0, dashdash@^1.14.0:
+ version "1.14.1"
+ resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
+ integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=
+@@ -2292,6 +2319,13 @@ double-ended-queue@^2.1.0-0:
+ resolved "https://registry.yarnpkg.com/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz#103d3527fd31528f40188130c841efdd78264e5c"
+ integrity sha1-ED01J/0xUo9AGIEwyEHv3XgmTlw=
+
++dtrace-provider@~0.8:
++ version "0.8.7"
++ resolved "https://registry.yarnpkg.com/dtrace-provider/-/dtrace-provider-0.8.7.tgz#dc939b4d3e0620cfe0c1cd803d0d2d7ed04ffd04"
++ integrity sha1-3JObTT4GIM/gwc2APQ0tftBP/QQ=
++ dependencies:
++ nan "^2.10.0"
++
+ duplexer3@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2"
+@@ -2864,6 +2898,11 @@ extglob@^2.0.4:
+ snapdragon "^0.8.1"
+ to-regex "^3.0.1"
+
++extsprintf@1.2.0:
++ version "1.2.0"
++ resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.2.0.tgz#5ad946c22f5b32ba7f8cd7426711c6e8a3fc2529"
++ integrity sha1-WtlGwi9bMrp/jNdCZxHG6KP8JSk=
++
+ extsprintf@1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
+@@ -3350,6 +3389,17 @@ glob@7.1.2:
+ once "^1.3.0"
+ path-is-absolute "^1.0.0"
+
++glob@^6.0.1:
++ version "6.0.4"
++ resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22"
++ integrity sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=
++ dependencies:
++ inflight "^1.0.4"
++ inherits "2"
++ minimatch "2 || 3"
++ once "^1.3.0"
++ path-is-absolute "^1.0.0"
++
+ glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@~7.1.1, glob@~7.1.2:
+ version "7.1.3"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1"
+@@ -4522,6 +4572,30 @@ lcid@^2.0.0:
+ dependencies:
+ invert-kv "^2.0.0"
+
++ldap-filter@0.2.2:
++ version "0.2.2"
++ resolved "https://registry.yarnpkg.com/ldap-filter/-/ldap-filter-0.2.2.tgz#f2b842be0b86da3352798505b31ebcae590d77d0"
++ integrity sha1-8rhCvguG2jNSeYUFsx68rlkNd9A=
++ dependencies:
++ assert-plus "0.1.5"
++
++ldapjs@^1.0.2:
++ version "1.0.2"
++ resolved "https://registry.yarnpkg.com/ldapjs/-/ldapjs-1.0.2.tgz#544ff7032b7b83c68f0701328d9297aa694340f9"
++ integrity sha1-VE/3Ayt7g8aPBwEyjZKXqmlDQPk=
++ dependencies:
++ asn1 "0.2.3"
++ assert-plus "^1.0.0"
++ backoff "^2.5.0"
++ bunyan "^1.8.3"
++ dashdash "^1.14.0"
++ ldap-filter "0.2.2"
++ once "^1.4.0"
++ vasync "^1.6.4"
++ verror "^1.8.1"
++ optionalDependencies:
++ dtrace-provider "~0.8"
++
+ leven@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580"
+@@ -5186,7 +5260,7 @@ minimalistic-assert@^1.0.1:
+ resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"
+ integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==
+
+-minimatch@3.0.4, minimatch@^3.0.4, minimatch@~3.0.2:
++"minimatch@2 || 3", minimatch@3.0.4, minimatch@^3.0.4, minimatch@~3.0.2:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
+ integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
+@@ -5299,6 +5373,11 @@ moment-timezone@^0.5.14, moment-timezone@^0.5.23:
+ resolved "https://registry.yarnpkg.com/moment/-/moment-2.22.2.tgz#3c257f9839fc0e93ff53149632239eb90783ff66"
+ integrity sha1-PCV/mDn8DpP/UxSWMiOeuQeD/2Y=
+
++moment@^2.10.6:
++ version "2.24.0"
++ resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b"
++ integrity sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==
++
+ morgan@^1.5.3:
+ version "1.9.1"
+ resolved "https://registry.yarnpkg.com/morgan/-/morgan-1.9.1.tgz#0a8d16734a1d9afbc824b99df87e738e58e2da59"
+@@ -5394,6 +5473,15 @@ mute-stream@~0.0.4:
+ resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
+ integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=
+
++mv@~2:
++ version "2.1.1"
++ resolved "https://registry.yarnpkg.com/mv/-/mv-2.1.1.tgz#ae6ce0d6f6d5e0a4f7d893798d03c1ea9559b6a2"
++ integrity sha1-rmzg1vbV4KT32JN5jQPB6pVZtqI=
++ dependencies:
++ mkdirp "~0.5.1"
++ ncp "~2.0.0"
++ rimraf "~2.4.0"
++
+ nan@2.11.1, nan@^2.10.0, nan@^2.11.1, nan@^2.9.2:
+ version "2.11.1"
+ resolved "https://registry.yarnpkg.com/nan/-/nan-2.11.1.tgz#90e22bccb8ca57ea4cd37cc83d3819b52eea6766"
+@@ -5431,6 +5519,11 @@ ncp@1.0.x:
+ resolved "https://registry.yarnpkg.com/ncp/-/ncp-1.0.1.tgz#d15367e5cb87432ba117d2bf80fdf45aecfb4246"
+ integrity sha1-0VNn5cuHQyuhF9K/gP30Wuz7QkY=
+
++ncp@~2.0.0:
++ version "2.0.0"
++ resolved "https://registry.yarnpkg.com/ncp/-/ncp-2.0.0.tgz#195a21d6c46e361d2fb1281ba38b91e9df7bdbb3"
++ integrity sha1-GVoh1sRuNh0vsSgbo4uR6d9727M=
++
+ needle@^2.2.1:
+ version "2.2.4"
+ resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.4.tgz#51931bff82533b1928b7d1d69e01f1b00ffd2a4e"
+@@ -6520,6 +6613,11 @@ prebuild-install@^5.2.0:
+ tunnel-agent "^0.6.0"
+ which-pm-runs "^1.0.0"
+
++precond@0.2:
++ version "0.2.3"
++ resolved "https://registry.yarnpkg.com/precond/-/precond-0.2.3.tgz#aa9591bcaa24923f1e0f4849d240f47efc1075ac"
++ integrity sha1-qpWRvKokkj8eD0hJ0kD0fvwQdaw=
++
+ prelude-ls@~1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
+@@ -7141,6 +7239,13 @@ rimraf@2, rimraf@2.x.x, rimraf@^2.2.8, rimraf@^2.4.2, rimraf@^2.5.2, rimraf@^2.5
+ dependencies:
+ glob "^7.0.5"
+
++rimraf@~2.4.0:
++ version "2.4.5"
++ resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.4.5.tgz#ee710ce5d93a8fdb856fb5ea8ff0e2d75934b2da"
++ integrity sha1-7nEM5dk6j9uFb7Xqj/Di11k0sto=
++ dependencies:
++ glob "^6.0.1"
++
+ run-async@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389"
+@@ -7197,6 +7302,11 @@ safe-buffer@5.1.2, safe-buffer@^5.0.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, s
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
+ integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
+
++safe-json-stringify@~1:
++ version "1.2.0"
++ resolved "https://registry.yarnpkg.com/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz#356e44bc98f1f93ce45df14bcd7c01cda86e0afd"
++ integrity sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==
++
+ safe-regex@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e"
+@@ -8857,7 +8967,14 @@ vary@~1.0.1:
+ resolved "https://registry.yarnpkg.com/vary/-/vary-1.0.1.tgz#99e4981566a286118dfb2b817357df7993376d10"
+ integrity sha1-meSYFWaihhGN+yuBc1ffeZM3bRA=
+
+-verror@1.10.0:
++vasync@^1.6.4:
++ version "1.6.4"
++ resolved "https://registry.yarnpkg.com/vasync/-/vasync-1.6.4.tgz#dfe93616ad0e7ae801b332a9d88bfc5cdc8e1d1f"
++ integrity sha1-3+k2Fq0OeugBszKp2Iv8XNyOHR8=
++ dependencies:
++ verror "1.6.0"
++
++verror@1.10.0, verror@^1.8.1:
+ version "1.10.0"
+ resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
+ integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=
+@@ -8866,6 +8983,13 @@ verror@1.10.0:
+ core-util-is "1.0.2"
+ extsprintf "^1.2.0"
+
++verror@1.6.0:
++ version "1.6.0"
++ resolved "https://registry.yarnpkg.com/verror/-/verror-1.6.0.tgz#7d13b27b1facc2e2da90405eb5ea6e5bdd252ea5"
++ integrity sha1-fROyex+swuLakEBetepuW90lLqU=
++ dependencies:
++ extsprintf "1.2.0"
++
+ videostream@^2.5.1:
+ version "2.6.0"
+ resolved "https://registry.yarnpkg.com/videostream/-/videostream-2.6.0.tgz#7f0b2b84bc457c12cfe599aa2345f5cc06241ab6"
--- /dev/null
+commit 45a9e4a7b1badbea15d74bd8b3990303a424dfa6
+Author: Ismaël Bouya <ismael.bouya@normalesup.org>
+Date: Tue Feb 12 18:47:53 2019 +0100
+
+ Add LDAP authentication
+
+diff --git a/package.json b/package.json
+index 0cf39c7e..fd1ce3ea 100644
+--- a/package.json
++++ b/package.json
+@@ -125,6 +125,7 @@
+ "js-yaml": "^3.5.4",
+ "jsonld": "^1.0.1",
+ "jsonld-signatures": "https://github.com/Chocobozzz/jsonld-signatures#rsa2017",
++ "ldapjs": "^1.0.2",
+ "lodash": "^4.17.10",
+ "magnet-uri": "^5.1.4",
+ "memoizee": "^0.4.14",
+diff --git a/yarn.lock b/yarn.lock
+index 1e759af1..1eb61a9f 100644
+--- a/yarn.lock
++++ b/yarn.lock
+@@ -674,6 +674,11 @@ asap@^2.0.0:
+ resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46"
+ integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=
+
++asn1@0.2.3:
++ version "0.2.3"
++ resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86"
++ integrity sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=
++
+ asn1@~0.2.3:
+ version "0.2.4"
+ resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136"
+@@ -681,6 +686,11 @@ asn1@~0.2.3:
+ dependencies:
+ safer-buffer "~2.1.0"
+
++assert-plus@0.1.5:
++ version "0.1.5"
++ resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.1.5.tgz#ee74009413002d84cec7219c6ac811812e723160"
++ integrity sha1-7nQAlBMALYTOxyGcasgRgS5yMWA=
++
+ assert-plus@1.0.0, assert-plus@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
+@@ -779,6 +789,13 @@ backo2@1.0.2:
+ resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947"
+ integrity sha1-MasayLEpNjRj41s+u2n038+6eUc=
+
++backoff@^2.5.0:
++ version "2.5.0"
++ resolved "https://registry.yarnpkg.com/backoff/-/backoff-2.5.0.tgz#f616eda9d3e4b66b8ca7fca79f695722c5f8e26f"
++ integrity sha1-9hbtqdPktmuMp/ynn2lXIsX44m8=
++ dependencies:
++ precond "0.2"
++
+ balanced-match@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
+@@ -1186,6 +1203,16 @@ bull@^3.4.2:
+ semver "^5.6.0"
+ uuid "^3.2.1"
+
++bunyan@^1.8.3:
++ version "1.8.12"
++ resolved "https://registry.yarnpkg.com/bunyan/-/bunyan-1.8.12.tgz#f150f0f6748abdd72aeae84f04403be2ef113797"
++ integrity sha1-8VDw9nSKvdcq6uhPBEA74u8RN5c=
++ optionalDependencies:
++ dtrace-provider "~0.8"
++ moment "^2.10.6"
++ mv "~2"
++ safe-json-stringify "~1"
++
+ busboy@^0.2.11:
+ version "0.2.14"
+ resolved "https://registry.yarnpkg.com/busboy/-/busboy-0.2.14.tgz#6c2a622efcf47c57bbbe1e2a9c37ad36c7925453"
+@@ -1966,7 +1993,7 @@ d@1:
+ dependencies:
+ es5-ext "^0.10.9"
+
+-dashdash@^1.12.0:
++dashdash@^1.12.0, dashdash@^1.14.0:
+ version "1.14.1"
+ resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
+ integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=
+@@ -2292,6 +2319,13 @@ double-ended-queue@^2.1.0-0:
+ resolved "https://registry.yarnpkg.com/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz#103d3527fd31528f40188130c841efdd78264e5c"
+ integrity sha1-ED01J/0xUo9AGIEwyEHv3XgmTlw=
+
++dtrace-provider@~0.8:
++ version "0.8.7"
++ resolved "https://registry.yarnpkg.com/dtrace-provider/-/dtrace-provider-0.8.7.tgz#dc939b4d3e0620cfe0c1cd803d0d2d7ed04ffd04"
++ integrity sha1-3JObTT4GIM/gwc2APQ0tftBP/QQ=
++ dependencies:
++ nan "^2.10.0"
++
+ duplexer3@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2"
+@@ -2864,6 +2898,11 @@ extglob@^2.0.4:
+ snapdragon "^0.8.1"
+ to-regex "^3.0.1"
+
++extsprintf@1.2.0:
++ version "1.2.0"
++ resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.2.0.tgz#5ad946c22f5b32ba7f8cd7426711c6e8a3fc2529"
++ integrity sha1-WtlGwi9bMrp/jNdCZxHG6KP8JSk=
++
+ extsprintf@1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
+@@ -3350,6 +3389,17 @@ glob@7.1.2:
+ once "^1.3.0"
+ path-is-absolute "^1.0.0"
+
++glob@^6.0.1:
++ version "6.0.4"
++ resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22"
++ integrity sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=
++ dependencies:
++ inflight "^1.0.4"
++ inherits "2"
++ minimatch "2 || 3"
++ once "^1.3.0"
++ path-is-absolute "^1.0.0"
++
+ glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@~7.1.1, glob@~7.1.2:
+ version "7.1.3"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1"
+@@ -4522,6 +4572,30 @@ lcid@^2.0.0:
+ dependencies:
+ invert-kv "^2.0.0"
+
++ldap-filter@0.2.2:
++ version "0.2.2"
++ resolved "https://registry.yarnpkg.com/ldap-filter/-/ldap-filter-0.2.2.tgz#f2b842be0b86da3352798505b31ebcae590d77d0"
++ integrity sha1-8rhCvguG2jNSeYUFsx68rlkNd9A=
++ dependencies:
++ assert-plus "0.1.5"
++
++ldapjs@^1.0.2:
++ version "1.0.2"
++ resolved "https://registry.yarnpkg.com/ldapjs/-/ldapjs-1.0.2.tgz#544ff7032b7b83c68f0701328d9297aa694340f9"
++ integrity sha1-VE/3Ayt7g8aPBwEyjZKXqmlDQPk=
++ dependencies:
++ asn1 "0.2.3"
++ assert-plus "^1.0.0"
++ backoff "^2.5.0"
++ bunyan "^1.8.3"
++ dashdash "^1.14.0"
++ ldap-filter "0.2.2"
++ once "^1.4.0"
++ vasync "^1.6.4"
++ verror "^1.8.1"
++ optionalDependencies:
++ dtrace-provider "~0.8"
++
+ leven@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580"
+@@ -5186,7 +5260,7 @@ minimalistic-assert@^1.0.1:
+ resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"
+ integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==
+
+-minimatch@3.0.4, minimatch@^3.0.4, minimatch@~3.0.2:
++"minimatch@2 || 3", minimatch@3.0.4, minimatch@^3.0.4, minimatch@~3.0.2:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
+ integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
+@@ -5299,6 +5373,11 @@ moment-timezone@^0.5.14, moment-timezone@^0.5.23:
+ resolved "https://registry.yarnpkg.com/moment/-/moment-2.22.2.tgz#3c257f9839fc0e93ff53149632239eb90783ff66"
+ integrity sha1-PCV/mDn8DpP/UxSWMiOeuQeD/2Y=
+
++moment@^2.10.6:
++ version "2.24.0"
++ resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b"
++ integrity sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==
++
+ morgan@^1.5.3:
+ version "1.9.1"
+ resolved "https://registry.yarnpkg.com/morgan/-/morgan-1.9.1.tgz#0a8d16734a1d9afbc824b99df87e738e58e2da59"
+@@ -5394,6 +5473,15 @@ mute-stream@~0.0.4:
+ resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
+ integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=
+
++mv@~2:
++ version "2.1.1"
++ resolved "https://registry.yarnpkg.com/mv/-/mv-2.1.1.tgz#ae6ce0d6f6d5e0a4f7d893798d03c1ea9559b6a2"
++ integrity sha1-rmzg1vbV4KT32JN5jQPB6pVZtqI=
++ dependencies:
++ mkdirp "~0.5.1"
++ ncp "~2.0.0"
++ rimraf "~2.4.0"
++
+ nan@2.11.1, nan@^2.10.0, nan@^2.11.1, nan@^2.9.2:
+ version "2.11.1"
+ resolved "https://registry.yarnpkg.com/nan/-/nan-2.11.1.tgz#90e22bccb8ca57ea4cd37cc83d3819b52eea6766"
+@@ -5431,6 +5519,11 @@ ncp@1.0.x:
+ resolved "https://registry.yarnpkg.com/ncp/-/ncp-1.0.1.tgz#d15367e5cb87432ba117d2bf80fdf45aecfb4246"
+ integrity sha1-0VNn5cuHQyuhF9K/gP30Wuz7QkY=
+
++ncp@~2.0.0:
++ version "2.0.0"
++ resolved "https://registry.yarnpkg.com/ncp/-/ncp-2.0.0.tgz#195a21d6c46e361d2fb1281ba38b91e9df7bdbb3"
++ integrity sha1-GVoh1sRuNh0vsSgbo4uR6d9727M=
++
+ needle@^2.2.1:
+ version "2.2.4"
+ resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.4.tgz#51931bff82533b1928b7d1d69e01f1b00ffd2a4e"
+@@ -6520,6 +6613,11 @@ prebuild-install@^5.2.0:
+ tunnel-agent "^0.6.0"
+ which-pm-runs "^1.0.0"
+
++precond@0.2:
++ version "0.2.3"
++ resolved "https://registry.yarnpkg.com/precond/-/precond-0.2.3.tgz#aa9591bcaa24923f1e0f4849d240f47efc1075ac"
++ integrity sha1-qpWRvKokkj8eD0hJ0kD0fvwQdaw=
++
+ prelude-ls@~1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
+@@ -7141,6 +7239,13 @@ rimraf@2, rimraf@2.x.x, rimraf@^2.2.8, rimraf@^2.4.2, rimraf@^2.5.2, rimraf@^2.5
+ dependencies:
+ glob "^7.0.5"
+
++rimraf@~2.4.0:
++ version "2.4.5"
++ resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.4.5.tgz#ee710ce5d93a8fdb856fb5ea8ff0e2d75934b2da"
++ integrity sha1-7nEM5dk6j9uFb7Xqj/Di11k0sto=
++ dependencies:
++ glob "^6.0.1"
++
+ run-async@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389"
+@@ -7197,6 +7302,11 @@ safe-buffer@5.1.2, safe-buffer@^5.0.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, s
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
+ integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
+
++safe-json-stringify@~1:
++ version "1.2.0"
++ resolved "https://registry.yarnpkg.com/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz#356e44bc98f1f93ce45df14bcd7c01cda86e0afd"
++ integrity sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==
++
+ safe-regex@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e"
+@@ -8857,7 +8967,14 @@ vary@~1.0.1:
+ resolved "https://registry.yarnpkg.com/vary/-/vary-1.0.1.tgz#99e4981566a286118dfb2b817357df7993376d10"
+ integrity sha1-meSYFWaihhGN+yuBc1ffeZM3bRA=
+
+-verror@1.10.0:
++vasync@^1.6.4:
++ version "1.6.4"
++ resolved "https://registry.yarnpkg.com/vasync/-/vasync-1.6.4.tgz#dfe93616ad0e7ae801b332a9d88bfc5cdc8e1d1f"
++ integrity sha1-3+k2Fq0OeugBszKp2Iv8XNyOHR8=
++ dependencies:
++ verror "1.6.0"
++
++verror@1.10.0, verror@^1.8.1:
+ version "1.10.0"
+ resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
+ integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=
+@@ -8866,6 +8983,13 @@ verror@1.10.0:
+ core-util-is "1.0.2"
+ extsprintf "^1.2.0"
+
++verror@1.6.0:
++ version "1.6.0"
++ resolved "https://registry.yarnpkg.com/verror/-/verror-1.6.0.tgz#7d13b27b1facc2e2da90405eb5ea6e5bdd252ea5"
++ integrity sha1-fROyex+swuLakEBetepuW90lLqU=
++ dependencies:
++ extsprintf "1.2.0"
++
+ videostream@^2.5.1:
+ version "2.6.0"
+ resolved "https://registry.yarnpkg.com/videostream/-/videostream-2.6.0.tgz#7f0b2b84bc457c12cfe599aa2345f5cc06241ab6"
--- /dev/null
+{
+ "tag": "v1.2.0",
+ "meta": {
+ "name": "peertube",
+ "url": "https://github.com/Chocobozzz/PeerTube",
+ "branch": "refs/tags/v1.2.0"
+ },
+ "github": {
+ "owner": "Chocobozzz",
+ "repo": "PeerTube",
+ "rev": "5cc304b909a70d8cbfe9cb5e0c46b4fe7b3d8ea2",
+ "sha256": "0fpzp9qh3ns3bg2w7f50b5schg30swyhyhk1zd311fy27mdmza6z",
+ "fetchSubmodules": true
+ }
+}
--- /dev/null
+commit 677374d59c6aa2cb8145da3cd9c17fe05fd9b149
+Author: Ismaël Bouya <ismael.bouya@normalesup.org>
+Date: Wed Feb 13 12:16:27 2019 +0100
+
+ Add sendmail
+
+diff --git a/config/production.yaml.example b/config/production.yaml.example
+index bb5ac251..4583f1f5 100644
+--- a/config/production.yaml.example
++++ b/config/production.yaml.example
+@@ -46,6 +46,8 @@ ldap:
+
+ # SMTP server to send emails
+ smtp:
++ transport: smtp
++ sendmail: null
+ hostname: null
+ port: 465 # If you use StartTLS: 587
+ username: null
+diff --git a/server/initializers/constants.ts b/server/initializers/constants.ts
+index fb21df37..c551b4f9 100644
+--- a/server/initializers/constants.ts
++++ b/server/initializers/constants.ts
+@@ -188,6 +188,8 @@ const CONFIG = {
+ USER_FILTER: config.has('ldap.user_filter') ? config.get<string>('ldap.user_filter') : '(|(email=%username%)(uid=%username%))'
+ },
+ SMTP: {
++ TRANSPORT: config.has('smtp.transport') ? config.get<string>('smtp.transport') : 'smtp',
++ SENDMAIL: config.has('smtp.sendmail') ? config.get<string>('smtp.sendmail') : null,
+ HOSTNAME: config.get<string>('smtp.hostname'),
+ PORT: config.get<number>('smtp.port'),
+ USERNAME: config.get<string>('smtp.username'),
+diff --git a/server/lib/emailer.ts b/server/lib/emailer.ts
+index f384a254..ec6e249b 100644
+--- a/server/lib/emailer.ts
++++ b/server/lib/emailer.ts
+@@ -27,33 +27,41 @@ class Emailer {
+ this.initialized = true
+
+ if (Emailer.isEnabled()) {
+- logger.info('Using %s:%s as SMTP server.', CONFIG.SMTP.HOSTNAME, CONFIG.SMTP.PORT)
+-
+- let tls
+- if (CONFIG.SMTP.CA_FILE) {
+- tls = {
+- ca: [ readFileSync(CONFIG.SMTP.CA_FILE) ]
++ if (CONFIG.SMTP.TRANSPORT === 'smtp') {
++ logger.info('Using %s:%s as SMTP server.', CONFIG.SMTP.HOSTNAME, CONFIG.SMTP.PORT)
++
++ let tls
++ if (CONFIG.SMTP.CA_FILE) {
++ tls = {
++ ca: [ readFileSync(CONFIG.SMTP.CA_FILE) ]
++ }
+ }
+- }
+
+- let auth
+- if (CONFIG.SMTP.USERNAME && CONFIG.SMTP.PASSWORD) {
+- auth = {
+- user: CONFIG.SMTP.USERNAME,
+- pass: CONFIG.SMTP.PASSWORD
++ let auth
++ if (CONFIG.SMTP.USERNAME && CONFIG.SMTP.PASSWORD) {
++ auth = {
++ user: CONFIG.SMTP.USERNAME,
++ pass: CONFIG.SMTP.PASSWORD
++ }
+ }
+- }
+
+- this.transporter = createTransport({
+- host: CONFIG.SMTP.HOSTNAME,
+- port: CONFIG.SMTP.PORT,
+- secure: CONFIG.SMTP.TLS,
+- debug: CONFIG.LOG.LEVEL === 'debug',
+- logger: bunyanLogger as any,
+- ignoreTLS: CONFIG.SMTP.DISABLE_STARTTLS,
+- tls,
+- auth
+- })
++ this.transporter = createTransport({
++ host: CONFIG.SMTP.HOSTNAME,
++ port: CONFIG.SMTP.PORT,
++ secure: CONFIG.SMTP.TLS,
++ debug: CONFIG.LOG.LEVEL === 'debug',
++ logger: bunyanLogger as any,
++ ignoreTLS: CONFIG.SMTP.DISABLE_STARTTLS,
++ tls,
++ auth
++ })
++ } else { // sendmail
++ this.transporter = createTransport({
++ sendmail: true,
++ newline: 'unix',
++ path: CONFIG.SMTP.SENDMAIL,
++ })
++ }
+ } else {
+ if (!isTestInstance()) {
+ logger.error('Cannot use SMTP server because of lack of configuration. PeerTube will not be able to send mails!')
+@@ -62,11 +70,17 @@ class Emailer {
+ }
+
+ static isEnabled () {
+- return !!CONFIG.SMTP.HOSTNAME && !!CONFIG.SMTP.PORT
++ if (CONFIG.SMTP.TRANSPORT === 'sendmail') {
++ return !!CONFIG.SMTP.SENDMAIL
++ } else if (CONFIG.SMTP.TRANSPORT === 'smtp') {
++ return !!CONFIG.SMTP.HOSTNAME && !!CONFIG.SMTP.PORT
++ } else {
++ return false
++ }
+ }
+
+ async checkConnectionOrDie () {
+- if (!this.transporter) return
++ if (!this.transporter || CONFIG.SMTP.TRANSPORT !== 'smtp') return
+
+ logger.info('Testing SMTP server...')
+
--- /dev/null
+{fetchurl, linkFarm}: rec {
+ offline_cache = linkFarm "offline" packages;
+ packages = [
+
+ {
+ name = "_iamstarkov_listr_update_renderer___listr_update_renderer_0.4.1.tgz";
+ path = fetchurl {
+ name = "_iamstarkov_listr_update_renderer___listr_update_renderer_0.4.1.tgz";
+ url = "https://registry.yarnpkg.com/@iamstarkov/listr-update-renderer/-/listr-update-renderer-0.4.1.tgz";
+ sha1 = "d7c48092a2dcf90fd672b6c8b458649cb350c77e";
+ };
+ }
+
+ {
+ name = "_samverschueren_stream_to_observable___stream_to_observable_0.3.0.tgz";
+ path = fetchurl {
+ name = "_samverschueren_stream_to_observable___stream_to_observable_0.3.0.tgz";
+ url = "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz";
+ sha1 = "ecdf48d532c58ea477acfcab80348424f8d0662f";
+ };
+ }
+
+ {
+ name = "_types_async_lock___async_lock_1.1.0.tgz";
+ path = fetchurl {
+ name = "_types_async_lock___async_lock_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/@types/async-lock/-/async-lock-1.1.0.tgz";
+ sha1 = "002b1ebeebd382aff66b68bed70a74c7bdd06e3e";
+ };
+ }
+
+ {
+ name = "_types_async___async_2.0.50.tgz";
+ path = fetchurl {
+ name = "_types_async___async_2.0.50.tgz";
+ url = "https://registry.yarnpkg.com/@types/async/-/async-2.0.50.tgz";
+ sha1 = "117540e026d64e1846093abbd5adc7e27fda7bcb";
+ };
+ }
+
+ {
+ name = "_types_bcrypt___bcrypt_3.0.0.tgz";
+ path = fetchurl {
+ name = "_types_bcrypt___bcrypt_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/@types/bcrypt/-/bcrypt-3.0.0.tgz";
+ sha1 = "851489a9065a067cb7f3c9cbe4ce9bed8bba0876";
+ };
+ }
+
+ {
+ name = "_types_bittorrent_protocol___bittorrent_protocol_2.2.2.tgz";
+ path = fetchurl {
+ name = "_types_bittorrent_protocol___bittorrent_protocol_2.2.2.tgz";
+ url = "https://registry.yarnpkg.com/@types/bittorrent-protocol/-/bittorrent-protocol-2.2.2.tgz";
+ sha1 = "169e9633e1bd18e6b830d11cf42e611b1972cb83";
+ };
+ }
+
+ {
+ name = "_types_bluebird___bluebird_3.5.21.tgz";
+ path = fetchurl {
+ name = "_types_bluebird___bluebird_3.5.21.tgz";
+ url = "https://registry.yarnpkg.com/@types/bluebird/-/bluebird-3.5.21.tgz";
+ sha1 = "567615589cc913e84a28ecf9edb031732bdf2634";
+ };
+ }
+
+ {
+ name = "_types_bluebird___bluebird_3.5.18.tgz";
+ path = fetchurl {
+ name = "_types_bluebird___bluebird_3.5.18.tgz";
+ url = "https://registry.yarnpkg.com/@types/bluebird/-/bluebird-3.5.18.tgz";
+ sha1 = "6a60435d4663e290f3709898a4f75014f279c4d6";
+ };
+ }
+
+ {
+ name = "_types_body_parser___body_parser_1.17.0.tgz";
+ path = fetchurl {
+ name = "_types_body_parser___body_parser_1.17.0.tgz";
+ url = "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.17.0.tgz";
+ sha1 = "9f5c9d9bd04bb54be32d5eb9fc0d8c974e6cf58c";
+ };
+ }
+
+ {
+ name = "_types_bull___bull_3.4.0.tgz";
+ path = fetchurl {
+ name = "_types_bull___bull_3.4.0.tgz";
+ url = "https://registry.yarnpkg.com/@types/bull/-/bull-3.4.0.tgz";
+ sha1 = "18ffefefa4dd1cfbdbdc8ca7df56c934459f6b9d";
+ };
+ }
+
+ {
+ name = "_types_bytes___bytes_3.0.0.tgz";
+ path = fetchurl {
+ name = "_types_bytes___bytes_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/@types/bytes/-/bytes-3.0.0.tgz";
+ sha1 = "549eeacd0a8fecfaa459334583a4edcee738e6db";
+ };
+ }
+
+ {
+ name = "_types_caseless___caseless_0.12.1.tgz";
+ path = fetchurl {
+ name = "_types_caseless___caseless_0.12.1.tgz";
+ url = "https://registry.yarnpkg.com/@types/caseless/-/caseless-0.12.1.tgz";
+ sha1 = "9794c69c8385d0192acc471a540d1f8e0d16218a";
+ };
+ }
+
+ {
+ name = "_types_chai_json_schema___chai_json_schema_1.4.3.tgz";
+ path = fetchurl {
+ name = "_types_chai_json_schema___chai_json_schema_1.4.3.tgz";
+ url = "https://registry.yarnpkg.com/@types/chai-json-schema/-/chai-json-schema-1.4.3.tgz";
+ sha1 = "1dd1e88ae911dd6e6e1c3c2d0e0397328aab0bfb";
+ };
+ }
+
+ {
+ name = "_types_chai_xml___chai_xml_0.3.1.tgz";
+ path = fetchurl {
+ name = "_types_chai_xml___chai_xml_0.3.1.tgz";
+ url = "https://registry.yarnpkg.com/@types/chai-xml/-/chai-xml-0.3.1.tgz";
+ sha1 = "a9cc5812bd67e9c9221d1e9b4dfb0cca797fd40a";
+ };
+ }
+
+ {
+ name = "_types_chai___chai_4.1.7.tgz";
+ path = fetchurl {
+ name = "_types_chai___chai_4.1.7.tgz";
+ url = "https://registry.yarnpkg.com/@types/chai/-/chai-4.1.7.tgz";
+ sha1 = "1b8e33b61a8c09cbe1f85133071baa0dbf9fa71a";
+ };
+ }
+
+ {
+ name = "_types_config___config_0.0.34.tgz";
+ path = fetchurl {
+ name = "_types_config___config_0.0.34.tgz";
+ url = "https://registry.yarnpkg.com/@types/config/-/config-0.0.34.tgz";
+ sha1 = "123f91bdb5afdd702294b9de9ca04d9ea11137b0";
+ };
+ }
+
+ {
+ name = "_types_connect___connect_3.4.32.tgz";
+ path = fetchurl {
+ name = "_types_connect___connect_3.4.32.tgz";
+ url = "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.32.tgz";
+ sha1 = "aa0e9616b9435ccad02bc52b5b454ffc2c70ba28";
+ };
+ }
+
+ {
+ name = "_types_continuation_local_storage___continuation_local_storage_3.2.1.tgz";
+ path = fetchurl {
+ name = "_types_continuation_local_storage___continuation_local_storage_3.2.1.tgz";
+ url = "https://registry.yarnpkg.com/@types/continuation-local-storage/-/continuation-local-storage-3.2.1.tgz";
+ sha1 = "a33e0df9dce9b424d1c98fc4fdebd8578dceec7e";
+ };
+ }
+
+ {
+ name = "_types_cookiejar___cookiejar_2.1.0.tgz";
+ path = fetchurl {
+ name = "_types_cookiejar___cookiejar_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/@types/cookiejar/-/cookiejar-2.1.0.tgz";
+ sha1 = "4b7daf2c51696cfc70b942c11690528229d1a1ce";
+ };
+ }
+
+ {
+ name = "_types_events___events_1.2.0.tgz";
+ path = fetchurl {
+ name = "_types_events___events_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/@types/events/-/events-1.2.0.tgz";
+ sha1 = "81a6731ce4df43619e5c8c945383b3e62a89ea86";
+ };
+ }
+
+ {
+ name = "_types_express_rate_limit___express_rate_limit_2.9.3.tgz";
+ path = fetchurl {
+ name = "_types_express_rate_limit___express_rate_limit_2.9.3.tgz";
+ url = "https://registry.yarnpkg.com/@types/express-rate-limit/-/express-rate-limit-2.9.3.tgz";
+ sha1 = "e83a548bf251ad12ca49055c22d3f2da4e16b62d";
+ };
+ }
+
+ {
+ name = "_types_express_serve_static_core___express_serve_static_core_4.16.0.tgz";
+ path = fetchurl {
+ name = "_types_express_serve_static_core___express_serve_static_core_4.16.0.tgz";
+ url = "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.16.0.tgz";
+ sha1 = "fdfe777594ddc1fe8eb8eccce52e261b496e43e7";
+ };
+ }
+
+ {
+ name = "_types_express___express_4.16.0.tgz";
+ path = fetchurl {
+ name = "_types_express___express_4.16.0.tgz";
+ url = "https://registry.yarnpkg.com/@types/express/-/express-4.16.0.tgz";
+ sha1 = "6d8bc42ccaa6f35cf29a2b7c3333cb47b5a32a19";
+ };
+ }
+
+ {
+ name = "_types_fluent_ffmpeg___fluent_ffmpeg_2.1.8.tgz";
+ path = fetchurl {
+ name = "_types_fluent_ffmpeg___fluent_ffmpeg_2.1.8.tgz";
+ url = "https://registry.yarnpkg.com/@types/fluent-ffmpeg/-/fluent-ffmpeg-2.1.8.tgz";
+ sha1 = "a9ffff2140d641ec898ebdddaa1e6e7e962d7943";
+ };
+ }
+
+ {
+ name = "_types_form_data___form_data_2.2.1.tgz";
+ path = fetchurl {
+ name = "_types_form_data___form_data_2.2.1.tgz";
+ url = "https://registry.yarnpkg.com/@types/form-data/-/form-data-2.2.1.tgz";
+ sha1 = "ee2b3b8eaa11c0938289953606b745b738c54b1e";
+ };
+ }
+
+ {
+ name = "_types_fs_extra___fs_extra_5.0.4.tgz";
+ path = fetchurl {
+ name = "_types_fs_extra___fs_extra_5.0.4.tgz";
+ url = "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-5.0.4.tgz";
+ sha1 = "b971134d162cc0497d221adde3dbb67502225599";
+ };
+ }
+
+ {
+ name = "_types_geojson___geojson_1.0.6.tgz";
+ path = fetchurl {
+ name = "_types_geojson___geojson_1.0.6.tgz";
+ url = "https://registry.yarnpkg.com/@types/geojson/-/geojson-1.0.6.tgz";
+ sha1 = "3e02972728c69248c2af08d60a48cbb8680fffdf";
+ };
+ }
+
+ {
+ name = "_types_ioredis___ioredis_4.0.4.tgz";
+ path = fetchurl {
+ name = "_types_ioredis___ioredis_4.0.4.tgz";
+ url = "https://registry.yarnpkg.com/@types/ioredis/-/ioredis-4.0.4.tgz";
+ sha1 = "c0a809064c05e4c2663803128d46042e73c92558";
+ };
+ }
+
+ {
+ name = "_types_libxmljs___libxmljs_0.18.2.tgz";
+ path = fetchurl {
+ name = "_types_libxmljs___libxmljs_0.18.2.tgz";
+ url = "https://registry.yarnpkg.com/@types/libxmljs/-/libxmljs-0.18.2.tgz";
+ sha1 = "c424173a07477a7552173d7c779d5ffe77dd8efc";
+ };
+ }
+
+ {
+ name = "_types_lodash___lodash_4.14.118.tgz";
+ path = fetchurl {
+ name = "_types_lodash___lodash_4.14.118.tgz";
+ url = "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.118.tgz";
+ sha1 = "247bab39bfcc6d910d4927c6e06cbc70ec376f27";
+ };
+ }
+
+ {
+ name = "_types_magnet_uri___magnet_uri_5.1.1.tgz";
+ path = fetchurl {
+ name = "_types_magnet_uri___magnet_uri_5.1.1.tgz";
+ url = "https://registry.yarnpkg.com/@types/magnet-uri/-/magnet-uri-5.1.1.tgz";
+ sha1 = "861aaf64c92a3137dd848fefc55cd352a8ea851a";
+ };
+ }
+
+ {
+ name = "_types_maildev___maildev_0.0.1.tgz";
+ path = fetchurl {
+ name = "_types_maildev___maildev_0.0.1.tgz";
+ url = "https://registry.yarnpkg.com/@types/maildev/-/maildev-0.0.1.tgz";
+ sha1 = "9fe4fa05610f6c6afc10224bcca6b67bc3c56fc0";
+ };
+ }
+
+ {
+ name = "_types_memoizee___memoizee_0.4.2.tgz";
+ path = fetchurl {
+ name = "_types_memoizee___memoizee_0.4.2.tgz";
+ url = "https://registry.yarnpkg.com/@types/memoizee/-/memoizee-0.4.2.tgz";
+ sha1 = "a500158999a8144a9b46cf9a9fb49b15f1853573";
+ };
+ }
+
+ {
+ name = "_types_mime___mime_2.0.0.tgz";
+ path = fetchurl {
+ name = "_types_mime___mime_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/@types/mime/-/mime-2.0.0.tgz";
+ sha1 = "5a7306e367c539b9f6543499de8dd519fac37a8b";
+ };
+ }
+
+ {
+ name = "_types_mkdirp___mkdirp_0.5.2.tgz";
+ path = fetchurl {
+ name = "_types_mkdirp___mkdirp_0.5.2.tgz";
+ url = "https://registry.yarnpkg.com/@types/mkdirp/-/mkdirp-0.5.2.tgz";
+ sha1 = "503aacfe5cc2703d5484326b1b27efa67a339c1f";
+ };
+ }
+
+ {
+ name = "_types_mocha___mocha_5.2.5.tgz";
+ path = fetchurl {
+ name = "_types_mocha___mocha_5.2.5.tgz";
+ url = "https://registry.yarnpkg.com/@types/mocha/-/mocha-5.2.5.tgz";
+ sha1 = "8a4accfc403c124a0bafe8a9fc61a05ec1032073";
+ };
+ }
+
+ {
+ name = "_types_morgan___morgan_1.7.35.tgz";
+ path = fetchurl {
+ name = "_types_morgan___morgan_1.7.35.tgz";
+ url = "https://registry.yarnpkg.com/@types/morgan/-/morgan-1.7.35.tgz";
+ sha1 = "6358f502931cc2583d7a94248c41518baa688494";
+ };
+ }
+
+ {
+ name = "_types_multer___multer_1.3.7.tgz";
+ path = fetchurl {
+ name = "_types_multer___multer_1.3.7.tgz";
+ url = "https://registry.yarnpkg.com/@types/multer/-/multer-1.3.7.tgz";
+ sha1 = "9fe1de9f44f401ff2eaf0d4468cf16935a9c6866";
+ };
+ }
+
+ {
+ name = "_types_node___node_10.12.12.tgz";
+ path = fetchurl {
+ name = "_types_node___node_10.12.12.tgz";
+ url = "https://registry.yarnpkg.com/@types/node/-/node-10.12.12.tgz";
+ sha1 = "e15a9d034d9210f00320ef718a50c4a799417c47";
+ };
+ }
+
+ {
+ name = "_types_node___node_6.0.41.tgz";
+ path = fetchurl {
+ name = "_types_node___node_6.0.41.tgz";
+ url = "https://registry.yarnpkg.com/@types/node/-/node-6.0.41.tgz";
+ sha1 = "578cf53aaec65887bcaf16792f8722932e8ff8ea";
+ };
+ }
+
+ {
+ name = "_types_nodemailer___nodemailer_4.6.5.tgz";
+ path = fetchurl {
+ name = "_types_nodemailer___nodemailer_4.6.5.tgz";
+ url = "https://registry.yarnpkg.com/@types/nodemailer/-/nodemailer-4.6.5.tgz";
+ sha1 = "8bb799202f8cfcc8200a1c1627f6a8a74fe71da6";
+ };
+ }
+
+ {
+ name = "_types_oauth2_server___oauth2_server_3.0.10.tgz";
+ path = fetchurl {
+ name = "_types_oauth2_server___oauth2_server_3.0.10.tgz";
+ url = "https://registry.yarnpkg.com/@types/oauth2-server/-/oauth2-server-3.0.10.tgz";
+ sha1 = "ea671a6ad3d02062aac5f7c1ba1fb9c468314db0";
+ };
+ }
+
+ {
+ name = "_types_parse_torrent_file___parse_torrent_file_4.0.1.tgz";
+ path = fetchurl {
+ name = "_types_parse_torrent_file___parse_torrent_file_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/@types/parse-torrent-file/-/parse-torrent-file-4.0.1.tgz";
+ sha1 = "056a6c18f3fac0cd7c6c74540f00496a3225976b";
+ };
+ }
+
+ {
+ name = "_types_parse_torrent___parse_torrent_5.8.2.tgz";
+ path = fetchurl {
+ name = "_types_parse_torrent___parse_torrent_5.8.2.tgz";
+ url = "https://registry.yarnpkg.com/@types/parse-torrent/-/parse-torrent-5.8.2.tgz";
+ sha1 = "53ab880e38ced2005a79948f0df0c8762539323e";
+ };
+ }
+
+ {
+ name = "_types_pem___pem_1.9.3.tgz";
+ path = fetchurl {
+ name = "_types_pem___pem_1.9.3.tgz";
+ url = "https://registry.yarnpkg.com/@types/pem/-/pem-1.9.3.tgz";
+ sha1 = "0c864c8b79e43fef6367db895f60fd1edd10e86c";
+ };
+ }
+
+ {
+ name = "_types_range_parser___range_parser_1.2.2.tgz";
+ path = fetchurl {
+ name = "_types_range_parser___range_parser_1.2.2.tgz";
+ url = "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.2.tgz";
+ sha1 = "fa8e1ad1d474688a757140c91de6dace6f4abc8d";
+ };
+ }
+
+ {
+ name = "_types_redis___redis_2.8.8.tgz";
+ path = fetchurl {
+ name = "_types_redis___redis_2.8.8.tgz";
+ url = "https://registry.yarnpkg.com/@types/redis/-/redis-2.8.8.tgz";
+ sha1 = "70855e79a6020080cca3cb5f1f5ee7f11b49a979";
+ };
+ }
+
+ {
+ name = "_types_request___request_2.48.1.tgz";
+ path = fetchurl {
+ name = "_types_request___request_2.48.1.tgz";
+ url = "https://registry.yarnpkg.com/@types/request/-/request-2.48.1.tgz";
+ sha1 = "e402d691aa6670fbbff1957b15f1270230ab42fa";
+ };
+ }
+
+ {
+ name = "_types_sequelize___sequelize_4.27.24.tgz";
+ path = fetchurl {
+ name = "_types_sequelize___sequelize_4.27.24.tgz";
+ url = "https://registry.yarnpkg.com/@types/sequelize/-/sequelize-4.27.24.tgz";
+ sha1 = "7d593c062c368f570c68b0217f5c1d4c892ead48";
+ };
+ }
+
+ {
+ name = "_types_serve_static___serve_static_1.13.2.tgz";
+ path = fetchurl {
+ name = "_types_serve_static___serve_static_1.13.2.tgz";
+ url = "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.2.tgz";
+ sha1 = "f5ac4d7a6420a99a6a45af4719f4dcd8cd907a48";
+ };
+ }
+
+ {
+ name = "_types_sharp___sharp_0.21.0.tgz";
+ path = fetchurl {
+ name = "_types_sharp___sharp_0.21.0.tgz";
+ url = "https://registry.yarnpkg.com/@types/sharp/-/sharp-0.21.0.tgz";
+ sha1 = "e364b345c70e5924a5c626aaccaa236e0cfc2455";
+ };
+ }
+
+ {
+ name = "_types_simple_peer___simple_peer_6.1.5.tgz";
+ path = fetchurl {
+ name = "_types_simple_peer___simple_peer_6.1.5.tgz";
+ url = "https://registry.yarnpkg.com/@types/simple-peer/-/simple-peer-6.1.5.tgz";
+ sha1 = "9353f84cefd052a9684b9a5662c983fc2bcfab41";
+ };
+ }
+
+ {
+ name = "_types_socket.io___socket.io_2.1.2.tgz";
+ path = fetchurl {
+ name = "_types_socket.io___socket.io_2.1.2.tgz";
+ url = "https://registry.yarnpkg.com/@types/socket.io/-/socket.io-2.1.2.tgz";
+ sha1 = "7165c2587cc3b86b44aa78e2a0060140551de211";
+ };
+ }
+
+ {
+ name = "_types_superagent___superagent_3.8.4.tgz";
+ path = fetchurl {
+ name = "_types_superagent___superagent_3.8.4.tgz";
+ url = "https://registry.yarnpkg.com/@types/superagent/-/superagent-3.8.4.tgz";
+ sha1 = "24a5973c7d1a9c024b4bbda742a79267c33fb86a";
+ };
+ }
+
+ {
+ name = "_types_supertest___supertest_2.0.7.tgz";
+ path = fetchurl {
+ name = "_types_supertest___supertest_2.0.7.tgz";
+ url = "https://registry.yarnpkg.com/@types/supertest/-/supertest-2.0.7.tgz";
+ sha1 = "46ff6508075cd4519736be060f0d6331a5c8ca7b";
+ };
+ }
+
+ {
+ name = "_types_tough_cookie___tough_cookie_2.3.4.tgz";
+ path = fetchurl {
+ name = "_types_tough_cookie___tough_cookie_2.3.4.tgz";
+ url = "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-2.3.4.tgz";
+ sha1 = "821878b81bfab971b93a265a561d54ea61f9059f";
+ };
+ }
+
+ {
+ name = "_types_tv4___tv4_1.2.29.tgz";
+ path = fetchurl {
+ name = "_types_tv4___tv4_1.2.29.tgz";
+ url = "https://registry.yarnpkg.com/@types/tv4/-/tv4-1.2.29.tgz";
+ sha1 = "4c6d2222b03245dd2104f4fd67f54d1658985911";
+ };
+ }
+
+ {
+ name = "_types_validator___validator_9.4.3.tgz";
+ path = fetchurl {
+ name = "_types_validator___validator_9.4.3.tgz";
+ url = "https://registry.yarnpkg.com/@types/validator/-/validator-9.4.3.tgz";
+ sha1 = "11321eae0546b20f13020131ff890c294df72ecb";
+ };
+ }
+
+ {
+ name = "_types_webtorrent___webtorrent_0.98.4.tgz";
+ path = fetchurl {
+ name = "_types_webtorrent___webtorrent_0.98.4.tgz";
+ url = "https://registry.yarnpkg.com/@types/webtorrent/-/webtorrent-0.98.4.tgz";
+ sha1 = "cf8dbe22e3d5cf6915305f7f970b52bca01bf8b4";
+ };
+ }
+
+ {
+ name = "_types_ws___ws_6.0.1.tgz";
+ path = fetchurl {
+ name = "_types_ws___ws_6.0.1.tgz";
+ url = "https://registry.yarnpkg.com/@types/ws/-/ws-6.0.1.tgz";
+ sha1 = "ca7a3f3756aa12f62a0a62145ed14c6db25d5a28";
+ };
+ }
+
+ {
+ name = "JSONStream___JSONStream_1.3.5.tgz";
+ path = fetchurl {
+ name = "JSONStream___JSONStream_1.3.5.tgz";
+ url = "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz";
+ sha1 = "3208c1f08d3a4d99261ab64f92302bc15e111ca0";
+ };
+ }
+
+ {
+ name = "abbrev___abbrev_1.1.1.tgz";
+ path = fetchurl {
+ name = "abbrev___abbrev_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz";
+ sha1 = "f8f2c887ad10bf67f634f005b6987fed3179aac8";
+ };
+ }
+
+ {
+ name = "accepts___accepts_1.3.3.tgz";
+ path = fetchurl {
+ name = "accepts___accepts_1.3.3.tgz";
+ url = "https://registry.yarnpkg.com/accepts/-/accepts-1.3.3.tgz";
+ sha1 = "c3ca7434938648c3e0d9c1e328dd68b622c284ca";
+ };
+ }
+
+ {
+ name = "accepts___accepts_1.2.13.tgz";
+ path = fetchurl {
+ name = "accepts___accepts_1.2.13.tgz";
+ url = "https://registry.yarnpkg.com/accepts/-/accepts-1.2.13.tgz";
+ sha1 = "e5f1f3928c6d95fd96558c36ec3d9d0de4a6ecea";
+ };
+ }
+
+ {
+ name = "accepts___accepts_1.3.5.tgz";
+ path = fetchurl {
+ name = "accepts___accepts_1.3.5.tgz";
+ url = "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz";
+ sha1 = "eb777df6011723a3b14e8a72c0805c8e86746bd2";
+ };
+ }
+
+ {
+ name = "acorn_jsx___acorn_jsx_3.0.1.tgz";
+ path = fetchurl {
+ name = "acorn_jsx___acorn_jsx_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz";
+ sha1 = "afdf9488fb1ecefc8348f6fb22f464e32a58b36b";
+ };
+ }
+
+ {
+ name = "acorn___acorn_3.3.0.tgz";
+ path = fetchurl {
+ name = "acorn___acorn_3.3.0.tgz";
+ url = "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz";
+ sha1 = "45e37fb39e8da3f25baee3ff5369e2bb5f22017a";
+ };
+ }
+
+ {
+ name = "acorn___acorn_5.7.3.tgz";
+ path = fetchurl {
+ name = "acorn___acorn_5.7.3.tgz";
+ url = "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz";
+ sha1 = "67aa231bf8812974b85235a96771eb6bd07ea279";
+ };
+ }
+
+ {
+ name = "addr_to_ip_port___addr_to_ip_port_1.5.1.tgz";
+ path = fetchurl {
+ name = "addr_to_ip_port___addr_to_ip_port_1.5.1.tgz";
+ url = "https://registry.yarnpkg.com/addr-to-ip-port/-/addr-to-ip-port-1.5.1.tgz";
+ sha1 = "bfada13fd6aeeeac19f1e9f7d84b4bbab45e5208";
+ };
+ }
+
+ {
+ name = "addressparser___addressparser_1.0.1.tgz";
+ path = fetchurl {
+ name = "addressparser___addressparser_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/addressparser/-/addressparser-1.0.1.tgz";
+ sha1 = "47afbe1a2a9262191db6838e4fd1d39b40821746";
+ };
+ }
+
+ {
+ name = "after___after_0.8.2.tgz";
+ path = fetchurl {
+ name = "after___after_0.8.2.tgz";
+ url = "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz";
+ sha1 = "fedb394f9f0e02aa9768e702bda23b505fae7e1f";
+ };
+ }
+
+ {
+ name = "agent_base___agent_base_4.2.1.tgz";
+ path = fetchurl {
+ name = "agent_base___agent_base_4.2.1.tgz";
+ url = "https://registry.yarnpkg.com/agent-base/-/agent-base-4.2.1.tgz";
+ sha1 = "d89e5999f797875674c07d87f260fc41e83e8ca9";
+ };
+ }
+
+ {
+ name = "agentkeepalive___agentkeepalive_3.5.2.tgz";
+ path = fetchurl {
+ name = "agentkeepalive___agentkeepalive_3.5.2.tgz";
+ url = "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-3.5.2.tgz";
+ sha1 = "a113924dd3fa24a0bc3b78108c450c2abee00f67";
+ };
+ }
+
+ {
+ name = "ajv_keywords___ajv_keywords_1.5.1.tgz";
+ path = fetchurl {
+ name = "ajv_keywords___ajv_keywords_1.5.1.tgz";
+ url = "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz";
+ sha1 = "314dd0a4b3368fad3dfcdc54ede6171b886daf3c";
+ };
+ }
+
+ {
+ name = "ajv___ajv_4.11.8.tgz";
+ path = fetchurl {
+ name = "ajv___ajv_4.11.8.tgz";
+ url = "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz";
+ sha1 = "82ffb02b29e662ae53bdc20af15947706739c536";
+ };
+ }
+
+ {
+ name = "ajv___ajv_6.6.1.tgz";
+ path = fetchurl {
+ name = "ajv___ajv_6.6.1.tgz";
+ url = "https://registry.yarnpkg.com/ajv/-/ajv-6.6.1.tgz";
+ sha1 = "6360f5ed0d80f232cc2b294c362d5dc2e538dd61";
+ };
+ }
+
+ {
+ name = "ansi_align___ansi_align_2.0.0.tgz";
+ path = fetchurl {
+ name = "ansi_align___ansi_align_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz";
+ sha1 = "c36aeccba563b89ceb556f3690f0b1d9e3547f7f";
+ };
+ }
+
+ {
+ name = "ansi_escapes___ansi_escapes_1.4.0.tgz";
+ path = fetchurl {
+ name = "ansi_escapes___ansi_escapes_1.4.0.tgz";
+ url = "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz";
+ sha1 = "d3a8a83b319aa67793662b13e761c7911422306e";
+ };
+ }
+
+ {
+ name = "ansi_escapes___ansi_escapes_3.1.0.tgz";
+ path = fetchurl {
+ name = "ansi_escapes___ansi_escapes_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.1.0.tgz";
+ sha1 = "f73207bb81207d75fd6c83f125af26eea378ca30";
+ };
+ }
+
+ {
+ name = "ansi_regex___ansi_regex_2.1.1.tgz";
+ path = fetchurl {
+ name = "ansi_regex___ansi_regex_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz";
+ sha1 = "c3b33ab5ee360d86e0e628f0468ae7ef27d654df";
+ };
+ }
+
+ {
+ name = "ansi_regex___ansi_regex_3.0.0.tgz";
+ path = fetchurl {
+ name = "ansi_regex___ansi_regex_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz";
+ sha1 = "ed0317c322064f79466c02966bddb605ab37d998";
+ };
+ }
+
+ {
+ name = "ansi_styles___ansi_styles_2.2.1.tgz";
+ path = fetchurl {
+ name = "ansi_styles___ansi_styles_2.2.1.tgz";
+ url = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz";
+ sha1 = "b432dd3358b634cf75e1e4664368240533c1ddbe";
+ };
+ }
+
+ {
+ name = "ansi_styles___ansi_styles_3.2.1.tgz";
+ path = fetchurl {
+ name = "ansi_styles___ansi_styles_3.2.1.tgz";
+ url = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz";
+ sha1 = "41fbb20243e50b12be0f04b8dedbf07520ce841d";
+ };
+ }
+
+ {
+ name = "ansicolors___ansicolors_0.3.2.tgz";
+ path = fetchurl {
+ name = "ansicolors___ansicolors_0.3.2.tgz";
+ url = "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.3.2.tgz";
+ sha1 = "665597de86a9ffe3aa9bfbe6cae5c6ea426b4979";
+ };
+ }
+
+ {
+ name = "ansistyles___ansistyles_0.1.3.tgz";
+ path = fetchurl {
+ name = "ansistyles___ansistyles_0.1.3.tgz";
+ url = "https://registry.yarnpkg.com/ansistyles/-/ansistyles-0.1.3.tgz";
+ sha1 = "5de60415bda071bb37127854c864f41b23254539";
+ };
+ }
+
+ {
+ name = "any_observable___any_observable_0.3.0.tgz";
+ path = fetchurl {
+ name = "any_observable___any_observable_0.3.0.tgz";
+ url = "https://registry.yarnpkg.com/any-observable/-/any-observable-0.3.0.tgz";
+ sha1 = "af933475e5806a67d0d7df090dd5e8bef65d119b";
+ };
+ }
+
+ {
+ name = "anymatch___anymatch_2.0.0.tgz";
+ path = fetchurl {
+ name = "anymatch___anymatch_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz";
+ sha1 = "bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb";
+ };
+ }
+
+ {
+ name = "append_field___append_field_1.0.0.tgz";
+ path = fetchurl {
+ name = "append_field___append_field_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/append-field/-/append-field-1.0.0.tgz";
+ sha1 = "1e3440e915f0b1203d23748e78edd7b9b5b43e56";
+ };
+ }
+
+ {
+ name = "application_config_path___application_config_path_0.1.0.tgz";
+ path = fetchurl {
+ name = "application_config_path___application_config_path_0.1.0.tgz";
+ url = "https://registry.yarnpkg.com/application-config-path/-/application-config-path-0.1.0.tgz";
+ sha1 = "193c5f0a86541a4c66fba1e2dc38583362ea5e8f";
+ };
+ }
+
+ {
+ name = "application_config___application_config_1.0.1.tgz";
+ path = fetchurl {
+ name = "application_config___application_config_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/application-config/-/application-config-1.0.1.tgz";
+ sha1 = "5aa2e2a5ed6abd2e5d1d473d3596f574044fe9e7";
+ };
+ }
+
+ {
+ name = "aproba___aproba_1.2.0.tgz";
+ path = fetchurl {
+ name = "aproba___aproba_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz";
+ sha1 = "6802e6264efd18c790a1b0d517f0f2627bf2c94a";
+ };
+ }
+
+ {
+ name = "aproba___aproba_2.0.0.tgz";
+ path = fetchurl {
+ name = "aproba___aproba_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz";
+ sha1 = "52520b8ae5b569215b354efc0caa3fe1e45a8adc";
+ };
+ }
+
+ {
+ name = "archy___archy_1.0.0.tgz";
+ path = fetchurl {
+ name = "archy___archy_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz";
+ sha1 = "f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40";
+ };
+ }
+
+ {
+ name = "are_we_there_yet___are_we_there_yet_1.1.5.tgz";
+ path = fetchurl {
+ name = "are_we_there_yet___are_we_there_yet_1.1.5.tgz";
+ url = "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz";
+ sha1 = "4b35c2944f062a8bfcda66410760350fe9ddfc21";
+ };
+ }
+
+ {
+ name = "argparse___argparse_1.0.10.tgz";
+ path = fetchurl {
+ name = "argparse___argparse_1.0.10.tgz";
+ url = "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz";
+ sha1 = "bcd6791ea5ae09725e17e5ad988134cd40b3d911";
+ };
+ }
+
+ {
+ name = "arr_diff___arr_diff_4.0.0.tgz";
+ path = fetchurl {
+ name = "arr_diff___arr_diff_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz";
+ sha1 = "d6461074febfec71e7e15235761a329a5dc7c520";
+ };
+ }
+
+ {
+ name = "arr_flatten___arr_flatten_1.1.0.tgz";
+ path = fetchurl {
+ name = "arr_flatten___arr_flatten_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz";
+ sha1 = "36048bbff4e7b47e136644316c99669ea5ae91f1";
+ };
+ }
+
+ {
+ name = "arr_union___arr_union_3.1.0.tgz";
+ path = fetchurl {
+ name = "arr_union___arr_union_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz";
+ sha1 = "e39b09aea9def866a8f206e288af63919bae39c4";
+ };
+ }
+
+ {
+ name = "array_flatten___array_flatten_1.1.1.tgz";
+ path = fetchurl {
+ name = "array_flatten___array_flatten_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz";
+ sha1 = "9a5f699051b1e7073328f2a008968b64ea2955d2";
+ };
+ }
+
+ {
+ name = "array_union___array_union_1.0.2.tgz";
+ path = fetchurl {
+ name = "array_union___array_union_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz";
+ sha1 = "9a34410e4f4e3da23dea375be5be70f24778ec39";
+ };
+ }
+
+ {
+ name = "array_uniq___array_uniq_1.0.3.tgz";
+ path = fetchurl {
+ name = "array_uniq___array_uniq_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz";
+ sha1 = "af6ac877a25cc7f74e058894753858dfdb24fdb6";
+ };
+ }
+
+ {
+ name = "array_unique___array_unique_0.3.2.tgz";
+ path = fetchurl {
+ name = "array_unique___array_unique_0.3.2.tgz";
+ url = "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz";
+ sha1 = "a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428";
+ };
+ }
+
+ {
+ name = "arraybuffer.slice___arraybuffer.slice_0.0.6.tgz";
+ path = fetchurl {
+ name = "arraybuffer.slice___arraybuffer.slice_0.0.6.tgz";
+ url = "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz";
+ sha1 = "f33b2159f0532a3f3107a272c0ccfbd1ad2979ca";
+ };
+ }
+
+ {
+ name = "arraybuffer.slice___arraybuffer.slice_0.0.7.tgz";
+ path = fetchurl {
+ name = "arraybuffer.slice___arraybuffer.slice_0.0.7.tgz";
+ url = "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz";
+ sha1 = "3bbc4275dd584cc1b10809b89d4e8b63a69e7675";
+ };
+ }
+
+ {
+ name = "arrify___arrify_1.0.1.tgz";
+ path = fetchurl {
+ name = "arrify___arrify_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz";
+ sha1 = "898508da2226f380df904728456849c1501a4b0d";
+ };
+ }
+
+ {
+ name = "asap___asap_2.0.6.tgz";
+ path = fetchurl {
+ name = "asap___asap_2.0.6.tgz";
+ url = "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz";
+ sha1 = "e50347611d7e690943208bbdafebcbc2fb866d46";
+ };
+ }
+
+ {
+ name = "asn1___asn1_0.2.3.tgz";
+ path = fetchurl {
+ name = "asn1___asn1_0.2.3.tgz";
+ url = "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz";
+ sha1 = "dac8787713c9966849fc8180777ebe9c1ddf3b86";
+ };
+ }
+
+ {
+ name = "asn1___asn1_0.2.4.tgz";
+ path = fetchurl {
+ name = "asn1___asn1_0.2.4.tgz";
+ url = "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz";
+ sha1 = "8d2475dfab553bb33e77b54e59e880bb8ce23136";
+ };
+ }
+
+ {
+ name = "assert_plus___assert_plus_0.1.5.tgz";
+ path = fetchurl {
+ name = "assert_plus___assert_plus_0.1.5.tgz";
+ url = "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.1.5.tgz";
+ sha1 = "ee74009413002d84cec7219c6ac811812e723160";
+ };
+ }
+
+ {
+ name = "assert_plus___assert_plus_1.0.0.tgz";
+ path = fetchurl {
+ name = "assert_plus___assert_plus_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz";
+ sha1 = "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525";
+ };
+ }
+
+ {
+ name = "assertion_error___assertion_error_1.0.0.tgz";
+ path = fetchurl {
+ name = "assertion_error___assertion_error_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.0.0.tgz";
+ sha1 = "c7f85438fdd466bc7ca16ab90c81513797a5d23b";
+ };
+ }
+
+ {
+ name = "assertion_error___assertion_error_1.1.0.tgz";
+ path = fetchurl {
+ name = "assertion_error___assertion_error_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz";
+ sha1 = "e60b6b0e8f301bd97e5375215bda406c85118c0b";
+ };
+ }
+
+ {
+ name = "assign_symbols___assign_symbols_1.0.0.tgz";
+ path = fetchurl {
+ name = "assign_symbols___assign_symbols_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz";
+ sha1 = "59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367";
+ };
+ }
+
+ {
+ name = "async_each___async_each_1.0.1.tgz";
+ path = fetchurl {
+ name = "async_each___async_each_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz";
+ sha1 = "19d386a1d9edc6e7c1c85d388aedbcc56d33602d";
+ };
+ }
+
+ {
+ name = "async_limiter___async_limiter_1.0.0.tgz";
+ path = fetchurl {
+ name = "async_limiter___async_limiter_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz";
+ sha1 = "78faed8c3d074ab81f22b4e985d79e8738f720f8";
+ };
+ }
+
+ {
+ name = "async_lock___async_lock_1.1.3.tgz";
+ path = fetchurl {
+ name = "async_lock___async_lock_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/async-lock/-/async-lock-1.1.3.tgz";
+ sha1 = "e47f1cbb6bec765b73e27ed8961d58006457ec08";
+ };
+ }
+
+ {
+ name = "async_lru___async_lru_1.1.2.tgz";
+ path = fetchurl {
+ name = "async_lru___async_lru_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/async-lru/-/async-lru-1.1.2.tgz";
+ sha1 = "abe831f3a52123c87d44273615e203b1ef04692e";
+ };
+ }
+
+ {
+ name = "async___async_1.5.1.tgz";
+ path = fetchurl {
+ name = "async___async_1.5.1.tgz";
+ url = "https://registry.yarnpkg.com/async/-/async-1.5.1.tgz";
+ sha1 = "b05714f4b11b357bf79adaffdd06da42d0766c10";
+ };
+ }
+
+ {
+ name = "async___async_2.6.1.tgz";
+ path = fetchurl {
+ name = "async___async_2.6.1.tgz";
+ url = "https://registry.yarnpkg.com/async/-/async-2.6.1.tgz";
+ sha1 = "b245a23ca71930044ec53fa46aa00a3e87c6a610";
+ };
+ }
+
+ {
+ name = "async___async_0.9.2.tgz";
+ path = fetchurl {
+ name = "async___async_0.9.2.tgz";
+ url = "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz";
+ sha1 = "aea74d5e61c1f899613bf64bda66d4c78f2fd17d";
+ };
+ }
+
+ {
+ name = "async___async_1.0.0.tgz";
+ path = fetchurl {
+ name = "async___async_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/async/-/async-1.0.0.tgz";
+ sha1 = "f8fc04ca3a13784ade9e1641af98578cfbd647a9";
+ };
+ }
+
+ {
+ name = "asynckit___asynckit_0.4.0.tgz";
+ path = fetchurl {
+ name = "asynckit___asynckit_0.4.0.tgz";
+ url = "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz";
+ sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79";
+ };
+ }
+
+ {
+ name = "atob___atob_2.1.2.tgz";
+ path = fetchurl {
+ name = "atob___atob_2.1.2.tgz";
+ url = "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz";
+ sha1 = "6d9517eb9e030d2436666651e86bd9f6f13533c9";
+ };
+ }
+
+ {
+ name = "aws_sign2___aws_sign2_0.7.0.tgz";
+ path = fetchurl {
+ name = "aws_sign2___aws_sign2_0.7.0.tgz";
+ url = "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz";
+ sha1 = "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8";
+ };
+ }
+
+ {
+ name = "aws4___aws4_1.8.0.tgz";
+ path = fetchurl {
+ name = "aws4___aws4_1.8.0.tgz";
+ url = "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz";
+ sha1 = "f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f";
+ };
+ }
+
+ {
+ name = "babel_code_frame___babel_code_frame_6.26.0.tgz";
+ path = fetchurl {
+ name = "babel_code_frame___babel_code_frame_6.26.0.tgz";
+ url = "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz";
+ sha1 = "63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b";
+ };
+ }
+
+ {
+ name = "backo2___backo2_1.0.2.tgz";
+ path = fetchurl {
+ name = "backo2___backo2_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz";
+ sha1 = "31ab1ac8b129363463e35b3ebb69f4dfcfba7947";
+ };
+ }
+
+ {
+ name = "backoff___backoff_2.5.0.tgz";
+ path = fetchurl {
+ name = "backoff___backoff_2.5.0.tgz";
+ url = "https://registry.yarnpkg.com/backoff/-/backoff-2.5.0.tgz";
+ sha1 = "f616eda9d3e4b66b8ca7fca79f695722c5f8e26f";
+ };
+ }
+
+ {
+ name = "balanced_match___balanced_match_1.0.0.tgz";
+ path = fetchurl {
+ name = "balanced_match___balanced_match_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz";
+ sha1 = "89b4d199ab2bee49de164ea02b89ce462d71b767";
+ };
+ }
+
+ {
+ name = "base64_arraybuffer___base64_arraybuffer_0.1.5.tgz";
+ path = fetchurl {
+ name = "base64_arraybuffer___base64_arraybuffer_0.1.5.tgz";
+ url = "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz";
+ sha1 = "73926771923b5a19747ad666aa5cd4bf9c6e9ce8";
+ };
+ }
+
+ {
+ name = "base64id___base64id_1.0.0.tgz";
+ path = fetchurl {
+ name = "base64id___base64id_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz";
+ sha1 = "47688cb99bb6804f0e06d3e763b1c32e57d8e6b6";
+ };
+ }
+
+ {
+ name = "base___base_0.11.2.tgz";
+ path = fetchurl {
+ name = "base___base_0.11.2.tgz";
+ url = "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz";
+ sha1 = "7bde5ced145b6d551a90db87f83c558b4eb48a8f";
+ };
+ }
+
+ {
+ name = "basic_auth___basic_auth_1.1.0.tgz";
+ path = fetchurl {
+ name = "basic_auth___basic_auth_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/basic-auth/-/basic-auth-1.1.0.tgz";
+ sha1 = "45221ee429f7ee1e5035be3f51533f1cdfd29884";
+ };
+ }
+
+ {
+ name = "basic_auth___basic_auth_2.0.1.tgz";
+ path = fetchurl {
+ name = "basic_auth___basic_auth_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/basic-auth/-/basic-auth-2.0.1.tgz";
+ sha1 = "b998279bf47ce38344b4f3cf916d4679bbf51e3a";
+ };
+ }
+
+ {
+ name = "bcrypt_pbkdf___bcrypt_pbkdf_1.0.2.tgz";
+ path = fetchurl {
+ name = "bcrypt_pbkdf___bcrypt_pbkdf_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz";
+ sha1 = "a4301d389b6a43f9b67ff3ca11a3f6637e360e9e";
+ };
+ }
+
+ {
+ name = "bcrypt___bcrypt_3.0.2.tgz";
+ path = fetchurl {
+ name = "bcrypt___bcrypt_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/bcrypt/-/bcrypt-3.0.2.tgz";
+ sha1 = "3c575c49ccbfdf0875eb42aa1453f5654092a33d";
+ };
+ }
+
+ {
+ name = "bencode___bencode_2.0.0.tgz";
+ path = fetchurl {
+ name = "bencode___bencode_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/bencode/-/bencode-2.0.0.tgz";
+ sha1 = "e72e6b3691d824bd03ea7aa9d752cd1d49a50027";
+ };
+ }
+
+ {
+ name = "better_assert___better_assert_1.0.2.tgz";
+ path = fetchurl {
+ name = "better_assert___better_assert_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz";
+ sha1 = "40866b9e1b9e0b55b481894311e68faffaebc522";
+ };
+ }
+
+ {
+ name = "bin_links___bin_links_1.1.2.tgz";
+ path = fetchurl {
+ name = "bin_links___bin_links_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/bin-links/-/bin-links-1.1.2.tgz";
+ sha1 = "fb74bd54bae6b7befc6c6221f25322ac830d9757";
+ };
+ }
+
+ {
+ name = "binary_extensions___binary_extensions_1.12.0.tgz";
+ path = fetchurl {
+ name = "binary_extensions___binary_extensions_1.12.0.tgz";
+ url = "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.12.0.tgz";
+ sha1 = "c2d780f53d45bba8317a8902d4ceeaf3a6385b14";
+ };
+ }
+
+ {
+ name = "binary_search___binary_search_1.3.4.tgz";
+ path = fetchurl {
+ name = "binary_search___binary_search_1.3.4.tgz";
+ url = "https://registry.yarnpkg.com/binary-search/-/binary-search-1.3.4.tgz";
+ sha1 = "d15f44ff9226ef309d85247fa0dbfbf659955f56";
+ };
+ }
+
+ {
+ name = "bindings___bindings_1.3.1.tgz";
+ path = fetchurl {
+ name = "bindings___bindings_1.3.1.tgz";
+ url = "https://registry.yarnpkg.com/bindings/-/bindings-1.3.1.tgz";
+ sha1 = "21fc7c6d67c18516ec5aaa2815b145ff77b26ea5";
+ };
+ }
+
+ {
+ name = "bindings___bindings_1.2.1.tgz";
+ path = fetchurl {
+ name = "bindings___bindings_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/bindings/-/bindings-1.2.1.tgz";
+ sha1 = "14ad6113812d2d37d72e67b4cacb4bb726505f11";
+ };
+ }
+
+ {
+ name = "bitcore_lib___bitcore_lib_0.13.19.tgz";
+ path = fetchurl {
+ name = "bitcore_lib___bitcore_lib_0.13.19.tgz";
+ url = "https://registry.yarnpkg.com/bitcore-lib/-/bitcore-lib-0.13.19.tgz";
+ sha1 = "48af1e9bda10067c1ab16263472b5add2000f3dc";
+ };
+ }
+
+ {
+ name = "https___codeload.github.com_CoMakery_bitcore_message_tar.gz_8799cc327029c3d34fc725f05b2cf981363f6ebf";
+ path = fetchurl {
+ name = "https___codeload.github.com_CoMakery_bitcore_message_tar.gz_8799cc327029c3d34fc725f05b2cf981363f6ebf";
+ url = "https://codeload.github.com/CoMakery/bitcore-message/tar.gz/8799cc327029c3d34fc725f05b2cf981363f6ebf";
+ sha1 = "c5ac190157ac535fd6aeb3148ab5591ea874e281";
+ };
+ }
+
+ {
+ name = "bitfield___bitfield_2.0.0.tgz";
+ path = fetchurl {
+ name = "bitfield___bitfield_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/bitfield/-/bitfield-2.0.0.tgz";
+ sha1 = "fbe6767592fe5b4c87ecf1d04126294cc1bfa837";
+ };
+ }
+
+ {
+ name = "bittorrent_dht___bittorrent_dht_9.0.0.tgz";
+ path = fetchurl {
+ name = "bittorrent_dht___bittorrent_dht_9.0.0.tgz";
+ url = "https://registry.yarnpkg.com/bittorrent-dht/-/bittorrent-dht-9.0.0.tgz";
+ sha1 = "08d5ebb51ed91d7e3eea5c275554f4323fb523e5";
+ };
+ }
+
+ {
+ name = "bittorrent_peerid___bittorrent_peerid_1.3.0.tgz";
+ path = fetchurl {
+ name = "bittorrent_peerid___bittorrent_peerid_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/bittorrent-peerid/-/bittorrent-peerid-1.3.0.tgz";
+ sha1 = "a435d3b267c887c586c528b53359845905d7c158";
+ };
+ }
+
+ {
+ name = "bittorrent_protocol___bittorrent_protocol_3.0.1.tgz";
+ path = fetchurl {
+ name = "bittorrent_protocol___bittorrent_protocol_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/bittorrent-protocol/-/bittorrent-protocol-3.0.1.tgz";
+ sha1 = "d3948f4d2b09d538095f7e5f93f64ba5df6b5c2a";
+ };
+ }
+
+ {
+ name = "bittorrent_tracker___bittorrent_tracker_9.10.1.tgz";
+ path = fetchurl {
+ name = "bittorrent_tracker___bittorrent_tracker_9.10.1.tgz";
+ url = "https://registry.yarnpkg.com/bittorrent-tracker/-/bittorrent-tracker-9.10.1.tgz";
+ sha1 = "5de14aac012a287af394d3cc9eda1ec6cc956f11";
+ };
+ }
+
+ {
+ name = "bl___bl_1.2.2.tgz";
+ path = fetchurl {
+ name = "bl___bl_1.2.2.tgz";
+ url = "https://registry.yarnpkg.com/bl/-/bl-1.2.2.tgz";
+ sha1 = "a160911717103c07410cef63ef51b397c025af9c";
+ };
+ }
+
+ {
+ name = "blob_to_buffer___blob_to_buffer_1.2.8.tgz";
+ path = fetchurl {
+ name = "blob_to_buffer___blob_to_buffer_1.2.8.tgz";
+ url = "https://registry.yarnpkg.com/blob-to-buffer/-/blob-to-buffer-1.2.8.tgz";
+ sha1 = "78eeeb332f1280ed0ca6fb2b60693a8c6d36903a";
+ };
+ }
+
+ {
+ name = "blob___blob_0.0.4.tgz";
+ path = fetchurl {
+ name = "blob___blob_0.0.4.tgz";
+ url = "https://registry.yarnpkg.com/blob/-/blob-0.0.4.tgz";
+ sha1 = "bcf13052ca54463f30f9fc7e95b9a47630a94921";
+ };
+ }
+
+ {
+ name = "blob___blob_0.0.5.tgz";
+ path = fetchurl {
+ name = "blob___blob_0.0.5.tgz";
+ url = "https://registry.yarnpkg.com/blob/-/blob-0.0.5.tgz";
+ sha1 = "d680eeef25f8cd91ad533f5b01eed48e64caf683";
+ };
+ }
+
+ {
+ name = "block_stream2___block_stream2_1.1.0.tgz";
+ path = fetchurl {
+ name = "block_stream2___block_stream2_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/block-stream2/-/block-stream2-1.1.0.tgz";
+ sha1 = "c738e3a91ba977ebb5e1fef431e13ca11d8639e2";
+ };
+ }
+
+ {
+ name = "block_stream___block_stream_0.0.9.tgz";
+ path = fetchurl {
+ name = "block_stream___block_stream_0.0.9.tgz";
+ url = "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz";
+ sha1 = "13ebfe778a03205cfe03751481ebb4b3300c126a";
+ };
+ }
+
+ {
+ name = "bluebird___bluebird_3.5.0.tgz";
+ path = fetchurl {
+ name = "bluebird___bluebird_3.5.0.tgz";
+ url = "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.0.tgz";
+ sha1 = "791420d7f551eea2897453a8a77653f96606d67c";
+ };
+ }
+
+ {
+ name = "bluebird___bluebird_2.11.0.tgz";
+ path = fetchurl {
+ name = "bluebird___bluebird_2.11.0.tgz";
+ url = "https://registry.yarnpkg.com/bluebird/-/bluebird-2.11.0.tgz";
+ sha1 = "534b9033c022c9579c56ba3b3e5a5caafbb650e1";
+ };
+ }
+
+ {
+ name = "bluebird___bluebird_3.5.3.tgz";
+ path = fetchurl {
+ name = "bluebird___bluebird_3.5.3.tgz";
+ url = "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.3.tgz";
+ sha1 = "7d01c6f9616c9a51ab0f8c549a79dfe6ec33efa7";
+ };
+ }
+
+ {
+ name = "bn.js___bn.js_2.0.4.tgz";
+ path = fetchurl {
+ name = "bn.js___bn.js_2.0.4.tgz";
+ url = "https://registry.yarnpkg.com/bn.js/-/bn.js-2.0.4.tgz";
+ sha1 = "220a7cd677f7f1bfa93627ff4193776fe7819480";
+ };
+ }
+
+ {
+ name = "bn.js___bn.js_2.2.0.tgz";
+ path = fetchurl {
+ name = "bn.js___bn.js_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/bn.js/-/bn.js-2.2.0.tgz";
+ sha1 = "12162bc2ae71fc40a5626c33438f3a875cd37625";
+ };
+ }
+
+ {
+ name = "bn.js___bn.js_4.11.8.tgz";
+ path = fetchurl {
+ name = "bn.js___bn.js_4.11.8.tgz";
+ url = "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz";
+ sha1 = "2cde09eb5ee341f484746bb0309b3253b1b1442f";
+ };
+ }
+
+ {
+ name = "body_parser___body_parser_1.18.3.tgz";
+ path = fetchurl {
+ name = "body_parser___body_parser_1.18.3.tgz";
+ url = "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.3.tgz";
+ sha1 = "5b292198ffdd553b3a0f20ded0592b956955c8b4";
+ };
+ }
+
+ {
+ name = "boxen___boxen_1.3.0.tgz";
+ path = fetchurl {
+ name = "boxen___boxen_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz";
+ sha1 = "55c6c39a8ba58d9c61ad22cd877532deb665a20b";
+ };
+ }
+
+ {
+ name = "brace_expansion___brace_expansion_1.1.11.tgz";
+ path = fetchurl {
+ name = "brace_expansion___brace_expansion_1.1.11.tgz";
+ url = "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz";
+ sha1 = "3c7fcbf529d87226f3d2f52b966ff5271eb441dd";
+ };
+ }
+
+ {
+ name = "braces___braces_2.3.2.tgz";
+ path = fetchurl {
+ name = "braces___braces_2.3.2.tgz";
+ url = "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz";
+ sha1 = "5979fd3f14cd531565e5fa2df1abfff1dfaee729";
+ };
+ }
+
+ {
+ name = "brorand___brorand_1.1.0.tgz";
+ path = fetchurl {
+ name = "brorand___brorand_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz";
+ sha1 = "12c25efe40a45e3c323eb8675a0a0ce57b22371f";
+ };
+ }
+
+ {
+ name = "browser_stdout___browser_stdout_1.3.1.tgz";
+ path = fetchurl {
+ name = "browser_stdout___browser_stdout_1.3.1.tgz";
+ url = "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz";
+ sha1 = "baa559ee14ced73452229bad7326467c61fabd60";
+ };
+ }
+
+ {
+ name = "browserify_package_json___browserify_package_json_1.0.1.tgz";
+ path = fetchurl {
+ name = "browserify_package_json___browserify_package_json_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/browserify-package-json/-/browserify-package-json-1.0.1.tgz";
+ sha1 = "98dde8aa5c561fd6d3fe49bbaa102b74b396fdea";
+ };
+ }
+
+ {
+ name = "bs58___bs58_2.0.0.tgz";
+ path = fetchurl {
+ name = "bs58___bs58_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/bs58/-/bs58-2.0.0.tgz";
+ sha1 = "72b713bed223a0ac518bbda0e3ce3f4817f39eb5";
+ };
+ }
+
+ {
+ name = "buffer_alloc_unsafe___buffer_alloc_unsafe_1.1.0.tgz";
+ path = fetchurl {
+ name = "buffer_alloc_unsafe___buffer_alloc_unsafe_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz";
+ sha1 = "bd7dc26ae2972d0eda253be061dba992349c19f0";
+ };
+ }
+
+ {
+ name = "buffer_alloc___buffer_alloc_1.2.0.tgz";
+ path = fetchurl {
+ name = "buffer_alloc___buffer_alloc_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz";
+ sha1 = "890dd90d923a873e08e10e5fd51a57e5b7cce0ec";
+ };
+ }
+
+ {
+ name = "buffer_compare___buffer_compare_1.0.0.tgz";
+ path = fetchurl {
+ name = "buffer_compare___buffer_compare_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/buffer-compare/-/buffer-compare-1.0.0.tgz";
+ sha1 = "acaa7a966e98eee9fae14b31c39a5f158fb3c4a2";
+ };
+ }
+
+ {
+ name = "buffer_equal_constant_time___buffer_equal_constant_time_1.0.1.tgz";
+ path = fetchurl {
+ name = "buffer_equal_constant_time___buffer_equal_constant_time_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz";
+ sha1 = "f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819";
+ };
+ }
+
+ {
+ name = "buffer_equals___buffer_equals_1.0.4.tgz";
+ path = fetchurl {
+ name = "buffer_equals___buffer_equals_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/buffer-equals/-/buffer-equals-1.0.4.tgz";
+ sha1 = "0353b54fd07fd9564170671ae6f66b9cf10d27f5";
+ };
+ }
+
+ {
+ name = "buffer_fill___buffer_fill_1.0.0.tgz";
+ path = fetchurl {
+ name = "buffer_fill___buffer_fill_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz";
+ sha1 = "f8f78b76789888ef39f205cd637f68e702122b2c";
+ };
+ }
+
+ {
+ name = "buffer_from___buffer_from_1.1.1.tgz";
+ path = fetchurl {
+ name = "buffer_from___buffer_from_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz";
+ sha1 = "32713bc028f75c02fdb710d7c7bcec1f2c6070ef";
+ };
+ }
+
+ {
+ name = "buffer_writer___buffer_writer_2.0.0.tgz";
+ path = fetchurl {
+ name = "buffer_writer___buffer_writer_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/buffer-writer/-/buffer-writer-2.0.0.tgz";
+ sha1 = "ce7eb81a38f7829db09c873f2fbb792c0c98ec04";
+ };
+ }
+
+ {
+ name = "bufferutil___bufferutil_4.0.0.tgz";
+ path = fetchurl {
+ name = "bufferutil___bufferutil_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.0.tgz";
+ sha1 = "a5078160e443751a4e83b6f4d6d7e26c058326a0";
+ };
+ }
+
+ {
+ name = "builtin_modules___builtin_modules_1.1.1.tgz";
+ path = fetchurl {
+ name = "builtin_modules___builtin_modules_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz";
+ sha1 = "270f076c5a72c02f5b65a47df94c5fe3a278892f";
+ };
+ }
+
+ {
+ name = "builtins___builtins_1.0.3.tgz";
+ path = fetchurl {
+ name = "builtins___builtins_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz";
+ sha1 = "cb94faeb61c8696451db36534e1422f94f0aee88";
+ };
+ }
+
+ {
+ name = "bull___bull_3.5.2.tgz";
+ path = fetchurl {
+ name = "bull___bull_3.5.2.tgz";
+ url = "https://registry.yarnpkg.com/bull/-/bull-3.5.2.tgz";
+ sha1 = "9c85f205b17686efab2ee28aaa4388887360de32";
+ };
+ }
+
+ {
+ name = "bunyan___bunyan_1.8.12.tgz";
+ path = fetchurl {
+ name = "bunyan___bunyan_1.8.12.tgz";
+ url = "https://registry.yarnpkg.com/bunyan/-/bunyan-1.8.12.tgz";
+ sha1 = "f150f0f6748abdd72aeae84f04403be2ef113797";
+ };
+ }
+
+ {
+ name = "busboy___busboy_0.2.14.tgz";
+ path = fetchurl {
+ name = "busboy___busboy_0.2.14.tgz";
+ url = "https://registry.yarnpkg.com/busboy/-/busboy-0.2.14.tgz";
+ sha1 = "6c2a622efcf47c57bbbe1e2a9c37ad36c7925453";
+ };
+ }
+
+ {
+ name = "byline___byline_5.0.0.tgz";
+ path = fetchurl {
+ name = "byline___byline_5.0.0.tgz";
+ url = "https://registry.yarnpkg.com/byline/-/byline-5.0.0.tgz";
+ sha1 = "741c5216468eadc457b03410118ad77de8c1ddb1";
+ };
+ }
+
+ {
+ name = "byte_size___byte_size_4.0.4.tgz";
+ path = fetchurl {
+ name = "byte_size___byte_size_4.0.4.tgz";
+ url = "https://registry.yarnpkg.com/byte-size/-/byte-size-4.0.4.tgz";
+ sha1 = "29d381709f41aae0d89c631f1c81aec88cd40b23";
+ };
+ }
+
+ {
+ name = "bytes___bytes_3.0.0.tgz";
+ path = fetchurl {
+ name = "bytes___bytes_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz";
+ sha1 = "d32815404d689699f85a4ea4fa8755dd13a96048";
+ };
+ }
+
+ {
+ name = "cacache___cacache_10.0.4.tgz";
+ path = fetchurl {
+ name = "cacache___cacache_10.0.4.tgz";
+ url = "https://registry.yarnpkg.com/cacache/-/cacache-10.0.4.tgz";
+ sha1 = "6452367999eff9d4188aefd9a14e9d7c6a263460";
+ };
+ }
+
+ {
+ name = "cacache___cacache_11.3.1.tgz";
+ path = fetchurl {
+ name = "cacache___cacache_11.3.1.tgz";
+ url = "https://registry.yarnpkg.com/cacache/-/cacache-11.3.1.tgz";
+ sha1 = "d09d25f6c4aca7a6d305d141ae332613aa1d515f";
+ };
+ }
+
+ {
+ name = "cache_base___cache_base_1.0.1.tgz";
+ path = fetchurl {
+ name = "cache_base___cache_base_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz";
+ sha1 = "0a7f46416831c8b662ee36fe4e7c59d76f666ab2";
+ };
+ }
+
+ {
+ name = "call_limit___call_limit_1.1.0.tgz";
+ path = fetchurl {
+ name = "call_limit___call_limit_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/call-limit/-/call-limit-1.1.0.tgz";
+ sha1 = "6fd61b03f3da42a2cd0ec2b60f02bd0e71991fea";
+ };
+ }
+
+ {
+ name = "call_me_maybe___call_me_maybe_1.0.1.tgz";
+ path = fetchurl {
+ name = "call_me_maybe___call_me_maybe_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz";
+ sha1 = "26d208ea89e37b5cbde60250a15f031c16a4d66b";
+ };
+ }
+
+ {
+ name = "caller_callsite___caller_callsite_2.0.0.tgz";
+ path = fetchurl {
+ name = "caller_callsite___caller_callsite_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz";
+ sha1 = "847e0fce0a223750a9a027c54b33731ad3154134";
+ };
+ }
+
+ {
+ name = "caller_path___caller_path_0.1.0.tgz";
+ path = fetchurl {
+ name = "caller_path___caller_path_0.1.0.tgz";
+ url = "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz";
+ sha1 = "94085ef63581ecd3daa92444a8fe94e82577751f";
+ };
+ }
+
+ {
+ name = "caller_path___caller_path_2.0.0.tgz";
+ path = fetchurl {
+ name = "caller_path___caller_path_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz";
+ sha1 = "468f83044e369ab2010fac5f06ceee15bb2cb1f4";
+ };
+ }
+
+ {
+ name = "callsite___callsite_1.0.0.tgz";
+ path = fetchurl {
+ name = "callsite___callsite_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz";
+ sha1 = "280398e5d664bd74038b6f0905153e6e8af1bc20";
+ };
+ }
+
+ {
+ name = "callsites___callsites_0.2.0.tgz";
+ path = fetchurl {
+ name = "callsites___callsites_0.2.0.tgz";
+ url = "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz";
+ sha1 = "afab96262910a7f33c19a5775825c69f34e350ca";
+ };
+ }
+
+ {
+ name = "callsites___callsites_2.0.0.tgz";
+ path = fetchurl {
+ name = "callsites___callsites_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz";
+ sha1 = "06eb84f00eea413da86affefacbffb36093b3c50";
+ };
+ }
+
+ {
+ name = "camelcase___camelcase_4.1.0.tgz";
+ path = fetchurl {
+ name = "camelcase___camelcase_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz";
+ sha1 = "d545635be1e33c542649c69173e5de6acfae34dd";
+ };
+ }
+
+ {
+ name = "camelcase___camelcase_5.0.0.tgz";
+ path = fetchurl {
+ name = "camelcase___camelcase_5.0.0.tgz";
+ url = "https://registry.yarnpkg.com/camelcase/-/camelcase-5.0.0.tgz";
+ sha1 = "03295527d58bd3cd4aa75363f35b2e8d97be2f42";
+ };
+ }
+
+ {
+ name = "camelize___camelize_1.0.0.tgz";
+ path = fetchurl {
+ name = "camelize___camelize_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/camelize/-/camelize-1.0.0.tgz";
+ sha1 = "164a5483e630fa4321e5af07020e531831b2609b";
+ };
+ }
+
+ {
+ name = "capture_stack_trace___capture_stack_trace_1.0.1.tgz";
+ path = fetchurl {
+ name = "capture_stack_trace___capture_stack_trace_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz";
+ sha1 = "a6c0bbe1f38f3aa0b92238ecb6ff42c344d4135d";
+ };
+ }
+
+ {
+ name = "caseless___caseless_0.12.0.tgz";
+ path = fetchurl {
+ name = "caseless___caseless_0.12.0.tgz";
+ url = "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz";
+ sha1 = "1b681c21ff84033c826543090689420d187151dc";
+ };
+ }
+
+ {
+ name = "chai_json_schema___chai_json_schema_1.5.0.tgz";
+ path = fetchurl {
+ name = "chai_json_schema___chai_json_schema_1.5.0.tgz";
+ url = "https://registry.yarnpkg.com/chai-json-schema/-/chai-json-schema-1.5.0.tgz";
+ sha1 = "6960719e40f71fd5b377c9282e5c9a46799474f6";
+ };
+ }
+
+ {
+ name = "chai_xml___chai_xml_0.3.2.tgz";
+ path = fetchurl {
+ name = "chai_xml___chai_xml_0.3.2.tgz";
+ url = "https://registry.yarnpkg.com/chai-xml/-/chai-xml-0.3.2.tgz";
+ sha1 = "61d0776aa8fd936a2178769adcaabf3bfb52b8b1";
+ };
+ }
+
+ {
+ name = "chai___chai_1.10.0.tgz";
+ path = fetchurl {
+ name = "chai___chai_1.10.0.tgz";
+ url = "https://registry.yarnpkg.com/chai/-/chai-1.10.0.tgz";
+ sha1 = "e4031cc87654461a75943e5a35ab46eaf39c1eb9";
+ };
+ }
+
+ {
+ name = "chai___chai_4.2.0.tgz";
+ path = fetchurl {
+ name = "chai___chai_4.2.0.tgz";
+ url = "https://registry.yarnpkg.com/chai/-/chai-4.2.0.tgz";
+ sha1 = "760aa72cf20e3795e84b12877ce0e83737aa29e5";
+ };
+ }
+
+ {
+ name = "chalk___chalk_1.1.3.tgz";
+ path = fetchurl {
+ name = "chalk___chalk_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz";
+ sha1 = "a8115c55e4a702fe4d150abd3872822a7e09fc98";
+ };
+ }
+
+ {
+ name = "chalk___chalk_2.4.1.tgz";
+ path = fetchurl {
+ name = "chalk___chalk_2.4.1.tgz";
+ url = "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz";
+ sha1 = "18c49ab16a037b6eb0152cc83e3471338215b66e";
+ };
+ }
+
+ {
+ name = "charenc___charenc_0.0.2.tgz";
+ path = fetchurl {
+ name = "charenc___charenc_0.0.2.tgz";
+ url = "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz";
+ sha1 = "c0a1d2f3a7092e03774bfa83f14c0fc5790a8667";
+ };
+ }
+
+ {
+ name = "charset_detector___charset_detector_0.0.2.tgz";
+ path = fetchurl {
+ name = "charset_detector___charset_detector_0.0.2.tgz";
+ url = "https://registry.yarnpkg.com/charset-detector/-/charset-detector-0.0.2.tgz";
+ sha1 = "1cd5ddaf56e83259c6ef8e906ccf06f75fe9a1b2";
+ };
+ }
+
+ {
+ name = "check_error___check_error_1.0.2.tgz";
+ path = fetchurl {
+ name = "check_error___check_error_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz";
+ sha1 = "574d312edd88bb5dd8912e9286dd6c0aed4aac82";
+ };
+ }
+
+ {
+ name = "chokidar___chokidar_2.0.4.tgz";
+ path = fetchurl {
+ name = "chokidar___chokidar_2.0.4.tgz";
+ url = "https://registry.yarnpkg.com/chokidar/-/chokidar-2.0.4.tgz";
+ sha1 = "356ff4e2b0e8e43e322d18a372460bbcf3accd26";
+ };
+ }
+
+ {
+ name = "chownr___chownr_1.1.1.tgz";
+ path = fetchurl {
+ name = "chownr___chownr_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz";
+ sha1 = "54726b8b8fff4df053c42187e801fb4412df1494";
+ };
+ }
+
+ {
+ name = "chownr___chownr_1.0.1.tgz";
+ path = fetchurl {
+ name = "chownr___chownr_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz";
+ sha1 = "e2a75042a9551908bebd25b8523d5f9769d79181";
+ };
+ }
+
+ {
+ name = "chunk_store_stream___chunk_store_stream_3.0.1.tgz";
+ path = fetchurl {
+ name = "chunk_store_stream___chunk_store_stream_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/chunk-store-stream/-/chunk-store-stream-3.0.1.tgz";
+ sha1 = "8e0d739226dcb386f44447b82a005b597a1d41d9";
+ };
+ }
+
+ {
+ name = "ci_info___ci_info_1.6.0.tgz";
+ path = fetchurl {
+ name = "ci_info___ci_info_1.6.0.tgz";
+ url = "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz";
+ sha1 = "2ca20dbb9ceb32d4524a683303313f0304b1e497";
+ };
+ }
+
+ {
+ name = "cidr_regex___cidr_regex_2.0.10.tgz";
+ path = fetchurl {
+ name = "cidr_regex___cidr_regex_2.0.10.tgz";
+ url = "https://registry.yarnpkg.com/cidr-regex/-/cidr-regex-2.0.10.tgz";
+ sha1 = "af13878bd4ad704de77d6dc800799358b3afa70d";
+ };
+ }
+
+ {
+ name = "circular_json___circular_json_0.3.3.tgz";
+ path = fetchurl {
+ name = "circular_json___circular_json_0.3.3.tgz";
+ url = "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz";
+ sha1 = "815c99ea84f6809529d2f45791bdf82711352d66";
+ };
+ }
+
+ {
+ name = "class_utils___class_utils_0.3.6.tgz";
+ path = fetchurl {
+ name = "class_utils___class_utils_0.3.6.tgz";
+ url = "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz";
+ sha1 = "f93369ae8b9a7ce02fd41faad0ca83033190c463";
+ };
+ }
+
+ {
+ name = "cli_boxes___cli_boxes_1.0.0.tgz";
+ path = fetchurl {
+ name = "cli_boxes___cli_boxes_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz";
+ sha1 = "4fa917c3e59c94a004cd61f8ee509da651687143";
+ };
+ }
+
+ {
+ name = "cli_columns___cli_columns_3.1.2.tgz";
+ path = fetchurl {
+ name = "cli_columns___cli_columns_3.1.2.tgz";
+ url = "https://registry.yarnpkg.com/cli-columns/-/cli-columns-3.1.2.tgz";
+ sha1 = "6732d972979efc2ae444a1f08e08fa139c96a18e";
+ };
+ }
+
+ {
+ name = "cli_cursor___cli_cursor_1.0.2.tgz";
+ path = fetchurl {
+ name = "cli_cursor___cli_cursor_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz";
+ sha1 = "64da3f7d56a54412e59794bd62dc35295e8f2987";
+ };
+ }
+
+ {
+ name = "cli_cursor___cli_cursor_2.1.0.tgz";
+ path = fetchurl {
+ name = "cli_cursor___cli_cursor_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz";
+ sha1 = "b35dac376479facc3e94747d41d0d0f5238ffcb5";
+ };
+ }
+
+ {
+ name = "cli_table3___cli_table3_0.5.1.tgz";
+ path = fetchurl {
+ name = "cli_table3___cli_table3_0.5.1.tgz";
+ url = "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.5.1.tgz";
+ sha1 = "0252372d94dfc40dbd8df06005f48f31f656f202";
+ };
+ }
+
+ {
+ name = "cli_table___cli_table_0.3.1.tgz";
+ path = fetchurl {
+ name = "cli_table___cli_table_0.3.1.tgz";
+ url = "https://registry.yarnpkg.com/cli-table/-/cli-table-0.3.1.tgz";
+ sha1 = "f53b05266a8b1a0b934b3d0821e6e2dc5914ae23";
+ };
+ }
+
+ {
+ name = "cli_truncate___cli_truncate_0.2.1.tgz";
+ path = fetchurl {
+ name = "cli_truncate___cli_truncate_0.2.1.tgz";
+ url = "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz";
+ sha1 = "9f15cfbb0705005369216c626ac7d05ab90dd574";
+ };
+ }
+
+ {
+ name = "cli_width___cli_width_2.2.0.tgz";
+ path = fetchurl {
+ name = "cli_width___cli_width_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz";
+ sha1 = "ff19ede8a9a5e579324147b0c11f0fbcbabed639";
+ };
+ }
+
+ {
+ name = "cliui___cliui_4.1.0.tgz";
+ path = fetchurl {
+ name = "cliui___cliui_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz";
+ sha1 = "348422dbe82d800b3022eef4f6ac10bf2e4d1b49";
+ };
+ }
+
+ {
+ name = "clone___clone_1.0.4.tgz";
+ path = fetchurl {
+ name = "clone___clone_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz";
+ sha1 = "da309cc263df15994c688ca902179ca3c7cd7c7e";
+ };
+ }
+
+ {
+ name = "closest_to___closest_to_2.0.0.tgz";
+ path = fetchurl {
+ name = "closest_to___closest_to_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/closest-to/-/closest-to-2.0.0.tgz";
+ sha1 = "bb2a860edb7769b62d04821748ae50da24dbefaa";
+ };
+ }
+
+ {
+ name = "cls_bluebird___cls_bluebird_2.1.0.tgz";
+ path = fetchurl {
+ name = "cls_bluebird___cls_bluebird_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/cls-bluebird/-/cls-bluebird-2.1.0.tgz";
+ sha1 = "37ef1e080a8ffb55c2f4164f536f1919e7968aee";
+ };
+ }
+
+ {
+ name = "cluster_key_slot___cluster_key_slot_1.0.12.tgz";
+ path = fetchurl {
+ name = "cluster_key_slot___cluster_key_slot_1.0.12.tgz";
+ url = "https://registry.yarnpkg.com/cluster-key-slot/-/cluster-key-slot-1.0.12.tgz";
+ sha1 = "d5deff2a520717bc98313979b687309b2d368e29";
+ };
+ }
+
+ {
+ name = "cmd_shim___cmd_shim_2.0.2.tgz";
+ path = fetchurl {
+ name = "cmd_shim___cmd_shim_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-2.0.2.tgz";
+ sha1 = "6fcbda99483a8fd15d7d30a196ca69d688a2efdb";
+ };
+ }
+
+ {
+ name = "co_bluebird___co_bluebird_1.1.0.tgz";
+ path = fetchurl {
+ name = "co_bluebird___co_bluebird_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/co-bluebird/-/co-bluebird-1.1.0.tgz";
+ sha1 = "c8b9f3a9320a7ed30987dcca1a5c3cff59655c7c";
+ };
+ }
+
+ {
+ name = "co_use___co_use_1.1.0.tgz";
+ path = fetchurl {
+ name = "co_use___co_use_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/co-use/-/co-use-1.1.0.tgz";
+ sha1 = "c6bb3cdf10cb735ecaa9daeeda46d725c94a4e62";
+ };
+ }
+
+ {
+ name = "co___co_4.6.0.tgz";
+ path = fetchurl {
+ name = "co___co_4.6.0.tgz";
+ url = "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz";
+ sha1 = "6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184";
+ };
+ }
+
+ {
+ name = "code_point_at___code_point_at_1.1.0.tgz";
+ path = fetchurl {
+ name = "code_point_at___code_point_at_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz";
+ sha1 = "0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77";
+ };
+ }
+
+ {
+ name = "collection_visit___collection_visit_1.0.0.tgz";
+ path = fetchurl {
+ name = "collection_visit___collection_visit_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz";
+ sha1 = "4bc0373c164bc3291b4d368c829cf1a80a59dca0";
+ };
+ }
+
+ {
+ name = "color_convert___color_convert_1.9.3.tgz";
+ path = fetchurl {
+ name = "color_convert___color_convert_1.9.3.tgz";
+ url = "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz";
+ sha1 = "bb71850690e1f136567de629d2d5471deda4c1e8";
+ };
+ }
+
+ {
+ name = "color_name___color_name_1.1.3.tgz";
+ path = fetchurl {
+ name = "color_name___color_name_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz";
+ sha1 = "a7d0558bd89c42f795dd42328f740831ca53bc25";
+ };
+ }
+
+ {
+ name = "color_name___color_name_1.1.4.tgz";
+ path = fetchurl {
+ name = "color_name___color_name_1.1.4.tgz";
+ url = "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz";
+ sha1 = "c2a09a87acbde69543de6f63fa3995c826c536a2";
+ };
+ }
+
+ {
+ name = "color_string___color_string_1.5.3.tgz";
+ path = fetchurl {
+ name = "color_string___color_string_1.5.3.tgz";
+ url = "https://registry.yarnpkg.com/color-string/-/color-string-1.5.3.tgz";
+ sha1 = "c9bbc5f01b58b5492f3d6857459cb6590ce204cc";
+ };
+ }
+
+ {
+ name = "color___color_3.0.0.tgz";
+ path = fetchurl {
+ name = "color___color_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/color/-/color-3.0.0.tgz";
+ sha1 = "d920b4328d534a3ac8295d68f7bd4ba6c427be9a";
+ };
+ }
+
+ {
+ name = "color___color_3.1.0.tgz";
+ path = fetchurl {
+ name = "color___color_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/color/-/color-3.1.0.tgz";
+ sha1 = "d8e9fb096732875774c84bf922815df0308d0ffc";
+ };
+ }
+
+ {
+ name = "colornames___colornames_1.1.1.tgz";
+ path = fetchurl {
+ name = "colornames___colornames_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/colornames/-/colornames-1.1.1.tgz";
+ sha1 = "f8889030685c7c4ff9e2a559f5077eb76a816f96";
+ };
+ }
+
+ {
+ name = "colors___colors_1.0.3.tgz";
+ path = fetchurl {
+ name = "colors___colors_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz";
+ sha1 = "0433f44d809680fdeb60ed260f1b0c262e82a40b";
+ };
+ }
+
+ {
+ name = "colors___colors_1.3.2.tgz";
+ path = fetchurl {
+ name = "colors___colors_1.3.2.tgz";
+ url = "https://registry.yarnpkg.com/colors/-/colors-1.3.2.tgz";
+ sha1 = "2df8ff573dfbf255af562f8ce7181d6b971a359b";
+ };
+ }
+
+ {
+ name = "colorspace___colorspace_1.1.1.tgz";
+ path = fetchurl {
+ name = "colorspace___colorspace_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/colorspace/-/colorspace-1.1.1.tgz";
+ sha1 = "9ac2491e1bc6f8fb690e2176814f8d091636d972";
+ };
+ }
+
+ {
+ name = "columnify___columnify_1.5.4.tgz";
+ path = fetchurl {
+ name = "columnify___columnify_1.5.4.tgz";
+ url = "https://registry.yarnpkg.com/columnify/-/columnify-1.5.4.tgz";
+ sha1 = "4737ddf1c7b69a8a7c340570782e947eec8e78bb";
+ };
+ }
+
+ {
+ name = "combined_stream___combined_stream_1.0.7.tgz";
+ path = fetchurl {
+ name = "combined_stream___combined_stream_1.0.7.tgz";
+ url = "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.7.tgz";
+ sha1 = "2d1d24317afb8abe95d6d2c0b07b57813539d828";
+ };
+ }
+
+ {
+ name = "commander___commander_2.15.1.tgz";
+ path = fetchurl {
+ name = "commander___commander_2.15.1.tgz";
+ url = "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz";
+ sha1 = "df46e867d0fc2aec66a34662b406a9ccafff5b0f";
+ };
+ }
+
+ {
+ name = "commander___commander_2.9.0.tgz";
+ path = fetchurl {
+ name = "commander___commander_2.9.0.tgz";
+ url = "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz";
+ sha1 = "9c99094176e12240cb22d6c5146098400fe0f7d4";
+ };
+ }
+
+ {
+ name = "commander___commander_2.19.0.tgz";
+ path = fetchurl {
+ name = "commander___commander_2.19.0.tgz";
+ url = "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz";
+ sha1 = "f6198aa84e5b83c46054b94ddedbfed5ee9ff12a";
+ };
+ }
+
+ {
+ name = "compact2string___compact2string_1.4.0.tgz";
+ path = fetchurl {
+ name = "compact2string___compact2string_1.4.0.tgz";
+ url = "https://registry.yarnpkg.com/compact2string/-/compact2string-1.4.0.tgz";
+ sha1 = "a99cd96ea000525684b269683ae2222d6eea7b49";
+ };
+ }
+
+ {
+ name = "component_bind___component_bind_1.0.0.tgz";
+ path = fetchurl {
+ name = "component_bind___component_bind_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz";
+ sha1 = "00c608ab7dcd93897c0009651b1d3a8e1e73bbd1";
+ };
+ }
+
+ {
+ name = "component_emitter___component_emitter_1.1.2.tgz";
+ path = fetchurl {
+ name = "component_emitter___component_emitter_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.1.2.tgz";
+ sha1 = "296594f2753daa63996d2af08d15a95116c9aec3";
+ };
+ }
+
+ {
+ name = "component_emitter___component_emitter_1.2.1.tgz";
+ path = fetchurl {
+ name = "component_emitter___component_emitter_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz";
+ sha1 = "137918d6d78283f7df7a6b7c5a63e140e69425e6";
+ };
+ }
+
+ {
+ name = "component_inherit___component_inherit_0.0.3.tgz";
+ path = fetchurl {
+ name = "component_inherit___component_inherit_0.0.3.tgz";
+ url = "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz";
+ sha1 = "645fc4adf58b72b649d5cae65135619db26ff143";
+ };
+ }
+
+ {
+ name = "concat_map___concat_map_0.0.1.tgz";
+ path = fetchurl {
+ name = "concat_map___concat_map_0.0.1.tgz";
+ url = "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz";
+ sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b";
+ };
+ }
+
+ {
+ name = "concat_stream___concat_stream_1.6.2.tgz";
+ path = fetchurl {
+ name = "concat_stream___concat_stream_1.6.2.tgz";
+ url = "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz";
+ sha1 = "904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34";
+ };
+ }
+
+ {
+ name = "concurrently___concurrently_4.1.0.tgz";
+ path = fetchurl {
+ name = "concurrently___concurrently_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/concurrently/-/concurrently-4.1.0.tgz";
+ sha1 = "17fdf067da71210685d9ea554423ef239da30d33";
+ };
+ }
+
+ {
+ name = "config_chain___config_chain_1.1.12.tgz";
+ path = fetchurl {
+ name = "config_chain___config_chain_1.1.12.tgz";
+ url = "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz";
+ sha1 = "0fde8d091200eb5e808caf25fe618c02f48e4efa";
+ };
+ }
+
+ {
+ name = "config___config_3.0.0.tgz";
+ path = fetchurl {
+ name = "config___config_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/config/-/config-3.0.0.tgz";
+ sha1 = "a71cdbb22d225df9eff20b95178d65a63c452367";
+ };
+ }
+
+ {
+ name = "configstore___configstore_3.1.2.tgz";
+ path = fetchurl {
+ name = "configstore___configstore_3.1.2.tgz";
+ url = "https://registry.yarnpkg.com/configstore/-/configstore-3.1.2.tgz";
+ sha1 = "c6f25defaeef26df12dd33414b001fe81a543f8f";
+ };
+ }
+
+ {
+ name = "console_control_strings___console_control_strings_1.1.0.tgz";
+ path = fetchurl {
+ name = "console_control_strings___console_control_strings_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz";
+ sha1 = "3d7cf4464db6446ea644bf4b39507f9851008e8e";
+ };
+ }
+
+ {
+ name = "content_disposition___content_disposition_0.5.1.tgz";
+ path = fetchurl {
+ name = "content_disposition___content_disposition_0.5.1.tgz";
+ url = "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.1.tgz";
+ sha1 = "87476c6a67c8daa87e32e87616df883ba7fb071b";
+ };
+ }
+
+ {
+ name = "content_disposition___content_disposition_0.5.2.tgz";
+ path = fetchurl {
+ name = "content_disposition___content_disposition_0.5.2.tgz";
+ url = "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz";
+ sha1 = "0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4";
+ };
+ }
+
+ {
+ name = "content_security_policy_builder___content_security_policy_builder_2.0.0.tgz";
+ path = fetchurl {
+ name = "content_security_policy_builder___content_security_policy_builder_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/content-security-policy-builder/-/content-security-policy-builder-2.0.0.tgz";
+ sha1 = "8749a1d542fcbe82237281ea9f716ce68b394dd2";
+ };
+ }
+
+ {
+ name = "content_type___content_type_1.0.4.tgz";
+ path = fetchurl {
+ name = "content_type___content_type_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz";
+ sha1 = "e138cc75e040c727b1966fe5e5f8c9aee256fe3b";
+ };
+ }
+
+ {
+ name = "cookie_parser___cookie_parser_1.4.3.tgz";
+ path = fetchurl {
+ name = "cookie_parser___cookie_parser_1.4.3.tgz";
+ url = "https://registry.yarnpkg.com/cookie-parser/-/cookie-parser-1.4.3.tgz";
+ sha1 = "0fe31fa19d000b95f4aadf1f53fdc2b8a203baa5";
+ };
+ }
+
+ {
+ name = "cookie_signature___cookie_signature_1.0.6.tgz";
+ path = fetchurl {
+ name = "cookie_signature___cookie_signature_1.0.6.tgz";
+ url = "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz";
+ sha1 = "e303a882b342cc3ee8ca513a79999734dab3ae2c";
+ };
+ }
+
+ {
+ name = "cookie___cookie_0.1.5.tgz";
+ path = fetchurl {
+ name = "cookie___cookie_0.1.5.tgz";
+ url = "https://registry.yarnpkg.com/cookie/-/cookie-0.1.5.tgz";
+ sha1 = "6ab9948a4b1ae21952cd2588530a4722d4044d7c";
+ };
+ }
+
+ {
+ name = "cookie___cookie_0.3.1.tgz";
+ path = fetchurl {
+ name = "cookie___cookie_0.3.1.tgz";
+ url = "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz";
+ sha1 = "e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb";
+ };
+ }
+
+ {
+ name = "cookiejar___cookiejar_2.1.2.tgz";
+ path = fetchurl {
+ name = "cookiejar___cookiejar_2.1.2.tgz";
+ url = "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.2.tgz";
+ sha1 = "dd8a235530752f988f9a0844f3fc589e3111125c";
+ };
+ }
+
+ {
+ name = "copy_concurrently___copy_concurrently_1.0.5.tgz";
+ path = fetchurl {
+ name = "copy_concurrently___copy_concurrently_1.0.5.tgz";
+ url = "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz";
+ sha1 = "92297398cae34937fcafd6ec8139c18051f0b5e0";
+ };
+ }
+
+ {
+ name = "copy_descriptor___copy_descriptor_0.1.1.tgz";
+ path = fetchurl {
+ name = "copy_descriptor___copy_descriptor_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz";
+ sha1 = "676f6eb3c39997c2ee1ac3a924fd6124748f578d";
+ };
+ }
+
+ {
+ name = "core_js___core_js_2.5.7.tgz";
+ path = fetchurl {
+ name = "core_js___core_js_2.5.7.tgz";
+ url = "https://registry.yarnpkg.com/core-js/-/core-js-2.5.7.tgz";
+ sha1 = "f972608ff0cead68b841a16a932d0b183791814e";
+ };
+ }
+
+ {
+ name = "core_util_is___core_util_is_1.0.2.tgz";
+ path = fetchurl {
+ name = "core_util_is___core_util_is_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz";
+ sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7";
+ };
+ }
+
+ {
+ name = "cors___cors_2.8.5.tgz";
+ path = fetchurl {
+ name = "cors___cors_2.8.5.tgz";
+ url = "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz";
+ sha1 = "eac11da51592dd86b9f06f6e7ac293b3df875d29";
+ };
+ }
+
+ {
+ name = "cosmiconfig___cosmiconfig_5.0.6.tgz";
+ path = fetchurl {
+ name = "cosmiconfig___cosmiconfig_5.0.6.tgz";
+ url = "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.0.6.tgz";
+ sha1 = "dca6cf680a0bd03589aff684700858c81abeeb39";
+ };
+ }
+
+ {
+ name = "cosmiconfig___cosmiconfig_5.0.7.tgz";
+ path = fetchurl {
+ name = "cosmiconfig___cosmiconfig_5.0.7.tgz";
+ url = "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.0.7.tgz";
+ sha1 = "39826b292ee0d78eda137dfa3173bd1c21a43b04";
+ };
+ }
+
+ {
+ name = "create_error_class___create_error_class_3.0.2.tgz";
+ path = fetchurl {
+ name = "create_error_class___create_error_class_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz";
+ sha1 = "06be7abef947a3f14a30fd610671d401bca8b7b6";
+ };
+ }
+
+ {
+ name = "create_torrent___create_torrent_3.33.0.tgz";
+ path = fetchurl {
+ name = "create_torrent___create_torrent_3.33.0.tgz";
+ url = "https://registry.yarnpkg.com/create-torrent/-/create-torrent-3.33.0.tgz";
+ sha1 = "8a7a2aa2213a799c266c40e4c12f1468ede25105";
+ };
+ }
+
+ {
+ name = "cron_parser___cron_parser_2.7.3.tgz";
+ path = fetchurl {
+ name = "cron_parser___cron_parser_2.7.3.tgz";
+ url = "https://registry.yarnpkg.com/cron-parser/-/cron-parser-2.7.3.tgz";
+ sha1 = "12603f89f5375af353a9357be2543d3172eac651";
+ };
+ }
+
+ {
+ name = "cross_spawn___cross_spawn_5.1.0.tgz";
+ path = fetchurl {
+ name = "cross_spawn___cross_spawn_5.1.0.tgz";
+ url = "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz";
+ sha1 = "e8bd0efee58fcff6f8f94510a0a554bbfa235449";
+ };
+ }
+
+ {
+ name = "cross_spawn___cross_spawn_6.0.5.tgz";
+ path = fetchurl {
+ name = "cross_spawn___cross_spawn_6.0.5.tgz";
+ url = "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz";
+ sha1 = "4a5ec7c64dfae22c3a14124dbacdee846d80cbc4";
+ };
+ }
+
+ {
+ name = "crypt___crypt_0.0.2.tgz";
+ path = fetchurl {
+ name = "crypt___crypt_0.0.2.tgz";
+ url = "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz";
+ sha1 = "88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b";
+ };
+ }
+
+ {
+ name = "crypto_random_string___crypto_random_string_1.0.0.tgz";
+ path = fetchurl {
+ name = "crypto_random_string___crypto_random_string_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz";
+ sha1 = "a230f64f568310e1498009940790ec99545bca7e";
+ };
+ }
+
+ {
+ name = "cycle___cycle_1.0.3.tgz";
+ path = fetchurl {
+ name = "cycle___cycle_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/cycle/-/cycle-1.0.3.tgz";
+ sha1 = "21e80b2be8580f98b468f379430662b046c34ad2";
+ };
+ }
+
+ {
+ name = "cyclist___cyclist_0.2.2.tgz";
+ path = fetchurl {
+ name = "cyclist___cyclist_0.2.2.tgz";
+ url = "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz";
+ sha1 = "1b33792e11e914a2fd6d6ed6447464444e5fa640";
+ };
+ }
+
+ {
+ name = "d___d_1.0.0.tgz";
+ path = fetchurl {
+ name = "d___d_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz";
+ sha1 = "754bb5bfe55451da69a58b94d45f4c5b0462d58f";
+ };
+ }
+
+ {
+ name = "dashdash___dashdash_1.14.1.tgz";
+ path = fetchurl {
+ name = "dashdash___dashdash_1.14.1.tgz";
+ url = "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz";
+ sha1 = "853cfa0f7cbe2fed5de20326b8dd581035f6e2f0";
+ };
+ }
+
+ {
+ name = "dasherize___dasherize_2.0.0.tgz";
+ path = fetchurl {
+ name = "dasherize___dasherize_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/dasherize/-/dasherize-2.0.0.tgz";
+ sha1 = "6d809c9cd0cf7bb8952d80fc84fa13d47ddb1308";
+ };
+ }
+
+ {
+ name = "date_fns___date_fns_1.29.0.tgz";
+ path = fetchurl {
+ name = "date_fns___date_fns_1.29.0.tgz";
+ url = "https://registry.yarnpkg.com/date-fns/-/date-fns-1.29.0.tgz";
+ sha1 = "12e609cdcb935127311d04d33334e2960a2a54e6";
+ };
+ }
+
+ {
+ name = "deasync___deasync_0.1.14.tgz";
+ path = fetchurl {
+ name = "deasync___deasync_0.1.14.tgz";
+ url = "https://registry.yarnpkg.com/deasync/-/deasync-0.1.14.tgz";
+ sha1 = "232ea2252b443948cad033d792eb3b24b0a3d828";
+ };
+ }
+
+ {
+ name = "debug___debug_2.2.0.tgz";
+ path = fetchurl {
+ name = "debug___debug_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz";
+ sha1 = "f87057e995b1a1f6ae6a4960664137bc56f039da";
+ };
+ }
+
+ {
+ name = "debug___debug_2.3.3.tgz";
+ path = fetchurl {
+ name = "debug___debug_2.3.3.tgz";
+ url = "https://registry.yarnpkg.com/debug/-/debug-2.3.3.tgz";
+ sha1 = "40c453e67e6e13c901ddec317af8986cda9eff8c";
+ };
+ }
+
+ {
+ name = "debug___debug_2.6.9.tgz";
+ path = fetchurl {
+ name = "debug___debug_2.6.9.tgz";
+ url = "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz";
+ sha1 = "5d128515df134ff327e90a4c93f4e077a536341f";
+ };
+ }
+
+ {
+ name = "debug___debug_3.1.0.tgz";
+ path = fetchurl {
+ name = "debug___debug_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz";
+ sha1 = "5bb5a0672628b64149566ba16819e61518c67261";
+ };
+ }
+
+ {
+ name = "debug___debug_3.2.6.tgz";
+ path = fetchurl {
+ name = "debug___debug_3.2.6.tgz";
+ url = "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz";
+ sha1 = "e83d17de16d8a7efb7717edbe5fb10135eee629b";
+ };
+ }
+
+ {
+ name = "debug___debug_4.1.0.tgz";
+ path = fetchurl {
+ name = "debug___debug_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/debug/-/debug-4.1.0.tgz";
+ sha1 = "373687bffa678b38b1cd91f861b63850035ddc87";
+ };
+ }
+
+ {
+ name = "debug___debug_4.1.1.tgz";
+ path = fetchurl {
+ name = "debug___debug_4.1.1.tgz";
+ url = "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz";
+ sha1 = "3b72260255109c6b589cee050f1d516139664791";
+ };
+ }
+
+ {
+ name = "debuglog___debuglog_1.0.1.tgz";
+ path = fetchurl {
+ name = "debuglog___debuglog_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz";
+ sha1 = "aa24ffb9ac3df9a2351837cfb2d279360cd78492";
+ };
+ }
+
+ {
+ name = "decamelize___decamelize_1.2.0.tgz";
+ path = fetchurl {
+ name = "decamelize___decamelize_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz";
+ sha1 = "f6534d15148269b20352e7bee26f501f9a191290";
+ };
+ }
+
+ {
+ name = "decode_uri_component___decode_uri_component_0.2.0.tgz";
+ path = fetchurl {
+ name = "decode_uri_component___decode_uri_component_0.2.0.tgz";
+ url = "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz";
+ sha1 = "eb3913333458775cb84cd1a1fae062106bb87545";
+ };
+ }
+
+ {
+ name = "decompress_response___decompress_response_3.3.0.tgz";
+ path = fetchurl {
+ name = "decompress_response___decompress_response_3.3.0.tgz";
+ url = "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz";
+ sha1 = "80a4dd323748384bfa248083622aedec982adff3";
+ };
+ }
+
+ {
+ name = "dedent___dedent_0.7.0.tgz";
+ path = fetchurl {
+ name = "dedent___dedent_0.7.0.tgz";
+ url = "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz";
+ sha1 = "2495ddbaf6eb874abb0e1be9df22d2e5a544326c";
+ };
+ }
+
+ {
+ name = "deep_eql___deep_eql_0.1.3.tgz";
+ path = fetchurl {
+ name = "deep_eql___deep_eql_0.1.3.tgz";
+ url = "https://registry.yarnpkg.com/deep-eql/-/deep-eql-0.1.3.tgz";
+ sha1 = "ef558acab8de25206cd713906d74e56930eb69f2";
+ };
+ }
+
+ {
+ name = "deep_eql___deep_eql_3.0.1.tgz";
+ path = fetchurl {
+ name = "deep_eql___deep_eql_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz";
+ sha1 = "dfc9404400ad1c8fe023e7da1df1c147c4b444df";
+ };
+ }
+
+ {
+ name = "deep_equal___deep_equal_0.2.2.tgz";
+ path = fetchurl {
+ name = "deep_equal___deep_equal_0.2.2.tgz";
+ url = "https://registry.yarnpkg.com/deep-equal/-/deep-equal-0.2.2.tgz";
+ sha1 = "84b745896f34c684e98f2ce0e42abaf43bba017d";
+ };
+ }
+
+ {
+ name = "deep_extend___deep_extend_0.6.0.tgz";
+ path = fetchurl {
+ name = "deep_extend___deep_extend_0.6.0.tgz";
+ url = "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz";
+ sha1 = "c4fa7c95404a17a9c3e8ca7e1537312b736330ac";
+ };
+ }
+
+ {
+ name = "deep_is___deep_is_0.1.3.tgz";
+ path = fetchurl {
+ name = "deep_is___deep_is_0.1.3.tgz";
+ url = "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz";
+ sha1 = "b369d6fb5dbc13eecf524f91b070feedc357cf34";
+ };
+ }
+
+ {
+ name = "deep_object_diff___deep_object_diff_1.1.0.tgz";
+ path = fetchurl {
+ name = "deep_object_diff___deep_object_diff_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/deep-object-diff/-/deep-object-diff-1.1.0.tgz";
+ sha1 = "d6fabf476c2ed1751fc94d5ca693d2ed8c18bc5a";
+ };
+ }
+
+ {
+ name = "defaults___defaults_1.0.3.tgz";
+ path = fetchurl {
+ name = "defaults___defaults_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz";
+ sha1 = "c656051e9817d9ff08ed881477f3fe4019f3ef7d";
+ };
+ }
+
+ {
+ name = "define_properties___define_properties_1.1.3.tgz";
+ path = fetchurl {
+ name = "define_properties___define_properties_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz";
+ sha1 = "cf88da6cbee26fe6db7094f61d870cbd84cee9f1";
+ };
+ }
+
+ {
+ name = "define_property___define_property_0.2.5.tgz";
+ path = fetchurl {
+ name = "define_property___define_property_0.2.5.tgz";
+ url = "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz";
+ sha1 = "c35b1ef918ec3c990f9a5bc57be04aacec5c8116";
+ };
+ }
+
+ {
+ name = "define_property___define_property_1.0.0.tgz";
+ path = fetchurl {
+ name = "define_property___define_property_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz";
+ sha1 = "769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6";
+ };
+ }
+
+ {
+ name = "define_property___define_property_2.0.2.tgz";
+ path = fetchurl {
+ name = "define_property___define_property_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz";
+ sha1 = "d459689e8d654ba77e02a817f8710d702cb16e9d";
+ };
+ }
+
+ {
+ name = "defined___defined_1.0.0.tgz";
+ path = fetchurl {
+ name = "defined___defined_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz";
+ sha1 = "c98d9bcef75674188e110969151199e39b1fa693";
+ };
+ }
+
+ {
+ name = "del___del_3.0.0.tgz";
+ path = fetchurl {
+ name = "del___del_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/del/-/del-3.0.0.tgz";
+ sha1 = "53ecf699ffcbcb39637691ab13baf160819766e5";
+ };
+ }
+
+ {
+ name = "delayed_stream___delayed_stream_1.0.0.tgz";
+ path = fetchurl {
+ name = "delayed_stream___delayed_stream_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz";
+ sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619";
+ };
+ }
+
+ {
+ name = "delegates___delegates_1.0.0.tgz";
+ path = fetchurl {
+ name = "delegates___delegates_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz";
+ sha1 = "84c6e159b81904fdca59a0ef44cd870d31250f9a";
+ };
+ }
+
+ {
+ name = "denque___denque_1.4.0.tgz";
+ path = fetchurl {
+ name = "denque___denque_1.4.0.tgz";
+ url = "https://registry.yarnpkg.com/denque/-/denque-1.4.0.tgz";
+ sha1 = "79e2f0490195502107f24d9553f374837dabc916";
+ };
+ }
+
+ {
+ name = "depd___depd_1.1.2.tgz";
+ path = fetchurl {
+ name = "depd___depd_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz";
+ sha1 = "9bcd52e14c097763e749b274c4346ed2e560b5a9";
+ };
+ }
+
+ {
+ name = "descrevit___descrevit_0.1.1.tgz";
+ path = fetchurl {
+ name = "descrevit___descrevit_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/descrevit/-/descrevit-0.1.1.tgz";
+ sha1 = "c0f5840de0a0f7b1b8b4078569b173327947d5da";
+ };
+ }
+
+ {
+ name = "destroy___destroy_1.0.4.tgz";
+ path = fetchurl {
+ name = "destroy___destroy_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz";
+ sha1 = "978857442c44749e4206613e37946205826abd80";
+ };
+ }
+
+ {
+ name = "detect_indent___detect_indent_5.0.0.tgz";
+ path = fetchurl {
+ name = "detect_indent___detect_indent_5.0.0.tgz";
+ url = "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz";
+ sha1 = "3871cc0a6a002e8c3e5b3cf7f336264675f06b9d";
+ };
+ }
+
+ {
+ name = "detect_libc___detect_libc_1.0.3.tgz";
+ path = fetchurl {
+ name = "detect_libc___detect_libc_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz";
+ sha1 = "fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b";
+ };
+ }
+
+ {
+ name = "detect_newline___detect_newline_2.1.0.tgz";
+ path = fetchurl {
+ name = "detect_newline___detect_newline_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz";
+ sha1 = "f41f1c10be4b00e87b5f13da680759f2c5bfd3e2";
+ };
+ }
+
+ {
+ name = "dezalgo___dezalgo_1.0.3.tgz";
+ path = fetchurl {
+ name = "dezalgo___dezalgo_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.3.tgz";
+ sha1 = "7f742de066fc748bc8db820569dddce49bf0d456";
+ };
+ }
+
+ {
+ name = "diagnostics___diagnostics_1.1.1.tgz";
+ path = fetchurl {
+ name = "diagnostics___diagnostics_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/diagnostics/-/diagnostics-1.1.1.tgz";
+ sha1 = "cab6ac33df70c9d9a727490ae43ac995a769b22a";
+ };
+ }
+
+ {
+ name = "dicer___dicer_0.2.5.tgz";
+ path = fetchurl {
+ name = "dicer___dicer_0.2.5.tgz";
+ url = "https://registry.yarnpkg.com/dicer/-/dicer-0.2.5.tgz";
+ sha1 = "5996c086bb33218c812c090bddc09cd12facb70f";
+ };
+ }
+
+ {
+ name = "diff___diff_3.5.0.tgz";
+ path = fetchurl {
+ name = "diff___diff_3.5.0.tgz";
+ url = "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz";
+ sha1 = "800c0dd1e0a8bfbc95835c202ad220fe317e5a12";
+ };
+ }
+
+ {
+ name = "dns_prefetch_control___dns_prefetch_control_0.1.0.tgz";
+ path = fetchurl {
+ name = "dns_prefetch_control___dns_prefetch_control_0.1.0.tgz";
+ url = "https://registry.yarnpkg.com/dns-prefetch-control/-/dns-prefetch-control-0.1.0.tgz";
+ sha1 = "60ddb457774e178f1f9415f0cabb0e85b0b300b2";
+ };
+ }
+
+ {
+ name = "docopt___docopt_0.6.2.tgz";
+ path = fetchurl {
+ name = "docopt___docopt_0.6.2.tgz";
+ url = "https://registry.yarnpkg.com/docopt/-/docopt-0.6.2.tgz";
+ sha1 = "b28e9e2220da5ec49f7ea5bb24a47787405eeb11";
+ };
+ }
+
+ {
+ name = "doctrine___doctrine_0.7.2.tgz";
+ path = fetchurl {
+ name = "doctrine___doctrine_0.7.2.tgz";
+ url = "https://registry.yarnpkg.com/doctrine/-/doctrine-0.7.2.tgz";
+ sha1 = "7cb860359ba3be90e040b26b729ce4bfa654c523";
+ };
+ }
+
+ {
+ name = "doctrine___doctrine_1.5.0.tgz";
+ path = fetchurl {
+ name = "doctrine___doctrine_1.5.0.tgz";
+ url = "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz";
+ sha1 = "379dce730f6166f76cefa4e6707a159b02c5a6fa";
+ };
+ }
+
+ {
+ name = "dont_sniff_mimetype___dont_sniff_mimetype_1.0.0.tgz";
+ path = fetchurl {
+ name = "dont_sniff_mimetype___dont_sniff_mimetype_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/dont-sniff-mimetype/-/dont-sniff-mimetype-1.0.0.tgz";
+ sha1 = "5932890dc9f4e2f19e5eb02a20026e5e5efc8f58";
+ };
+ }
+
+ {
+ name = "dot_json___dot_json_1.0.4.tgz";
+ path = fetchurl {
+ name = "dot_json___dot_json_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/dot-json/-/dot-json-1.0.4.tgz";
+ sha1 = "b5c5818eb526a7917ac02df017fe9fba37b11195";
+ };
+ }
+
+ {
+ name = "dot_prop___dot_prop_4.2.0.tgz";
+ path = fetchurl {
+ name = "dot_prop___dot_prop_4.2.0.tgz";
+ url = "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz";
+ sha1 = "1f19e0c2e1aa0e32797c49799f2837ac6af69c57";
+ };
+ }
+
+ {
+ name = "dotenv___dotenv_5.0.1.tgz";
+ path = fetchurl {
+ name = "dotenv___dotenv_5.0.1.tgz";
+ url = "https://registry.yarnpkg.com/dotenv/-/dotenv-5.0.1.tgz";
+ sha1 = "a5317459bd3d79ab88cff6e44057a6a3fbb1fcef";
+ };
+ }
+
+ {
+ name = "dottie___dottie_2.0.1.tgz";
+ path = fetchurl {
+ name = "dottie___dottie_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/dottie/-/dottie-2.0.1.tgz";
+ sha1 = "697ad9d72004db7574d21f892466a3c285893659";
+ };
+ }
+
+ {
+ name = "double_ended_queue___double_ended_queue_2.1.0_0.tgz";
+ path = fetchurl {
+ name = "double_ended_queue___double_ended_queue_2.1.0_0.tgz";
+ url = "https://registry.yarnpkg.com/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz";
+ sha1 = "103d3527fd31528f40188130c841efdd78264e5c";
+ };
+ }
+
+ {
+ name = "dtrace_provider___dtrace_provider_0.8.7.tgz";
+ path = fetchurl {
+ name = "dtrace_provider___dtrace_provider_0.8.7.tgz";
+ url = "https://registry.yarnpkg.com/dtrace-provider/-/dtrace-provider-0.8.7.tgz";
+ sha1 = "dc939b4d3e0620cfe0c1cd803d0d2d7ed04ffd04";
+ };
+ }
+
+ {
+ name = "duplexer3___duplexer3_0.1.4.tgz";
+ path = fetchurl {
+ name = "duplexer3___duplexer3_0.1.4.tgz";
+ url = "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz";
+ sha1 = "ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2";
+ };
+ }
+
+ {
+ name = "duplexify___duplexify_3.6.1.tgz";
+ path = fetchurl {
+ name = "duplexify___duplexify_3.6.1.tgz";
+ url = "https://registry.yarnpkg.com/duplexify/-/duplexify-3.6.1.tgz";
+ sha1 = "b1a7a29c4abfd639585efaecce80d666b1e34125";
+ };
+ }
+
+ {
+ name = "ecc_jsbn___ecc_jsbn_0.1.2.tgz";
+ path = fetchurl {
+ name = "ecc_jsbn___ecc_jsbn_0.1.2.tgz";
+ url = "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz";
+ sha1 = "3a83a904e54353287874c564b7549386849a98c9";
+ };
+ }
+
+ {
+ name = "ecdsa_sig_formatter___ecdsa_sig_formatter_1.0.10.tgz";
+ path = fetchurl {
+ name = "ecdsa_sig_formatter___ecdsa_sig_formatter_1.0.10.tgz";
+ url = "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.10.tgz";
+ sha1 = "1c595000f04a8897dfb85000892a0f4c33af86c3";
+ };
+ }
+
+ {
+ name = "editor___editor_1.0.0.tgz";
+ path = fetchurl {
+ name = "editor___editor_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/editor/-/editor-1.0.0.tgz";
+ sha1 = "60c7f87bd62bcc6a894fa8ccd6afb7823a24f742";
+ };
+ }
+
+ {
+ name = "ee_first___ee_first_1.1.1.tgz";
+ path = fetchurl {
+ name = "ee_first___ee_first_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz";
+ sha1 = "590c61156b0ae2f4f0255732a158b266bc56b21d";
+ };
+ }
+
+ {
+ name = "elegant_spinner___elegant_spinner_1.0.1.tgz";
+ path = fetchurl {
+ name = "elegant_spinner___elegant_spinner_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz";
+ sha1 = "db043521c95d7e303fd8f345bedc3349cfb0729e";
+ };
+ }
+
+ {
+ name = "elliptic___elliptic_3.0.3.tgz";
+ path = fetchurl {
+ name = "elliptic___elliptic_3.0.3.tgz";
+ url = "https://registry.yarnpkg.com/elliptic/-/elliptic-3.0.3.tgz";
+ sha1 = "865c9b420bfbe55006b9f969f97a0d2c44966595";
+ };
+ }
+
+ {
+ name = "enabled___enabled_1.0.2.tgz";
+ path = fetchurl {
+ name = "enabled___enabled_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/enabled/-/enabled-1.0.2.tgz";
+ sha1 = "965f6513d2c2d1c5f4652b64a2e3396467fc2f93";
+ };
+ }
+
+ {
+ name = "encodeurl___encodeurl_1.0.2.tgz";
+ path = fetchurl {
+ name = "encodeurl___encodeurl_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz";
+ sha1 = "ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59";
+ };
+ }
+
+ {
+ name = "encoding___encoding_0.1.12.tgz";
+ path = fetchurl {
+ name = "encoding___encoding_0.1.12.tgz";
+ url = "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz";
+ sha1 = "538b66f3ee62cd1ab51ec323829d1f9480c74beb";
+ };
+ }
+
+ {
+ name = "end_of_stream___end_of_stream_1.4.1.tgz";
+ path = fetchurl {
+ name = "end_of_stream___end_of_stream_1.4.1.tgz";
+ url = "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz";
+ sha1 = "ed29634d19baba463b6ce6b80a37213eab71ec43";
+ };
+ }
+
+ {
+ name = "engine.io_client___engine.io_client_1.8.3.tgz";
+ path = fetchurl {
+ name = "engine.io_client___engine.io_client_1.8.3.tgz";
+ url = "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-1.8.3.tgz";
+ sha1 = "1798ed93451246453d4c6f635d7a201fe940d5ab";
+ };
+ }
+
+ {
+ name = "engine.io_client___engine.io_client_3.3.1.tgz";
+ path = fetchurl {
+ name = "engine.io_client___engine.io_client_3.3.1.tgz";
+ url = "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.3.1.tgz";
+ sha1 = "afedb4a07b2ea48b7190c3136bfea98fdd4f0f03";
+ };
+ }
+
+ {
+ name = "engine.io_parser___engine.io_parser_1.3.2.tgz";
+ path = fetchurl {
+ name = "engine.io_parser___engine.io_parser_1.3.2.tgz";
+ url = "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-1.3.2.tgz";
+ sha1 = "937b079f0007d0893ec56d46cb220b8cb435220a";
+ };
+ }
+
+ {
+ name = "engine.io_parser___engine.io_parser_2.1.3.tgz";
+ path = fetchurl {
+ name = "engine.io_parser___engine.io_parser_2.1.3.tgz";
+ url = "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.1.3.tgz";
+ sha1 = "757ab970fbf2dfb32c7b74b033216d5739ef79a6";
+ };
+ }
+
+ {
+ name = "engine.io___engine.io_1.8.3.tgz";
+ path = fetchurl {
+ name = "engine.io___engine.io_1.8.3.tgz";
+ url = "https://registry.yarnpkg.com/engine.io/-/engine.io-1.8.3.tgz";
+ sha1 = "8de7f97895d20d39b85f88eeee777b2bd42b13d4";
+ };
+ }
+
+ {
+ name = "engine.io___engine.io_3.3.2.tgz";
+ path = fetchurl {
+ name = "engine.io___engine.io_3.3.2.tgz";
+ url = "https://registry.yarnpkg.com/engine.io/-/engine.io-3.3.2.tgz";
+ sha1 = "18cbc8b6f36e9461c5c0f81df2b830de16058a59";
+ };
+ }
+
+ {
+ name = "env_variable___env_variable_0.0.5.tgz";
+ path = fetchurl {
+ name = "env_variable___env_variable_0.0.5.tgz";
+ url = "https://registry.yarnpkg.com/env-variable/-/env-variable-0.0.5.tgz";
+ sha1 = "913dd830bef11e96a039c038d4130604eba37f88";
+ };
+ }
+
+ {
+ name = "err_code___err_code_1.1.2.tgz";
+ path = fetchurl {
+ name = "err_code___err_code_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/err-code/-/err-code-1.1.2.tgz";
+ sha1 = "06e0116d3028f6aef4806849eb0ea6a748ae6960";
+ };
+ }
+
+ {
+ name = "errno___errno_0.1.7.tgz";
+ path = fetchurl {
+ name = "errno___errno_0.1.7.tgz";
+ url = "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz";
+ sha1 = "4684d71779ad39af177e3f007996f7c67c852618";
+ };
+ }
+
+ {
+ name = "error_ex___error_ex_1.3.2.tgz";
+ path = fetchurl {
+ name = "error_ex___error_ex_1.3.2.tgz";
+ url = "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz";
+ sha1 = "b4ac40648107fdcdcfae242f428bea8a14d4f1bf";
+ };
+ }
+
+ {
+ name = "es5_ext___es5_ext_0.10.46.tgz";
+ path = fetchurl {
+ name = "es5_ext___es5_ext_0.10.46.tgz";
+ url = "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.46.tgz";
+ sha1 = "efd99f67c5a7ec789baa3daa7f79870388f7f572";
+ };
+ }
+
+ {
+ name = "es6_iterator___es6_iterator_2.0.3.tgz";
+ path = fetchurl {
+ name = "es6_iterator___es6_iterator_2.0.3.tgz";
+ url = "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz";
+ sha1 = "a7de889141a05a94b0854403b2d0a0fbfa98f3b7";
+ };
+ }
+
+ {
+ name = "es6_map___es6_map_0.1.5.tgz";
+ path = fetchurl {
+ name = "es6_map___es6_map_0.1.5.tgz";
+ url = "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz";
+ sha1 = "9136e0503dcc06a301690f0bb14ff4e364e949f0";
+ };
+ }
+
+ {
+ name = "es6_promise___es6_promise_4.2.5.tgz";
+ path = fetchurl {
+ name = "es6_promise___es6_promise_4.2.5.tgz";
+ url = "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.5.tgz";
+ sha1 = "da6d0d5692efb461e082c14817fe2427d8f5d054";
+ };
+ }
+
+ {
+ name = "es6_promisify___es6_promisify_5.0.0.tgz";
+ path = fetchurl {
+ name = "es6_promisify___es6_promisify_5.0.0.tgz";
+ url = "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz";
+ sha1 = "5109d62f3e56ea967c4b63505aef08291c8a5203";
+ };
+ }
+
+ {
+ name = "es6_promisify___es6_promisify_6.0.1.tgz";
+ path = fetchurl {
+ name = "es6_promisify___es6_promisify_6.0.1.tgz";
+ url = "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-6.0.1.tgz";
+ sha1 = "6edaa45f3bd570ffe08febce66f7116be4b1cdb6";
+ };
+ }
+
+ {
+ name = "es6_set___es6_set_0.1.5.tgz";
+ path = fetchurl {
+ name = "es6_set___es6_set_0.1.5.tgz";
+ url = "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz";
+ sha1 = "d2b3ec5d4d800ced818db538d28974db0a73ccb1";
+ };
+ }
+
+ {
+ name = "es6_shim___es6_shim_0.35.3.tgz";
+ path = fetchurl {
+ name = "es6_shim___es6_shim_0.35.3.tgz";
+ url = "https://registry.yarnpkg.com/es6-shim/-/es6-shim-0.35.3.tgz";
+ sha1 = "9bfb7363feffff87a6cdb6cd93e405ec3c4b6f26";
+ };
+ }
+
+ {
+ name = "es6_symbol___es6_symbol_3.1.1.tgz";
+ path = fetchurl {
+ name = "es6_symbol___es6_symbol_3.1.1.tgz";
+ url = "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz";
+ sha1 = "bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77";
+ };
+ }
+
+ {
+ name = "es6_weak_map___es6_weak_map_2.0.2.tgz";
+ path = fetchurl {
+ name = "es6_weak_map___es6_weak_map_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz";
+ sha1 = "5e3ab32251ffd1538a1f8e5ffa1357772f92d96f";
+ };
+ }
+
+ {
+ name = "escape_html___escape_html_1.0.3.tgz";
+ path = fetchurl {
+ name = "escape_html___escape_html_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz";
+ sha1 = "0258eae4d3d0c0974de1c169188ef0051d1d1988";
+ };
+ }
+
+ {
+ name = "escape_string_regexp___escape_string_regexp_1.0.5.tgz";
+ path = fetchurl {
+ name = "escape_string_regexp___escape_string_regexp_1.0.5.tgz";
+ url = "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz";
+ sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4";
+ };
+ }
+
+ {
+ name = "escope___escope_3.6.0.tgz";
+ path = fetchurl {
+ name = "escope___escope_3.6.0.tgz";
+ url = "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz";
+ sha1 = "e01975e812781a163a6dadfdd80398dc64c889c3";
+ };
+ }
+
+ {
+ name = "eslint___eslint_2.13.1.tgz";
+ path = fetchurl {
+ name = "eslint___eslint_2.13.1.tgz";
+ url = "https://registry.yarnpkg.com/eslint/-/eslint-2.13.1.tgz";
+ sha1 = "e4cc8fa0f009fb829aaae23855a29360be1f6c11";
+ };
+ }
+
+ {
+ name = "espree___espree_3.5.4.tgz";
+ path = fetchurl {
+ name = "espree___espree_3.5.4.tgz";
+ url = "https://registry.yarnpkg.com/espree/-/espree-3.5.4.tgz";
+ sha1 = "b0f447187c8a8bed944b815a660bddf5deb5d1a7";
+ };
+ }
+
+ {
+ name = "esprima___esprima_4.0.1.tgz";
+ path = fetchurl {
+ name = "esprima___esprima_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz";
+ sha1 = "13b04cdb3e6c5d19df91ab6987a8695619b0aa71";
+ };
+ }
+
+ {
+ name = "esrecurse___esrecurse_4.2.1.tgz";
+ path = fetchurl {
+ name = "esrecurse___esrecurse_4.2.1.tgz";
+ url = "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz";
+ sha1 = "007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf";
+ };
+ }
+
+ {
+ name = "estraverse___estraverse_4.2.0.tgz";
+ path = fetchurl {
+ name = "estraverse___estraverse_4.2.0.tgz";
+ url = "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz";
+ sha1 = "0dee3fed31fcd469618ce7342099fc1afa0bdb13";
+ };
+ }
+
+ {
+ name = "esutils___esutils_1.1.6.tgz";
+ path = fetchurl {
+ name = "esutils___esutils_1.1.6.tgz";
+ url = "https://registry.yarnpkg.com/esutils/-/esutils-1.1.6.tgz";
+ sha1 = "c01ccaa9ae4b897c6d0c3e210ae52f3c7a844375";
+ };
+ }
+
+ {
+ name = "esutils___esutils_2.0.2.tgz";
+ path = fetchurl {
+ name = "esutils___esutils_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz";
+ sha1 = "0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b";
+ };
+ }
+
+ {
+ name = "etag___etag_1.7.0.tgz";
+ path = fetchurl {
+ name = "etag___etag_1.7.0.tgz";
+ url = "https://registry.yarnpkg.com/etag/-/etag-1.7.0.tgz";
+ sha1 = "03d30b5f67dd6e632d2945d30d6652731a34d5d8";
+ };
+ }
+
+ {
+ name = "etag___etag_1.8.1.tgz";
+ path = fetchurl {
+ name = "etag___etag_1.8.1.tgz";
+ url = "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz";
+ sha1 = "41ae2eeb65efa62268aebfea83ac7d79299b0887";
+ };
+ }
+
+ {
+ name = "event_emitter___event_emitter_0.3.5.tgz";
+ path = fetchurl {
+ name = "event_emitter___event_emitter_0.3.5.tgz";
+ url = "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz";
+ sha1 = "df8c69eef1647923c7157b9ce83840610b02cc39";
+ };
+ }
+
+ {
+ name = "execa___execa_0.10.0.tgz";
+ path = fetchurl {
+ name = "execa___execa_0.10.0.tgz";
+ url = "https://registry.yarnpkg.com/execa/-/execa-0.10.0.tgz";
+ sha1 = "ff456a8f53f90f8eccc71a96d11bdfc7f082cb50";
+ };
+ }
+
+ {
+ name = "execa___execa_0.7.0.tgz";
+ path = fetchurl {
+ name = "execa___execa_0.7.0.tgz";
+ url = "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz";
+ sha1 = "944becd34cc41ee32a63a9faf27ad5a65fc59777";
+ };
+ }
+
+ {
+ name = "execa___execa_1.0.0.tgz";
+ path = fetchurl {
+ name = "execa___execa_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz";
+ sha1 = "c6236a5bb4df6d6f15e88e7f017798216749ddd8";
+ };
+ }
+
+ {
+ name = "exit_hook___exit_hook_1.1.1.tgz";
+ path = fetchurl {
+ name = "exit_hook___exit_hook_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz";
+ sha1 = "f05ca233b48c05d54fff07765df8507e95c02ff8";
+ };
+ }
+
+ {
+ name = "expand_brackets___expand_brackets_2.1.4.tgz";
+ path = fetchurl {
+ name = "expand_brackets___expand_brackets_2.1.4.tgz";
+ url = "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz";
+ sha1 = "b77735e315ce30f6b6eff0f83b04151a22449622";
+ };
+ }
+
+ {
+ name = "expand_template___expand_template_2.0.3.tgz";
+ path = fetchurl {
+ name = "expand_template___expand_template_2.0.3.tgz";
+ url = "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz";
+ sha1 = "6e14b3fcee0f3a6340ecb57d2e8918692052a47c";
+ };
+ }
+
+ {
+ name = "expect_ct___expect_ct_0.1.1.tgz";
+ path = fetchurl {
+ name = "expect_ct___expect_ct_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/expect-ct/-/expect-ct-0.1.1.tgz";
+ sha1 = "de84476a2dbcb85000d5903737e9bc8a5ba7b897";
+ };
+ }
+
+ {
+ name = "express_oauth_server___express_oauth_server_2.0.0.tgz";
+ path = fetchurl {
+ name = "express_oauth_server___express_oauth_server_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/express-oauth-server/-/express-oauth-server-2.0.0.tgz";
+ sha1 = "57b08665c1201532f52c4c02f19709238b99a48d";
+ };
+ }
+
+ {
+ name = "express_rate_limit___express_rate_limit_3.3.2.tgz";
+ path = fetchurl {
+ name = "express_rate_limit___express_rate_limit_3.3.2.tgz";
+ url = "https://registry.yarnpkg.com/express-rate-limit/-/express-rate-limit-3.3.2.tgz";
+ sha1 = "c5b2fc770d533878ce01a5dbbfadca340f3b8915";
+ };
+ }
+
+ {
+ name = "express_validator___express_validator_5.3.0.tgz";
+ path = fetchurl {
+ name = "express_validator___express_validator_5.3.0.tgz";
+ url = "https://registry.yarnpkg.com/express-validator/-/express-validator-5.3.0.tgz";
+ sha1 = "18a4e4a6e6410e3b9d492fb4ffcb4556fec51806";
+ };
+ }
+
+ {
+ name = "express___express_4.13.4.tgz";
+ path = fetchurl {
+ name = "express___express_4.13.4.tgz";
+ url = "https://registry.yarnpkg.com/express/-/express-4.13.4.tgz";
+ sha1 = "3c0b76f3c77590c8345739061ec0bd3ba067ec24";
+ };
+ }
+
+ {
+ name = "express___express_4.16.4.tgz";
+ path = fetchurl {
+ name = "express___express_4.16.4.tgz";
+ url = "https://registry.yarnpkg.com/express/-/express-4.16.4.tgz";
+ sha1 = "fddef61926109e24c515ea97fd2f1bdbf62df12e";
+ };
+ }
+
+ {
+ name = "extend_shallow___extend_shallow_2.0.1.tgz";
+ path = fetchurl {
+ name = "extend_shallow___extend_shallow_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz";
+ sha1 = "51af7d614ad9a9f610ea1bafbb989d6b1c56890f";
+ };
+ }
+
+ {
+ name = "extend_shallow___extend_shallow_3.0.2.tgz";
+ path = fetchurl {
+ name = "extend_shallow___extend_shallow_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz";
+ sha1 = "26a71aaf073b39fb2127172746131c2704028db8";
+ };
+ }
+
+ {
+ name = "extend___extend_3.0.2.tgz";
+ path = fetchurl {
+ name = "extend___extend_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz";
+ sha1 = "f8b1136b4071fbd8eb140aff858b1019ec2915fa";
+ };
+ }
+
+ {
+ name = "extglob___extglob_2.0.4.tgz";
+ path = fetchurl {
+ name = "extglob___extglob_2.0.4.tgz";
+ url = "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz";
+ sha1 = "ad00fe4dc612a9232e8718711dc5cb5ab0285543";
+ };
+ }
+
+ {
+ name = "extsprintf___extsprintf_1.2.0.tgz";
+ path = fetchurl {
+ name = "extsprintf___extsprintf_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.2.0.tgz";
+ sha1 = "5ad946c22f5b32ba7f8cd7426711c6e8a3fc2529";
+ };
+ }
+
+ {
+ name = "extsprintf___extsprintf_1.3.0.tgz";
+ path = fetchurl {
+ name = "extsprintf___extsprintf_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz";
+ sha1 = "96918440e3041a7a414f8c52e3c574eb3c3e1e05";
+ };
+ }
+
+ {
+ name = "extsprintf___extsprintf_1.4.0.tgz";
+ path = fetchurl {
+ name = "extsprintf___extsprintf_1.4.0.tgz";
+ url = "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz";
+ sha1 = "e2689f8f356fad62cca65a3a91c5df5f9551692f";
+ };
+ }
+
+ {
+ name = "eyes___eyes_0.1.8.tgz";
+ path = fetchurl {
+ name = "eyes___eyes_0.1.8.tgz";
+ url = "https://registry.yarnpkg.com/eyes/-/eyes-0.1.8.tgz";
+ sha1 = "62cf120234c683785d902348a800ef3e0cc20bc0";
+ };
+ }
+
+ {
+ name = "fast_deep_equal___fast_deep_equal_2.0.1.tgz";
+ path = fetchurl {
+ name = "fast_deep_equal___fast_deep_equal_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz";
+ sha1 = "7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49";
+ };
+ }
+
+ {
+ name = "fast_json_stable_stringify___fast_json_stable_stringify_2.0.0.tgz";
+ path = fetchurl {
+ name = "fast_json_stable_stringify___fast_json_stable_stringify_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz";
+ sha1 = "d5142c0caee6b1189f87d3a76111064f86c8bbf2";
+ };
+ }
+
+ {
+ name = "fast_levenshtein___fast_levenshtein_2.0.6.tgz";
+ path = fetchurl {
+ name = "fast_levenshtein___fast_levenshtein_2.0.6.tgz";
+ url = "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz";
+ sha1 = "3d8a5c66883a16a30ca8643e851f19baa7797917";
+ };
+ }
+
+ {
+ name = "fast_safe_stringify___fast_safe_stringify_2.0.6.tgz";
+ path = fetchurl {
+ name = "fast_safe_stringify___fast_safe_stringify_2.0.6.tgz";
+ url = "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.0.6.tgz";
+ sha1 = "04b26106cc56681f51a044cfc0d76cf0008ac2c2";
+ };
+ }
+
+ {
+ name = "feature_policy___feature_policy_0.2.0.tgz";
+ path = fetchurl {
+ name = "feature_policy___feature_policy_0.2.0.tgz";
+ url = "https://registry.yarnpkg.com/feature-policy/-/feature-policy-0.2.0.tgz";
+ sha1 = "22096de49ab240176878ffe2bde2f6ff04d48c43";
+ };
+ }
+
+ {
+ name = "fecha___fecha_2.3.3.tgz";
+ path = fetchurl {
+ name = "fecha___fecha_2.3.3.tgz";
+ url = "https://registry.yarnpkg.com/fecha/-/fecha-2.3.3.tgz";
+ sha1 = "948e74157df1a32fd1b12c3a3c3cdcb6ec9d96cd";
+ };
+ }
+
+ {
+ name = "figgy_pudding___figgy_pudding_3.5.1.tgz";
+ path = fetchurl {
+ name = "figgy_pudding___figgy_pudding_3.5.1.tgz";
+ url = "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz";
+ sha1 = "862470112901c727a0e495a80744bd5baa1d6790";
+ };
+ }
+
+ {
+ name = "figures___figures_1.7.0.tgz";
+ path = fetchurl {
+ name = "figures___figures_1.7.0.tgz";
+ url = "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz";
+ sha1 = "cbe1e3affcf1cd44b80cadfed28dc793a9701d2e";
+ };
+ }
+
+ {
+ name = "figures___figures_2.0.0.tgz";
+ path = fetchurl {
+ name = "figures___figures_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz";
+ sha1 = "3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962";
+ };
+ }
+
+ {
+ name = "file_entry_cache___file_entry_cache_1.3.1.tgz";
+ path = fetchurl {
+ name = "file_entry_cache___file_entry_cache_1.3.1.tgz";
+ url = "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-1.3.1.tgz";
+ sha1 = "44c61ea607ae4be9c1402f41f44270cbfe334ff8";
+ };
+ }
+
+ {
+ name = "filestream___filestream_4.1.3.tgz";
+ path = fetchurl {
+ name = "filestream___filestream_4.1.3.tgz";
+ url = "https://registry.yarnpkg.com/filestream/-/filestream-4.1.3.tgz";
+ sha1 = "948fcaade8221f715f5ecaddc54862faaacc9325";
+ };
+ }
+
+ {
+ name = "fill_range___fill_range_4.0.0.tgz";
+ path = fetchurl {
+ name = "fill_range___fill_range_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz";
+ sha1 = "d544811d428f98eb06a63dc402d2403c328c38f7";
+ };
+ }
+
+ {
+ name = "finalhandler___finalhandler_0.4.1.tgz";
+ path = fetchurl {
+ name = "finalhandler___finalhandler_0.4.1.tgz";
+ url = "https://registry.yarnpkg.com/finalhandler/-/finalhandler-0.4.1.tgz";
+ sha1 = "85a17c6c59a94717d262d61230d4b0ebe3d4a14d";
+ };
+ }
+
+ {
+ name = "finalhandler___finalhandler_1.1.1.tgz";
+ path = fetchurl {
+ name = "finalhandler___finalhandler_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.1.tgz";
+ sha1 = "eebf4ed840079c83f4249038c9d703008301b105";
+ };
+ }
+
+ {
+ name = "find_npm_prefix___find_npm_prefix_1.0.2.tgz";
+ path = fetchurl {
+ name = "find_npm_prefix___find_npm_prefix_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/find-npm-prefix/-/find-npm-prefix-1.0.2.tgz";
+ sha1 = "8d8ce2c78b3b4b9e66c8acc6a37c231eb841cfdf";
+ };
+ }
+
+ {
+ name = "find_parent_dir___find_parent_dir_0.3.0.tgz";
+ path = fetchurl {
+ name = "find_parent_dir___find_parent_dir_0.3.0.tgz";
+ url = "https://registry.yarnpkg.com/find-parent-dir/-/find-parent-dir-0.3.0.tgz";
+ sha1 = "33c44b429ab2b2f0646299c5f9f718f376ff8d54";
+ };
+ }
+
+ {
+ name = "find_up___find_up_2.1.0.tgz";
+ path = fetchurl {
+ name = "find_up___find_up_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz";
+ sha1 = "45d1b7e506c717ddd482775a2b77920a3c0c57a7";
+ };
+ }
+
+ {
+ name = "find_up___find_up_3.0.0.tgz";
+ path = fetchurl {
+ name = "find_up___find_up_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz";
+ sha1 = "49169f1d7993430646da61ecc5ae355c21c97b73";
+ };
+ }
+
+ {
+ name = "flat_cache___flat_cache_1.3.4.tgz";
+ path = fetchurl {
+ name = "flat_cache___flat_cache_1.3.4.tgz";
+ url = "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.4.tgz";
+ sha1 = "2c2ef77525cc2929007dfffa1dd314aa9c9dee6f";
+ };
+ }
+
+ {
+ name = "flat___flat_4.1.0.tgz";
+ path = fetchurl {
+ name = "flat___flat_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/flat/-/flat-4.1.0.tgz";
+ sha1 = "090bec8b05e39cba309747f1d588f04dbaf98db2";
+ };
+ }
+
+ {
+ name = "flatten___flatten_1.0.2.tgz";
+ path = fetchurl {
+ name = "flatten___flatten_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz";
+ sha1 = "dae46a9d78fbe25292258cc1e780a41d95c03782";
+ };
+ }
+
+ {
+ name = "flexbuffer___flexbuffer_0.0.6.tgz";
+ path = fetchurl {
+ name = "flexbuffer___flexbuffer_0.0.6.tgz";
+ url = "https://registry.yarnpkg.com/flexbuffer/-/flexbuffer-0.0.6.tgz";
+ sha1 = "039fdf23f8823e440c38f3277e6fef1174215b30";
+ };
+ }
+
+ {
+ name = "fluent_ffmpeg___fluent_ffmpeg_2.1.2.tgz";
+ path = fetchurl {
+ name = "fluent_ffmpeg___fluent_ffmpeg_2.1.2.tgz";
+ url = "https://registry.yarnpkg.com/fluent-ffmpeg/-/fluent-ffmpeg-2.1.2.tgz";
+ sha1 = "c952de2240f812ebda0aa8006d7776ee2acf7d74";
+ };
+ }
+
+ {
+ name = "flush_write_stream___flush_write_stream_1.0.3.tgz";
+ path = fetchurl {
+ name = "flush_write_stream___flush_write_stream_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.0.3.tgz";
+ sha1 = "c5d586ef38af6097650b49bc41b55fabb19f35bd";
+ };
+ }
+
+ {
+ name = "for_in___for_in_1.0.2.tgz";
+ path = fetchurl {
+ name = "for_in___for_in_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz";
+ sha1 = "81068d295a8142ec0ac726c6e2200c30fb6d5e80";
+ };
+ }
+
+ {
+ name = "forever_agent___forever_agent_0.6.1.tgz";
+ path = fetchurl {
+ name = "forever_agent___forever_agent_0.6.1.tgz";
+ url = "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz";
+ sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91";
+ };
+ }
+
+ {
+ name = "form_data___form_data_2.3.3.tgz";
+ path = fetchurl {
+ name = "form_data___form_data_2.3.3.tgz";
+ url = "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz";
+ sha1 = "dcce52c05f644f298c6a7ab936bd724ceffbf3a6";
+ };
+ }
+
+ {
+ name = "format_util___format_util_1.0.3.tgz";
+ path = fetchurl {
+ name = "format_util___format_util_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/format-util/-/format-util-1.0.3.tgz";
+ sha1 = "032dca4a116262a12c43f4c3ec8566416c5b2d95";
+ };
+ }
+
+ {
+ name = "formidable___formidable_1.2.1.tgz";
+ path = fetchurl {
+ name = "formidable___formidable_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/formidable/-/formidable-1.2.1.tgz";
+ sha1 = "70fb7ca0290ee6ff961090415f4b3df3d2082659";
+ };
+ }
+
+ {
+ name = "forwarded___forwarded_0.1.2.tgz";
+ path = fetchurl {
+ name = "forwarded___forwarded_0.1.2.tgz";
+ url = "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz";
+ sha1 = "98c23dab1175657b8c0573e8ceccd91b0ff18c84";
+ };
+ }
+
+ {
+ name = "fragment_cache___fragment_cache_0.2.1.tgz";
+ path = fetchurl {
+ name = "fragment_cache___fragment_cache_0.2.1.tgz";
+ url = "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz";
+ sha1 = "4290fad27f13e89be7f33799c6bc5a0abfff0d19";
+ };
+ }
+
+ {
+ name = "frameguard___frameguard_3.0.0.tgz";
+ path = fetchurl {
+ name = "frameguard___frameguard_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/frameguard/-/frameguard-3.0.0.tgz";
+ sha1 = "7bcad469ee7b96e91d12ceb3959c78235a9272e9";
+ };
+ }
+
+ {
+ name = "fresh___fresh_0.3.0.tgz";
+ path = fetchurl {
+ name = "fresh___fresh_0.3.0.tgz";
+ url = "https://registry.yarnpkg.com/fresh/-/fresh-0.3.0.tgz";
+ sha1 = "651f838e22424e7566de161d8358caa199f83d4f";
+ };
+ }
+
+ {
+ name = "fresh___fresh_0.5.2.tgz";
+ path = fetchurl {
+ name = "fresh___fresh_0.5.2.tgz";
+ url = "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz";
+ sha1 = "3d8cadd90d976569fa835ab1f8e4b23a105605a7";
+ };
+ }
+
+ {
+ name = "from2___from2_1.3.0.tgz";
+ path = fetchurl {
+ name = "from2___from2_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/from2/-/from2-1.3.0.tgz";
+ sha1 = "88413baaa5f9a597cfde9221d86986cd3c061dfd";
+ };
+ }
+
+ {
+ name = "from2___from2_2.3.0.tgz";
+ path = fetchurl {
+ name = "from2___from2_2.3.0.tgz";
+ url = "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz";
+ sha1 = "8bfb5502bde4a4d36cfdeea007fcca21d7e382af";
+ };
+ }
+
+ {
+ name = "front_matter___front_matter_2.1.2.tgz";
+ path = fetchurl {
+ name = "front_matter___front_matter_2.1.2.tgz";
+ url = "https://registry.yarnpkg.com/front-matter/-/front-matter-2.1.2.tgz";
+ sha1 = "f75983b9f2f413be658c93dfd7bd8ce4078f5cdb";
+ };
+ }
+
+ {
+ name = "fs_chunk_store___fs_chunk_store_1.7.0.tgz";
+ path = fetchurl {
+ name = "fs_chunk_store___fs_chunk_store_1.7.0.tgz";
+ url = "https://registry.yarnpkg.com/fs-chunk-store/-/fs-chunk-store-1.7.0.tgz";
+ sha1 = "1c4bcbe93c99af10aa04b65348f2bb27377a4010";
+ };
+ }
+
+ {
+ name = "fs_constants___fs_constants_1.0.0.tgz";
+ path = fetchurl {
+ name = "fs_constants___fs_constants_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz";
+ sha1 = "6be0de9be998ce16af8afc24497b9ee9b7ccd9ad";
+ };
+ }
+
+ {
+ name = "fs_copy_file_sync___fs_copy_file_sync_1.1.1.tgz";
+ path = fetchurl {
+ name = "fs_copy_file_sync___fs_copy_file_sync_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/fs-copy-file-sync/-/fs-copy-file-sync-1.1.1.tgz";
+ sha1 = "11bf32c096c10d126e5f6b36d06eece776062918";
+ };
+ }
+
+ {
+ name = "fs_extra___fs_extra_3.0.1.tgz";
+ path = fetchurl {
+ name = "fs_extra___fs_extra_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/fs-extra/-/fs-extra-3.0.1.tgz";
+ sha1 = "3794f378c58b342ea7dbbb23095109c4b3b62291";
+ };
+ }
+
+ {
+ name = "fs_extra___fs_extra_7.0.1.tgz";
+ path = fetchurl {
+ name = "fs_extra___fs_extra_7.0.1.tgz";
+ url = "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz";
+ sha1 = "4f189c44aa123b895f722804f55ea23eadc348e9";
+ };
+ }
+
+ {
+ name = "fs_minipass___fs_minipass_1.2.5.tgz";
+ path = fetchurl {
+ name = "fs_minipass___fs_minipass_1.2.5.tgz";
+ url = "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz";
+ sha1 = "06c277218454ec288df77ada54a03b8702aacb9d";
+ };
+ }
+
+ {
+ name = "fs_vacuum___fs_vacuum_1.2.10.tgz";
+ path = fetchurl {
+ name = "fs_vacuum___fs_vacuum_1.2.10.tgz";
+ url = "https://registry.yarnpkg.com/fs-vacuum/-/fs-vacuum-1.2.10.tgz";
+ sha1 = "b7629bec07a4031a2548fdf99f5ecf1cc8b31e36";
+ };
+ }
+
+ {
+ name = "fs_write_stream_atomic___fs_write_stream_atomic_1.0.10.tgz";
+ path = fetchurl {
+ name = "fs_write_stream_atomic___fs_write_stream_atomic_1.0.10.tgz";
+ url = "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz";
+ sha1 = "b47df53493ef911df75731e70a9ded0189db40c9";
+ };
+ }
+
+ {
+ name = "fs.realpath___fs.realpath_1.0.0.tgz";
+ path = fetchurl {
+ name = "fs.realpath___fs.realpath_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz";
+ sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f";
+ };
+ }
+
+ {
+ name = "fsevents___fsevents_1.2.4.tgz";
+ path = fetchurl {
+ name = "fsevents___fsevents_1.2.4.tgz";
+ url = "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.4.tgz";
+ sha1 = "f41dcb1af2582af3692da36fc55cbd8e1041c426";
+ };
+ }
+
+ {
+ name = "fstream___fstream_1.0.11.tgz";
+ path = fetchurl {
+ name = "fstream___fstream_1.0.11.tgz";
+ url = "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz";
+ sha1 = "5c1fb1f117477114f0632a0eb4b71b3cb0fd3171";
+ };
+ }
+
+ {
+ name = "g_status___g_status_2.0.2.tgz";
+ path = fetchurl {
+ name = "g_status___g_status_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/g-status/-/g-status-2.0.2.tgz";
+ sha1 = "270fd32119e8fc9496f066fe5fe88e0a6bc78b97";
+ };
+ }
+
+ {
+ name = "gauge___gauge_2.7.4.tgz";
+ path = fetchurl {
+ name = "gauge___gauge_2.7.4.tgz";
+ url = "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz";
+ sha1 = "2c03405c7538c39d7eb37b317022e325fb018bf7";
+ };
+ }
+
+ {
+ name = "generate_function___generate_function_2.3.1.tgz";
+ path = fetchurl {
+ name = "generate_function___generate_function_2.3.1.tgz";
+ url = "https://registry.yarnpkg.com/generate-function/-/generate-function-2.3.1.tgz";
+ sha1 = "f069617690c10c868e73b8465746764f97c3479f";
+ };
+ }
+
+ {
+ name = "generate_object_property___generate_object_property_1.2.0.tgz";
+ path = fetchurl {
+ name = "generate_object_property___generate_object_property_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz";
+ sha1 = "9c0e1c40308ce804f4783618b937fa88f99d50d0";
+ };
+ }
+
+ {
+ name = "generic_pool___generic_pool_3.4.2.tgz";
+ path = fetchurl {
+ name = "generic_pool___generic_pool_3.4.2.tgz";
+ url = "https://registry.yarnpkg.com/generic-pool/-/generic-pool-3.4.2.tgz";
+ sha1 = "92ff7196520d670839a67308092a12aadf2f6a59";
+ };
+ }
+
+ {
+ name = "genfun___genfun_5.0.0.tgz";
+ path = fetchurl {
+ name = "genfun___genfun_5.0.0.tgz";
+ url = "https://registry.yarnpkg.com/genfun/-/genfun-5.0.0.tgz";
+ sha1 = "9dd9710a06900a5c4a5bf57aca5da4e52fe76537";
+ };
+ }
+
+ {
+ name = "gentle_fs___gentle_fs_2.0.1.tgz";
+ path = fetchurl {
+ name = "gentle_fs___gentle_fs_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/gentle-fs/-/gentle-fs-2.0.1.tgz";
+ sha1 = "585cfd612bfc5cd52471fdb42537f016a5ce3687";
+ };
+ }
+
+ {
+ name = "get_browser_rtc___get_browser_rtc_1.0.2.tgz";
+ path = fetchurl {
+ name = "get_browser_rtc___get_browser_rtc_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/get-browser-rtc/-/get-browser-rtc-1.0.2.tgz";
+ sha1 = "bbcd40c8451a7ed4ef5c373b8169a409dd1d11d9";
+ };
+ }
+
+ {
+ name = "get_caller_file___get_caller_file_1.0.3.tgz";
+ path = fetchurl {
+ name = "get_caller_file___get_caller_file_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz";
+ sha1 = "f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a";
+ };
+ }
+
+ {
+ name = "get_func_name___get_func_name_2.0.0.tgz";
+ path = fetchurl {
+ name = "get_func_name___get_func_name_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz";
+ sha1 = "ead774abee72e20409433a066366023dd6887a41";
+ };
+ }
+
+ {
+ name = "get_own_enumerable_property_symbols___get_own_enumerable_property_symbols_3.0.0.tgz";
+ path = fetchurl {
+ name = "get_own_enumerable_property_symbols___get_own_enumerable_property_symbols_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.0.tgz";
+ sha1 = "b877b49a5c16aefac3655f2ed2ea5b684df8d203";
+ };
+ }
+
+ {
+ name = "get_stdin___get_stdin_6.0.0.tgz";
+ path = fetchurl {
+ name = "get_stdin___get_stdin_6.0.0.tgz";
+ url = "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz";
+ sha1 = "9e09bf712b360ab9225e812048f71fde9c89657b";
+ };
+ }
+
+ {
+ name = "get_stream___get_stream_3.0.0.tgz";
+ path = fetchurl {
+ name = "get_stream___get_stream_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz";
+ sha1 = "8e943d1358dc37555054ecbe2edb05aa174ede14";
+ };
+ }
+
+ {
+ name = "get_stream___get_stream_4.1.0.tgz";
+ path = fetchurl {
+ name = "get_stream___get_stream_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz";
+ sha1 = "c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5";
+ };
+ }
+
+ {
+ name = "get_value___get_value_2.0.6.tgz";
+ path = fetchurl {
+ name = "get_value___get_value_2.0.6.tgz";
+ url = "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz";
+ sha1 = "dc15ca1c672387ca76bd37ac0a395ba2042a2c28";
+ };
+ }
+
+ {
+ name = "getpass___getpass_0.1.7.tgz";
+ path = fetchurl {
+ name = "getpass___getpass_0.1.7.tgz";
+ url = "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz";
+ sha1 = "5eff8e3e684d569ae4cb2b1282604e8ba62149fa";
+ };
+ }
+
+ {
+ name = "github_from_package___github_from_package_0.0.0.tgz";
+ path = fetchurl {
+ name = "github_from_package___github_from_package_0.0.0.tgz";
+ url = "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz";
+ sha1 = "97fb5d96bfde8973313f20e8288ef9a167fa64ce";
+ };
+ }
+
+ {
+ name = "glob_parent___glob_parent_3.1.0.tgz";
+ path = fetchurl {
+ name = "glob_parent___glob_parent_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz";
+ sha1 = "9e6af6299d8d3bd2bd40430832bd113df906c5ae";
+ };
+ }
+
+ {
+ name = "glob___glob_7.1.2.tgz";
+ path = fetchurl {
+ name = "glob___glob_7.1.2.tgz";
+ url = "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz";
+ sha1 = "c19c9df9a028702d678612384a6552404c636d15";
+ };
+ }
+
+ {
+ name = "glob___glob_6.0.4.tgz";
+ path = fetchurl {
+ name = "glob___glob_6.0.4.tgz";
+ url = "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz";
+ sha1 = "0f08860f6a155127b2fadd4f9ce24b1aab6e4d22";
+ };
+ }
+
+ {
+ name = "glob___glob_7.1.3.tgz";
+ path = fetchurl {
+ name = "glob___glob_7.1.3.tgz";
+ url = "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz";
+ sha1 = "3960832d3f1574108342dafd3a67b332c0969df1";
+ };
+ }
+
+ {
+ name = "global_dirs___global_dirs_0.1.1.tgz";
+ path = fetchurl {
+ name = "global_dirs___global_dirs_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz";
+ sha1 = "b319c0dd4607f353f3be9cca4c72fc148c49f445";
+ };
+ }
+
+ {
+ name = "globals___globals_9.18.0.tgz";
+ path = fetchurl {
+ name = "globals___globals_9.18.0.tgz";
+ url = "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz";
+ sha1 = "aa3896b3e69b487f17e31ed2143d69a8e30c2d8a";
+ };
+ }
+
+ {
+ name = "globby___globby_6.1.0.tgz";
+ path = fetchurl {
+ name = "globby___globby_6.1.0.tgz";
+ url = "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz";
+ sha1 = "f5a6d70e8395e21c858fb0489d64df02424d506c";
+ };
+ }
+
+ {
+ name = "globule___globule_1.2.1.tgz";
+ path = fetchurl {
+ name = "globule___globule_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/globule/-/globule-1.2.1.tgz";
+ sha1 = "5dffb1b191f22d20797a9369b49eab4e9839696d";
+ };
+ }
+
+ {
+ name = "gonzales_pe_sl___gonzales_pe_sl_4.2.3.tgz";
+ path = fetchurl {
+ name = "gonzales_pe_sl___gonzales_pe_sl_4.2.3.tgz";
+ url = "https://registry.yarnpkg.com/gonzales-pe-sl/-/gonzales-pe-sl-4.2.3.tgz";
+ sha1 = "6a868bc380645f141feeb042c6f97fcc71b59fe6";
+ };
+ }
+
+ {
+ name = "got___got_6.7.1.tgz";
+ path = fetchurl {
+ name = "got___got_6.7.1.tgz";
+ url = "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz";
+ sha1 = "240cd05785a9a18e561dc1b44b41c763ef1e8db0";
+ };
+ }
+
+ {
+ name = "graceful_fs___graceful_fs_4.1.15.tgz";
+ path = fetchurl {
+ name = "graceful_fs___graceful_fs_4.1.15.tgz";
+ url = "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz";
+ sha1 = "ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00";
+ };
+ }
+
+ {
+ name = "graceful_readlink___graceful_readlink_1.0.1.tgz";
+ path = fetchurl {
+ name = "graceful_readlink___graceful_readlink_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz";
+ sha1 = "4cafad76bc62f02fa039b2f94e9a3dd3a391a725";
+ };
+ }
+
+ {
+ name = "growl___growl_1.10.5.tgz";
+ path = fetchurl {
+ name = "growl___growl_1.10.5.tgz";
+ url = "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz";
+ sha1 = "f2735dc2283674fa67478b10181059355c369e5e";
+ };
+ }
+
+ {
+ name = "har_schema___har_schema_2.0.0.tgz";
+ path = fetchurl {
+ name = "har_schema___har_schema_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz";
+ sha1 = "a94c2224ebcac04782a0d9035521f24735b7ec92";
+ };
+ }
+
+ {
+ name = "har_validator___har_validator_5.1.3.tgz";
+ path = fetchurl {
+ name = "har_validator___har_validator_5.1.3.tgz";
+ url = "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz";
+ sha1 = "1ef89ebd3e4996557675eed9893110dc350fa080";
+ };
+ }
+
+ {
+ name = "has_ansi___has_ansi_2.0.0.tgz";
+ path = fetchurl {
+ name = "has_ansi___has_ansi_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz";
+ sha1 = "34f5049ce1ecdf2b0649af3ef24e45ed35416d91";
+ };
+ }
+
+ {
+ name = "has_binary2___has_binary2_1.0.3.tgz";
+ path = fetchurl {
+ name = "has_binary2___has_binary2_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.3.tgz";
+ sha1 = "7776ac627f3ea77250cfc332dab7ddf5e4f5d11d";
+ };
+ }
+
+ {
+ name = "has_binary___has_binary_0.1.7.tgz";
+ path = fetchurl {
+ name = "has_binary___has_binary_0.1.7.tgz";
+ url = "https://registry.yarnpkg.com/has-binary/-/has-binary-0.1.7.tgz";
+ sha1 = "68e61eb16210c9545a0a5cce06a873912fe1e68c";
+ };
+ }
+
+ {
+ name = "has_cors___has_cors_1.1.0.tgz";
+ path = fetchurl {
+ name = "has_cors___has_cors_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz";
+ sha1 = "5e474793f7ea9843d1bb99c23eef49ff126fff39";
+ };
+ }
+
+ {
+ name = "has_flag___has_flag_2.0.0.tgz";
+ path = fetchurl {
+ name = "has_flag___has_flag_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz";
+ sha1 = "e8207af1cc7b30d446cc70b734b5e8be18f88d51";
+ };
+ }
+
+ {
+ name = "has_flag___has_flag_3.0.0.tgz";
+ path = fetchurl {
+ name = "has_flag___has_flag_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz";
+ sha1 = "b5d454dc2199ae225699f3467e5a07f3b955bafd";
+ };
+ }
+
+ {
+ name = "has_unicode___has_unicode_2.0.1.tgz";
+ path = fetchurl {
+ name = "has_unicode___has_unicode_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz";
+ sha1 = "e0e6fe6a28cf51138855e086d1691e771de2a8b9";
+ };
+ }
+
+ {
+ name = "has_value___has_value_0.3.1.tgz";
+ path = fetchurl {
+ name = "has_value___has_value_0.3.1.tgz";
+ url = "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz";
+ sha1 = "7b1f58bada62ca827ec0a2078025654845995e1f";
+ };
+ }
+
+ {
+ name = "has_value___has_value_1.0.0.tgz";
+ path = fetchurl {
+ name = "has_value___has_value_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz";
+ sha1 = "18b281da585b1c5c51def24c930ed29a0be6b177";
+ };
+ }
+
+ {
+ name = "has_values___has_values_0.1.4.tgz";
+ path = fetchurl {
+ name = "has_values___has_values_0.1.4.tgz";
+ url = "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz";
+ sha1 = "6d61de95d91dfca9b9a02089ad384bff8f62b771";
+ };
+ }
+
+ {
+ name = "has_values___has_values_1.0.0.tgz";
+ path = fetchurl {
+ name = "has_values___has_values_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz";
+ sha1 = "95b0b63fec2146619a6fe57fe75628d5a39efe4f";
+ };
+ }
+
+ {
+ name = "hash.js___hash.js_1.1.7.tgz";
+ path = fetchurl {
+ name = "hash.js___hash.js_1.1.7.tgz";
+ url = "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz";
+ sha1 = "0babca538e8d4ee4a0f8988d68866537a003cf42";
+ };
+ }
+
+ {
+ name = "hashish___hashish_0.0.4.tgz";
+ path = fetchurl {
+ name = "hashish___hashish_0.0.4.tgz";
+ url = "https://registry.yarnpkg.com/hashish/-/hashish-0.0.4.tgz";
+ sha1 = "6d60bc6ffaf711b6afd60e426d077988014e6554";
+ };
+ }
+
+ {
+ name = "he___he_1.1.1.tgz";
+ path = fetchurl {
+ name = "he___he_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz";
+ sha1 = "93410fd21b009735151f8868c2f271f3427e23fd";
+ };
+ }
+
+ {
+ name = "helmet_crossdomain___helmet_crossdomain_0.3.0.tgz";
+ path = fetchurl {
+ name = "helmet_crossdomain___helmet_crossdomain_0.3.0.tgz";
+ url = "https://registry.yarnpkg.com/helmet-crossdomain/-/helmet-crossdomain-0.3.0.tgz";
+ sha1 = "707e2df930f13ad61f76ed08e1bb51ab2b2e85fa";
+ };
+ }
+
+ {
+ name = "helmet_csp___helmet_csp_2.7.1.tgz";
+ path = fetchurl {
+ name = "helmet_csp___helmet_csp_2.7.1.tgz";
+ url = "https://registry.yarnpkg.com/helmet-csp/-/helmet-csp-2.7.1.tgz";
+ sha1 = "e8e0b5186ffd4db625cfcce523758adbfadb9dca";
+ };
+ }
+
+ {
+ name = "helmet___helmet_3.15.0.tgz";
+ path = fetchurl {
+ name = "helmet___helmet_3.15.0.tgz";
+ url = "https://registry.yarnpkg.com/helmet/-/helmet-3.15.0.tgz";
+ sha1 = "fe0bb80e05d9eec589e3cbecaf5384409a3a64c9";
+ };
+ }
+
+ {
+ name = "hh_mm_ss___hh_mm_ss_1.2.0.tgz";
+ path = fetchurl {
+ name = "hh_mm_ss___hh_mm_ss_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/hh-mm-ss/-/hh-mm-ss-1.2.0.tgz";
+ sha1 = "6d0f0b8280824a634cb1d1f20e0bc7bc8b689948";
+ };
+ }
+
+ {
+ name = "hide_powered_by___hide_powered_by_1.0.0.tgz";
+ path = fetchurl {
+ name = "hide_powered_by___hide_powered_by_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/hide-powered-by/-/hide-powered-by-1.0.0.tgz";
+ sha1 = "4a85ad65881f62857fc70af7174a1184dccce32b";
+ };
+ }
+
+ {
+ name = "hosted_git_info___hosted_git_info_2.7.1.tgz";
+ path = fetchurl {
+ name = "hosted_git_info___hosted_git_info_2.7.1.tgz";
+ url = "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz";
+ sha1 = "97f236977bd6e125408930ff6de3eec6281ec047";
+ };
+ }
+
+ {
+ name = "hpkp___hpkp_2.0.0.tgz";
+ path = fetchurl {
+ name = "hpkp___hpkp_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/hpkp/-/hpkp-2.0.0.tgz";
+ sha1 = "10e142264e76215a5d30c44ec43de64dee6d1672";
+ };
+ }
+
+ {
+ name = "hsts___hsts_2.1.0.tgz";
+ path = fetchurl {
+ name = "hsts___hsts_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/hsts/-/hsts-2.1.0.tgz";
+ sha1 = "cbd6c918a2385fee1dd5680bfb2b3a194c0121cc";
+ };
+ }
+
+ {
+ name = "http_cache_semantics___http_cache_semantics_3.8.1.tgz";
+ path = fetchurl {
+ name = "http_cache_semantics___http_cache_semantics_3.8.1.tgz";
+ url = "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz";
+ sha1 = "39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2";
+ };
+ }
+
+ {
+ name = "http_errors___http_errors_1.6.3.tgz";
+ path = fetchurl {
+ name = "http_errors___http_errors_1.6.3.tgz";
+ url = "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz";
+ sha1 = "8b55680bb4be283a0b5bf4ea2e38580be1d9320d";
+ };
+ }
+
+ {
+ name = "http_errors___http_errors_1.3.1.tgz";
+ path = fetchurl {
+ name = "http_errors___http_errors_1.3.1.tgz";
+ url = "https://registry.yarnpkg.com/http-errors/-/http-errors-1.3.1.tgz";
+ sha1 = "197e22cdebd4198585e8694ef6786197b91ed942";
+ };
+ }
+
+ {
+ name = "http_proxy_agent___http_proxy_agent_2.1.0.tgz";
+ path = fetchurl {
+ name = "http_proxy_agent___http_proxy_agent_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz";
+ sha1 = "e4821beef5b2142a2026bd73926fe537631c5405";
+ };
+ }
+
+ {
+ name = "http_signature___http_signature_1.2.0.tgz";
+ path = fetchurl {
+ name = "http_signature___http_signature_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz";
+ sha1 = "9aecd925114772f3d95b65a60abb8f7c18fbace1";
+ };
+ }
+
+ {
+ name = "https_proxy_agent___https_proxy_agent_2.2.1.tgz";
+ path = fetchurl {
+ name = "https_proxy_agent___https_proxy_agent_2.2.1.tgz";
+ url = "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz";
+ sha1 = "51552970fa04d723e04c56d04178c3f92592bbc0";
+ };
+ }
+
+ {
+ name = "humanize_ms___humanize_ms_1.2.1.tgz";
+ path = fetchurl {
+ name = "humanize_ms___humanize_ms_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz";
+ sha1 = "c46e3159a293f6b896da29316d8b6fe8bb79bbed";
+ };
+ }
+
+ {
+ name = "husky___husky_1.2.0.tgz";
+ path = fetchurl {
+ name = "husky___husky_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/husky/-/husky-1.2.0.tgz";
+ sha1 = "d631dda1e4a9ee8ba69a10b0c51a0e2c66e711e5";
+ };
+ }
+
+ {
+ name = "i___i_0.3.6.tgz";
+ path = fetchurl {
+ name = "i___i_0.3.6.tgz";
+ url = "https://registry.yarnpkg.com/i/-/i-0.3.6.tgz";
+ sha1 = "d96c92732076f072711b6b10fd7d4f65ad8ee23d";
+ };
+ }
+
+ {
+ name = "iconv_lite___iconv_lite_0.4.23.tgz";
+ path = fetchurl {
+ name = "iconv_lite___iconv_lite_0.4.23.tgz";
+ url = "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz";
+ sha1 = "297871f63be507adcfbfca715d0cd0eed84e9a63";
+ };
+ }
+
+ {
+ name = "iconv_lite___iconv_lite_0.4.24.tgz";
+ path = fetchurl {
+ name = "iconv_lite___iconv_lite_0.4.24.tgz";
+ url = "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz";
+ sha1 = "2022b4b25fbddc21d2f524974a474aafe733908b";
+ };
+ }
+
+ {
+ name = "ienoopen___ienoopen_1.0.0.tgz";
+ path = fetchurl {
+ name = "ienoopen___ienoopen_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/ienoopen/-/ienoopen-1.0.0.tgz";
+ sha1 = "346a428f474aac8f50cf3784ea2d0f16f62bda6b";
+ };
+ }
+
+ {
+ name = "iferr___iferr_0.1.5.tgz";
+ path = fetchurl {
+ name = "iferr___iferr_0.1.5.tgz";
+ url = "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz";
+ sha1 = "c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501";
+ };
+ }
+
+ {
+ name = "iferr___iferr_1.0.2.tgz";
+ path = fetchurl {
+ name = "iferr___iferr_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/iferr/-/iferr-1.0.2.tgz";
+ sha1 = "e9fde49a9da06dc4a4194c6c9ed6d08305037a6d";
+ };
+ }
+
+ {
+ name = "ignore_by_default___ignore_by_default_1.0.1.tgz";
+ path = fetchurl {
+ name = "ignore_by_default___ignore_by_default_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz";
+ sha1 = "48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09";
+ };
+ }
+
+ {
+ name = "ignore_walk___ignore_walk_3.0.1.tgz";
+ path = fetchurl {
+ name = "ignore_walk___ignore_walk_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz";
+ sha1 = "a83e62e7d272ac0e3b551aaa82831a19b69f82f8";
+ };
+ }
+
+ {
+ name = "ignore___ignore_3.3.10.tgz";
+ path = fetchurl {
+ name = "ignore___ignore_3.3.10.tgz";
+ url = "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz";
+ sha1 = "0a97fb876986e8081c631160f8f9f389157f0043";
+ };
+ }
+
+ {
+ name = "immediate_chunk_store___immediate_chunk_store_2.0.0.tgz";
+ path = fetchurl {
+ name = "immediate_chunk_store___immediate_chunk_store_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/immediate-chunk-store/-/immediate-chunk-store-2.0.0.tgz";
+ sha1 = "f313fd0cc71396d8911ad031179e1cccfda3da18";
+ };
+ }
+
+ {
+ name = "import_fresh___import_fresh_2.0.0.tgz";
+ path = fetchurl {
+ name = "import_fresh___import_fresh_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz";
+ sha1 = "d81355c15612d386c61f9ddd3922d4304822a546";
+ };
+ }
+
+ {
+ name = "import_lazy___import_lazy_2.1.0.tgz";
+ path = fetchurl {
+ name = "import_lazy___import_lazy_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz";
+ sha1 = "05698e3d45c88e8d7e9d92cb0584e77f096f3e43";
+ };
+ }
+
+ {
+ name = "imurmurhash___imurmurhash_0.1.4.tgz";
+ path = fetchurl {
+ name = "imurmurhash___imurmurhash_0.1.4.tgz";
+ url = "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz";
+ sha1 = "9218b9b2b928a238b13dc4fb6b6d576f231453ea";
+ };
+ }
+
+ {
+ name = "indent_string___indent_string_3.2.0.tgz";
+ path = fetchurl {
+ name = "indent_string___indent_string_3.2.0.tgz";
+ url = "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz";
+ sha1 = "4a5fd6d27cc332f37e5419a504dbb837105c9289";
+ };
+ }
+
+ {
+ name = "indexof___indexof_0.0.1.tgz";
+ path = fetchurl {
+ name = "indexof___indexof_0.0.1.tgz";
+ url = "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz";
+ sha1 = "82dc336d232b9062179d05ab3293a66059fd435d";
+ };
+ }
+
+ {
+ name = "inflection___inflection_1.12.0.tgz";
+ path = fetchurl {
+ name = "inflection___inflection_1.12.0.tgz";
+ url = "https://registry.yarnpkg.com/inflection/-/inflection-1.12.0.tgz";
+ sha1 = "a200935656d6f5f6bc4dc7502e1aecb703228416";
+ };
+ }
+
+ {
+ name = "inflight___inflight_1.0.6.tgz";
+ path = fetchurl {
+ name = "inflight___inflight_1.0.6.tgz";
+ url = "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz";
+ sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9";
+ };
+ }
+
+ {
+ name = "inherits___inherits_2.0.3.tgz";
+ path = fetchurl {
+ name = "inherits___inherits_2.0.3.tgz";
+ url = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz";
+ sha1 = "633c2c83e3da42a502f52466022480f4208261de";
+ };
+ }
+
+ {
+ name = "inherits___inherits_2.0.1.tgz";
+ path = fetchurl {
+ name = "inherits___inherits_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz";
+ sha1 = "b17d08d326b4423e568eff719f91b0b1cbdf69f1";
+ };
+ }
+
+ {
+ name = "ini___ini_1.3.5.tgz";
+ path = fetchurl {
+ name = "ini___ini_1.3.5.tgz";
+ url = "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz";
+ sha1 = "eee25f56db1c9ec6085e0c22778083f596abf927";
+ };
+ }
+
+ {
+ name = "init_package_json___init_package_json_1.10.3.tgz";
+ path = fetchurl {
+ name = "init_package_json___init_package_json_1.10.3.tgz";
+ url = "https://registry.yarnpkg.com/init-package-json/-/init-package-json-1.10.3.tgz";
+ sha1 = "45ffe2f610a8ca134f2bd1db5637b235070f6cbe";
+ };
+ }
+
+ {
+ name = "inquirer___inquirer_0.12.0.tgz";
+ path = fetchurl {
+ name = "inquirer___inquirer_0.12.0.tgz";
+ url = "https://registry.yarnpkg.com/inquirer/-/inquirer-0.12.0.tgz";
+ sha1 = "1ef2bfd63504df0bc75785fff8c2c41df12f077e";
+ };
+ }
+
+ {
+ name = "invert_kv___invert_kv_1.0.0.tgz";
+ path = fetchurl {
+ name = "invert_kv___invert_kv_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz";
+ sha1 = "104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6";
+ };
+ }
+
+ {
+ name = "invert_kv___invert_kv_2.0.0.tgz";
+ path = fetchurl {
+ name = "invert_kv___invert_kv_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz";
+ sha1 = "7393f5afa59ec9ff5f67a27620d11c226e3eec02";
+ };
+ }
+
+ {
+ name = "ioredis___ioredis_3.2.2.tgz";
+ path = fetchurl {
+ name = "ioredis___ioredis_3.2.2.tgz";
+ url = "https://registry.yarnpkg.com/ioredis/-/ioredis-3.2.2.tgz";
+ sha1 = "b7d5ff3afd77bb9718bb2821329b894b9a44c00b";
+ };
+ }
+
+ {
+ name = "ip_anonymize___ip_anonymize_0.0.6.tgz";
+ path = fetchurl {
+ name = "ip_anonymize___ip_anonymize_0.0.6.tgz";
+ url = "https://registry.yarnpkg.com/ip-anonymize/-/ip-anonymize-0.0.6.tgz";
+ sha1 = "d2c513e448e874e8cc380d03404691b94b018e68";
+ };
+ }
+
+ {
+ name = "ip_regex___ip_regex_2.1.0.tgz";
+ path = fetchurl {
+ name = "ip_regex___ip_regex_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz";
+ sha1 = "fa78bf5d2e6913c911ce9f819ee5146bb6d844e9";
+ };
+ }
+
+ {
+ name = "ip_set___ip_set_1.0.1.tgz";
+ path = fetchurl {
+ name = "ip_set___ip_set_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/ip-set/-/ip-set-1.0.1.tgz";
+ sha1 = "633b66d0bd6c8d0de968d053263c9120d3b6727e";
+ };
+ }
+
+ {
+ name = "ip___ip_1.1.5.tgz";
+ path = fetchurl {
+ name = "ip___ip_1.1.5.tgz";
+ url = "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz";
+ sha1 = "bdded70114290828c0a039e72ef25f5aaec4354a";
+ };
+ }
+
+ {
+ name = "ipaddr.js___ipaddr.js_1.0.5.tgz";
+ path = fetchurl {
+ name = "ipaddr.js___ipaddr.js_1.0.5.tgz";
+ url = "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.0.5.tgz";
+ sha1 = "5fa78cf301b825c78abc3042d812723049ea23c7";
+ };
+ }
+
+ {
+ name = "ipaddr.js___ipaddr.js_1.8.0.tgz";
+ path = fetchurl {
+ name = "ipaddr.js___ipaddr.js_1.8.0.tgz";
+ url = "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.8.0.tgz";
+ sha1 = "eaa33d6ddd7ace8f7f6fe0c9ca0440e706738b1e";
+ };
+ }
+
+ {
+ name = "ipaddr.js___ipaddr.js_1.8.1.tgz";
+ path = fetchurl {
+ name = "ipaddr.js___ipaddr.js_1.8.1.tgz";
+ url = "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.8.1.tgz";
+ sha1 = "fa4b79fa47fd3def5e3b159825161c0a519c9427";
+ };
+ }
+
+ {
+ name = "ipv6_normalize___ipv6_normalize_1.0.1.tgz";
+ path = fetchurl {
+ name = "ipv6_normalize___ipv6_normalize_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/ipv6-normalize/-/ipv6-normalize-1.0.1.tgz";
+ sha1 = "1b3258290d365fa83239e89907dde4592e7620a8";
+ };
+ }
+
+ {
+ name = "is_accessor_descriptor___is_accessor_descriptor_0.1.6.tgz";
+ path = fetchurl {
+ name = "is_accessor_descriptor___is_accessor_descriptor_0.1.6.tgz";
+ url = "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz";
+ sha1 = "a9e12cb3ae8d876727eeef3843f8a0897b5c98d6";
+ };
+ }
+
+ {
+ name = "is_accessor_descriptor___is_accessor_descriptor_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_accessor_descriptor___is_accessor_descriptor_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz";
+ sha1 = "169c2f6d3df1f992618072365c9b0ea1f6878656";
+ };
+ }
+
+ {
+ name = "is_arrayish___is_arrayish_0.2.1.tgz";
+ path = fetchurl {
+ name = "is_arrayish___is_arrayish_0.2.1.tgz";
+ url = "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz";
+ sha1 = "77c99840527aa8ecb1a8ba697b80645a7a926a9d";
+ };
+ }
+
+ {
+ name = "is_arrayish___is_arrayish_0.3.2.tgz";
+ path = fetchurl {
+ name = "is_arrayish___is_arrayish_0.3.2.tgz";
+ url = "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz";
+ sha1 = "4574a2ae56f7ab206896fb431eaeed066fdf8f03";
+ };
+ }
+
+ {
+ name = "is_ascii___is_ascii_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_ascii___is_ascii_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-ascii/-/is-ascii-1.0.0.tgz";
+ sha1 = "f02ad0259a0921cd199ff21ce1b09e0f6b4e3929";
+ };
+ }
+
+ {
+ name = "is_binary_path___is_binary_path_1.0.1.tgz";
+ path = fetchurl {
+ name = "is_binary_path___is_binary_path_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz";
+ sha1 = "75f16642b480f187a711c814161fd3a4a7655898";
+ };
+ }
+
+ {
+ name = "is_bluebird___is_bluebird_1.0.2.tgz";
+ path = fetchurl {
+ name = "is_bluebird___is_bluebird_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/is-bluebird/-/is-bluebird-1.0.2.tgz";
+ sha1 = "096439060f4aa411abee19143a84d6a55346d6e2";
+ };
+ }
+
+ {
+ name = "is_buffer___is_buffer_1.1.6.tgz";
+ path = fetchurl {
+ name = "is_buffer___is_buffer_1.1.6.tgz";
+ url = "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz";
+ sha1 = "efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be";
+ };
+ }
+
+ {
+ name = "is_buffer___is_buffer_2.0.3.tgz";
+ path = fetchurl {
+ name = "is_buffer___is_buffer_2.0.3.tgz";
+ url = "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.3.tgz";
+ sha1 = "4ecf3fcf749cbd1e472689e109ac66261a25e725";
+ };
+ }
+
+ {
+ name = "is_builtin_module___is_builtin_module_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_builtin_module___is_builtin_module_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz";
+ sha1 = "540572d34f7ac3119f8f76c30cbc1b1e037affbe";
+ };
+ }
+
+ {
+ name = "is_ci___is_ci_1.2.1.tgz";
+ path = fetchurl {
+ name = "is_ci___is_ci_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz";
+ sha1 = "e3779c8ee17fccf428488f6e281187f2e632841c";
+ };
+ }
+
+ {
+ name = "is_cidr___is_cidr_2.0.7.tgz";
+ path = fetchurl {
+ name = "is_cidr___is_cidr_2.0.7.tgz";
+ url = "https://registry.yarnpkg.com/is-cidr/-/is-cidr-2.0.7.tgz";
+ sha1 = "0fd4b863c26b2eb2d157ed21060c4f3f8dd356ce";
+ };
+ }
+
+ {
+ name = "is_cidr___is_cidr_3.0.0.tgz";
+ path = fetchurl {
+ name = "is_cidr___is_cidr_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-cidr/-/is-cidr-3.0.0.tgz";
+ sha1 = "1acf35c9e881063cd5f696d48959b30fed3eed56";
+ };
+ }
+
+ {
+ name = "is_data_descriptor___is_data_descriptor_0.1.4.tgz";
+ path = fetchurl {
+ name = "is_data_descriptor___is_data_descriptor_0.1.4.tgz";
+ url = "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz";
+ sha1 = "0b5ee648388e2c860282e793f1856fec3f301b56";
+ };
+ }
+
+ {
+ name = "is_data_descriptor___is_data_descriptor_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_data_descriptor___is_data_descriptor_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz";
+ sha1 = "d84876321d0e7add03990406abbbbd36ba9268c7";
+ };
+ }
+
+ {
+ name = "is_descriptor___is_descriptor_0.1.6.tgz";
+ path = fetchurl {
+ name = "is_descriptor___is_descriptor_0.1.6.tgz";
+ url = "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz";
+ sha1 = "366d8240dde487ca51823b1ab9f07a10a78251ca";
+ };
+ }
+
+ {
+ name = "is_descriptor___is_descriptor_1.0.2.tgz";
+ path = fetchurl {
+ name = "is_descriptor___is_descriptor_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz";
+ sha1 = "3b159746a66604b04f8c81524ba365c5f14d86ec";
+ };
+ }
+
+ {
+ name = "is_directory___is_directory_0.3.1.tgz";
+ path = fetchurl {
+ name = "is_directory___is_directory_0.3.1.tgz";
+ url = "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz";
+ sha1 = "61339b6f2475fc772fd9c9d83f5c8575dc154ae1";
+ };
+ }
+
+ {
+ name = "is_extendable___is_extendable_0.1.1.tgz";
+ path = fetchurl {
+ name = "is_extendable___is_extendable_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz";
+ sha1 = "62b110e289a471418e3ec36a617d472e301dfc89";
+ };
+ }
+
+ {
+ name = "is_extendable___is_extendable_1.0.1.tgz";
+ path = fetchurl {
+ name = "is_extendable___is_extendable_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz";
+ sha1 = "a7470f9e426733d81bd81e1155264e3a3507cab4";
+ };
+ }
+
+ {
+ name = "is_extglob___is_extglob_2.1.1.tgz";
+ path = fetchurl {
+ name = "is_extglob___is_extglob_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz";
+ sha1 = "a88c02535791f02ed37c76a1b9ea9773c833f8c2";
+ };
+ }
+
+ {
+ name = "is_file___is_file_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_file___is_file_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-file/-/is-file-1.0.0.tgz";
+ sha1 = "28a44cfbd9d3db193045f22b65fce8edf9620596";
+ };
+ }
+
+ {
+ name = "is_fullwidth_code_point___is_fullwidth_code_point_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_fullwidth_code_point___is_fullwidth_code_point_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz";
+ sha1 = "ef9e31386f031a7f0d643af82fde50c457ef00cb";
+ };
+ }
+
+ {
+ name = "is_fullwidth_code_point___is_fullwidth_code_point_2.0.0.tgz";
+ path = fetchurl {
+ name = "is_fullwidth_code_point___is_fullwidth_code_point_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz";
+ sha1 = "a3b30a5c4f199183167aaab93beefae3ddfb654f";
+ };
+ }
+
+ {
+ name = "is_generator___is_generator_1.0.3.tgz";
+ path = fetchurl {
+ name = "is_generator___is_generator_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/is-generator/-/is-generator-1.0.3.tgz";
+ sha1 = "c14c21057ed36e328db80347966c693f886389f3";
+ };
+ }
+
+ {
+ name = "is_glob___is_glob_3.1.0.tgz";
+ path = fetchurl {
+ name = "is_glob___is_glob_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz";
+ sha1 = "7ba5ae24217804ac70707b96922567486cc3e84a";
+ };
+ }
+
+ {
+ name = "is_glob___is_glob_4.0.0.tgz";
+ path = fetchurl {
+ name = "is_glob___is_glob_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.0.tgz";
+ sha1 = "9521c76845cc2610a85203ddf080a958c2ffabc0";
+ };
+ }
+
+ {
+ name = "is_installed_globally___is_installed_globally_0.1.0.tgz";
+ path = fetchurl {
+ name = "is_installed_globally___is_installed_globally_0.1.0.tgz";
+ url = "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz";
+ sha1 = "0dfd98f5a9111716dd535dda6492f67bf3d25a80";
+ };
+ }
+
+ {
+ name = "is_my_ip_valid___is_my_ip_valid_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_my_ip_valid___is_my_ip_valid_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz";
+ sha1 = "7b351b8e8edd4d3995d4d066680e664d94696824";
+ };
+ }
+
+ {
+ name = "is_my_json_valid___is_my_json_valid_2.19.0.tgz";
+ path = fetchurl {
+ name = "is_my_json_valid___is_my_json_valid_2.19.0.tgz";
+ url = "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.19.0.tgz";
+ sha1 = "8fd6e40363cd06b963fa877d444bfb5eddc62175";
+ };
+ }
+
+ {
+ name = "is_nan___is_nan_1.2.1.tgz";
+ path = fetchurl {
+ name = "is_nan___is_nan_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/is-nan/-/is-nan-1.2.1.tgz";
+ sha1 = "9faf65b6fb6db24b7f5c0628475ea71f988401e2";
+ };
+ }
+
+ {
+ name = "is_npm___is_npm_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_npm___is_npm_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz";
+ sha1 = "f2fb63a65e4905b406c86072765a1a4dc793b9f4";
+ };
+ }
+
+ {
+ name = "is_number___is_number_3.0.0.tgz";
+ path = fetchurl {
+ name = "is_number___is_number_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz";
+ sha1 = "24fd6201a4782cf50561c810276afc7d12d71195";
+ };
+ }
+
+ {
+ name = "is_obj___is_obj_1.0.1.tgz";
+ path = fetchurl {
+ name = "is_obj___is_obj_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz";
+ sha1 = "3e4729ac1f5fde025cd7d83a896dab9f4f67db0f";
+ };
+ }
+
+ {
+ name = "is_observable___is_observable_1.1.0.tgz";
+ path = fetchurl {
+ name = "is_observable___is_observable_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/is-observable/-/is-observable-1.1.0.tgz";
+ sha1 = "b3e986c8f44de950867cab5403f5a3465005975e";
+ };
+ }
+
+ {
+ name = "is_path_cwd___is_path_cwd_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_path_cwd___is_path_cwd_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz";
+ sha1 = "d225ec23132e89edd38fda767472e62e65f1106d";
+ };
+ }
+
+ {
+ name = "is_path_in_cwd___is_path_in_cwd_1.0.1.tgz";
+ path = fetchurl {
+ name = "is_path_in_cwd___is_path_in_cwd_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz";
+ sha1 = "5ac48b345ef675339bd6c7a48a912110b241cf52";
+ };
+ }
+
+ {
+ name = "is_path_inside___is_path_inside_1.0.1.tgz";
+ path = fetchurl {
+ name = "is_path_inside___is_path_inside_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz";
+ sha1 = "8ef5b7de50437a3fdca6b4e865ef7aa55cb48036";
+ };
+ }
+
+ {
+ name = "is_plain_object___is_plain_object_2.0.4.tgz";
+ path = fetchurl {
+ name = "is_plain_object___is_plain_object_2.0.4.tgz";
+ url = "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz";
+ sha1 = "2c163b3fafb1b606d9d17928f05c2a1c38e07677";
+ };
+ }
+
+ {
+ name = "is_promise___is_promise_2.1.0.tgz";
+ path = fetchurl {
+ name = "is_promise___is_promise_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz";
+ sha1 = "79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa";
+ };
+ }
+
+ {
+ name = "is_property___is_property_1.0.2.tgz";
+ path = fetchurl {
+ name = "is_property___is_property_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz";
+ sha1 = "57fe1c4e48474edd65b09911f26b1cd4095dda84";
+ };
+ }
+
+ {
+ name = "is_redirect___is_redirect_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_redirect___is_redirect_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz";
+ sha1 = "1d03dded53bd8db0f30c26e4f95d36fc7c87dc24";
+ };
+ }
+
+ {
+ name = "is_regexp___is_regexp_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_regexp___is_regexp_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz";
+ sha1 = "fd2d883545c46bac5a633e7b9a09e87fa2cb5069";
+ };
+ }
+
+ {
+ name = "is_resolvable___is_resolvable_1.1.0.tgz";
+ path = fetchurl {
+ name = "is_resolvable___is_resolvable_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz";
+ sha1 = "fb18f87ce1feb925169c9a407c19318a3206ed88";
+ };
+ }
+
+ {
+ name = "is_retry_allowed___is_retry_allowed_1.1.0.tgz";
+ path = fetchurl {
+ name = "is_retry_allowed___is_retry_allowed_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz";
+ sha1 = "11a060568b67339444033d0125a61a20d564fb34";
+ };
+ }
+
+ {
+ name = "is_stream___is_stream_1.1.0.tgz";
+ path = fetchurl {
+ name = "is_stream___is_stream_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz";
+ sha1 = "12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44";
+ };
+ }
+
+ {
+ name = "is_typedarray___is_typedarray_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_typedarray___is_typedarray_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz";
+ sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a";
+ };
+ }
+
+ {
+ name = "is_windows___is_windows_1.0.2.tgz";
+ path = fetchurl {
+ name = "is_windows___is_windows_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz";
+ sha1 = "d1850eb9791ecd18e6182ce12a30f396634bb19d";
+ };
+ }
+
+ {
+ name = "isarray___isarray_0.0.1.tgz";
+ path = fetchurl {
+ name = "isarray___isarray_0.0.1.tgz";
+ url = "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz";
+ sha1 = "8a18acfca9a8f4177e09abfc6038939b05d1eedf";
+ };
+ }
+
+ {
+ name = "isarray___isarray_1.0.0.tgz";
+ path = fetchurl {
+ name = "isarray___isarray_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz";
+ sha1 = "bb935d48582cba168c06834957a54a3e07124f11";
+ };
+ }
+
+ {
+ name = "isarray___isarray_2.0.1.tgz";
+ path = fetchurl {
+ name = "isarray___isarray_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz";
+ sha1 = "a37d94ed9cda2d59865c9f76fe596ee1f338741e";
+ };
+ }
+
+ {
+ name = "isexe___isexe_2.0.0.tgz";
+ path = fetchurl {
+ name = "isexe___isexe_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz";
+ sha1 = "e8fbf374dc556ff8947a10dcb0572d633f2cfa10";
+ };
+ }
+
+ {
+ name = "iso_639_3___iso_639_3_1.1.0.tgz";
+ path = fetchurl {
+ name = "iso_639_3___iso_639_3_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/iso-639-3/-/iso-639-3-1.1.0.tgz";
+ sha1 = "83722daf55490a707c318ae18a33ba3bab06c843";
+ };
+ }
+
+ {
+ name = "isobject___isobject_2.1.0.tgz";
+ path = fetchurl {
+ name = "isobject___isobject_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz";
+ sha1 = "f065561096a3f1da2ef46272f815c840d87e0c89";
+ };
+ }
+
+ {
+ name = "isobject___isobject_3.0.1.tgz";
+ path = fetchurl {
+ name = "isobject___isobject_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz";
+ sha1 = "4e431e92b11a9731636aa1f9c8d1ccbcfdab78df";
+ };
+ }
+
+ {
+ name = "isstream___isstream_0.1.2.tgz";
+ path = fetchurl {
+ name = "isstream___isstream_0.1.2.tgz";
+ url = "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz";
+ sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a";
+ };
+ }
+
+ {
+ name = "jest_get_type___jest_get_type_22.4.3.tgz";
+ path = fetchurl {
+ name = "jest_get_type___jest_get_type_22.4.3.tgz";
+ url = "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-22.4.3.tgz";
+ sha1 = "e3a8504d8479342dd4420236b322869f18900ce4";
+ };
+ }
+
+ {
+ name = "jest_validate___jest_validate_23.6.0.tgz";
+ path = fetchurl {
+ name = "jest_validate___jest_validate_23.6.0.tgz";
+ url = "https://registry.yarnpkg.com/jest-validate/-/jest-validate-23.6.0.tgz";
+ sha1 = "36761f99d1ed33fcd425b4e4c5595d62b6597474";
+ };
+ }
+
+ {
+ name = "js_tokens___js_tokens_3.0.2.tgz";
+ path = fetchurl {
+ name = "js_tokens___js_tokens_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz";
+ sha1 = "9866df395102130e38f7f996bceb65443209c25b";
+ };
+ }
+
+ {
+ name = "js_yaml___js_yaml_3.12.0.tgz";
+ path = fetchurl {
+ name = "js_yaml___js_yaml_3.12.0.tgz";
+ url = "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz";
+ sha1 = "eaed656ec8344f10f527c6bfa1b6e2244de167d1";
+ };
+ }
+
+ {
+ name = "jsbn___jsbn_0.1.1.tgz";
+ path = fetchurl {
+ name = "jsbn___jsbn_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz";
+ sha1 = "a5e654c2e5a2deb5f201d96cefbca80c0ef2f513";
+ };
+ }
+
+ {
+ name = "json_parse_better_errors___json_parse_better_errors_1.0.2.tgz";
+ path = fetchurl {
+ name = "json_parse_better_errors___json_parse_better_errors_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz";
+ sha1 = "bb867cfb3450e69107c131d1c514bab3dc8bcaa9";
+ };
+ }
+
+ {
+ name = "json_schema_ref_parser___json_schema_ref_parser_6.0.2.tgz";
+ path = fetchurl {
+ name = "json_schema_ref_parser___json_schema_ref_parser_6.0.2.tgz";
+ url = "https://registry.yarnpkg.com/json-schema-ref-parser/-/json-schema-ref-parser-6.0.2.tgz";
+ sha1 = "c17bfed06fa7ff8f1ade36067d087b46f5465ef8";
+ };
+ }
+
+ {
+ name = "json_schema_traverse___json_schema_traverse_0.4.1.tgz";
+ path = fetchurl {
+ name = "json_schema_traverse___json_schema_traverse_0.4.1.tgz";
+ url = "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz";
+ sha1 = "69f6a87d9513ab8bb8fe63bdb0979c448e684660";
+ };
+ }
+
+ {
+ name = "json_schema___json_schema_0.2.3.tgz";
+ path = fetchurl {
+ name = "json_schema___json_schema_0.2.3.tgz";
+ url = "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz";
+ sha1 = "b480c892e59a2f05954ce727bd3f2a4e882f9e13";
+ };
+ }
+
+ {
+ name = "json_stable_stringify___json_stable_stringify_1.0.1.tgz";
+ path = fetchurl {
+ name = "json_stable_stringify___json_stable_stringify_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz";
+ sha1 = "9a759d39c5f2ff503fd5300646ed445f88c4f9af";
+ };
+ }
+
+ {
+ name = "json_stringify_safe___json_stringify_safe_5.0.1.tgz";
+ path = fetchurl {
+ name = "json_stringify_safe___json_stringify_safe_5.0.1.tgz";
+ url = "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz";
+ sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb";
+ };
+ }
+
+ {
+ name = "json3___json3_3.3.2.tgz";
+ path = fetchurl {
+ name = "json3___json3_3.3.2.tgz";
+ url = "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz";
+ sha1 = "3c0434743df93e2f5c42aee7b19bcb483575f4e1";
+ };
+ }
+
+ {
+ name = "json5___json5_1.0.1.tgz";
+ path = fetchurl {
+ name = "json5___json5_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz";
+ sha1 = "779fb0018604fa854eacbf6252180d83543e3dbe";
+ };
+ }
+
+ {
+ name = "jsonfile___jsonfile_3.0.1.tgz";
+ path = fetchurl {
+ name = "jsonfile___jsonfile_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/jsonfile/-/jsonfile-3.0.1.tgz";
+ sha1 = "a5ecc6f65f53f662c4415c7675a0331d0992ec66";
+ };
+ }
+
+ {
+ name = "jsonfile___jsonfile_4.0.0.tgz";
+ path = fetchurl {
+ name = "jsonfile___jsonfile_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz";
+ sha1 = "8771aae0799b64076b76640fca058f9c10e33ecb";
+ };
+ }
+
+ {
+ name = "jsonify___jsonify_0.0.0.tgz";
+ path = fetchurl {
+ name = "jsonify___jsonify_0.0.0.tgz";
+ url = "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz";
+ sha1 = "2c74b6ee41d93ca51b7b5aaee8f503631d252a73";
+ };
+ }
+
+ {
+ name = "https___github.com_Chocobozzz_jsonld_signatures_archive_77660963e722eb4541d2d255f9d9d4216329665f.tar.gz";
+ path = fetchurl {
+ name = "jsonld-signatures.tar.gz";
+ url = "https://github.com/Chocobozzz/jsonld-signatures/archive/77660963e722eb4541d2d255f9d9d4216329665f.tar.gz";
+ sha256 = "0prld6q913bsh6kyfq43ny7cw5s1ixki5d4z1kw932shw9piqv5m";
+ };
+ }
+
+ {
+ name = "jsonld___jsonld_0.5.21.tgz";
+ path = fetchurl {
+ name = "jsonld___jsonld_0.5.21.tgz";
+ url = "https://registry.yarnpkg.com/jsonld/-/jsonld-0.5.21.tgz";
+ sha1 = "4d5b78d717eb92bcd1ac9d88e34efad95370c0bf";
+ };
+ }
+
+ {
+ name = "jsonld___jsonld_1.1.0.tgz";
+ path = fetchurl {
+ name = "jsonld___jsonld_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/jsonld/-/jsonld-1.1.0.tgz";
+ sha1 = "afcb168c44557a7bddead4d4513c3cbcae3bc5b9";
+ };
+ }
+
+ {
+ name = "jsonparse___jsonparse_1.3.1.tgz";
+ path = fetchurl {
+ name = "jsonparse___jsonparse_1.3.1.tgz";
+ url = "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz";
+ sha1 = "3f4dae4a91fac315f71062f8521cc239f1366280";
+ };
+ }
+
+ {
+ name = "jsonpointer.js___jsonpointer.js_0.4.0.tgz";
+ path = fetchurl {
+ name = "jsonpointer.js___jsonpointer.js_0.4.0.tgz";
+ url = "https://registry.yarnpkg.com/jsonpointer.js/-/jsonpointer.js-0.4.0.tgz";
+ sha1 = "002cb123f767aafdeb0196132ce5c4f9941ccaba";
+ };
+ }
+
+ {
+ name = "jsonpointer___jsonpointer_4.0.1.tgz";
+ path = fetchurl {
+ name = "jsonpointer___jsonpointer_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz";
+ sha1 = "4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9";
+ };
+ }
+
+ {
+ name = "jsonschema_draft4___jsonschema_draft4_1.0.0.tgz";
+ path = fetchurl {
+ name = "jsonschema_draft4___jsonschema_draft4_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/jsonschema-draft4/-/jsonschema-draft4-1.0.0.tgz";
+ sha1 = "f0af2005054f0f0ade7ea2118614b69dc512d865";
+ };
+ }
+
+ {
+ name = "jsonschema___jsonschema_1.2.4.tgz";
+ path = fetchurl {
+ name = "jsonschema___jsonschema_1.2.4.tgz";
+ url = "https://registry.yarnpkg.com/jsonschema/-/jsonschema-1.2.4.tgz";
+ sha1 = "a46bac5d3506a254465bc548876e267c6d0d6464";
+ };
+ }
+
+ {
+ name = "jsprim___jsprim_1.4.1.tgz";
+ path = fetchurl {
+ name = "jsprim___jsprim_1.4.1.tgz";
+ url = "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz";
+ sha1 = "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2";
+ };
+ }
+
+ {
+ name = "junk___junk_2.1.0.tgz";
+ path = fetchurl {
+ name = "junk___junk_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/junk/-/junk-2.1.0.tgz";
+ sha1 = "f431b4b7f072dc500a5f10ce7f4ec71930e70134";
+ };
+ }
+
+ {
+ name = "jwa___jwa_1.1.6.tgz";
+ path = fetchurl {
+ name = "jwa___jwa_1.1.6.tgz";
+ url = "https://registry.yarnpkg.com/jwa/-/jwa-1.1.6.tgz";
+ sha1 = "87240e76c9808dbde18783cf2264ef4929ee50e6";
+ };
+ }
+
+ {
+ name = "jws___jws_3.1.5.tgz";
+ path = fetchurl {
+ name = "jws___jws_3.1.5.tgz";
+ url = "https://registry.yarnpkg.com/jws/-/jws-3.1.5.tgz";
+ sha1 = "80d12d05b293d1e841e7cb8b4e69e561adcf834f";
+ };
+ }
+
+ {
+ name = "k_bucket___k_bucket_4.0.1.tgz";
+ path = fetchurl {
+ name = "k_bucket___k_bucket_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/k-bucket/-/k-bucket-4.0.1.tgz";
+ sha1 = "3fc2e5693f0b7bff90d7b6b476edd6087955d542";
+ };
+ }
+
+ {
+ name = "k_bucket___k_bucket_5.0.0.tgz";
+ path = fetchurl {
+ name = "k_bucket___k_bucket_5.0.0.tgz";
+ url = "https://registry.yarnpkg.com/k-bucket/-/k-bucket-5.0.0.tgz";
+ sha1 = "ef7a401fcd4c37cd31dceaa6ae4440ca91055e01";
+ };
+ }
+
+ {
+ name = "k_rpc_socket___k_rpc_socket_1.8.0.tgz";
+ path = fetchurl {
+ name = "k_rpc_socket___k_rpc_socket_1.8.0.tgz";
+ url = "https://registry.yarnpkg.com/k-rpc-socket/-/k-rpc-socket-1.8.0.tgz";
+ sha1 = "9a4dd6a4f3795ed847ffa156579cc389990bd1f2";
+ };
+ }
+
+ {
+ name = "k_rpc___k_rpc_5.0.0.tgz";
+ path = fetchurl {
+ name = "k_rpc___k_rpc_5.0.0.tgz";
+ url = "https://registry.yarnpkg.com/k-rpc/-/k-rpc-5.0.0.tgz";
+ sha1 = "a72651860c96db440579e4c9f38dce8a42b481a8";
+ };
+ }
+
+ {
+ name = "kind_of___kind_of_3.2.2.tgz";
+ path = fetchurl {
+ name = "kind_of___kind_of_3.2.2.tgz";
+ url = "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz";
+ sha1 = "31ea21a734bab9bbb0f32466d893aea51e4a3c64";
+ };
+ }
+
+ {
+ name = "kind_of___kind_of_4.0.0.tgz";
+ path = fetchurl {
+ name = "kind_of___kind_of_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz";
+ sha1 = "20813df3d712928b207378691a45066fae72dd57";
+ };
+ }
+
+ {
+ name = "kind_of___kind_of_5.1.0.tgz";
+ path = fetchurl {
+ name = "kind_of___kind_of_5.1.0.tgz";
+ url = "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz";
+ sha1 = "729c91e2d857b7a419a1f9aa65685c4c33f5845d";
+ };
+ }
+
+ {
+ name = "kind_of___kind_of_6.0.2.tgz";
+ path = fetchurl {
+ name = "kind_of___kind_of_6.0.2.tgz";
+ url = "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz";
+ sha1 = "01146b36a6218e64e58f3a8d66de5d7fc6f6d051";
+ };
+ }
+
+ {
+ name = "known_css_properties___known_css_properties_0.3.0.tgz";
+ path = fetchurl {
+ name = "known_css_properties___known_css_properties_0.3.0.tgz";
+ url = "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.3.0.tgz";
+ sha1 = "a3d135bbfc60ee8c6eacf2f7e7e6f2d4755e49a4";
+ };
+ }
+
+ {
+ name = "kuler___kuler_1.0.1.tgz";
+ path = fetchurl {
+ name = "kuler___kuler_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/kuler/-/kuler-1.0.1.tgz";
+ sha1 = "ef7c784f36c9fb6e16dd3150d152677b2b0228a6";
+ };
+ }
+
+ {
+ name = "last_one_wins___last_one_wins_1.0.4.tgz";
+ path = fetchurl {
+ name = "last_one_wins___last_one_wins_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/last-one-wins/-/last-one-wins-1.0.4.tgz";
+ sha1 = "c1bfd0cbcb46790ec9156b8d1aee8fcb86cda22a";
+ };
+ }
+
+ {
+ name = "latest_version___latest_version_3.1.0.tgz";
+ path = fetchurl {
+ name = "latest_version___latest_version_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz";
+ sha1 = "a205383fea322b33b5ae3b18abee0dc2f356ee15";
+ };
+ }
+
+ {
+ name = "lazy_property___lazy_property_1.0.0.tgz";
+ path = fetchurl {
+ name = "lazy_property___lazy_property_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/lazy-property/-/lazy-property-1.0.0.tgz";
+ sha1 = "84ddc4b370679ba8bd4cdcfa4c06b43d57111147";
+ };
+ }
+
+ {
+ name = "lcid___lcid_1.0.0.tgz";
+ path = fetchurl {
+ name = "lcid___lcid_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz";
+ sha1 = "308accafa0bc483a3867b4b6f2b9506251d1b835";
+ };
+ }
+
+ {
+ name = "lcid___lcid_2.0.0.tgz";
+ path = fetchurl {
+ name = "lcid___lcid_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz";
+ sha1 = "6ef5d2df60e52f82eb228a4c373e8d1f397253cf";
+ };
+ }
+
+ {
+ name = "ldap_filter___ldap_filter_0.2.2.tgz";
+ path = fetchurl {
+ name = "ldap_filter___ldap_filter_0.2.2.tgz";
+ url = "https://registry.yarnpkg.com/ldap-filter/-/ldap-filter-0.2.2.tgz";
+ sha1 = "f2b842be0b86da3352798505b31ebcae590d77d0";
+ };
+ }
+
+ {
+ name = "ldapjs___ldapjs_1.0.2.tgz";
+ path = fetchurl {
+ name = "ldapjs___ldapjs_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/ldapjs/-/ldapjs-1.0.2.tgz";
+ sha1 = "544ff7032b7b83c68f0701328d9297aa694340f9";
+ };
+ }
+
+ {
+ name = "leven___leven_2.1.0.tgz";
+ path = fetchurl {
+ name = "leven___leven_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz";
+ sha1 = "c2e7a9f772094dee9d34202ae8acce4687875580";
+ };
+ }
+
+ {
+ name = "levn___levn_0.3.0.tgz";
+ path = fetchurl {
+ name = "levn___levn_0.3.0.tgz";
+ url = "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz";
+ sha1 = "3b09924edf9f083c0490fdd4c0bc4421e04764ee";
+ };
+ }
+
+ {
+ name = "libcipm___libcipm_2.0.2.tgz";
+ path = fetchurl {
+ name = "libcipm___libcipm_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/libcipm/-/libcipm-2.0.2.tgz";
+ sha1 = "4f38c2b37acf2ec156936cef1cbf74636568fc7b";
+ };
+ }
+
+ {
+ name = "libnpmhook___libnpmhook_4.0.1.tgz";
+ path = fetchurl {
+ name = "libnpmhook___libnpmhook_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/libnpmhook/-/libnpmhook-4.0.1.tgz";
+ sha1 = "63641654de772cbeb96a88527a7fd5456ec3c2d7";
+ };
+ }
+
+ {
+ name = "libnpx___libnpx_10.2.0.tgz";
+ path = fetchurl {
+ name = "libnpx___libnpx_10.2.0.tgz";
+ url = "https://registry.yarnpkg.com/libnpx/-/libnpx-10.2.0.tgz";
+ sha1 = "1bf4a1c9f36081f64935eb014041da10855e3102";
+ };
+ }
+
+ {
+ name = "libxmljs___libxmljs_0.19.5.tgz";
+ path = fetchurl {
+ name = "libxmljs___libxmljs_0.19.5.tgz";
+ url = "https://registry.yarnpkg.com/libxmljs/-/libxmljs-0.19.5.tgz";
+ sha1 = "b2f34cc12fd6a3e43670c604c42a902f339ea54d";
+ };
+ }
+
+ {
+ name = "lint_staged___lint_staged_8.1.0.tgz";
+ path = fetchurl {
+ name = "lint_staged___lint_staged_8.1.0.tgz";
+ url = "https://registry.yarnpkg.com/lint-staged/-/lint-staged-8.1.0.tgz";
+ sha1 = "dbc3ae2565366d8f20efb9f9799d076da64863f2";
+ };
+ }
+
+ {
+ name = "listr_silent_renderer___listr_silent_renderer_1.1.1.tgz";
+ path = fetchurl {
+ name = "listr_silent_renderer___listr_silent_renderer_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz";
+ sha1 = "924b5a3757153770bf1a8e3fbf74b8bbf3f9242e";
+ };
+ }
+
+ {
+ name = "listr_update_renderer___listr_update_renderer_0.5.0.tgz";
+ path = fetchurl {
+ name = "listr_update_renderer___listr_update_renderer_0.5.0.tgz";
+ url = "https://registry.yarnpkg.com/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz";
+ sha1 = "4ea8368548a7b8aecb7e06d8c95cb45ae2ede6a2";
+ };
+ }
+
+ {
+ name = "listr_verbose_renderer___listr_verbose_renderer_0.5.0.tgz";
+ path = fetchurl {
+ name = "listr_verbose_renderer___listr_verbose_renderer_0.5.0.tgz";
+ url = "https://registry.yarnpkg.com/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz";
+ sha1 = "f1132167535ea4c1261102b9f28dac7cba1e03db";
+ };
+ }
+
+ {
+ name = "listr___listr_0.14.3.tgz";
+ path = fetchurl {
+ name = "listr___listr_0.14.3.tgz";
+ url = "https://registry.yarnpkg.com/listr/-/listr-0.14.3.tgz";
+ sha1 = "2fea909604e434be464c50bddba0d496928fa586";
+ };
+ }
+
+ {
+ name = "load_ip_set___load_ip_set_2.1.0.tgz";
+ path = fetchurl {
+ name = "load_ip_set___load_ip_set_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/load-ip-set/-/load-ip-set-2.1.0.tgz";
+ sha1 = "2d50b737cae41de4e413d213991d4083a3e1784b";
+ };
+ }
+
+ {
+ name = "locate_path___locate_path_2.0.0.tgz";
+ path = fetchurl {
+ name = "locate_path___locate_path_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz";
+ sha1 = "2b568b265eec944c6d9c0de9c3dbbbca0354cd8e";
+ };
+ }
+
+ {
+ name = "locate_path___locate_path_3.0.0.tgz";
+ path = fetchurl {
+ name = "locate_path___locate_path_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz";
+ sha1 = "dbec3b3ab759758071b58fe59fc41871af21400e";
+ };
+ }
+
+ {
+ name = "lock_verify___lock_verify_2.0.2.tgz";
+ path = fetchurl {
+ name = "lock_verify___lock_verify_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/lock-verify/-/lock-verify-2.0.2.tgz";
+ sha1 = "148e4f85974915c9e3c34d694b7de9ecb18ee7a8";
+ };
+ }
+
+ {
+ name = "lockfile___lockfile_1.0.4.tgz";
+ path = fetchurl {
+ name = "lockfile___lockfile_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/lockfile/-/lockfile-1.0.4.tgz";
+ sha1 = "07f819d25ae48f87e538e6578b6964a4981a5609";
+ };
+ }
+
+ {
+ name = "lodash._baseuniq___lodash._baseuniq_4.6.0.tgz";
+ path = fetchurl {
+ name = "lodash._baseuniq___lodash._baseuniq_4.6.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz";
+ sha1 = "0ebb44e456814af7905c6212fa2c9b2d51b841e8";
+ };
+ }
+
+ {
+ name = "lodash._createset___lodash._createset_4.0.3.tgz";
+ path = fetchurl {
+ name = "lodash._createset___lodash._createset_4.0.3.tgz";
+ url = "https://registry.yarnpkg.com/lodash._createset/-/lodash._createset-4.0.3.tgz";
+ sha1 = "0f4659fbb09d75194fa9e2b88a6644d363c9fe26";
+ };
+ }
+
+ {
+ name = "lodash._root___lodash._root_3.0.1.tgz";
+ path = fetchurl {
+ name = "lodash._root___lodash._root_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz";
+ sha1 = "fba1c4524c19ee9a5f8136b4609f017cf4ded692";
+ };
+ }
+
+ {
+ name = "lodash.assign___lodash.assign_4.2.0.tgz";
+ path = fetchurl {
+ name = "lodash.assign___lodash.assign_4.2.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz";
+ sha1 = "0d99f3ccd7a6d261d19bdaeb9245005d285808e7";
+ };
+ }
+
+ {
+ name = "lodash.bind___lodash.bind_4.2.1.tgz";
+ path = fetchurl {
+ name = "lodash.bind___lodash.bind_4.2.1.tgz";
+ url = "https://registry.yarnpkg.com/lodash.bind/-/lodash.bind-4.2.1.tgz";
+ sha1 = "7ae3017e939622ac31b7d7d7dcb1b34db1690d35";
+ };
+ }
+
+ {
+ name = "lodash.capitalize___lodash.capitalize_4.2.1.tgz";
+ path = fetchurl {
+ name = "lodash.capitalize___lodash.capitalize_4.2.1.tgz";
+ url = "https://registry.yarnpkg.com/lodash.capitalize/-/lodash.capitalize-4.2.1.tgz";
+ sha1 = "f826c9b4e2a8511d84e3aca29db05e1a4f3b72a9";
+ };
+ }
+
+ {
+ name = "lodash.clone___lodash.clone_4.5.0.tgz";
+ path = fetchurl {
+ name = "lodash.clone___lodash.clone_4.5.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.clone/-/lodash.clone-4.5.0.tgz";
+ sha1 = "195870450f5a13192478df4bc3d23d2dea1907b6";
+ };
+ }
+
+ {
+ name = "lodash.clonedeep___lodash.clonedeep_4.5.0.tgz";
+ path = fetchurl {
+ name = "lodash.clonedeep___lodash.clonedeep_4.5.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz";
+ sha1 = "e23f3f9c4f8fbdde872529c1071857a086e5ccef";
+ };
+ }
+
+ {
+ name = "lodash.debounce___lodash.debounce_4.0.8.tgz";
+ path = fetchurl {
+ name = "lodash.debounce___lodash.debounce_4.0.8.tgz";
+ url = "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz";
+ sha1 = "82d79bff30a67c4005ffd5e2515300ad9ca4d7af";
+ };
+ }
+
+ {
+ name = "lodash.defaults___lodash.defaults_4.2.0.tgz";
+ path = fetchurl {
+ name = "lodash.defaults___lodash.defaults_4.2.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz";
+ sha1 = "d09178716ffea4dde9e5fb7b37f6f0802274580c";
+ };
+ }
+
+ {
+ name = "lodash.difference___lodash.difference_4.5.0.tgz";
+ path = fetchurl {
+ name = "lodash.difference___lodash.difference_4.5.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-4.5.0.tgz";
+ sha1 = "9ccb4e505d486b91651345772885a2df27fd017c";
+ };
+ }
+
+ {
+ name = "lodash.flatten___lodash.flatten_4.4.0.tgz";
+ path = fetchurl {
+ name = "lodash.flatten___lodash.flatten_4.4.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz";
+ sha1 = "f31c22225a9632d2bbf8e4addbef240aa765a61f";
+ };
+ }
+
+ {
+ name = "lodash.foreach___lodash.foreach_4.5.0.tgz";
+ path = fetchurl {
+ name = "lodash.foreach___lodash.foreach_4.5.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz";
+ sha1 = "1a6a35eace401280c7f06dddec35165ab27e3e53";
+ };
+ }
+
+ {
+ name = "lodash.get___lodash.get_4.4.2.tgz";
+ path = fetchurl {
+ name = "lodash.get___lodash.get_4.4.2.tgz";
+ url = "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz";
+ sha1 = "2d177f652fa31e939b4438d5341499dfa3825e99";
+ };
+ }
+
+ {
+ name = "lodash.isempty___lodash.isempty_4.4.0.tgz";
+ path = fetchurl {
+ name = "lodash.isempty___lodash.isempty_4.4.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.isempty/-/lodash.isempty-4.4.0.tgz";
+ sha1 = "6f86cbedd8be4ec987be9aaf33c9684db1b31e7e";
+ };
+ }
+
+ {
+ name = "lodash.isequal___lodash.isequal_4.5.0.tgz";
+ path = fetchurl {
+ name = "lodash.isequal___lodash.isequal_4.5.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz";
+ sha1 = "415c4478f2bcc30120c22ce10ed3226f7d3e18e0";
+ };
+ }
+
+ {
+ name = "lodash.kebabcase___lodash.kebabcase_4.1.1.tgz";
+ path = fetchurl {
+ name = "lodash.kebabcase___lodash.kebabcase_4.1.1.tgz";
+ url = "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz";
+ sha1 = "8489b1cb0d29ff88195cceca448ff6d6cc295c36";
+ };
+ }
+
+ {
+ name = "lodash.keys___lodash.keys_4.2.0.tgz";
+ path = fetchurl {
+ name = "lodash.keys___lodash.keys_4.2.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-4.2.0.tgz";
+ sha1 = "a08602ac12e4fb83f91fc1fb7a360a4d9ba35205";
+ };
+ }
+
+ {
+ name = "lodash.noop___lodash.noop_3.0.1.tgz";
+ path = fetchurl {
+ name = "lodash.noop___lodash.noop_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/lodash.noop/-/lodash.noop-3.0.1.tgz";
+ sha1 = "38188f4d650a3a474258439b96ec45b32617133c";
+ };
+ }
+
+ {
+ name = "lodash.partial___lodash.partial_4.2.1.tgz";
+ path = fetchurl {
+ name = "lodash.partial___lodash.partial_4.2.1.tgz";
+ url = "https://registry.yarnpkg.com/lodash.partial/-/lodash.partial-4.2.1.tgz";
+ sha1 = "49f3d8cfdaa3bff8b3a91d127e923245418961d4";
+ };
+ }
+
+ {
+ name = "lodash.pick___lodash.pick_4.4.0.tgz";
+ path = fetchurl {
+ name = "lodash.pick___lodash.pick_4.4.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz";
+ sha1 = "52f05610fff9ded422611441ed1fc123a03001b3";
+ };
+ }
+
+ {
+ name = "lodash.sample___lodash.sample_4.2.1.tgz";
+ path = fetchurl {
+ name = "lodash.sample___lodash.sample_4.2.1.tgz";
+ url = "https://registry.yarnpkg.com/lodash.sample/-/lodash.sample-4.2.1.tgz";
+ sha1 = "5e4291b0c753fa1abeb0aab8fb29df1b66f07f6d";
+ };
+ }
+
+ {
+ name = "lodash.shuffle___lodash.shuffle_4.2.0.tgz";
+ path = fetchurl {
+ name = "lodash.shuffle___lodash.shuffle_4.2.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.shuffle/-/lodash.shuffle-4.2.0.tgz";
+ sha1 = "145b5053cf875f6f5c2a33f48b6e9948c6ec7b4b";
+ };
+ }
+
+ {
+ name = "lodash.union___lodash.union_4.6.0.tgz";
+ path = fetchurl {
+ name = "lodash.union___lodash.union_4.6.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz";
+ sha1 = "48bb5088409f16f1821666641c44dd1aaae3cd88";
+ };
+ }
+
+ {
+ name = "lodash.uniq___lodash.uniq_4.5.0.tgz";
+ path = fetchurl {
+ name = "lodash.uniq___lodash.uniq_4.5.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz";
+ sha1 = "d0225373aeb652adc1bc82e4945339a842754773";
+ };
+ }
+
+ {
+ name = "lodash.values___lodash.values_4.3.0.tgz";
+ path = fetchurl {
+ name = "lodash.values___lodash.values_4.3.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.values/-/lodash.values-4.3.0.tgz";
+ sha1 = "a3a6c2b0ebecc5c2cba1c17e6e620fe81b53d347";
+ };
+ }
+
+ {
+ name = "lodash.without___lodash.without_4.4.0.tgz";
+ path = fetchurl {
+ name = "lodash.without___lodash.without_4.4.0.tgz";
+ url = "https://registry.yarnpkg.com/lodash.without/-/lodash.without-4.4.0.tgz";
+ sha1 = "3cd4574a00b67bae373a94b748772640507b7aac";
+ };
+ }
+
+ {
+ name = "lodash___lodash_4.17.4.tgz";
+ path = fetchurl {
+ name = "lodash___lodash_4.17.4.tgz";
+ url = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz";
+ sha1 = "78203a4d1c328ae1d86dca6460e369b57f4055ae";
+ };
+ }
+
+ {
+ name = "lodash___lodash_3.10.1.tgz";
+ path = fetchurl {
+ name = "lodash___lodash_3.10.1.tgz";
+ url = "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz";
+ sha1 = "5bf45e8e49ba4189e17d482789dfd15bd140b7b6";
+ };
+ }
+
+ {
+ name = "lodash___lodash_4.17.11.tgz";
+ path = fetchurl {
+ name = "lodash___lodash_4.17.11.tgz";
+ url = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz";
+ sha1 = "b39ea6229ef607ecd89e2c8df12536891cac9b8d";
+ };
+ }
+
+ {
+ name = "log_symbols___log_symbols_1.0.2.tgz";
+ path = fetchurl {
+ name = "log_symbols___log_symbols_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz";
+ sha1 = "376ff7b58ea3086a0f09facc74617eca501e1a18";
+ };
+ }
+
+ {
+ name = "log_symbols___log_symbols_2.2.0.tgz";
+ path = fetchurl {
+ name = "log_symbols___log_symbols_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz";
+ sha1 = "5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a";
+ };
+ }
+
+ {
+ name = "log_update___log_update_2.3.0.tgz";
+ path = fetchurl {
+ name = "log_update___log_update_2.3.0.tgz";
+ url = "https://registry.yarnpkg.com/log-update/-/log-update-2.3.0.tgz";
+ sha1 = "88328fd7d1ce7938b29283746f0b1bc126b24708";
+ };
+ }
+
+ {
+ name = "logform___logform_1.10.0.tgz";
+ path = fetchurl {
+ name = "logform___logform_1.10.0.tgz";
+ url = "https://registry.yarnpkg.com/logform/-/logform-1.10.0.tgz";
+ sha1 = "c9d5598714c92b546e23f4e78147c40f1e02012e";
+ };
+ }
+
+ {
+ name = "lowercase_keys___lowercase_keys_1.0.1.tgz";
+ path = fetchurl {
+ name = "lowercase_keys___lowercase_keys_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz";
+ sha1 = "6f9e30b47084d971a7c820ff15a6c5167b74c26f";
+ };
+ }
+
+ {
+ name = "lru_cache___lru_cache_4.1.5.tgz";
+ path = fetchurl {
+ name = "lru_cache___lru_cache_4.1.5.tgz";
+ url = "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz";
+ sha1 = "8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd";
+ };
+ }
+
+ {
+ name = "lru_queue___lru_queue_0.1.0.tgz";
+ path = fetchurl {
+ name = "lru_queue___lru_queue_0.1.0.tgz";
+ url = "https://registry.yarnpkg.com/lru-queue/-/lru-queue-0.1.0.tgz";
+ sha1 = "2738bd9f0d3cf4f84490c5736c48699ac632cda3";
+ };
+ }
+
+ {
+ name = "lru___lru_3.1.0.tgz";
+ path = fetchurl {
+ name = "lru___lru_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/lru/-/lru-3.1.0.tgz";
+ sha1 = "ea7fb8546d83733396a13091d76cfeb4c06837d5";
+ };
+ }
+
+ {
+ name = "magnet_uri___magnet_uri_5.2.4.tgz";
+ path = fetchurl {
+ name = "magnet_uri___magnet_uri_5.2.4.tgz";
+ url = "https://registry.yarnpkg.com/magnet-uri/-/magnet-uri-5.2.4.tgz";
+ sha1 = "7afe5b736af04445aff744c93a890a3710077688";
+ };
+ }
+
+ {
+ name = "maildev___maildev_1.0.0_rc3.tgz";
+ path = fetchurl {
+ name = "maildev___maildev_1.0.0_rc3.tgz";
+ url = "https://registry.yarnpkg.com/maildev/-/maildev-1.0.0-rc3.tgz";
+ sha1 = "89429d47b07633e3269a74e484991eecdf3a3857";
+ };
+ }
+
+ {
+ name = "mailparser___mailparser_0.6.2.tgz";
+ path = fetchurl {
+ name = "mailparser___mailparser_0.6.2.tgz";
+ url = "https://registry.yarnpkg.com/mailparser/-/mailparser-0.6.2.tgz";
+ sha1 = "03c486039bdf4df6cd3b6adcaaac4107dfdbc068";
+ };
+ }
+
+ {
+ name = "make_dir___make_dir_1.3.0.tgz";
+ path = fetchurl {
+ name = "make_dir___make_dir_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz";
+ sha1 = "79c1033b80515bd6d24ec9933e860ca75ee27f0c";
+ };
+ }
+
+ {
+ name = "make_error___make_error_1.3.5.tgz";
+ path = fetchurl {
+ name = "make_error___make_error_1.3.5.tgz";
+ url = "https://registry.yarnpkg.com/make-error/-/make-error-1.3.5.tgz";
+ sha1 = "efe4e81f6db28cadd605c70f29c831b58ef776c8";
+ };
+ }
+
+ {
+ name = "make_fetch_happen___make_fetch_happen_4.0.1.tgz";
+ path = fetchurl {
+ name = "make_fetch_happen___make_fetch_happen_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-4.0.1.tgz";
+ sha1 = "141497cb878f243ba93136c83d8aba12c216c083";
+ };
+ }
+
+ {
+ name = "make_fetch_happen___make_fetch_happen_3.0.0.tgz";
+ path = fetchurl {
+ name = "make_fetch_happen___make_fetch_happen_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-3.0.0.tgz";
+ sha1 = "7b661d2372fc4710ab5cc8e1fa3c290eea69a961";
+ };
+ }
+
+ {
+ name = "map_age_cleaner___map_age_cleaner_0.1.3.tgz";
+ path = fetchurl {
+ name = "map_age_cleaner___map_age_cleaner_0.1.3.tgz";
+ url = "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz";
+ sha1 = "7d583a7306434c055fe474b0f45078e6e1b4b92a";
+ };
+ }
+
+ {
+ name = "map_cache___map_cache_0.2.2.tgz";
+ path = fetchurl {
+ name = "map_cache___map_cache_0.2.2.tgz";
+ url = "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz";
+ sha1 = "c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf";
+ };
+ }
+
+ {
+ name = "map_visit___map_visit_1.0.0.tgz";
+ path = fetchurl {
+ name = "map_visit___map_visit_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz";
+ sha1 = "ecdca8f13144e660f1b5bd41f12f3479d98dfb8f";
+ };
+ }
+
+ {
+ name = "marked_man___marked_man_0.2.1.tgz";
+ path = fetchurl {
+ name = "marked_man___marked_man_0.2.1.tgz";
+ url = "https://registry.yarnpkg.com/marked-man/-/marked-man-0.2.1.tgz";
+ sha1 = "f259271481de3b507263489f5221b7c5acfd2383";
+ };
+ }
+
+ {
+ name = "marked___marked_0.3.19.tgz";
+ path = fetchurl {
+ name = "marked___marked_0.3.19.tgz";
+ url = "https://registry.yarnpkg.com/marked/-/marked-0.3.19.tgz";
+ sha1 = "5d47f709c4c9fc3c216b6d46127280f40b39d790";
+ };
+ }
+
+ {
+ name = "matcher___matcher_1.1.1.tgz";
+ path = fetchurl {
+ name = "matcher___matcher_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/matcher/-/matcher-1.1.1.tgz";
+ sha1 = "51d8301e138f840982b338b116bb0c09af62c1c2";
+ };
+ }
+
+ {
+ name = "md5___md5_2.2.1.tgz";
+ path = fetchurl {
+ name = "md5___md5_2.2.1.tgz";
+ url = "https://registry.yarnpkg.com/md5/-/md5-2.2.1.tgz";
+ sha1 = "53ab38d5fe3c8891ba465329ea23fac0540126f9";
+ };
+ }
+
+ {
+ name = "meant___meant_1.0.1.tgz";
+ path = fetchurl {
+ name = "meant___meant_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/meant/-/meant-1.0.1.tgz";
+ sha1 = "66044fea2f23230ec806fb515efea29c44d2115d";
+ };
+ }
+
+ {
+ name = "media_typer___media_typer_0.3.0.tgz";
+ path = fetchurl {
+ name = "media_typer___media_typer_0.3.0.tgz";
+ url = "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz";
+ sha1 = "8710d7af0aa626f8fffa1ce00168545263255748";
+ };
+ }
+
+ {
+ name = "mediasource___mediasource_2.2.2.tgz";
+ path = fetchurl {
+ name = "mediasource___mediasource_2.2.2.tgz";
+ url = "https://registry.yarnpkg.com/mediasource/-/mediasource-2.2.2.tgz";
+ sha1 = "2fe826f14e51da97fa4bf87be7b808a0b11d3a4c";
+ };
+ }
+
+ {
+ name = "mem___mem_1.1.0.tgz";
+ path = fetchurl {
+ name = "mem___mem_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz";
+ sha1 = "5edd52b485ca1d900fe64895505399a0dfa45f76";
+ };
+ }
+
+ {
+ name = "mem___mem_4.0.0.tgz";
+ path = fetchurl {
+ name = "mem___mem_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/mem/-/mem-4.0.0.tgz";
+ sha1 = "6437690d9471678f6cc83659c00cbafcd6b0cdaf";
+ };
+ }
+
+ {
+ name = "memoizee___memoizee_0.4.14.tgz";
+ path = fetchurl {
+ name = "memoizee___memoizee_0.4.14.tgz";
+ url = "https://registry.yarnpkg.com/memoizee/-/memoizee-0.4.14.tgz";
+ sha1 = "07a00f204699f9a95c2d9e77218271c7cd610d57";
+ };
+ }
+
+ {
+ name = "memory_chunk_store___memory_chunk_store_1.3.0.tgz";
+ path = fetchurl {
+ name = "memory_chunk_store___memory_chunk_store_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/memory-chunk-store/-/memory-chunk-store-1.3.0.tgz";
+ sha1 = "ae99e7e3b58b52db43d49d94722930d39459d0c4";
+ };
+ }
+
+ {
+ name = "merge_descriptors___merge_descriptors_1.0.1.tgz";
+ path = fetchurl {
+ name = "merge_descriptors___merge_descriptors_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz";
+ sha1 = "b00aaa556dd8b44568150ec9d1b953f3f90cbb61";
+ };
+ }
+
+ {
+ name = "merge___merge_1.2.1.tgz";
+ path = fetchurl {
+ name = "merge___merge_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/merge/-/merge-1.2.1.tgz";
+ sha1 = "38bebf80c3220a8a487b6fcfb3941bb11720c145";
+ };
+ }
+
+ {
+ name = "methods___methods_1.1.2.tgz";
+ path = fetchurl {
+ name = "methods___methods_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz";
+ sha1 = "5529a4d67654134edcc5266656835b0f851afcee";
+ };
+ }
+
+ {
+ name = "micromatch___micromatch_3.1.10.tgz";
+ path = fetchurl {
+ name = "micromatch___micromatch_3.1.10.tgz";
+ url = "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz";
+ sha1 = "70859bc95c9840952f359a068a3fc49f9ecfac23";
+ };
+ }
+
+ {
+ name = "mime_db___mime_db_1.37.0.tgz";
+ path = fetchurl {
+ name = "mime_db___mime_db_1.37.0.tgz";
+ url = "https://registry.yarnpkg.com/mime-db/-/mime-db-1.37.0.tgz";
+ sha1 = "0b6a0ce6fdbe9576e25f1f2d2fde8830dc0ad0d8";
+ };
+ }
+
+ {
+ name = "mime_types___mime_types_2.1.21.tgz";
+ path = fetchurl {
+ name = "mime_types___mime_types_2.1.21.tgz";
+ url = "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.21.tgz";
+ sha1 = "28995aa1ecb770742fe6ae7e58f9181c744b3f96";
+ };
+ }
+
+ {
+ name = "mime___mime_1.3.4.tgz";
+ path = fetchurl {
+ name = "mime___mime_1.3.4.tgz";
+ url = "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz";
+ sha1 = "115f9e3b6b3daf2959983cb38f149a2d40eb5d53";
+ };
+ }
+
+ {
+ name = "mime___mime_1.4.1.tgz";
+ path = fetchurl {
+ name = "mime___mime_1.4.1.tgz";
+ url = "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz";
+ sha1 = "121f9ebc49e3766f311a76e1fa1c8003c4b03aa6";
+ };
+ }
+
+ {
+ name = "mime___mime_1.6.0.tgz";
+ path = fetchurl {
+ name = "mime___mime_1.6.0.tgz";
+ url = "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz";
+ sha1 = "32cd9e5c64553bd58d19a568af452acff04981b1";
+ };
+ }
+
+ {
+ name = "mime___mime_2.4.0.tgz";
+ path = fetchurl {
+ name = "mime___mime_2.4.0.tgz";
+ url = "https://registry.yarnpkg.com/mime/-/mime-2.4.0.tgz";
+ sha1 = "e051fd881358585f3279df333fe694da0bcffdd6";
+ };
+ }
+
+ {
+ name = "mimelib___mimelib_0.3.1.tgz";
+ path = fetchurl {
+ name = "mimelib___mimelib_0.3.1.tgz";
+ url = "https://registry.yarnpkg.com/mimelib/-/mimelib-0.3.1.tgz";
+ sha1 = "787add2415d827acb3af6ec4bca1ea9596418853";
+ };
+ }
+
+ {
+ name = "mimic_fn___mimic_fn_1.2.0.tgz";
+ path = fetchurl {
+ name = "mimic_fn___mimic_fn_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz";
+ sha1 = "820c86a39334640e99516928bd03fca88057d022";
+ };
+ }
+
+ {
+ name = "mimic_response___mimic_response_1.0.1.tgz";
+ path = fetchurl {
+ name = "mimic_response___mimic_response_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz";
+ sha1 = "4923538878eef42063cb8a3e3b0798781487ab1b";
+ };
+ }
+
+ {
+ name = "minimalistic_assert___minimalistic_assert_1.0.1.tgz";
+ path = fetchurl {
+ name = "minimalistic_assert___minimalistic_assert_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz";
+ sha1 = "2e194de044626d4a10e7f7fbc00ce73e83e4d5c7";
+ };
+ }
+
+ {
+ name = "minimatch___minimatch_3.0.4.tgz";
+ path = fetchurl {
+ name = "minimatch___minimatch_3.0.4.tgz";
+ url = "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz";
+ sha1 = "5166e286457f03306064be5497e8dbb0c3d32083";
+ };
+ }
+
+ {
+ name = "minimist___minimist_0.0.8.tgz";
+ path = fetchurl {
+ name = "minimist___minimist_0.0.8.tgz";
+ url = "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz";
+ sha1 = "857fcabfc3397d2625b8228262e86aa7a011b05d";
+ };
+ }
+
+ {
+ name = "minimist___minimist_1.1.3.tgz";
+ path = fetchurl {
+ name = "minimist___minimist_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/minimist/-/minimist-1.1.3.tgz";
+ sha1 = "3bedfd91a92d39016fcfaa1c681e8faa1a1efda8";
+ };
+ }
+
+ {
+ name = "minimist___minimist_1.2.0.tgz";
+ path = fetchurl {
+ name = "minimist___minimist_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz";
+ sha1 = "a35008b20f41383eec1fb914f4cd5df79a264284";
+ };
+ }
+
+ {
+ name = "minipass___minipass_2.3.5.tgz";
+ path = fetchurl {
+ name = "minipass___minipass_2.3.5.tgz";
+ url = "https://registry.yarnpkg.com/minipass/-/minipass-2.3.5.tgz";
+ sha1 = "cacebe492022497f656b0f0f51e2682a9ed2d848";
+ };
+ }
+
+ {
+ name = "minizlib___minizlib_1.1.1.tgz";
+ path = fetchurl {
+ name = "minizlib___minizlib_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/minizlib/-/minizlib-1.1.1.tgz";
+ sha1 = "6734acc045a46e61d596a43bb9d9cd326e19cc42";
+ };
+ }
+
+ {
+ name = "mississippi___mississippi_2.0.0.tgz";
+ path = fetchurl {
+ name = "mississippi___mississippi_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/mississippi/-/mississippi-2.0.0.tgz";
+ sha1 = "3442a508fafc28500486feea99409676e4ee5a6f";
+ };
+ }
+
+ {
+ name = "mississippi___mississippi_3.0.0.tgz";
+ path = fetchurl {
+ name = "mississippi___mississippi_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz";
+ sha1 = "ea0a3291f97e0b5e8776b363d5f0a12d94c67022";
+ };
+ }
+
+ {
+ name = "mixin_deep___mixin_deep_1.3.1.tgz";
+ path = fetchurl {
+ name = "mixin_deep___mixin_deep_1.3.1.tgz";
+ url = "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz";
+ sha1 = "a49e7268dce1a0d9698e45326c5626df3543d0fe";
+ };
+ }
+
+ {
+ name = "mkdirp___mkdirp_0.5.1.tgz";
+ path = fetchurl {
+ name = "mkdirp___mkdirp_0.5.1.tgz";
+ url = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz";
+ sha1 = "30057438eac6cf7f8c4767f38648d6697d75c903";
+ };
+ }
+
+ {
+ name = "mocha___mocha_5.2.0.tgz";
+ path = fetchurl {
+ name = "mocha___mocha_5.2.0.tgz";
+ url = "https://registry.yarnpkg.com/mocha/-/mocha-5.2.0.tgz";
+ sha1 = "6d8ae508f59167f940f2b5b3c4a612ae50c90ae6";
+ };
+ }
+
+ {
+ name = "moment_timezone___moment_timezone_0.5.23.tgz";
+ path = fetchurl {
+ name = "moment_timezone___moment_timezone_0.5.23.tgz";
+ url = "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.23.tgz";
+ sha1 = "7cbb00db2c14c71b19303cb47b0fb0a6d8651463";
+ };
+ }
+
+ {
+ name = "moment___moment_2.22.2.tgz";
+ path = fetchurl {
+ name = "moment___moment_2.22.2.tgz";
+ url = "https://registry.yarnpkg.com/moment/-/moment-2.22.2.tgz";
+ sha1 = "3c257f9839fc0e93ff53149632239eb90783ff66";
+ };
+ }
+
+ {
+ name = "moment___moment_2.24.0.tgz";
+ path = fetchurl {
+ name = "moment___moment_2.24.0.tgz";
+ url = "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz";
+ sha1 = "0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b";
+ };
+ }
+
+ {
+ name = "morgan___morgan_1.9.1.tgz";
+ path = fetchurl {
+ name = "morgan___morgan_1.9.1.tgz";
+ url = "https://registry.yarnpkg.com/morgan/-/morgan-1.9.1.tgz";
+ sha1 = "0a8d16734a1d9afbc824b99df87e738e58e2da59";
+ };
+ }
+
+ {
+ name = "move_concurrently___move_concurrently_1.0.1.tgz";
+ path = fetchurl {
+ name = "move_concurrently___move_concurrently_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz";
+ sha1 = "be2c005fda32e0b29af1f05d7c4b33214c701f92";
+ };
+ }
+
+ {
+ name = "mp4_box_encoding___mp4_box_encoding_1.3.0.tgz";
+ path = fetchurl {
+ name = "mp4_box_encoding___mp4_box_encoding_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/mp4-box-encoding/-/mp4-box-encoding-1.3.0.tgz";
+ sha1 = "2a6f750947ff68c3a498fd76cd6424c53d995d48";
+ };
+ }
+
+ {
+ name = "mp4_stream___mp4_stream_2.0.3.tgz";
+ path = fetchurl {
+ name = "mp4_stream___mp4_stream_2.0.3.tgz";
+ url = "https://registry.yarnpkg.com/mp4-stream/-/mp4-stream-2.0.3.tgz";
+ sha1 = "30acee07709d323f8dcd87a07b3ce9c3c4bfb364";
+ };
+ }
+
+ {
+ name = "ms___ms_0.7.1.tgz";
+ path = fetchurl {
+ name = "ms___ms_0.7.1.tgz";
+ url = "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz";
+ sha1 = "9cd13c03adbff25b65effde7ce864ee952017098";
+ };
+ }
+
+ {
+ name = "ms___ms_0.7.2.tgz";
+ path = fetchurl {
+ name = "ms___ms_0.7.2.tgz";
+ url = "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz";
+ sha1 = "ae25cf2512b3885a1d95d7f037868d8431124765";
+ };
+ }
+
+ {
+ name = "ms___ms_2.0.0.tgz";
+ path = fetchurl {
+ name = "ms___ms_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz";
+ sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8";
+ };
+ }
+
+ {
+ name = "ms___ms_2.1.1.tgz";
+ path = fetchurl {
+ name = "ms___ms_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz";
+ sha1 = "30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a";
+ };
+ }
+
+ {
+ name = "multer___multer_1.4.1.tgz";
+ path = fetchurl {
+ name = "multer___multer_1.4.1.tgz";
+ url = "https://registry.yarnpkg.com/multer/-/multer-1.4.1.tgz";
+ sha1 = "24b12a416a22fec2ade810539184bf138720159e";
+ };
+ }
+
+ {
+ name = "multistream___multistream_2.1.1.tgz";
+ path = fetchurl {
+ name = "multistream___multistream_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/multistream/-/multistream-2.1.1.tgz";
+ sha1 = "629d3a29bd76623489980d04519a2c365948148c";
+ };
+ }
+
+ {
+ name = "mute_stream___mute_stream_0.0.5.tgz";
+ path = fetchurl {
+ name = "mute_stream___mute_stream_0.0.5.tgz";
+ url = "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz";
+ sha1 = "8fbfabb0a98a253d3184331f9e8deb7372fac6c0";
+ };
+ }
+
+ {
+ name = "mute_stream___mute_stream_0.0.7.tgz";
+ path = fetchurl {
+ name = "mute_stream___mute_stream_0.0.7.tgz";
+ url = "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz";
+ sha1 = "3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab";
+ };
+ }
+
+ {
+ name = "mv___mv_2.1.1.tgz";
+ path = fetchurl {
+ name = "mv___mv_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/mv/-/mv-2.1.1.tgz";
+ sha1 = "ae6ce0d6f6d5e0a4f7d893798d03c1ea9559b6a2";
+ };
+ }
+
+ {
+ name = "nan___nan_2.11.1.tgz";
+ path = fetchurl {
+ name = "nan___nan_2.11.1.tgz";
+ url = "https://registry.yarnpkg.com/nan/-/nan-2.11.1.tgz";
+ sha1 = "90e22bccb8ca57ea4cd37cc83d3819b52eea6766";
+ };
+ }
+
+ {
+ name = "nan___nan_2.10.0.tgz";
+ path = fetchurl {
+ name = "nan___nan_2.10.0.tgz";
+ url = "https://registry.yarnpkg.com/nan/-/nan-2.10.0.tgz";
+ sha1 = "96d0cd610ebd58d4b4de9cc0c6828cda99c7548f";
+ };
+ }
+
+ {
+ name = "nanomatch___nanomatch_1.2.13.tgz";
+ path = fetchurl {
+ name = "nanomatch___nanomatch_1.2.13.tgz";
+ url = "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz";
+ sha1 = "b87a8aa4fc0de8fe6be88895b38983ff265bd119";
+ };
+ }
+
+ {
+ name = "napi_build_utils___napi_build_utils_1.0.1.tgz";
+ path = fetchurl {
+ name = "napi_build_utils___napi_build_utils_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.1.tgz";
+ sha1 = "1381a0f92c39d66bf19852e7873432fc2123e508";
+ };
+ }
+
+ {
+ name = "ncp___ncp_1.0.1.tgz";
+ path = fetchurl {
+ name = "ncp___ncp_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/ncp/-/ncp-1.0.1.tgz";
+ sha1 = "d15367e5cb87432ba117d2bf80fdf45aecfb4246";
+ };
+ }
+
+ {
+ name = "ncp___ncp_2.0.0.tgz";
+ path = fetchurl {
+ name = "ncp___ncp_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/ncp/-/ncp-2.0.0.tgz";
+ sha1 = "195a21d6c46e361d2fb1281ba38b91e9df7bdbb3";
+ };
+ }
+
+ {
+ name = "needle___needle_2.2.4.tgz";
+ path = fetchurl {
+ name = "needle___needle_2.2.4.tgz";
+ url = "https://registry.yarnpkg.com/needle/-/needle-2.2.4.tgz";
+ sha1 = "51931bff82533b1928b7d1d69e01f1b00ffd2a4e";
+ };
+ }
+
+ {
+ name = "negotiator___negotiator_0.5.3.tgz";
+ path = fetchurl {
+ name = "negotiator___negotiator_0.5.3.tgz";
+ url = "https://registry.yarnpkg.com/negotiator/-/negotiator-0.5.3.tgz";
+ sha1 = "269d5c476810ec92edbe7b6c2f28316384f9a7e8";
+ };
+ }
+
+ {
+ name = "negotiator___negotiator_0.6.1.tgz";
+ path = fetchurl {
+ name = "negotiator___negotiator_0.6.1.tgz";
+ url = "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz";
+ sha1 = "2b327184e8992101177b28563fb5e7102acd0ca9";
+ };
+ }
+
+ {
+ name = "netmask___netmask_1.0.6.tgz";
+ path = fetchurl {
+ name = "netmask___netmask_1.0.6.tgz";
+ url = "https://registry.yarnpkg.com/netmask/-/netmask-1.0.6.tgz";
+ sha1 = "20297e89d86f6f6400f250d9f4f6b4c1945fcd35";
+ };
+ }
+
+ {
+ name = "netrc_parser___netrc_parser_3.1.6.tgz";
+ path = fetchurl {
+ name = "netrc_parser___netrc_parser_3.1.6.tgz";
+ url = "https://registry.yarnpkg.com/netrc-parser/-/netrc-parser-3.1.6.tgz";
+ sha1 = "7243c9ec850b8e805b9bdc7eae7b1450d4a96e72";
+ };
+ }
+
+ {
+ name = "next_event___next_event_1.0.0.tgz";
+ path = fetchurl {
+ name = "next_event___next_event_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/next-event/-/next-event-1.0.0.tgz";
+ sha1 = "e7778acde2e55802e0ad1879c39cf6f75eda61d8";
+ };
+ }
+
+ {
+ name = "next_tick___next_tick_1.0.0.tgz";
+ path = fetchurl {
+ name = "next_tick___next_tick_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz";
+ sha1 = "ca86d1fe8828169b0120208e3dc8424b9db8342c";
+ };
+ }
+
+ {
+ name = "nice_try___nice_try_1.0.5.tgz";
+ path = fetchurl {
+ name = "nice_try___nice_try_1.0.5.tgz";
+ url = "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz";
+ sha1 = "a3378a7696ce7d223e88fc9b764bd7ef1089e366";
+ };
+ }
+
+ {
+ name = "nocache___nocache_2.0.0.tgz";
+ path = fetchurl {
+ name = "nocache___nocache_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/nocache/-/nocache-2.0.0.tgz";
+ sha1 = "202b48021a0c4cbde2df80de15a17443c8b43980";
+ };
+ }
+
+ {
+ name = "node_abi___node_abi_2.5.0.tgz";
+ path = fetchurl {
+ name = "node_abi___node_abi_2.5.0.tgz";
+ url = "https://registry.yarnpkg.com/node-abi/-/node-abi-2.5.0.tgz";
+ sha1 = "942e1a78bce764bc0c1672d5821e492b9d032052";
+ };
+ }
+
+ {
+ name = "node_addon_api___node_addon_api_1.6.2.tgz";
+ path = fetchurl {
+ name = "node_addon_api___node_addon_api_1.6.2.tgz";
+ url = "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-1.6.2.tgz";
+ sha1 = "d8aad9781a5cfc4132cc2fecdbdd982534265217";
+ };
+ }
+
+ {
+ name = "node_fetch_npm___node_fetch_npm_2.0.2.tgz";
+ path = fetchurl {
+ name = "node_fetch_npm___node_fetch_npm_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz";
+ sha1 = "7258c9046182dca345b4208eda918daf33697ff7";
+ };
+ }
+
+ {
+ name = "node_forge___node_forge_0.7.6.tgz";
+ path = fetchurl {
+ name = "node_forge___node_forge_0.7.6.tgz";
+ url = "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.6.tgz";
+ sha1 = "fdf3b418aee1f94f0ef642cd63486c77ca9724ac";
+ };
+ }
+
+ {
+ name = "node_gyp_build___node_gyp_build_3.4.0.tgz";
+ path = fetchurl {
+ name = "node_gyp_build___node_gyp_build_3.4.0.tgz";
+ url = "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-3.4.0.tgz";
+ sha1 = "f8f62507e65f152488b28aac25d04b9d79748cf7";
+ };
+ }
+
+ {
+ name = "node_gyp___node_gyp_3.8.0.tgz";
+ path = fetchurl {
+ name = "node_gyp___node_gyp_3.8.0.tgz";
+ url = "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.8.0.tgz";
+ sha1 = "540304261c330e80d0d5edce253a68cb3964218c";
+ };
+ }
+
+ {
+ name = "node_pre_gyp___node_pre_gyp_0.11.0.tgz";
+ path = fetchurl {
+ name = "node_pre_gyp___node_pre_gyp_0.11.0.tgz";
+ url = "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz";
+ sha1 = "db1f33215272f692cd38f03238e3e9b47c5dd054";
+ };
+ }
+
+ {
+ name = "node_pre_gyp___node_pre_gyp_0.10.3.tgz";
+ path = fetchurl {
+ name = "node_pre_gyp___node_pre_gyp_0.10.3.tgz";
+ url = "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.10.3.tgz";
+ sha1 = "3070040716afdc778747b61b6887bf78880b80fc";
+ };
+ }
+
+ {
+ name = "nodemailer_fetch___nodemailer_fetch_1.3.0.tgz";
+ path = fetchurl {
+ name = "nodemailer_fetch___nodemailer_fetch_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/nodemailer-fetch/-/nodemailer-fetch-1.3.0.tgz";
+ sha1 = "9f37f6a5b80c1cb5d697ca2bfbde41a6582a50b0";
+ };
+ }
+
+ {
+ name = "nodemailer_fetch___nodemailer_fetch_1.6.0.tgz";
+ path = fetchurl {
+ name = "nodemailer_fetch___nodemailer_fetch_1.6.0.tgz";
+ url = "https://registry.yarnpkg.com/nodemailer-fetch/-/nodemailer-fetch-1.6.0.tgz";
+ sha1 = "79c4908a1c0f5f375b73fe888da9828f6dc963a4";
+ };
+ }
+
+ {
+ name = "nodemailer_shared___nodemailer_shared_1.0.4.tgz";
+ path = fetchurl {
+ name = "nodemailer_shared___nodemailer_shared_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/nodemailer-shared/-/nodemailer-shared-1.0.4.tgz";
+ sha1 = "8b5c5c35bfb29a47dda7d38303f3a4fb47ba38ae";
+ };
+ }
+
+ {
+ name = "nodemailer_shared___nodemailer_shared_1.1.0.tgz";
+ path = fetchurl {
+ name = "nodemailer_shared___nodemailer_shared_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/nodemailer-shared/-/nodemailer-shared-1.1.0.tgz";
+ sha1 = "cf5994e2fd268d00f5cf0fa767a08169edb07ec0";
+ };
+ }
+
+ {
+ name = "nodemailer___nodemailer_4.7.0.tgz";
+ path = fetchurl {
+ name = "nodemailer___nodemailer_4.7.0.tgz";
+ url = "https://registry.yarnpkg.com/nodemailer/-/nodemailer-4.7.0.tgz";
+ sha1 = "4420e06abfffd77d0618f184ea49047db84f4ad8";
+ };
+ }
+
+ {
+ name = "nodemon___nodemon_1.18.7.tgz";
+ path = fetchurl {
+ name = "nodemon___nodemon_1.18.7.tgz";
+ url = "https://registry.yarnpkg.com/nodemon/-/nodemon-1.18.7.tgz";
+ sha1 = "716b66bf3e89ac4fcfb38a9e61887a03fc82efbb";
+ };
+ }
+
+ {
+ name = "noop_logger___noop_logger_0.1.1.tgz";
+ path = fetchurl {
+ name = "noop_logger___noop_logger_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/noop-logger/-/noop-logger-0.1.1.tgz";
+ sha1 = "94a2b1633c4f1317553007d8966fd0e841b6a4c2";
+ };
+ }
+
+ {
+ name = "nopt___nopt_3.0.6.tgz";
+ path = fetchurl {
+ name = "nopt___nopt_3.0.6.tgz";
+ url = "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz";
+ sha1 = "c6465dbf08abcd4db359317f79ac68a646b28ff9";
+ };
+ }
+
+ {
+ name = "nopt___nopt_4.0.1.tgz";
+ path = fetchurl {
+ name = "nopt___nopt_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz";
+ sha1 = "d0d4685afd5415193c8c7505602d0d17cd64474d";
+ };
+ }
+
+ {
+ name = "nopt___nopt_1.0.10.tgz";
+ path = fetchurl {
+ name = "nopt___nopt_1.0.10.tgz";
+ url = "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz";
+ sha1 = "6ddd21bd2a31417b92727dd585f8a6f37608ebee";
+ };
+ }
+
+ {
+ name = "normalize_package_data___normalize_package_data_2.4.0.tgz";
+ path = fetchurl {
+ name = "normalize_package_data___normalize_package_data_2.4.0.tgz";
+ url = "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz";
+ sha1 = "12f95a307d58352075a04907b84ac8be98ac012f";
+ };
+ }
+
+ {
+ name = "normalize_path___normalize_path_2.1.1.tgz";
+ path = fetchurl {
+ name = "normalize_path___normalize_path_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz";
+ sha1 = "1ab28b556e198363a8c1a6f7e6fa20137fe6aed9";
+ };
+ }
+
+ {
+ name = "npm_audit_report___npm_audit_report_1.3.1.tgz";
+ path = fetchurl {
+ name = "npm_audit_report___npm_audit_report_1.3.1.tgz";
+ url = "https://registry.yarnpkg.com/npm-audit-report/-/npm-audit-report-1.3.1.tgz";
+ sha1 = "e79ea1fcb5ffaf3031102b389d5222c2b0459632";
+ };
+ }
+
+ {
+ name = "npm_bundled___npm_bundled_1.0.5.tgz";
+ path = fetchurl {
+ name = "npm_bundled___npm_bundled_1.0.5.tgz";
+ url = "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.5.tgz";
+ sha1 = "3c1732b7ba936b3a10325aef616467c0ccbcc979";
+ };
+ }
+
+ {
+ name = "npm_cache_filename___npm_cache_filename_1.0.2.tgz";
+ path = fetchurl {
+ name = "npm_cache_filename___npm_cache_filename_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/npm-cache-filename/-/npm-cache-filename-1.0.2.tgz";
+ sha1 = "ded306c5b0bfc870a9e9faf823bc5f283e05ae11";
+ };
+ }
+
+ {
+ name = "npm_install_checks___npm_install_checks_3.0.0.tgz";
+ path = fetchurl {
+ name = "npm_install_checks___npm_install_checks_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-3.0.0.tgz";
+ sha1 = "d4aecdfd51a53e3723b7b2f93b2ee28e307bc0d7";
+ };
+ }
+
+ {
+ name = "npm_lifecycle___npm_lifecycle_2.1.0.tgz";
+ path = fetchurl {
+ name = "npm_lifecycle___npm_lifecycle_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/npm-lifecycle/-/npm-lifecycle-2.1.0.tgz";
+ sha1 = "1eda2eedb82db929e3a0c50341ab0aad140ed569";
+ };
+ }
+
+ {
+ name = "npm_logical_tree___npm_logical_tree_1.2.1.tgz";
+ path = fetchurl {
+ name = "npm_logical_tree___npm_logical_tree_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/npm-logical-tree/-/npm-logical-tree-1.2.1.tgz";
+ sha1 = "44610141ca24664cad35d1e607176193fd8f5b88";
+ };
+ }
+
+ {
+ name = "npm_package_arg___npm_package_arg_6.1.0.tgz";
+ path = fetchurl {
+ name = "npm_package_arg___npm_package_arg_6.1.0.tgz";
+ url = "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-6.1.0.tgz";
+ sha1 = "15ae1e2758a5027efb4c250554b85a737db7fcc1";
+ };
+ }
+
+ {
+ name = "npm_packlist___npm_packlist_1.1.12.tgz";
+ path = fetchurl {
+ name = "npm_packlist___npm_packlist_1.1.12.tgz";
+ url = "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.12.tgz";
+ sha1 = "22bde2ebc12e72ca482abd67afc51eb49377243a";
+ };
+ }
+
+ {
+ name = "npm_path___npm_path_2.0.4.tgz";
+ path = fetchurl {
+ name = "npm_path___npm_path_2.0.4.tgz";
+ url = "https://registry.yarnpkg.com/npm-path/-/npm-path-2.0.4.tgz";
+ sha1 = "c641347a5ff9d6a09e4d9bce5580c4f505278e64";
+ };
+ }
+
+ {
+ name = "npm_pick_manifest___npm_pick_manifest_2.2.3.tgz";
+ path = fetchurl {
+ name = "npm_pick_manifest___npm_pick_manifest_2.2.3.tgz";
+ url = "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-2.2.3.tgz";
+ sha1 = "32111d2a9562638bb2c8f2bf27f7f3092c8fae40";
+ };
+ }
+
+ {
+ name = "npm_profile___npm_profile_3.0.2.tgz";
+ path = fetchurl {
+ name = "npm_profile___npm_profile_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/npm-profile/-/npm-profile-3.0.2.tgz";
+ sha1 = "58d568f1b56ef769602fd0aed8c43fa0e0de0f57";
+ };
+ }
+
+ {
+ name = "npm_registry_client___npm_registry_client_8.6.0.tgz";
+ path = fetchurl {
+ name = "npm_registry_client___npm_registry_client_8.6.0.tgz";
+ url = "https://registry.yarnpkg.com/npm-registry-client/-/npm-registry-client-8.6.0.tgz";
+ sha1 = "7f1529f91450732e89f8518e0f21459deea3e4c4";
+ };
+ }
+
+ {
+ name = "npm_registry_fetch___npm_registry_fetch_1.1.1.tgz";
+ path = fetchurl {
+ name = "npm_registry_fetch___npm_registry_fetch_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-1.1.1.tgz";
+ sha1 = "710bc5947d9ee2c549375072dab6d5d17baf2eb2";
+ };
+ }
+
+ {
+ name = "npm_registry_fetch___npm_registry_fetch_3.8.0.tgz";
+ path = fetchurl {
+ name = "npm_registry_fetch___npm_registry_fetch_3.8.0.tgz";
+ url = "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-3.8.0.tgz";
+ sha1 = "aa7d9a7c92aff94f48dba0984bdef4bd131c88cc";
+ };
+ }
+
+ {
+ name = "npm_run_path___npm_run_path_2.0.2.tgz";
+ path = fetchurl {
+ name = "npm_run_path___npm_run_path_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz";
+ sha1 = "35a9232dfa35d7067b4cb2ddf2357b1871536c5f";
+ };
+ }
+
+ {
+ name = "npm_user_validate___npm_user_validate_1.0.0.tgz";
+ path = fetchurl {
+ name = "npm_user_validate___npm_user_validate_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/npm-user-validate/-/npm-user-validate-1.0.0.tgz";
+ sha1 = "8ceca0f5cea04d4e93519ef72d0557a75122e951";
+ };
+ }
+
+ {
+ name = "npm_which___npm_which_3.0.1.tgz";
+ path = fetchurl {
+ name = "npm_which___npm_which_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/npm-which/-/npm-which-3.0.1.tgz";
+ sha1 = "9225f26ec3a285c209cae67c3b11a6b4ab7140aa";
+ };
+ }
+
+ {
+ name = "npm___npm_6.4.1.tgz";
+ path = fetchurl {
+ name = "npm___npm_6.4.1.tgz";
+ url = "https://registry.yarnpkg.com/npm/-/npm-6.4.1.tgz";
+ sha1 = "4f39f9337b557a28faed4a771d5c8802d6b4288b";
+ };
+ }
+
+ {
+ name = "npmlog___npmlog_4.1.2.tgz";
+ path = fetchurl {
+ name = "npmlog___npmlog_4.1.2.tgz";
+ url = "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz";
+ sha1 = "08a7f2a8bf734604779a9efa4ad5cc717abb954b";
+ };
+ }
+
+ {
+ name = "number_is_nan___number_is_nan_1.0.1.tgz";
+ path = fetchurl {
+ name = "number_is_nan___number_is_nan_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz";
+ sha1 = "097b602b53422a522c1afb8790318336941a011d";
+ };
+ }
+
+ {
+ name = "oauth_sign___oauth_sign_0.9.0.tgz";
+ path = fetchurl {
+ name = "oauth_sign___oauth_sign_0.9.0.tgz";
+ url = "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz";
+ sha1 = "47a7b016baa68b5fa0ecf3dee08a85c679ac6455";
+ };
+ }
+
+ {
+ name = "oauth2_server___oauth2_server_3.0.0.tgz";
+ path = fetchurl {
+ name = "oauth2_server___oauth2_server_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/oauth2-server/-/oauth2-server-3.0.0.tgz";
+ sha1 = "c46276b74c3d28634d59ee981f76b58a6459cc28";
+ };
+ }
+
+ {
+ name = "object_assign___object_assign_4.1.0.tgz";
+ path = fetchurl {
+ name = "object_assign___object_assign_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.0.tgz";
+ sha1 = "7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0";
+ };
+ }
+
+ {
+ name = "object_assign___object_assign_4.1.1.tgz";
+ path = fetchurl {
+ name = "object_assign___object_assign_4.1.1.tgz";
+ url = "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz";
+ sha1 = "2109adc7965887cfc05cbbd442cac8bfbb360863";
+ };
+ }
+
+ {
+ name = "object_component___object_component_0.0.3.tgz";
+ path = fetchurl {
+ name = "object_component___object_component_0.0.3.tgz";
+ url = "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz";
+ sha1 = "f0c69aa50efc95b866c186f400a33769cb2f1291";
+ };
+ }
+
+ {
+ name = "object_copy___object_copy_0.1.0.tgz";
+ path = fetchurl {
+ name = "object_copy___object_copy_0.1.0.tgz";
+ url = "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz";
+ sha1 = "7e7d858b781bd7c991a41ba975ed3812754e998c";
+ };
+ }
+
+ {
+ name = "object_keys___object_keys_1.0.12.tgz";
+ path = fetchurl {
+ name = "object_keys___object_keys_1.0.12.tgz";
+ url = "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.12.tgz";
+ sha1 = "09c53855377575310cca62f55bb334abff7b3ed2";
+ };
+ }
+
+ {
+ name = "object_visit___object_visit_1.0.1.tgz";
+ path = fetchurl {
+ name = "object_visit___object_visit_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz";
+ sha1 = "f79c4493af0c5377b59fe39d395e41042dd045bb";
+ };
+ }
+
+ {
+ name = "object.pick___object.pick_1.3.0.tgz";
+ path = fetchurl {
+ name = "object.pick___object.pick_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz";
+ sha1 = "87a10ac4c1694bd2e1cbf53591a66141fb5dd747";
+ };
+ }
+
+ {
+ name = "on_finished___on_finished_2.3.0.tgz";
+ path = fetchurl {
+ name = "on_finished___on_finished_2.3.0.tgz";
+ url = "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz";
+ sha1 = "20f1336481b083cd75337992a16971aa2d906947";
+ };
+ }
+
+ {
+ name = "on_headers___on_headers_1.0.1.tgz";
+ path = fetchurl {
+ name = "on_headers___on_headers_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.1.tgz";
+ sha1 = "928f5d0f470d49342651ea6794b0857c100693f7";
+ };
+ }
+
+ {
+ name = "once___once_1.4.0.tgz";
+ path = fetchurl {
+ name = "once___once_1.4.0.tgz";
+ url = "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz";
+ sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1";
+ };
+ }
+
+ {
+ name = "one_time___one_time_0.0.4.tgz";
+ path = fetchurl {
+ name = "one_time___one_time_0.0.4.tgz";
+ url = "https://registry.yarnpkg.com/one-time/-/one-time-0.0.4.tgz";
+ sha1 = "f8cdf77884826fe4dff93e3a9cc37b1e4480742e";
+ };
+ }
+
+ {
+ name = "onetime___onetime_1.1.0.tgz";
+ path = fetchurl {
+ name = "onetime___onetime_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz";
+ sha1 = "a1f7838f8314c516f05ecefcbc4ccfe04b4ed789";
+ };
+ }
+
+ {
+ name = "onetime___onetime_2.0.1.tgz";
+ path = fetchurl {
+ name = "onetime___onetime_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz";
+ sha1 = "067428230fd67443b2794b22bba528b6867962d4";
+ };
+ }
+
+ {
+ name = "ono___ono_4.0.10.tgz";
+ path = fetchurl {
+ name = "ono___ono_4.0.10.tgz";
+ url = "https://registry.yarnpkg.com/ono/-/ono-4.0.10.tgz";
+ sha1 = "f7f9c6d1b76270a499d8664c95a740d44175134c";
+ };
+ }
+
+ {
+ name = "open___open_0.0.5.tgz";
+ path = fetchurl {
+ name = "open___open_0.0.5.tgz";
+ url = "https://registry.yarnpkg.com/open/-/open-0.0.5.tgz";
+ sha1 = "42c3e18ec95466b6bf0dc42f3a2945c3f0cad8fc";
+ };
+ }
+
+ {
+ name = "openapi_schema_validation___openapi_schema_validation_0.4.2.tgz";
+ path = fetchurl {
+ name = "openapi_schema_validation___openapi_schema_validation_0.4.2.tgz";
+ url = "https://registry.yarnpkg.com/openapi-schema-validation/-/openapi-schema-validation-0.4.2.tgz";
+ sha1 = "895c29021be02e000f71c51f859da52118eb1e21";
+ };
+ }
+
+ {
+ name = "opener___opener_1.5.1.tgz";
+ path = fetchurl {
+ name = "opener___opener_1.5.1.tgz";
+ url = "https://registry.yarnpkg.com/opener/-/opener-1.5.1.tgz";
+ sha1 = "6d2f0e77f1a0af0032aca716c2c1fbb8e7e8abed";
+ };
+ }
+
+ {
+ name = "optionator___optionator_0.8.2.tgz";
+ path = fetchurl {
+ name = "optionator___optionator_0.8.2.tgz";
+ url = "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz";
+ sha1 = "364c5e409d3f4d6301d6c0b4c05bba50180aeb64";
+ };
+ }
+
+ {
+ name = "options___options_0.0.6.tgz";
+ path = fetchurl {
+ name = "options___options_0.0.6.tgz";
+ url = "https://registry.yarnpkg.com/options/-/options-0.0.6.tgz";
+ sha1 = "ec22d312806bb53e731773e7cdaefcf1c643128f";
+ };
+ }
+
+ {
+ name = "os_homedir___os_homedir_1.0.2.tgz";
+ path = fetchurl {
+ name = "os_homedir___os_homedir_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz";
+ sha1 = "ffbc4988336e0e833de0c168c7ef152121aa7fb3";
+ };
+ }
+
+ {
+ name = "os_locale___os_locale_2.1.0.tgz";
+ path = fetchurl {
+ name = "os_locale___os_locale_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz";
+ sha1 = "42bc2900a6b5b8bd17376c8e882b65afccf24bf2";
+ };
+ }
+
+ {
+ name = "os_locale___os_locale_3.0.1.tgz";
+ path = fetchurl {
+ name = "os_locale___os_locale_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/os-locale/-/os-locale-3.0.1.tgz";
+ sha1 = "3b014fbf01d87f60a1e5348d80fe870dc82c4620";
+ };
+ }
+
+ {
+ name = "os_tmpdir___os_tmpdir_1.0.2.tgz";
+ path = fetchurl {
+ name = "os_tmpdir___os_tmpdir_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz";
+ sha1 = "bbe67406c79aa85c5cfec766fe5734555dfa1274";
+ };
+ }
+
+ {
+ name = "osenv___osenv_0.1.5.tgz";
+ path = fetchurl {
+ name = "osenv___osenv_0.1.5.tgz";
+ url = "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz";
+ sha1 = "85cdfafaeb28e8677f416e287592b5f3f49ea410";
+ };
+ }
+
+ {
+ name = "p_defer___p_defer_1.0.0.tgz";
+ path = fetchurl {
+ name = "p_defer___p_defer_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz";
+ sha1 = "9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c";
+ };
+ }
+
+ {
+ name = "p_finally___p_finally_1.0.0.tgz";
+ path = fetchurl {
+ name = "p_finally___p_finally_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz";
+ sha1 = "3fbcfb15b899a44123b34b6dcc18b724336a2cae";
+ };
+ }
+
+ {
+ name = "p_is_promise___p_is_promise_1.1.0.tgz";
+ path = fetchurl {
+ name = "p_is_promise___p_is_promise_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-1.1.0.tgz";
+ sha1 = "9c9456989e9f6588017b0434d56097675c3da05e";
+ };
+ }
+
+ {
+ name = "p_limit___p_limit_1.3.0.tgz";
+ path = fetchurl {
+ name = "p_limit___p_limit_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz";
+ sha1 = "b86bd5f0c25690911c7590fcbfc2010d54b3ccb8";
+ };
+ }
+
+ {
+ name = "p_limit___p_limit_2.0.0.tgz";
+ path = fetchurl {
+ name = "p_limit___p_limit_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/p-limit/-/p-limit-2.0.0.tgz";
+ sha1 = "e624ed54ee8c460a778b3c9f3670496ff8a57aec";
+ };
+ }
+
+ {
+ name = "p_locate___p_locate_2.0.0.tgz";
+ path = fetchurl {
+ name = "p_locate___p_locate_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz";
+ sha1 = "20a0103b222a70c8fd39cc2e580680f3dde5ec43";
+ };
+ }
+
+ {
+ name = "p_locate___p_locate_3.0.0.tgz";
+ path = fetchurl {
+ name = "p_locate___p_locate_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz";
+ sha1 = "322d69a05c0264b25997d9f40cd8a891ab0064a4";
+ };
+ }
+
+ {
+ name = "p_map___p_map_1.2.0.tgz";
+ path = fetchurl {
+ name = "p_map___p_map_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz";
+ sha1 = "e4e94f311eabbc8633a1e79908165fca26241b6b";
+ };
+ }
+
+ {
+ name = "p_map___p_map_2.0.0.tgz";
+ path = fetchurl {
+ name = "p_map___p_map_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/p-map/-/p-map-2.0.0.tgz";
+ sha1 = "be18c5a5adeb8e156460651421aceca56c213a50";
+ };
+ }
+
+ {
+ name = "p_try___p_try_1.0.0.tgz";
+ path = fetchurl {
+ name = "p_try___p_try_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz";
+ sha1 = "cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3";
+ };
+ }
+
+ {
+ name = "p_try___p_try_2.0.0.tgz";
+ path = fetchurl {
+ name = "p_try___p_try_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/p-try/-/p-try-2.0.0.tgz";
+ sha1 = "85080bb87c64688fa47996fe8f7dfbe8211760b1";
+ };
+ }
+
+ {
+ name = "package_json_versionify___package_json_versionify_1.0.4.tgz";
+ path = fetchurl {
+ name = "package_json_versionify___package_json_versionify_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/package-json-versionify/-/package-json-versionify-1.0.4.tgz";
+ sha1 = "5860587a944873a6b7e6d26e8e51ffb22315bf17";
+ };
+ }
+
+ {
+ name = "package_json___package_json_4.0.1.tgz";
+ path = fetchurl {
+ name = "package_json___package_json_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz";
+ sha1 = "8869a0401253661c4c4ca3da6c2121ed555f5eed";
+ };
+ }
+
+ {
+ name = "packet_reader___packet_reader_0.3.1.tgz";
+ path = fetchurl {
+ name = "packet_reader___packet_reader_0.3.1.tgz";
+ url = "https://registry.yarnpkg.com/packet-reader/-/packet-reader-0.3.1.tgz";
+ sha1 = "cd62e60af8d7fea8a705ec4ff990871c46871f27";
+ };
+ }
+
+ {
+ name = "pacote___pacote_8.1.6.tgz";
+ path = fetchurl {
+ name = "pacote___pacote_8.1.6.tgz";
+ url = "https://registry.yarnpkg.com/pacote/-/pacote-8.1.6.tgz";
+ sha1 = "8e647564d38156367e7a9dc47a79ca1ab278d46e";
+ };
+ }
+
+ {
+ name = "parallel_transform___parallel_transform_1.1.0.tgz";
+ path = fetchurl {
+ name = "parallel_transform___parallel_transform_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.1.0.tgz";
+ sha1 = "d410f065b05da23081fcd10f28854c29bda33b06";
+ };
+ }
+
+ {
+ name = "parse_json___parse_json_4.0.0.tgz";
+ path = fetchurl {
+ name = "parse_json___parse_json_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz";
+ sha1 = "be35f5425be1f7f6c747184f98a788cb99477ee0";
+ };
+ }
+
+ {
+ name = "parse_numeric_range___parse_numeric_range_0.0.2.tgz";
+ path = fetchurl {
+ name = "parse_numeric_range___parse_numeric_range_0.0.2.tgz";
+ url = "https://registry.yarnpkg.com/parse-numeric-range/-/parse-numeric-range-0.0.2.tgz";
+ sha1 = "b4f09d413c7adbcd987f6e9233c7b4b210c938e4";
+ };
+ }
+
+ {
+ name = "parse_torrent___parse_torrent_6.1.2.tgz";
+ path = fetchurl {
+ name = "parse_torrent___parse_torrent_6.1.2.tgz";
+ url = "https://registry.yarnpkg.com/parse-torrent/-/parse-torrent-6.1.2.tgz";
+ sha1 = "99da5bdd23435a1cb7e8e7a63847c4efb21b1956";
+ };
+ }
+
+ {
+ name = "parsejson___parsejson_0.0.3.tgz";
+ path = fetchurl {
+ name = "parsejson___parsejson_0.0.3.tgz";
+ url = "https://registry.yarnpkg.com/parsejson/-/parsejson-0.0.3.tgz";
+ sha1 = "ab7e3759f209ece99437973f7d0f1f64ae0e64ab";
+ };
+ }
+
+ {
+ name = "parseqs___parseqs_0.0.5.tgz";
+ path = fetchurl {
+ name = "parseqs___parseqs_0.0.5.tgz";
+ url = "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz";
+ sha1 = "d5208a3738e46766e291ba2ea173684921a8b89d";
+ };
+ }
+
+ {
+ name = "parseuri___parseuri_0.0.5.tgz";
+ path = fetchurl {
+ name = "parseuri___parseuri_0.0.5.tgz";
+ url = "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz";
+ sha1 = "80204a50d4dbb779bfdc6ebe2778d90e4bce320a";
+ };
+ }
+
+ {
+ name = "parseurl___parseurl_1.3.2.tgz";
+ path = fetchurl {
+ name = "parseurl___parseurl_1.3.2.tgz";
+ url = "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz";
+ sha1 = "fc289d4ed8993119460c156253262cdc8de65bf3";
+ };
+ }
+
+ {
+ name = "pascalcase___pascalcase_0.1.1.tgz";
+ path = fetchurl {
+ name = "pascalcase___pascalcase_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz";
+ sha1 = "b363e55e8006ca6fe21784d2db22bd15d7917f14";
+ };
+ }
+
+ {
+ name = "password_generator___password_generator_2.2.0.tgz";
+ path = fetchurl {
+ name = "password_generator___password_generator_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/password-generator/-/password-generator-2.2.0.tgz";
+ sha1 = "fc75cff795110923e054a5a71623433240bf5e49";
+ };
+ }
+
+ {
+ name = "path_dirname___path_dirname_1.0.2.tgz";
+ path = fetchurl {
+ name = "path_dirname___path_dirname_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz";
+ sha1 = "cc33d24d525e099a5388c0336c6e32b9160609e0";
+ };
+ }
+
+ {
+ name = "path_exists___path_exists_3.0.0.tgz";
+ path = fetchurl {
+ name = "path_exists___path_exists_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz";
+ sha1 = "ce0ebeaa5f78cb18925ea7d810d7b59b010fd515";
+ };
+ }
+
+ {
+ name = "path_is_absolute___path_is_absolute_1.0.1.tgz";
+ path = fetchurl {
+ name = "path_is_absolute___path_is_absolute_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz";
+ sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f";
+ };
+ }
+
+ {
+ name = "path_is_inside___path_is_inside_1.0.2.tgz";
+ path = fetchurl {
+ name = "path_is_inside___path_is_inside_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz";
+ sha1 = "365417dede44430d1c11af61027facf074bdfc53";
+ };
+ }
+
+ {
+ name = "path_key___path_key_2.0.1.tgz";
+ path = fetchurl {
+ name = "path_key___path_key_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz";
+ sha1 = "411cadb574c5a140d3a4b1910d40d80cc9f40b40";
+ };
+ }
+
+ {
+ name = "path_parse___path_parse_1.0.6.tgz";
+ path = fetchurl {
+ name = "path_parse___path_parse_1.0.6.tgz";
+ url = "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz";
+ sha1 = "d62dbb5679405d72c4737ec58600e9ddcf06d24c";
+ };
+ }
+
+ {
+ name = "path_to_regexp___path_to_regexp_0.1.7.tgz";
+ path = fetchurl {
+ name = "path_to_regexp___path_to_regexp_0.1.7.tgz";
+ url = "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz";
+ sha1 = "df604178005f522f15eb4490e7247a1bfaa67f8c";
+ };
+ }
+
+ {
+ name = "pathval___pathval_1.1.0.tgz";
+ path = fetchurl {
+ name = "pathval___pathval_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz";
+ sha1 = "b942e6d4bde653005ef6b71361def8727d0645e0";
+ };
+ }
+
+ {
+ name = "peek_stream___peek_stream_1.1.3.tgz";
+ path = fetchurl {
+ name = "peek_stream___peek_stream_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/peek-stream/-/peek-stream-1.1.3.tgz";
+ sha1 = "3b35d84b7ccbbd262fff31dc10da56856ead6d67";
+ };
+ }
+
+ {
+ name = "pem___pem_1.13.2.tgz";
+ path = fetchurl {
+ name = "pem___pem_1.13.2.tgz";
+ url = "https://registry.yarnpkg.com/pem/-/pem-1.13.2.tgz";
+ sha1 = "7b68acbb590fdc13772bca487983cb84cd7b443e";
+ };
+ }
+
+ {
+ name = "performance_now___performance_now_2.1.0.tgz";
+ path = fetchurl {
+ name = "performance_now___performance_now_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz";
+ sha1 = "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b";
+ };
+ }
+
+ {
+ name = "pfeed___pfeed_1.1.6.tgz";
+ path = fetchurl {
+ name = "pfeed___pfeed_1.1.6.tgz";
+ url = "https://registry.yarnpkg.com/pfeed/-/pfeed-1.1.6.tgz";
+ sha1 = "0de2a1c40b116fa236227237fa264c7956c185e8";
+ };
+ }
+
+ {
+ name = "pg_connection_string___pg_connection_string_0.1.3.tgz";
+ path = fetchurl {
+ name = "pg_connection_string___pg_connection_string_0.1.3.tgz";
+ url = "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-0.1.3.tgz";
+ sha1 = "da1847b20940e42ee1492beaf65d49d91b245df7";
+ };
+ }
+
+ {
+ name = "pg_pool___pg_pool_2.0.4.tgz";
+ path = fetchurl {
+ name = "pg_pool___pg_pool_2.0.4.tgz";
+ url = "https://registry.yarnpkg.com/pg-pool/-/pg-pool-2.0.4.tgz";
+ sha1 = "05ad0f2d9437d89c94ccc4f4d0a44ac65ade865b";
+ };
+ }
+
+ {
+ name = "pg_types___pg_types_1.12.1.tgz";
+ path = fetchurl {
+ name = "pg_types___pg_types_1.12.1.tgz";
+ url = "https://registry.yarnpkg.com/pg-types/-/pg-types-1.12.1.tgz";
+ sha1 = "d64087e3903b58ffaad279e7595c52208a14c3d2";
+ };
+ }
+
+ {
+ name = "pg___pg_7.7.1.tgz";
+ path = fetchurl {
+ name = "pg___pg_7.7.1.tgz";
+ url = "https://registry.yarnpkg.com/pg/-/pg-7.7.1.tgz";
+ sha1 = "546b192ff484322b69689391f885de3ba91a30d4";
+ };
+ }
+
+ {
+ name = "pgpass___pgpass_1.0.2.tgz";
+ path = fetchurl {
+ name = "pgpass___pgpass_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/pgpass/-/pgpass-1.0.2.tgz";
+ sha1 = "2a7bb41b6065b67907e91da1b07c1847c877b306";
+ };
+ }
+
+ {
+ name = "piece_length___piece_length_1.0.0.tgz";
+ path = fetchurl {
+ name = "piece_length___piece_length_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/piece-length/-/piece-length-1.0.0.tgz";
+ sha1 = "4db7167157fd69fef14caf7262cd39f189b24508";
+ };
+ }
+
+ {
+ name = "pify___pify_2.3.0.tgz";
+ path = fetchurl {
+ name = "pify___pify_2.3.0.tgz";
+ url = "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz";
+ sha1 = "ed141a6ac043a849ea588498e7dca8b15330e90c";
+ };
+ }
+
+ {
+ name = "pify___pify_3.0.0.tgz";
+ path = fetchurl {
+ name = "pify___pify_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz";
+ sha1 = "e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176";
+ };
+ }
+
+ {
+ name = "pinkie_promise___pinkie_promise_2.0.1.tgz";
+ path = fetchurl {
+ name = "pinkie_promise___pinkie_promise_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz";
+ sha1 = "2135d6dfa7a358c069ac9b178776288228450ffa";
+ };
+ }
+
+ {
+ name = "pinkie___pinkie_2.0.4.tgz";
+ path = fetchurl {
+ name = "pinkie___pinkie_2.0.4.tgz";
+ url = "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz";
+ sha1 = "72556b80cfa0d48a974e80e77248e80ed4f7f870";
+ };
+ }
+
+ {
+ name = "pkg_dir___pkg_dir_3.0.0.tgz";
+ path = fetchurl {
+ name = "pkg_dir___pkg_dir_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz";
+ sha1 = "2749020f239ed990881b1f71210d51eb6523bea3";
+ };
+ }
+
+ {
+ name = "pkginfo___pkginfo_0.3.1.tgz";
+ path = fetchurl {
+ name = "pkginfo___pkginfo_0.3.1.tgz";
+ url = "https://registry.yarnpkg.com/pkginfo/-/pkginfo-0.3.1.tgz";
+ sha1 = "5b29f6a81f70717142e09e765bbeab97b4f81e21";
+ };
+ }
+
+ {
+ name = "pkginfo___pkginfo_0.4.1.tgz";
+ path = fetchurl {
+ name = "pkginfo___pkginfo_0.4.1.tgz";
+ url = "https://registry.yarnpkg.com/pkginfo/-/pkginfo-0.4.1.tgz";
+ sha1 = "b5418ef0439de5425fc4995042dced14fb2a84ff";
+ };
+ }
+
+ {
+ name = "platform___platform_1.3.5.tgz";
+ path = fetchurl {
+ name = "platform___platform_1.3.5.tgz";
+ url = "https://registry.yarnpkg.com/platform/-/platform-1.3.5.tgz";
+ sha1 = "fb6958c696e07e2918d2eeda0f0bc9448d733444";
+ };
+ }
+
+ {
+ name = "please_upgrade_node___please_upgrade_node_3.1.1.tgz";
+ path = fetchurl {
+ name = "please_upgrade_node___please_upgrade_node_3.1.1.tgz";
+ url = "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.1.1.tgz";
+ sha1 = "ed320051dfcc5024fae696712c8288993595e8ac";
+ };
+ }
+
+ {
+ name = "pluralize___pluralize_1.2.1.tgz";
+ path = fetchurl {
+ name = "pluralize___pluralize_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz";
+ sha1 = "d1a21483fd22bb41e58a12fa3421823140897c45";
+ };
+ }
+
+ {
+ name = "posix_character_classes___posix_character_classes_0.1.1.tgz";
+ path = fetchurl {
+ name = "posix_character_classes___posix_character_classes_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz";
+ sha1 = "01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab";
+ };
+ }
+
+ {
+ name = "postgres_array___postgres_array_1.0.3.tgz";
+ path = fetchurl {
+ name = "postgres_array___postgres_array_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/postgres-array/-/postgres-array-1.0.3.tgz";
+ sha1 = "c561fc3b266b21451fc6555384f4986d78ec80f5";
+ };
+ }
+
+ {
+ name = "postgres_bytea___postgres_bytea_1.0.0.tgz";
+ path = fetchurl {
+ name = "postgres_bytea___postgres_bytea_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/postgres-bytea/-/postgres-bytea-1.0.0.tgz";
+ sha1 = "027b533c0aa890e26d172d47cf9ccecc521acd35";
+ };
+ }
+
+ {
+ name = "postgres_date___postgres_date_1.0.3.tgz";
+ path = fetchurl {
+ name = "postgres_date___postgres_date_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/postgres-date/-/postgres-date-1.0.3.tgz";
+ sha1 = "e2d89702efdb258ff9d9cee0fe91bd06975257a8";
+ };
+ }
+
+ {
+ name = "postgres_interval___postgres_interval_1.1.2.tgz";
+ path = fetchurl {
+ name = "postgres_interval___postgres_interval_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/postgres-interval/-/postgres-interval-1.1.2.tgz";
+ sha1 = "bf71ff902635f21cb241a013fc421d81d1db15a9";
+ };
+ }
+
+ {
+ name = "prebuild_install___prebuild_install_5.2.2.tgz";
+ path = fetchurl {
+ name = "prebuild_install___prebuild_install_5.2.2.tgz";
+ url = "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-5.2.2.tgz";
+ sha1 = "237888f21bfda441d0ee5f5612484390bccd4046";
+ };
+ }
+
+ {
+ name = "precond___precond_0.2.3.tgz";
+ path = fetchurl {
+ name = "precond___precond_0.2.3.tgz";
+ url = "https://registry.yarnpkg.com/precond/-/precond-0.2.3.tgz";
+ sha1 = "aa9591bcaa24923f1e0f4849d240f47efc1075ac";
+ };
+ }
+
+ {
+ name = "prelude_ls___prelude_ls_1.1.2.tgz";
+ path = fetchurl {
+ name = "prelude_ls___prelude_ls_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz";
+ sha1 = "21932a549f5e52ffd9a827f570e04be62a97da54";
+ };
+ }
+
+ {
+ name = "prepend_http___prepend_http_1.0.4.tgz";
+ path = fetchurl {
+ name = "prepend_http___prepend_http_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz";
+ sha1 = "d4f4562b0ce3696e41ac52d0e002e57a635dc6dc";
+ };
+ }
+
+ {
+ name = "pretty_format___pretty_format_23.6.0.tgz";
+ path = fetchurl {
+ name = "pretty_format___pretty_format_23.6.0.tgz";
+ url = "https://registry.yarnpkg.com/pretty-format/-/pretty-format-23.6.0.tgz";
+ sha1 = "5eaac8eeb6b33b987b7fe6097ea6a8a146ab5760";
+ };
+ }
+
+ {
+ name = "process_nextick_args___process_nextick_args_2.0.0.tgz";
+ path = fetchurl {
+ name = "process_nextick_args___process_nextick_args_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz";
+ sha1 = "a37d732f4271b4ab1ad070d35508e8290788ffaa";
+ };
+ }
+
+ {
+ name = "progress___progress_1.1.8.tgz";
+ path = fetchurl {
+ name = "progress___progress_1.1.8.tgz";
+ url = "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz";
+ sha1 = "e260c78f6161cdd9b0e56cc3e0a85de17c7a57be";
+ };
+ }
+
+ {
+ name = "promise_inflight___promise_inflight_1.0.1.tgz";
+ path = fetchurl {
+ name = "promise_inflight___promise_inflight_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz";
+ sha1 = "98472870bf228132fcbdd868129bad12c3c029e3";
+ };
+ }
+
+ {
+ name = "promise_retry___promise_retry_1.1.1.tgz";
+ path = fetchurl {
+ name = "promise_retry___promise_retry_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/promise-retry/-/promise-retry-1.1.1.tgz";
+ sha1 = "6739e968e3051da20ce6497fb2b50f6911df3d6d";
+ };
+ }
+
+ {
+ name = "promisify_any___promisify_any_2.0.1.tgz";
+ path = fetchurl {
+ name = "promisify_any___promisify_any_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/promisify-any/-/promisify-any-2.0.1.tgz";
+ sha1 = "403e00a8813f175242ab50fe33a69f8eece47305";
+ };
+ }
+
+ {
+ name = "prompt___prompt_1.0.0.tgz";
+ path = fetchurl {
+ name = "prompt___prompt_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/prompt/-/prompt-1.0.0.tgz";
+ sha1 = "8e57123c396ab988897fb327fd3aedc3e735e4fe";
+ };
+ }
+
+ {
+ name = "promzard___promzard_0.3.0.tgz";
+ path = fetchurl {
+ name = "promzard___promzard_0.3.0.tgz";
+ url = "https://registry.yarnpkg.com/promzard/-/promzard-0.3.0.tgz";
+ sha1 = "26a5d6ee8c7dee4cb12208305acfb93ba382a9ee";
+ };
+ }
+
+ {
+ name = "proto_list___proto_list_1.2.4.tgz";
+ path = fetchurl {
+ name = "proto_list___proto_list_1.2.4.tgz";
+ url = "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz";
+ sha1 = "212d5bfe1318306a420f6402b8e26ff39647a849";
+ };
+ }
+
+ {
+ name = "protoduck___protoduck_5.0.1.tgz";
+ path = fetchurl {
+ name = "protoduck___protoduck_5.0.1.tgz";
+ url = "https://registry.yarnpkg.com/protoduck/-/protoduck-5.0.1.tgz";
+ sha1 = "03c3659ca18007b69a50fd82a7ebcc516261151f";
+ };
+ }
+
+ {
+ name = "proxy_addr___proxy_addr_1.0.10.tgz";
+ path = fetchurl {
+ name = "proxy_addr___proxy_addr_1.0.10.tgz";
+ url = "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-1.0.10.tgz";
+ sha1 = "0d40a82f801fc355567d2ecb65efe3f077f121c5";
+ };
+ }
+
+ {
+ name = "proxy_addr___proxy_addr_2.0.4.tgz";
+ path = fetchurl {
+ name = "proxy_addr___proxy_addr_2.0.4.tgz";
+ url = "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.4.tgz";
+ sha1 = "ecfc733bf22ff8c6f407fa275327b9ab67e48b93";
+ };
+ }
+
+ {
+ name = "prr___prr_1.0.1.tgz";
+ path = fetchurl {
+ name = "prr___prr_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz";
+ sha1 = "d3fc114ba06995a45ec6893f484ceb1d78f5f476";
+ };
+ }
+
+ {
+ name = "pseudomap___pseudomap_1.0.2.tgz";
+ path = fetchurl {
+ name = "pseudomap___pseudomap_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz";
+ sha1 = "f052a28da70e618917ef0a8ac34c1ae5a68286b3";
+ };
+ }
+
+ {
+ name = "psl___psl_1.1.29.tgz";
+ path = fetchurl {
+ name = "psl___psl_1.1.29.tgz";
+ url = "https://registry.yarnpkg.com/psl/-/psl-1.1.29.tgz";
+ sha1 = "60f580d360170bb722a797cc704411e6da850c67";
+ };
+ }
+
+ {
+ name = "pstree.remy___pstree.remy_1.1.2.tgz";
+ path = fetchurl {
+ name = "pstree.remy___pstree.remy_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.2.tgz";
+ sha1 = "4448bbeb4b2af1fed242afc8dc7416a6f504951a";
+ };
+ }
+
+ {
+ name = "pump___pump_1.0.3.tgz";
+ path = fetchurl {
+ name = "pump___pump_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/pump/-/pump-1.0.3.tgz";
+ sha1 = "5dfe8311c33bbf6fc18261f9f34702c47c08a954";
+ };
+ }
+
+ {
+ name = "pump___pump_2.0.1.tgz";
+ path = fetchurl {
+ name = "pump___pump_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz";
+ sha1 = "12399add6e4cf7526d973cbc8b5ce2e2908b3909";
+ };
+ }
+
+ {
+ name = "pump___pump_3.0.0.tgz";
+ path = fetchurl {
+ name = "pump___pump_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz";
+ sha1 = "b4a2116815bde2f4e1ea602354e8c75565107a64";
+ };
+ }
+
+ {
+ name = "pumpify___pumpify_1.5.1.tgz";
+ path = fetchurl {
+ name = "pumpify___pumpify_1.5.1.tgz";
+ url = "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz";
+ sha1 = "36513be246ab27570b1a374a5ce278bfd74370ce";
+ };
+ }
+
+ {
+ name = "punycode___punycode_1.4.1.tgz";
+ path = fetchurl {
+ name = "punycode___punycode_1.4.1.tgz";
+ url = "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz";
+ sha1 = "c0d5a63b2718800ad8e1eb0fa5269c84dd41845e";
+ };
+ }
+
+ {
+ name = "punycode___punycode_2.1.1.tgz";
+ path = fetchurl {
+ name = "punycode___punycode_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz";
+ sha1 = "b58b010ac40c22c5657616c8d2c2c02c7bf479ec";
+ };
+ }
+
+ {
+ name = "qrcode_terminal___qrcode_terminal_0.12.0.tgz";
+ path = fetchurl {
+ name = "qrcode_terminal___qrcode_terminal_0.12.0.tgz";
+ url = "https://registry.yarnpkg.com/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz";
+ sha1 = "bb5b699ef7f9f0505092a3748be4464fe71b5819";
+ };
+ }
+
+ {
+ name = "qs___qs_4.0.0.tgz";
+ path = fetchurl {
+ name = "qs___qs_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/qs/-/qs-4.0.0.tgz";
+ sha1 = "c31d9b74ec27df75e543a86c78728ed8d4623607";
+ };
+ }
+
+ {
+ name = "qs___qs_6.5.2.tgz";
+ path = fetchurl {
+ name = "qs___qs_6.5.2.tgz";
+ url = "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz";
+ sha1 = "cb3ae806e8740444584ef154ce8ee98d403f3e36";
+ };
+ }
+
+ {
+ name = "qs___qs_6.6.0.tgz";
+ path = fetchurl {
+ name = "qs___qs_6.6.0.tgz";
+ url = "https://registry.yarnpkg.com/qs/-/qs-6.6.0.tgz";
+ sha1 = "a99c0f69a8d26bf7ef012f871cdabb0aee4424c2";
+ };
+ }
+
+ {
+ name = "query_string___query_string_6.2.0.tgz";
+ path = fetchurl {
+ name = "query_string___query_string_6.2.0.tgz";
+ url = "https://registry.yarnpkg.com/query-string/-/query-string-6.2.0.tgz";
+ sha1 = "468edeb542b7e0538f9f9b1aeb26f034f19c86e1";
+ };
+ }
+
+ {
+ name = "qw___qw_1.0.1.tgz";
+ path = fetchurl {
+ name = "qw___qw_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/qw/-/qw-1.0.1.tgz";
+ sha1 = "efbfdc740f9ad054304426acb183412cc8b996d4";
+ };
+ }
+
+ {
+ name = "random_access_file___random_access_file_2.0.1.tgz";
+ path = fetchurl {
+ name = "random_access_file___random_access_file_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/random-access-file/-/random-access-file-2.0.1.tgz";
+ sha1 = "dc22de79270e9a84cb36a2419b759725930dcaeb";
+ };
+ }
+
+ {
+ name = "random_access_storage___random_access_storage_1.3.0.tgz";
+ path = fetchurl {
+ name = "random_access_storage___random_access_storage_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/random-access-storage/-/random-access-storage-1.3.0.tgz";
+ sha1 = "d27e4d897b79dc4358afc2bbe553044e5c8cfe35";
+ };
+ }
+
+ {
+ name = "random_iterate___random_iterate_1.0.1.tgz";
+ path = fetchurl {
+ name = "random_iterate___random_iterate_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/random-iterate/-/random-iterate-1.0.1.tgz";
+ sha1 = "f7d97d92dee6665ec5f6da08c7f963cad4b2ac99";
+ };
+ }
+
+ {
+ name = "randombytes___randombytes_2.0.6.tgz";
+ path = fetchurl {
+ name = "randombytes___randombytes_2.0.6.tgz";
+ url = "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.6.tgz";
+ sha1 = "d302c522948588848a8d300c932b44c24231da80";
+ };
+ }
+
+ {
+ name = "range_parser___range_parser_1.2.0.tgz";
+ path = fetchurl {
+ name = "range_parser___range_parser_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz";
+ sha1 = "f49be6b487894ddc40dcc94a322f611092e00d5e";
+ };
+ }
+
+ {
+ name = "range_parser___range_parser_1.0.3.tgz";
+ path = fetchurl {
+ name = "range_parser___range_parser_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/range-parser/-/range-parser-1.0.3.tgz";
+ sha1 = "6872823535c692e2c2a0103826afd82c2e0ff175";
+ };
+ }
+
+ {
+ name = "range_slice_stream___range_slice_stream_2.0.0.tgz";
+ path = fetchurl {
+ name = "range_slice_stream___range_slice_stream_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/range-slice-stream/-/range-slice-stream-2.0.0.tgz";
+ sha1 = "1f25fc7a2cacf9ccd140c46f9cf670a1a7fe3ce6";
+ };
+ }
+
+ {
+ name = "raw_body___raw_body_2.3.3.tgz";
+ path = fetchurl {
+ name = "raw_body___raw_body_2.3.3.tgz";
+ url = "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.3.tgz";
+ sha1 = "1b324ece6b5706e153855bc1148c65bb7f6ea0c3";
+ };
+ }
+
+ {
+ name = "rc___rc_1.2.8.tgz";
+ path = fetchurl {
+ name = "rc___rc_1.2.8.tgz";
+ url = "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz";
+ sha1 = "cd924bf5200a075b83c188cd6b9e211b7fc0d3ed";
+ };
+ }
+
+ {
+ name = "rdf_canonize___rdf_canonize_0.2.5.tgz";
+ path = fetchurl {
+ name = "rdf_canonize___rdf_canonize_0.2.5.tgz";
+ url = "https://registry.yarnpkg.com/rdf-canonize/-/rdf-canonize-0.2.5.tgz";
+ sha1 = "dc761d42a2e9e6bf6eec7e0e352fd5b10ff4e75a";
+ };
+ }
+
+ {
+ name = "read_cmd_shim___read_cmd_shim_1.0.1.tgz";
+ path = fetchurl {
+ name = "read_cmd_shim___read_cmd_shim_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-1.0.1.tgz";
+ sha1 = "2d5d157786a37c055d22077c32c53f8329e91c7b";
+ };
+ }
+
+ {
+ name = "read_installed___read_installed_4.0.3.tgz";
+ path = fetchurl {
+ name = "read_installed___read_installed_4.0.3.tgz";
+ url = "https://registry.yarnpkg.com/read-installed/-/read-installed-4.0.3.tgz";
+ sha1 = "ff9b8b67f187d1e4c29b9feb31f6b223acd19067";
+ };
+ }
+
+ {
+ name = "read_package_json___read_package_json_2.0.13.tgz";
+ path = fetchurl {
+ name = "read_package_json___read_package_json_2.0.13.tgz";
+ url = "https://registry.yarnpkg.com/read-package-json/-/read-package-json-2.0.13.tgz";
+ sha1 = "2e82ebd9f613baa6d2ebe3aa72cefe3f68e41f4a";
+ };
+ }
+
+ {
+ name = "read_package_tree___read_package_tree_5.2.1.tgz";
+ path = fetchurl {
+ name = "read_package_tree___read_package_tree_5.2.1.tgz";
+ url = "https://registry.yarnpkg.com/read-package-tree/-/read-package-tree-5.2.1.tgz";
+ sha1 = "6218b187d6fac82289ce4387bbbaf8eef536ad63";
+ };
+ }
+
+ {
+ name = "read_pkg___read_pkg_4.0.1.tgz";
+ path = fetchurl {
+ name = "read_pkg___read_pkg_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/read-pkg/-/read-pkg-4.0.1.tgz";
+ sha1 = "963625378f3e1c4d48c85872b5a6ec7d5d093237";
+ };
+ }
+
+ {
+ name = "read___read_1.0.7.tgz";
+ path = fetchurl {
+ name = "read___read_1.0.7.tgz";
+ url = "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz";
+ sha1 = "b3da19bd052431a97671d44a42634adf710b40c4";
+ };
+ }
+
+ {
+ name = "readable_stream___readable_stream_2.3.6.tgz";
+ path = fetchurl {
+ name = "readable_stream___readable_stream_2.3.6.tgz";
+ url = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz";
+ sha1 = "b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf";
+ };
+ }
+
+ {
+ name = "readable_stream___readable_stream_1.1.14.tgz";
+ path = fetchurl {
+ name = "readable_stream___readable_stream_1.1.14.tgz";
+ url = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz";
+ sha1 = "7cf4c54ef648e3813084c636dd2079e166c081d9";
+ };
+ }
+
+ {
+ name = "readable_stream___readable_stream_1.0.34.tgz";
+ path = fetchurl {
+ name = "readable_stream___readable_stream_1.0.34.tgz";
+ url = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz";
+ sha1 = "125820e34bc842d2f2aaafafe4c2916ee32c157c";
+ };
+ }
+
+ {
+ name = "readable_stream___readable_stream_3.0.6.tgz";
+ path = fetchurl {
+ name = "readable_stream___readable_stream_3.0.6.tgz";
+ url = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.0.6.tgz";
+ sha1 = "351302e4c68b5abd6a2ed55376a7f9a25be3057a";
+ };
+ }
+
+ {
+ name = "readable_wrap___readable_wrap_1.0.0.tgz";
+ path = fetchurl {
+ name = "readable_wrap___readable_wrap_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/readable-wrap/-/readable-wrap-1.0.0.tgz";
+ sha1 = "3b5a211c631e12303a54991c806c17e7ae206bff";
+ };
+ }
+
+ {
+ name = "readdir_scoped_modules___readdir_scoped_modules_1.0.2.tgz";
+ path = fetchurl {
+ name = "readdir_scoped_modules___readdir_scoped_modules_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.0.2.tgz";
+ sha1 = "9fafa37d286be5d92cbaebdee030dc9b5f406747";
+ };
+ }
+
+ {
+ name = "readdirp___readdirp_2.2.1.tgz";
+ path = fetchurl {
+ name = "readdirp___readdirp_2.2.1.tgz";
+ url = "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz";
+ sha1 = "0e87622a3325aa33e892285caf8b4e846529a525";
+ };
+ }
+
+ {
+ name = "readline2___readline2_1.0.1.tgz";
+ path = fetchurl {
+ name = "readline2___readline2_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/readline2/-/readline2-1.0.1.tgz";
+ sha1 = "41059608ffc154757b715d9989d199ffbf372e35";
+ };
+ }
+
+ {
+ name = "record_cache___record_cache_1.1.0.tgz";
+ path = fetchurl {
+ name = "record_cache___record_cache_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/record-cache/-/record-cache-1.1.0.tgz";
+ sha1 = "f8a467a691a469584b26e88d36b18afdb3932037";
+ };
+ }
+
+ {
+ name = "redis_commands___redis_commands_1.4.0.tgz";
+ path = fetchurl {
+ name = "redis_commands___redis_commands_1.4.0.tgz";
+ url = "https://registry.yarnpkg.com/redis-commands/-/redis-commands-1.4.0.tgz";
+ sha1 = "52f9cf99153efcce56a8f86af986bd04e988602f";
+ };
+ }
+
+ {
+ name = "redis_parser___redis_parser_2.6.0.tgz";
+ path = fetchurl {
+ name = "redis_parser___redis_parser_2.6.0.tgz";
+ url = "https://registry.yarnpkg.com/redis-parser/-/redis-parser-2.6.0.tgz";
+ sha1 = "52ed09dacac108f1a631c07e9b69941e7a19504b";
+ };
+ }
+
+ {
+ name = "redis___redis_2.8.0.tgz";
+ path = fetchurl {
+ name = "redis___redis_2.8.0.tgz";
+ url = "https://registry.yarnpkg.com/redis/-/redis-2.8.0.tgz";
+ sha1 = "202288e3f58c49f6079d97af7a10e1303ae14b02";
+ };
+ }
+
+ {
+ name = "referrer_policy___referrer_policy_1.1.0.tgz";
+ path = fetchurl {
+ name = "referrer_policy___referrer_policy_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/referrer-policy/-/referrer-policy-1.1.0.tgz";
+ sha1 = "35774eb735bf50fb6c078e83334b472350207d79";
+ };
+ }
+
+ {
+ name = "reflect_metadata___reflect_metadata_0.1.12.tgz";
+ path = fetchurl {
+ name = "reflect_metadata___reflect_metadata_0.1.12.tgz";
+ url = "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.12.tgz";
+ sha1 = "311bf0c6b63cd782f228a81abe146a2bfa9c56f2";
+ };
+ }
+
+ {
+ name = "regex_not___regex_not_1.0.2.tgz";
+ path = fetchurl {
+ name = "regex_not___regex_not_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz";
+ sha1 = "1f4ece27e00b0b65e0247a6810e6a85d83a5752c";
+ };
+ }
+
+ {
+ name = "registry_auth_token___registry_auth_token_3.3.2.tgz";
+ path = fetchurl {
+ name = "registry_auth_token___registry_auth_token_3.3.2.tgz";
+ url = "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.3.2.tgz";
+ sha1 = "851fd49038eecb586911115af845260eec983f20";
+ };
+ }
+
+ {
+ name = "registry_url___registry_url_3.1.0.tgz";
+ path = fetchurl {
+ name = "registry_url___registry_url_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz";
+ sha1 = "3d4ef870f73dde1d77f0cf9a381432444e174942";
+ };
+ }
+
+ {
+ name = "remove_trailing_separator___remove_trailing_separator_1.1.0.tgz";
+ path = fetchurl {
+ name = "remove_trailing_separator___remove_trailing_separator_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz";
+ sha1 = "c24bce2a283adad5bc3f58e0d48249b92379d8ef";
+ };
+ }
+
+ {
+ name = "render_media___render_media_3.1.3.tgz";
+ path = fetchurl {
+ name = "render_media___render_media_3.1.3.tgz";
+ url = "https://registry.yarnpkg.com/render-media/-/render-media-3.1.3.tgz";
+ sha1 = "aa8c8cd3f720049370067180709b551d3c566254";
+ };
+ }
+
+ {
+ name = "repeat_element___repeat_element_1.1.3.tgz";
+ path = fetchurl {
+ name = "repeat_element___repeat_element_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz";
+ sha1 = "782e0d825c0c5a3bb39731f84efee6b742e6b1ce";
+ };
+ }
+
+ {
+ name = "repeat_string___repeat_string_1.6.1.tgz";
+ path = fetchurl {
+ name = "repeat_string___repeat_string_1.6.1.tgz";
+ url = "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz";
+ sha1 = "8dcae470e1c88abc2d600fff4a776286da75e637";
+ };
+ }
+
+ {
+ name = "request___request_2.88.0.tgz";
+ path = fetchurl {
+ name = "request___request_2.88.0.tgz";
+ url = "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz";
+ sha1 = "9c2fca4f7d35b592efe57c7f0a55e81052124fef";
+ };
+ }
+
+ {
+ name = "require_directory___require_directory_2.1.1.tgz";
+ path = fetchurl {
+ name = "require_directory___require_directory_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz";
+ sha1 = "8c64ad5fd30dab1c976e2344ffe7f792a6a6df42";
+ };
+ }
+
+ {
+ name = "require_main_filename___require_main_filename_1.0.1.tgz";
+ path = fetchurl {
+ name = "require_main_filename___require_main_filename_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz";
+ sha1 = "97f717b69d48784f5f526a6c5aa8ffdda055a4d1";
+ };
+ }
+
+ {
+ name = "require_uncached___require_uncached_1.0.3.tgz";
+ path = fetchurl {
+ name = "require_uncached___require_uncached_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz";
+ sha1 = "4e0d56d6c9662fd31e43011c4b95aa49955421d3";
+ };
+ }
+
+ {
+ name = "resolve_from___resolve_from_1.0.1.tgz";
+ path = fetchurl {
+ name = "resolve_from___resolve_from_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz";
+ sha1 = "26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226";
+ };
+ }
+
+ {
+ name = "resolve_from___resolve_from_2.0.0.tgz";
+ path = fetchurl {
+ name = "resolve_from___resolve_from_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz";
+ sha1 = "9480ab20e94ffa1d9e80a804c7ea147611966b57";
+ };
+ }
+
+ {
+ name = "resolve_from___resolve_from_3.0.0.tgz";
+ path = fetchurl {
+ name = "resolve_from___resolve_from_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz";
+ sha1 = "b22c7af7d9d6881bc8b6e653335eebcb0a188748";
+ };
+ }
+
+ {
+ name = "resolve_from___resolve_from_4.0.0.tgz";
+ path = fetchurl {
+ name = "resolve_from___resolve_from_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz";
+ sha1 = "4abcd852ad32dd7baabfe9b40e00a36db5f392e6";
+ };
+ }
+
+ {
+ name = "resolve_pkg___resolve_pkg_1.0.0.tgz";
+ path = fetchurl {
+ name = "resolve_pkg___resolve_pkg_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/resolve-pkg/-/resolve-pkg-1.0.0.tgz";
+ sha1 = "e19a15e78aca2e124461dc92b2e3943ef93494d9";
+ };
+ }
+
+ {
+ name = "resolve_url___resolve_url_0.2.1.tgz";
+ path = fetchurl {
+ name = "resolve_url___resolve_url_0.2.1.tgz";
+ url = "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz";
+ sha1 = "2c637fe77c893afd2a663fe21aa9080068e2052a";
+ };
+ }
+
+ {
+ name = "resolve___resolve_1.8.1.tgz";
+ path = fetchurl {
+ name = "resolve___resolve_1.8.1.tgz";
+ url = "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz";
+ sha1 = "82f1ec19a423ac1fbd080b0bab06ba36e84a7a26";
+ };
+ }
+
+ {
+ name = "restore_cursor___restore_cursor_1.0.1.tgz";
+ path = fetchurl {
+ name = "restore_cursor___restore_cursor_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz";
+ sha1 = "34661f46886327fed2991479152252df92daa541";
+ };
+ }
+
+ {
+ name = "restore_cursor___restore_cursor_2.0.0.tgz";
+ path = fetchurl {
+ name = "restore_cursor___restore_cursor_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz";
+ sha1 = "9f7ee287f82fd326d4fd162923d62129eee0dfaf";
+ };
+ }
+
+ {
+ name = "ret___ret_0.1.15.tgz";
+ path = fetchurl {
+ name = "ret___ret_0.1.15.tgz";
+ url = "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz";
+ sha1 = "b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc";
+ };
+ }
+
+ {
+ name = "retry_as_promised___retry_as_promised_2.3.2.tgz";
+ path = fetchurl {
+ name = "retry_as_promised___retry_as_promised_2.3.2.tgz";
+ url = "https://registry.yarnpkg.com/retry-as-promised/-/retry-as-promised-2.3.2.tgz";
+ sha1 = "cd974ee4fd9b5fe03cbf31871ee48221c07737b7";
+ };
+ }
+
+ {
+ name = "retry___retry_0.10.1.tgz";
+ path = fetchurl {
+ name = "retry___retry_0.10.1.tgz";
+ url = "https://registry.yarnpkg.com/retry/-/retry-0.10.1.tgz";
+ sha1 = "e76388d217992c252750241d3d3956fed98d8ff4";
+ };
+ }
+
+ {
+ name = "retry___retry_0.12.0.tgz";
+ path = fetchurl {
+ name = "retry___retry_0.12.0.tgz";
+ url = "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz";
+ sha1 = "1b42a6266a21f07421d1b0b54b7dc167b01c013b";
+ };
+ }
+
+ {
+ name = "revalidator___revalidator_0.1.8.tgz";
+ path = fetchurl {
+ name = "revalidator___revalidator_0.1.8.tgz";
+ url = "https://registry.yarnpkg.com/revalidator/-/revalidator-0.1.8.tgz";
+ sha1 = "fece61bfa0c1b52a206bd6b18198184bdd523a3b";
+ };
+ }
+
+ {
+ name = "rimraf___rimraf_2.6.2.tgz";
+ path = fetchurl {
+ name = "rimraf___rimraf_2.6.2.tgz";
+ url = "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz";
+ sha1 = "2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36";
+ };
+ }
+
+ {
+ name = "rimraf___rimraf_2.4.5.tgz";
+ path = fetchurl {
+ name = "rimraf___rimraf_2.4.5.tgz";
+ url = "https://registry.yarnpkg.com/rimraf/-/rimraf-2.4.5.tgz";
+ sha1 = "ee710ce5d93a8fdb856fb5ea8ff0e2d75934b2da";
+ };
+ }
+
+ {
+ name = "run_async___run_async_0.1.0.tgz";
+ path = fetchurl {
+ name = "run_async___run_async_0.1.0.tgz";
+ url = "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz";
+ sha1 = "c8ad4a5e110661e402a7d21b530e009f25f8e389";
+ };
+ }
+
+ {
+ name = "run_node___run_node_1.0.0.tgz";
+ path = fetchurl {
+ name = "run_node___run_node_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/run-node/-/run-node-1.0.0.tgz";
+ sha1 = "46b50b946a2aa2d4947ae1d886e9856fd9cabe5e";
+ };
+ }
+
+ {
+ name = "run_parallel_limit___run_parallel_limit_1.0.5.tgz";
+ path = fetchurl {
+ name = "run_parallel_limit___run_parallel_limit_1.0.5.tgz";
+ url = "https://registry.yarnpkg.com/run-parallel-limit/-/run-parallel-limit-1.0.5.tgz";
+ sha1 = "c29a4fd17b4df358cb52a8a697811a63c984f1b7";
+ };
+ }
+
+ {
+ name = "run_parallel___run_parallel_1.1.9.tgz";
+ path = fetchurl {
+ name = "run_parallel___run_parallel_1.1.9.tgz";
+ url = "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz";
+ sha1 = "c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679";
+ };
+ }
+
+ {
+ name = "run_queue___run_queue_1.0.3.tgz";
+ path = fetchurl {
+ name = "run_queue___run_queue_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz";
+ sha1 = "e848396f057d223f24386924618e25694161ec47";
+ };
+ }
+
+ {
+ name = "run_series___run_series_1.1.8.tgz";
+ path = fetchurl {
+ name = "run_series___run_series_1.1.8.tgz";
+ url = "https://registry.yarnpkg.com/run-series/-/run-series-1.1.8.tgz";
+ sha1 = "2c4558f49221e01cd6371ff4e0a1e203e460fc36";
+ };
+ }
+
+ {
+ name = "rusha___rusha_0.8.13.tgz";
+ path = fetchurl {
+ name = "rusha___rusha_0.8.13.tgz";
+ url = "https://registry.yarnpkg.com/rusha/-/rusha-0.8.13.tgz";
+ sha1 = "9a084e7b860b17bff3015b92c67a6a336191513a";
+ };
+ }
+
+ {
+ name = "rx_lite___rx_lite_3.1.2.tgz";
+ path = fetchurl {
+ name = "rx_lite___rx_lite_3.1.2.tgz";
+ url = "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz";
+ sha1 = "19ce502ca572665f3b647b10939f97fd1615f102";
+ };
+ }
+
+ {
+ name = "rxjs___rxjs_6.3.3.tgz";
+ path = fetchurl {
+ name = "rxjs___rxjs_6.3.3.tgz";
+ url = "https://registry.yarnpkg.com/rxjs/-/rxjs-6.3.3.tgz";
+ sha1 = "3c6a7fa420e844a81390fb1158a9ec614f4bad55";
+ };
+ }
+
+ {
+ name = "safe_buffer___safe_buffer_5.1.2.tgz";
+ path = fetchurl {
+ name = "safe_buffer___safe_buffer_5.1.2.tgz";
+ url = "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz";
+ sha1 = "991ec69d296e0313747d59bdfd2b745c35f8828d";
+ };
+ }
+
+ {
+ name = "safe_json_stringify___safe_json_stringify_1.2.0.tgz";
+ path = fetchurl {
+ name = "safe_json_stringify___safe_json_stringify_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz";
+ sha1 = "356e44bc98f1f93ce45df14bcd7c01cda86e0afd";
+ };
+ }
+
+ {
+ name = "safe_regex___safe_regex_1.1.0.tgz";
+ path = fetchurl {
+ name = "safe_regex___safe_regex_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz";
+ sha1 = "40a3669f3b077d1e943d44629e157dd48023bf2e";
+ };
+ }
+
+ {
+ name = "safer_buffer___safer_buffer_2.1.2.tgz";
+ path = fetchurl {
+ name = "safer_buffer___safer_buffer_2.1.2.tgz";
+ url = "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz";
+ sha1 = "44fa161b0187b9549dd84bb91802f9bd8385cd6a";
+ };
+ }
+
+ {
+ name = "sass_lint___sass_lint_1.12.1.tgz";
+ path = fetchurl {
+ name = "sass_lint___sass_lint_1.12.1.tgz";
+ url = "https://registry.yarnpkg.com/sass-lint/-/sass-lint-1.12.1.tgz";
+ sha1 = "630f69c216aa206b8232fb2aa907bdf3336b6d83";
+ };
+ }
+
+ {
+ name = "sax___sax_1.2.4.tgz";
+ path = fetchurl {
+ name = "sax___sax_1.2.4.tgz";
+ url = "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz";
+ sha1 = "2816234e2378bddc4e5354fab5caa895df7100d9";
+ };
+ }
+
+ {
+ name = "scripty___scripty_1.8.0.tgz";
+ path = fetchurl {
+ name = "scripty___scripty_1.8.0.tgz";
+ url = "https://registry.yarnpkg.com/scripty/-/scripty-1.8.0.tgz";
+ sha1 = "951f0b4bc3e235844b7f5355f58d31e012e0b806";
+ };
+ }
+
+ {
+ name = "semver_compare___semver_compare_1.0.0.tgz";
+ path = fetchurl {
+ name = "semver_compare___semver_compare_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz";
+ sha1 = "0dee216a1c941ab37e9efb1788f6afc5ff5537fc";
+ };
+ }
+
+ {
+ name = "semver_diff___semver_diff_2.1.0.tgz";
+ path = fetchurl {
+ name = "semver_diff___semver_diff_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz";
+ sha1 = "4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36";
+ };
+ }
+
+ {
+ name = "semver___semver_5.6.0.tgz";
+ path = fetchurl {
+ name = "semver___semver_5.6.0.tgz";
+ url = "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz";
+ sha1 = "7e74256fbaa49c75aa7c7a205cc22799cac80004";
+ };
+ }
+
+ {
+ name = "semver___semver_4.3.2.tgz";
+ path = fetchurl {
+ name = "semver___semver_4.3.2.tgz";
+ url = "https://registry.yarnpkg.com/semver/-/semver-4.3.2.tgz";
+ sha1 = "c7a07158a80bedd052355b770d82d6640f803be7";
+ };
+ }
+
+ {
+ name = "semver___semver_5.3.0.tgz";
+ path = fetchurl {
+ name = "semver___semver_5.3.0.tgz";
+ url = "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz";
+ sha1 = "9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f";
+ };
+ }
+
+ {
+ name = "send___send_0.13.1.tgz";
+ path = fetchurl {
+ name = "send___send_0.13.1.tgz";
+ url = "https://registry.yarnpkg.com/send/-/send-0.13.1.tgz";
+ sha1 = "a30d5f4c82c8a9bae9ad00a1d9b1bdbe6f199ed7";
+ };
+ }
+
+ {
+ name = "send___send_0.13.2.tgz";
+ path = fetchurl {
+ name = "send___send_0.13.2.tgz";
+ url = "https://registry.yarnpkg.com/send/-/send-0.13.2.tgz";
+ sha1 = "765e7607c8055452bba6f0b052595350986036de";
+ };
+ }
+
+ {
+ name = "send___send_0.16.2.tgz";
+ path = fetchurl {
+ name = "send___send_0.16.2.tgz";
+ url = "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz";
+ sha1 = "6ecca1e0f8c156d141597559848df64730a6bbc1";
+ };
+ }
+
+ {
+ name = "sequelize_typescript___sequelize_typescript_0.6.6.tgz";
+ path = fetchurl {
+ name = "sequelize_typescript___sequelize_typescript_0.6.6.tgz";
+ url = "https://registry.yarnpkg.com/sequelize-typescript/-/sequelize-typescript-0.6.6.tgz";
+ sha1 = "926037b542dae9f4eff20609d095cc5e3a3640f3";
+ };
+ }
+
+ {
+ name = "sequelize___sequelize_4.41.2.tgz";
+ path = fetchurl {
+ name = "sequelize___sequelize_4.41.2.tgz";
+ url = "https://registry.yarnpkg.com/sequelize/-/sequelize-4.41.2.tgz";
+ sha1 = "bb9ba30d72e9eeb883c9861cd0e2cac672010883";
+ };
+ }
+
+ {
+ name = "serve_static___serve_static_1.13.2.tgz";
+ path = fetchurl {
+ name = "serve_static___serve_static_1.13.2.tgz";
+ url = "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.2.tgz";
+ sha1 = "095e8472fd5b46237db50ce486a43f4b86c6cec1";
+ };
+ }
+
+ {
+ name = "serve_static___serve_static_1.10.3.tgz";
+ path = fetchurl {
+ name = "serve_static___serve_static_1.10.3.tgz";
+ url = "https://registry.yarnpkg.com/serve-static/-/serve-static-1.10.3.tgz";
+ sha1 = "ce5a6ecd3101fed5ec09827dac22a9c29bfb0535";
+ };
+ }
+
+ {
+ name = "set_blocking___set_blocking_2.0.0.tgz";
+ path = fetchurl {
+ name = "set_blocking___set_blocking_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz";
+ sha1 = "045f9782d011ae9a6803ddd382b24392b3d890f7";
+ };
+ }
+
+ {
+ name = "set_value___set_value_0.4.3.tgz";
+ path = fetchurl {
+ name = "set_value___set_value_0.4.3.tgz";
+ url = "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz";
+ sha1 = "7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1";
+ };
+ }
+
+ {
+ name = "set_value___set_value_2.0.0.tgz";
+ path = fetchurl {
+ name = "set_value___set_value_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz";
+ sha1 = "71ae4a88f0feefbbf52d1ea604f3fb315ebb6274";
+ };
+ }
+
+ {
+ name = "setprototypeof___setprototypeof_1.1.0.tgz";
+ path = fetchurl {
+ name = "setprototypeof___setprototypeof_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz";
+ sha1 = "d0bd85536887b6fe7c0d818cb962d9d91c54e656";
+ };
+ }
+
+ {
+ name = "sha___sha_2.0.1.tgz";
+ path = fetchurl {
+ name = "sha___sha_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/sha/-/sha-2.0.1.tgz";
+ sha1 = "6030822fbd2c9823949f8f72ed6411ee5cf25aae";
+ };
+ }
+
+ {
+ name = "sharp___sharp_0.21.0.tgz";
+ path = fetchurl {
+ name = "sharp___sharp_0.21.0.tgz";
+ url = "https://registry.yarnpkg.com/sharp/-/sharp-0.21.0.tgz";
+ sha1 = "e3cf2e4cb9382caf78efb3d45252381730e899c4";
+ };
+ }
+
+ {
+ name = "shebang_command___shebang_command_1.2.0.tgz";
+ path = fetchurl {
+ name = "shebang_command___shebang_command_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz";
+ sha1 = "44aac65b695b03398968c39f363fee5deafdf1ea";
+ };
+ }
+
+ {
+ name = "shebang_regex___shebang_regex_1.0.0.tgz";
+ path = fetchurl {
+ name = "shebang_regex___shebang_regex_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz";
+ sha1 = "da42f49740c0b42db2ca9728571cb190c98efea3";
+ };
+ }
+
+ {
+ name = "shelljs___shelljs_0.6.1.tgz";
+ path = fetchurl {
+ name = "shelljs___shelljs_0.6.1.tgz";
+ url = "https://registry.yarnpkg.com/shelljs/-/shelljs-0.6.1.tgz";
+ sha1 = "ec6211bed1920442088fe0f70b2837232ed2c8a8";
+ };
+ }
+
+ {
+ name = "shimmer___shimmer_1.2.0.tgz";
+ path = fetchurl {
+ name = "shimmer___shimmer_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/shimmer/-/shimmer-1.2.0.tgz";
+ sha1 = "f966f7555789763e74d8841193685a5e78736665";
+ };
+ }
+
+ {
+ name = "signal_exit___signal_exit_3.0.2.tgz";
+ path = fetchurl {
+ name = "signal_exit___signal_exit_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz";
+ sha1 = "b5fdc08f1287ea1178628e415e25132b73646c6d";
+ };
+ }
+
+ {
+ name = "simple_concat___simple_concat_1.0.0.tgz";
+ path = fetchurl {
+ name = "simple_concat___simple_concat_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.0.tgz";
+ sha1 = "7344cbb8b6e26fb27d66b2fc86f9f6d5997521c6";
+ };
+ }
+
+ {
+ name = "simple_get___simple_get_2.8.1.tgz";
+ path = fetchurl {
+ name = "simple_get___simple_get_2.8.1.tgz";
+ url = "https://registry.yarnpkg.com/simple-get/-/simple-get-2.8.1.tgz";
+ sha1 = "0e22e91d4575d87620620bc91308d57a77f44b5d";
+ };
+ }
+
+ {
+ name = "simple_get___simple_get_3.0.3.tgz";
+ path = fetchurl {
+ name = "simple_get___simple_get_3.0.3.tgz";
+ url = "https://registry.yarnpkg.com/simple-get/-/simple-get-3.0.3.tgz";
+ sha1 = "924528ac3f9d7718ce5e9ec1b1a69c0be4d62efa";
+ };
+ }
+
+ {
+ name = "simple_git___simple_git_1.107.0.tgz";
+ path = fetchurl {
+ name = "simple_git___simple_git_1.107.0.tgz";
+ url = "https://registry.yarnpkg.com/simple-git/-/simple-git-1.107.0.tgz";
+ sha1 = "12cffaf261c14d6f450f7fdb86c21ccee968b383";
+ };
+ }
+
+ {
+ name = "simple_peer___simple_peer_9.1.2.tgz";
+ path = fetchurl {
+ name = "simple_peer___simple_peer_9.1.2.tgz";
+ url = "https://registry.yarnpkg.com/simple-peer/-/simple-peer-9.1.2.tgz";
+ sha1 = "f8afa5eb83f8a17d66e437e5ac54c1221eca4b39";
+ };
+ }
+
+ {
+ name = "simple_sha1___simple_sha1_2.1.1.tgz";
+ path = fetchurl {
+ name = "simple_sha1___simple_sha1_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/simple-sha1/-/simple-sha1-2.1.1.tgz";
+ sha1 = "93f3b7f2e8dfdc056c32793e5d47b58d311b140d";
+ };
+ }
+
+ {
+ name = "simple_swizzle___simple_swizzle_0.2.2.tgz";
+ path = fetchurl {
+ name = "simple_swizzle___simple_swizzle_0.2.2.tgz";
+ url = "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz";
+ sha1 = "a4da6b635ffcccca33f70d17cb92592de95e557a";
+ };
+ }
+
+ {
+ name = "simple_websocket___simple_websocket_7.2.0.tgz";
+ path = fetchurl {
+ name = "simple_websocket___simple_websocket_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/simple-websocket/-/simple-websocket-7.2.0.tgz";
+ sha1 = "c3190555d74399372b96b51435f2d8c4b04611df";
+ };
+ }
+
+ {
+ name = "sitemap___sitemap_2.1.0.tgz";
+ path = fetchurl {
+ name = "sitemap___sitemap_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/sitemap/-/sitemap-2.1.0.tgz";
+ sha1 = "1633cb88c196d755ad94becfb1c1bcacc6d3425a";
+ };
+ }
+
+ {
+ name = "slash___slash_1.0.0.tgz";
+ path = fetchurl {
+ name = "slash___slash_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz";
+ sha1 = "c41f2f6c39fc16d1cd17ad4b5d896114ae470d55";
+ };
+ }
+
+ {
+ name = "slash___slash_2.0.0.tgz";
+ path = fetchurl {
+ name = "slash___slash_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz";
+ sha1 = "de552851a1759df3a8f206535442f5ec4ddeab44";
+ };
+ }
+
+ {
+ name = "slice_ansi___slice_ansi_0.0.4.tgz";
+ path = fetchurl {
+ name = "slice_ansi___slice_ansi_0.0.4.tgz";
+ url = "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz";
+ sha1 = "edbf8903f66f7ce2f8eafd6ceed65e264c831b35";
+ };
+ }
+
+ {
+ name = "slide___slide_1.1.6.tgz";
+ path = fetchurl {
+ name = "slide___slide_1.1.6.tgz";
+ url = "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz";
+ sha1 = "56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707";
+ };
+ }
+
+ {
+ name = "smart_buffer___smart_buffer_1.1.15.tgz";
+ path = fetchurl {
+ name = "smart_buffer___smart_buffer_1.1.15.tgz";
+ url = "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-1.1.15.tgz";
+ sha1 = "7f114b5b65fab3e2a35aa775bb12f0d1c649bf16";
+ };
+ }
+
+ {
+ name = "smart_buffer___smart_buffer_4.0.1.tgz";
+ path = fetchurl {
+ name = "smart_buffer___smart_buffer_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.0.1.tgz";
+ sha1 = "07ea1ca8d4db24eb4cac86537d7d18995221ace3";
+ };
+ }
+
+ {
+ name = "smtp_connection___smtp_connection_2.3.1.tgz";
+ path = fetchurl {
+ name = "smtp_connection___smtp_connection_2.3.1.tgz";
+ url = "https://registry.yarnpkg.com/smtp-connection/-/smtp-connection-2.3.1.tgz";
+ sha1 = "d169c8f1c9a73854134cdabe6fb818237dfc4fba";
+ };
+ }
+
+ {
+ name = "smtp_server___smtp_server_1.16.1.tgz";
+ path = fetchurl {
+ name = "smtp_server___smtp_server_1.16.1.tgz";
+ url = "https://registry.yarnpkg.com/smtp-server/-/smtp-server-1.16.1.tgz";
+ sha1 = "91d2dbd5e8bb9ed395b1a1774e8b60dd7b24e453";
+ };
+ }
+
+ {
+ name = "snapdragon_node___snapdragon_node_2.1.1.tgz";
+ path = fetchurl {
+ name = "snapdragon_node___snapdragon_node_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz";
+ sha1 = "6c175f86ff14bdb0724563e8f3c1b021a286853b";
+ };
+ }
+
+ {
+ name = "snapdragon_util___snapdragon_util_3.0.1.tgz";
+ path = fetchurl {
+ name = "snapdragon_util___snapdragon_util_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz";
+ sha1 = "f956479486f2acd79700693f6f7b805e45ab56e2";
+ };
+ }
+
+ {
+ name = "snapdragon___snapdragon_0.8.2.tgz";
+ path = fetchurl {
+ name = "snapdragon___snapdragon_0.8.2.tgz";
+ url = "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz";
+ sha1 = "64922e7c565b0e14204ba1aa7d6964278d25182d";
+ };
+ }
+
+ {
+ name = "socket.io_adapter___socket.io_adapter_0.5.0.tgz";
+ path = fetchurl {
+ name = "socket.io_adapter___socket.io_adapter_0.5.0.tgz";
+ url = "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-0.5.0.tgz";
+ sha1 = "cb6d4bb8bec81e1078b99677f9ced0046066bb8b";
+ };
+ }
+
+ {
+ name = "socket.io_adapter___socket.io_adapter_1.1.1.tgz";
+ path = fetchurl {
+ name = "socket.io_adapter___socket.io_adapter_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz";
+ sha1 = "2a805e8a14d6372124dd9159ad4502f8cb07f06b";
+ };
+ }
+
+ {
+ name = "socket.io_client___socket.io_client_1.7.3.tgz";
+ path = fetchurl {
+ name = "socket.io_client___socket.io_client_1.7.3.tgz";
+ url = "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-1.7.3.tgz";
+ sha1 = "b30e86aa10d5ef3546601c09cde4765e381da377";
+ };
+ }
+
+ {
+ name = "socket.io_client___socket.io_client_2.2.0.tgz";
+ path = fetchurl {
+ name = "socket.io_client___socket.io_client_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.2.0.tgz";
+ sha1 = "84e73ee3c43d5020ccc1a258faeeb9aec2723af7";
+ };
+ }
+
+ {
+ name = "socket.io_parser___socket.io_parser_2.3.1.tgz";
+ path = fetchurl {
+ name = "socket.io_parser___socket.io_parser_2.3.1.tgz";
+ url = "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-2.3.1.tgz";
+ sha1 = "dd532025103ce429697326befd64005fcfe5b4a0";
+ };
+ }
+
+ {
+ name = "socket.io_parser___socket.io_parser_3.3.0.tgz";
+ path = fetchurl {
+ name = "socket.io_parser___socket.io_parser_3.3.0.tgz";
+ url = "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.3.0.tgz";
+ sha1 = "2b52a96a509fdf31440ba40fed6094c7d4f1262f";
+ };
+ }
+
+ {
+ name = "socket.io___socket.io_1.7.3.tgz";
+ path = fetchurl {
+ name = "socket.io___socket.io_1.7.3.tgz";
+ url = "https://registry.yarnpkg.com/socket.io/-/socket.io-1.7.3.tgz";
+ sha1 = "b8af9caba00949e568e369f1327ea9be9ea2461b";
+ };
+ }
+
+ {
+ name = "socket.io___socket.io_2.2.0.tgz";
+ path = fetchurl {
+ name = "socket.io___socket.io_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/socket.io/-/socket.io-2.2.0.tgz";
+ sha1 = "f0f633161ef6712c972b307598ecd08c9b1b4d5b";
+ };
+ }
+
+ {
+ name = "socks_proxy_agent___socks_proxy_agent_3.0.1.tgz";
+ path = fetchurl {
+ name = "socks_proxy_agent___socks_proxy_agent_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-3.0.1.tgz";
+ sha1 = "2eae7cf8e2a82d34565761539a7f9718c5617659";
+ };
+ }
+
+ {
+ name = "socks_proxy_agent___socks_proxy_agent_4.0.1.tgz";
+ path = fetchurl {
+ name = "socks_proxy_agent___socks_proxy_agent_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-4.0.1.tgz";
+ sha1 = "5936bf8b707a993079c6f37db2091821bffa6473";
+ };
+ }
+
+ {
+ name = "socks___socks_1.1.10.tgz";
+ path = fetchurl {
+ name = "socks___socks_1.1.10.tgz";
+ url = "https://registry.yarnpkg.com/socks/-/socks-1.1.10.tgz";
+ sha1 = "5b8b7fc7c8f341c53ed056e929b7bf4de8ba7b5a";
+ };
+ }
+
+ {
+ name = "socks___socks_2.2.2.tgz";
+ path = fetchurl {
+ name = "socks___socks_2.2.2.tgz";
+ url = "https://registry.yarnpkg.com/socks/-/socks-2.2.2.tgz";
+ sha1 = "f061219fc2d4d332afb4af93e865c84d3fa26e2b";
+ };
+ }
+
+ {
+ name = "sorted_object___sorted_object_2.0.1.tgz";
+ path = fetchurl {
+ name = "sorted_object___sorted_object_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/sorted-object/-/sorted-object-2.0.1.tgz";
+ sha1 = "7d631f4bd3a798a24af1dffcfbfe83337a5df5fc";
+ };
+ }
+
+ {
+ name = "sorted_union_stream___sorted_union_stream_2.1.3.tgz";
+ path = fetchurl {
+ name = "sorted_union_stream___sorted_union_stream_2.1.3.tgz";
+ url = "https://registry.yarnpkg.com/sorted-union-stream/-/sorted-union-stream-2.1.3.tgz";
+ sha1 = "c7794c7e077880052ff71a8d4a2dbb4a9a638ac7";
+ };
+ }
+
+ {
+ name = "source_map_resolve___source_map_resolve_0.5.2.tgz";
+ path = fetchurl {
+ name = "source_map_resolve___source_map_resolve_0.5.2.tgz";
+ url = "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz";
+ sha1 = "72e2cc34095543e43b2c62b2c4c10d4a9054f259";
+ };
+ }
+
+ {
+ name = "source_map_support___source_map_support_0.5.9.tgz";
+ path = fetchurl {
+ name = "source_map_support___source_map_support_0.5.9.tgz";
+ url = "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.9.tgz";
+ sha1 = "41bc953b2534267ea2d605bccfa7bfa3111ced5f";
+ };
+ }
+
+ {
+ name = "source_map_url___source_map_url_0.4.0.tgz";
+ path = fetchurl {
+ name = "source_map_url___source_map_url_0.4.0.tgz";
+ url = "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz";
+ sha1 = "3e935d7ddd73631b97659956d55128e87b5084a3";
+ };
+ }
+
+ {
+ name = "source_map___source_map_0.5.7.tgz";
+ path = fetchurl {
+ name = "source_map___source_map_0.5.7.tgz";
+ url = "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz";
+ sha1 = "8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc";
+ };
+ }
+
+ {
+ name = "source_map___source_map_0.6.1.tgz";
+ path = fetchurl {
+ name = "source_map___source_map_0.6.1.tgz";
+ url = "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz";
+ sha1 = "74722af32e9614e9c287a8d0bbde48b5e2f1a263";
+ };
+ }
+
+ {
+ name = "spawn_command___spawn_command_0.0.2_1.tgz";
+ path = fetchurl {
+ name = "spawn_command___spawn_command_0.0.2_1.tgz";
+ url = "https://registry.yarnpkg.com/spawn-command/-/spawn-command-0.0.2-1.tgz";
+ sha1 = "62f5e9466981c1b796dc5929937e11c9c6921bd0";
+ };
+ }
+
+ {
+ name = "spdx_correct___spdx_correct_3.0.2.tgz";
+ path = fetchurl {
+ name = "spdx_correct___spdx_correct_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.2.tgz";
+ sha1 = "19bb409e91b47b1ad54159243f7312a858db3c2e";
+ };
+ }
+
+ {
+ name = "spdx_exceptions___spdx_exceptions_2.2.0.tgz";
+ path = fetchurl {
+ name = "spdx_exceptions___spdx_exceptions_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz";
+ sha1 = "2ea450aee74f2a89bfb94519c07fcd6f41322977";
+ };
+ }
+
+ {
+ name = "spdx_expression_parse___spdx_expression_parse_3.0.0.tgz";
+ path = fetchurl {
+ name = "spdx_expression_parse___spdx_expression_parse_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz";
+ sha1 = "99e119b7a5da00e05491c9fa338b7904823b41d0";
+ };
+ }
+
+ {
+ name = "spdx_license_ids___spdx_license_ids_3.0.2.tgz";
+ path = fetchurl {
+ name = "spdx_license_ids___spdx_license_ids_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.2.tgz";
+ sha1 = "a59efc09784c2a5bada13cfeaf5c75dd214044d2";
+ };
+ }
+
+ {
+ name = "speedometer___speedometer_1.1.0.tgz";
+ path = fetchurl {
+ name = "speedometer___speedometer_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/speedometer/-/speedometer-1.1.0.tgz";
+ sha1 = "a30b13abda45687a1a76977012c060f2ac8a7934";
+ };
+ }
+
+ {
+ name = "split_string___split_string_3.1.0.tgz";
+ path = fetchurl {
+ name = "split_string___split_string_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz";
+ sha1 = "7cb09dda3a86585705c64b39a6466038682e8fe2";
+ };
+ }
+
+ {
+ name = "split2___split2_0.2.1.tgz";
+ path = fetchurl {
+ name = "split2___split2_0.2.1.tgz";
+ url = "https://registry.yarnpkg.com/split2/-/split2-0.2.1.tgz";
+ sha1 = "02ddac9adc03ec0bb78c1282ec079ca6e85ae900";
+ };
+ }
+
+ {
+ name = "split___split_1.0.1.tgz";
+ path = fetchurl {
+ name = "split___split_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz";
+ sha1 = "605bd9be303aa59fb35f9229fbea0ddec9ea07d9";
+ };
+ }
+
+ {
+ name = "sprintf_js___sprintf_js_1.0.3.tgz";
+ path = fetchurl {
+ name = "sprintf_js___sprintf_js_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz";
+ sha1 = "04e6926f662895354f3dd015203633b857297e2c";
+ };
+ }
+
+ {
+ name = "srt_to_vtt___srt_to_vtt_1.1.3.tgz";
+ path = fetchurl {
+ name = "srt_to_vtt___srt_to_vtt_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/srt-to-vtt/-/srt-to-vtt-1.1.3.tgz";
+ sha1 = "a9bc16cde5412e000e59ffda469f3e9befed5dde";
+ };
+ }
+
+ {
+ name = "sshpk___sshpk_1.15.2.tgz";
+ path = fetchurl {
+ name = "sshpk___sshpk_1.15.2.tgz";
+ url = "https://registry.yarnpkg.com/sshpk/-/sshpk-1.15.2.tgz";
+ sha1 = "c946d6bd9b1a39d0e8635763f5242d6ed6dcb629";
+ };
+ }
+
+ {
+ name = "ssri___ssri_5.3.0.tgz";
+ path = fetchurl {
+ name = "ssri___ssri_5.3.0.tgz";
+ url = "https://registry.yarnpkg.com/ssri/-/ssri-5.3.0.tgz";
+ sha1 = "ba3872c9c6d33a0704a7d71ff045e5ec48999d06";
+ };
+ }
+
+ {
+ name = "ssri___ssri_6.0.1.tgz";
+ path = fetchurl {
+ name = "ssri___ssri_6.0.1.tgz";
+ url = "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz";
+ sha1 = "2a3c41b28dd45b62b63676ecb74001265ae9edd8";
+ };
+ }
+
+ {
+ name = "stack_trace___stack_trace_0.0.10.tgz";
+ path = fetchurl {
+ name = "stack_trace___stack_trace_0.0.10.tgz";
+ url = "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz";
+ sha1 = "547c70b347e8d32b4e108ea1a2a159e5fdde19c0";
+ };
+ }
+
+ {
+ name = "staged_git_files___staged_git_files_1.1.2.tgz";
+ path = fetchurl {
+ name = "staged_git_files___staged_git_files_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/staged-git-files/-/staged-git-files-1.1.2.tgz";
+ sha1 = "4326d33886dc9ecfa29a6193bf511ba90a46454b";
+ };
+ }
+
+ {
+ name = "static_extend___static_extend_0.1.2.tgz";
+ path = fetchurl {
+ name = "static_extend___static_extend_0.1.2.tgz";
+ url = "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz";
+ sha1 = "60809c39cbff55337226fd5e0b520f341f1fb5c6";
+ };
+ }
+
+ {
+ name = "statuses___statuses_1.5.0.tgz";
+ path = fetchurl {
+ name = "statuses___statuses_1.5.0.tgz";
+ url = "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz";
+ sha1 = "161c7dac177659fd9811f43771fa99381478628c";
+ };
+ }
+
+ {
+ name = "statuses___statuses_1.3.1.tgz";
+ path = fetchurl {
+ name = "statuses___statuses_1.3.1.tgz";
+ url = "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz";
+ sha1 = "faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e";
+ };
+ }
+
+ {
+ name = "statuses___statuses_1.2.1.tgz";
+ path = fetchurl {
+ name = "statuses___statuses_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/statuses/-/statuses-1.2.1.tgz";
+ sha1 = "dded45cc18256d51ed40aec142489d5c61026d28";
+ };
+ }
+
+ {
+ name = "statuses___statuses_1.4.0.tgz";
+ path = fetchurl {
+ name = "statuses___statuses_1.4.0.tgz";
+ url = "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz";
+ sha1 = "bb73d446da2796106efcc1b601a253d6c46bd087";
+ };
+ }
+
+ {
+ name = "stream_each___stream_each_1.2.3.tgz";
+ path = fetchurl {
+ name = "stream_each___stream_each_1.2.3.tgz";
+ url = "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz";
+ sha1 = "ebe27a0c389b04fbcc233642952e10731afa9bae";
+ };
+ }
+
+ {
+ name = "stream_iterate___stream_iterate_1.2.0.tgz";
+ path = fetchurl {
+ name = "stream_iterate___stream_iterate_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/stream-iterate/-/stream-iterate-1.2.0.tgz";
+ sha1 = "2bd7c77296c1702a46488b8ad41f79865eecd4e1";
+ };
+ }
+
+ {
+ name = "stream_shift___stream_shift_1.0.0.tgz";
+ path = fetchurl {
+ name = "stream_shift___stream_shift_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz";
+ sha1 = "d5c752825e5367e786f78e18e445ea223a155952";
+ };
+ }
+
+ {
+ name = "stream_splicer___stream_splicer_1.3.2.tgz";
+ path = fetchurl {
+ name = "stream_splicer___stream_splicer_1.3.2.tgz";
+ url = "https://registry.yarnpkg.com/stream-splicer/-/stream-splicer-1.3.2.tgz";
+ sha1 = "3c0441be15b9bf4e226275e6dc83964745546661";
+ };
+ }
+
+ {
+ name = "stream_to_blob_url___stream_to_blob_url_2.1.1.tgz";
+ path = fetchurl {
+ name = "stream_to_blob_url___stream_to_blob_url_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/stream-to-blob-url/-/stream-to-blob-url-2.1.1.tgz";
+ sha1 = "e1ac97f86ca8e9f512329a48e7830ce9a50beef2";
+ };
+ }
+
+ {
+ name = "stream_to_blob___stream_to_blob_1.0.1.tgz";
+ path = fetchurl {
+ name = "stream_to_blob___stream_to_blob_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/stream-to-blob/-/stream-to-blob-1.0.1.tgz";
+ sha1 = "2dc1e09b71677a234d00445f8eb7ff70c4fe9948";
+ };
+ }
+
+ {
+ name = "stream_with_known_length_to_buffer___stream_with_known_length_to_buffer_1.0.2.tgz";
+ path = fetchurl {
+ name = "stream_with_known_length_to_buffer___stream_with_known_length_to_buffer_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/stream-with-known-length-to-buffer/-/stream-with-known-length-to-buffer-1.0.2.tgz";
+ sha1 = "b8ea5a92086a1ed5d27fc4c529636682118c945b";
+ };
+ }
+
+ {
+ name = "streamify___streamify_0.2.9.tgz";
+ path = fetchurl {
+ name = "streamify___streamify_0.2.9.tgz";
+ url = "https://registry.yarnpkg.com/streamify/-/streamify-0.2.9.tgz";
+ sha1 = "8938b14db491e2b6be4f8d99cc4133c9f0384f0b";
+ };
+ }
+
+ {
+ name = "streamsearch___streamsearch_0.1.2.tgz";
+ path = fetchurl {
+ name = "streamsearch___streamsearch_0.1.2.tgz";
+ url = "https://registry.yarnpkg.com/streamsearch/-/streamsearch-0.1.2.tgz";
+ sha1 = "808b9d0e56fc273d809ba57338e929919a1a9f1a";
+ };
+ }
+
+ {
+ name = "strict_uri_encode___strict_uri_encode_2.0.0.tgz";
+ path = fetchurl {
+ name = "strict_uri_encode___strict_uri_encode_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz";
+ sha1 = "b9c7330c7042862f6b142dc274bbcc5866ce3546";
+ };
+ }
+
+ {
+ name = "string_argv___string_argv_0.0.2.tgz";
+ path = fetchurl {
+ name = "string_argv___string_argv_0.0.2.tgz";
+ url = "https://registry.yarnpkg.com/string-argv/-/string-argv-0.0.2.tgz";
+ sha1 = "dac30408690c21f3c3630a3ff3a05877bdcbd736";
+ };
+ }
+
+ {
+ name = "string_width___string_width_1.0.2.tgz";
+ path = fetchurl {
+ name = "string_width___string_width_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz";
+ sha1 = "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3";
+ };
+ }
+
+ {
+ name = "string_width___string_width_2.1.1.tgz";
+ path = fetchurl {
+ name = "string_width___string_width_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz";
+ sha1 = "ab93f27a8dc13d28cac815c462143a6d9012ae9e";
+ };
+ }
+
+ {
+ name = "string2compact___string2compact_1.3.0.tgz";
+ path = fetchurl {
+ name = "string2compact___string2compact_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/string2compact/-/string2compact-1.3.0.tgz";
+ sha1 = "22d946127b082d1203c51316af60117a337423c3";
+ };
+ }
+
+ {
+ name = "string_decoder___string_decoder_1.2.0.tgz";
+ path = fetchurl {
+ name = "string_decoder___string_decoder_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.2.0.tgz";
+ sha1 = "fe86e738b19544afe70469243b2a1ee9240eae8d";
+ };
+ }
+
+ {
+ name = "string_decoder___string_decoder_0.10.31.tgz";
+ path = fetchurl {
+ name = "string_decoder___string_decoder_0.10.31.tgz";
+ url = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz";
+ sha1 = "62e203bc41766c6c28c9fc84301dab1c5310fa94";
+ };
+ }
+
+ {
+ name = "string_decoder___string_decoder_1.1.1.tgz";
+ path = fetchurl {
+ name = "string_decoder___string_decoder_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz";
+ sha1 = "9cf1611ba62685d7030ae9e4ba34149c3af03fc8";
+ };
+ }
+
+ {
+ name = "stringify_object___stringify_object_3.3.0.tgz";
+ path = fetchurl {
+ name = "stringify_object___stringify_object_3.3.0.tgz";
+ url = "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz";
+ sha1 = "703065aefca19300d3ce88af4f5b3956d7556629";
+ };
+ }
+
+ {
+ name = "stringify_package___stringify_package_1.0.0.tgz";
+ path = fetchurl {
+ name = "stringify_package___stringify_package_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/stringify-package/-/stringify-package-1.0.0.tgz";
+ sha1 = "e02828089333d7d45cd8c287c30aa9a13375081b";
+ };
+ }
+
+ {
+ name = "strip_ansi___strip_ansi_3.0.1.tgz";
+ path = fetchurl {
+ name = "strip_ansi___strip_ansi_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz";
+ sha1 = "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf";
+ };
+ }
+
+ {
+ name = "strip_ansi___strip_ansi_4.0.0.tgz";
+ path = fetchurl {
+ name = "strip_ansi___strip_ansi_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz";
+ sha1 = "a8479022eb1ac368a871389b635262c505ee368f";
+ };
+ }
+
+ {
+ name = "strip_eof___strip_eof_1.0.0.tgz";
+ path = fetchurl {
+ name = "strip_eof___strip_eof_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz";
+ sha1 = "bb43ff5598a6eb05d89b59fcd129c983313606bf";
+ };
+ }
+
+ {
+ name = "strip_json_comments___strip_json_comments_1.0.4.tgz";
+ path = fetchurl {
+ name = "strip_json_comments___strip_json_comments_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-1.0.4.tgz";
+ sha1 = "1e15fbcac97d3ee99bf2d73b4c656b082bbafb91";
+ };
+ }
+
+ {
+ name = "strip_json_comments___strip_json_comments_2.0.1.tgz";
+ path = fetchurl {
+ name = "strip_json_comments___strip_json_comments_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz";
+ sha1 = "3c531942e908c2697c0ec344858c286c7ca0a60a";
+ };
+ }
+
+ {
+ name = "summon_install___summon_install_0.4.6.tgz";
+ path = fetchurl {
+ name = "summon_install___summon_install_0.4.6.tgz";
+ url = "https://registry.yarnpkg.com/summon-install/-/summon-install-0.4.6.tgz";
+ sha1 = "25673446e8b92f8bc0afabc464aa7b73fe946bd5";
+ };
+ }
+
+ {
+ name = "superagent___superagent_3.8.3.tgz";
+ path = fetchurl {
+ name = "superagent___superagent_3.8.3.tgz";
+ url = "https://registry.yarnpkg.com/superagent/-/superagent-3.8.3.tgz";
+ sha1 = "460ea0dbdb7d5b11bc4f78deba565f86a178e128";
+ };
+ }
+
+ {
+ name = "supertest___supertest_3.3.0.tgz";
+ path = fetchurl {
+ name = "supertest___supertest_3.3.0.tgz";
+ url = "https://registry.yarnpkg.com/supertest/-/supertest-3.3.0.tgz";
+ sha1 = "79b27bd7d34392974ab33a31fa51a3e23385987e";
+ };
+ }
+
+ {
+ name = "supports_color___supports_color_5.4.0.tgz";
+ path = fetchurl {
+ name = "supports_color___supports_color_5.4.0.tgz";
+ url = "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz";
+ sha1 = "1c6b337402c2137605efe19f10fec390f6faab54";
+ };
+ }
+
+ {
+ name = "supports_color___supports_color_2.0.0.tgz";
+ path = fetchurl {
+ name = "supports_color___supports_color_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz";
+ sha1 = "535d045ce6b6363fa40117084629995e9df324c7";
+ };
+ }
+
+ {
+ name = "supports_color___supports_color_4.5.0.tgz";
+ path = fetchurl {
+ name = "supports_color___supports_color_4.5.0.tgz";
+ url = "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz";
+ sha1 = "be7a0de484dec5c5cddf8b3d59125044912f635b";
+ };
+ }
+
+ {
+ name = "supports_color___supports_color_5.5.0.tgz";
+ path = fetchurl {
+ name = "supports_color___supports_color_5.5.0.tgz";
+ url = "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz";
+ sha1 = "e2e69a44ac8772f78a1ec0b35b689df6530efc8f";
+ };
+ }
+
+ {
+ name = "swagger_cli___swagger_cli_2.2.0.tgz";
+ path = fetchurl {
+ name = "swagger_cli___swagger_cli_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/swagger-cli/-/swagger-cli-2.2.0.tgz";
+ sha1 = "837b01e1fd6cc6aa324f8884ec1151a3c17ca007";
+ };
+ }
+
+ {
+ name = "swagger_methods___swagger_methods_1.0.6.tgz";
+ path = fetchurl {
+ name = "swagger_methods___swagger_methods_1.0.6.tgz";
+ url = "https://registry.yarnpkg.com/swagger-methods/-/swagger-methods-1.0.6.tgz";
+ sha1 = "b91c2e4f7f9e5e2c4cd3b285b8be06ca76b3cc6a";
+ };
+ }
+
+ {
+ name = "swagger_parser___swagger_parser_6.0.2.tgz";
+ path = fetchurl {
+ name = "swagger_parser___swagger_parser_6.0.2.tgz";
+ url = "https://registry.yarnpkg.com/swagger-parser/-/swagger-parser-6.0.2.tgz";
+ sha1 = "ef3fe95ae17eab2ba04d2646007df106c7b542b9";
+ };
+ }
+
+ {
+ name = "swagger_schema_official___swagger_schema_official_2.0.0_bab6bed.tgz";
+ path = fetchurl {
+ name = "swagger_schema_official___swagger_schema_official_2.0.0_bab6bed.tgz";
+ url = "https://registry.yarnpkg.com/swagger-schema-official/-/swagger-schema-official-2.0.0-bab6bed.tgz";
+ sha1 = "70070468d6d2977ca5237b2e519ca7d06a2ea3fd";
+ };
+ }
+
+ {
+ name = "symbol_observable___symbol_observable_1.2.0.tgz";
+ path = fetchurl {
+ name = "symbol_observable___symbol_observable_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz";
+ sha1 = "c22688aed4eab3cdc2dfeacbb561660560a00804";
+ };
+ }
+
+ {
+ name = "table___table_3.8.3.tgz";
+ path = fetchurl {
+ name = "table___table_3.8.3.tgz";
+ url = "https://registry.yarnpkg.com/table/-/table-3.8.3.tgz";
+ sha1 = "2bbc542f0fda9861a755d3947fefd8b3f513855f";
+ };
+ }
+
+ {
+ name = "tar_fs___tar_fs_1.16.3.tgz";
+ path = fetchurl {
+ name = "tar_fs___tar_fs_1.16.3.tgz";
+ url = "https://registry.yarnpkg.com/tar-fs/-/tar-fs-1.16.3.tgz";
+ sha1 = "966a628841da2c4010406a82167cbd5e0c72d509";
+ };
+ }
+
+ {
+ name = "tar_stream___tar_stream_1.6.2.tgz";
+ path = fetchurl {
+ name = "tar_stream___tar_stream_1.6.2.tgz";
+ url = "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.2.tgz";
+ sha1 = "8ea55dab37972253d9a9af90fdcd559ae435c555";
+ };
+ }
+
+ {
+ name = "tar___tar_2.2.1.tgz";
+ path = fetchurl {
+ name = "tar___tar_2.2.1.tgz";
+ url = "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz";
+ sha1 = "8e4d2a256c0e2185c6b18ad694aec968b83cb1d1";
+ };
+ }
+
+ {
+ name = "tar___tar_4.4.8.tgz";
+ path = fetchurl {
+ name = "tar___tar_4.4.8.tgz";
+ url = "https://registry.yarnpkg.com/tar/-/tar-4.4.8.tgz";
+ sha1 = "b19eec3fde2a96e64666df9fdb40c5ca1bc3747d";
+ };
+ }
+
+ {
+ name = "term_size___term_size_1.2.0.tgz";
+ path = fetchurl {
+ name = "term_size___term_size_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz";
+ sha1 = "458b83887f288fc56d6fffbfad262e26638efa69";
+ };
+ }
+
+ {
+ name = "terraformer_wkt_parser___terraformer_wkt_parser_1.2.0.tgz";
+ path = fetchurl {
+ name = "terraformer_wkt_parser___terraformer_wkt_parser_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/terraformer-wkt-parser/-/terraformer-wkt-parser-1.2.0.tgz";
+ sha1 = "c9d6ac3dff25f4c0bd344e961f42694961834c34";
+ };
+ }
+
+ {
+ name = "terraformer___terraformer_1.0.9.tgz";
+ path = fetchurl {
+ name = "terraformer___terraformer_1.0.9.tgz";
+ url = "https://registry.yarnpkg.com/terraformer/-/terraformer-1.0.9.tgz";
+ sha1 = "77851fef4a49c90b345dc53cf26809fdf29dcda6";
+ };
+ }
+
+ {
+ name = "text_hex___text_hex_1.0.0.tgz";
+ path = fetchurl {
+ name = "text_hex___text_hex_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz";
+ sha1 = "69dc9c1b17446ee79a92bf5b884bb4b9127506f5";
+ };
+ }
+
+ {
+ name = "text_table___text_table_0.2.0.tgz";
+ path = fetchurl {
+ name = "text_table___text_table_0.2.0.tgz";
+ url = "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz";
+ sha1 = "7f5ee823ae805207c00af2df4a84ec3fcfa570b4";
+ };
+ }
+
+ {
+ name = "thirty_two___thirty_two_1.0.2.tgz";
+ path = fetchurl {
+ name = "thirty_two___thirty_two_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/thirty-two/-/thirty-two-1.0.2.tgz";
+ sha1 = "4ca2fffc02a51290d2744b9e3f557693ca6b627a";
+ };
+ }
+
+ {
+ name = "through2___through2_0.6.5.tgz";
+ path = fetchurl {
+ name = "through2___through2_0.6.5.tgz";
+ url = "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz";
+ sha1 = "41ab9c67b29d57209071410e1d7a7a968cd3ad48";
+ };
+ }
+
+ {
+ name = "through2___through2_1.1.1.tgz";
+ path = fetchurl {
+ name = "through2___through2_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/through2/-/through2-1.1.1.tgz";
+ sha1 = "0847cbc4449f3405574dbdccd9bb841b83ac3545";
+ };
+ }
+
+ {
+ name = "through2___through2_2.0.5.tgz";
+ path = fetchurl {
+ name = "through2___through2_2.0.5.tgz";
+ url = "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz";
+ sha1 = "01c1e39eb31d07cb7d03a96a70823260b23132cd";
+ };
+ }
+
+ {
+ name = "through___through_2.3.8.tgz";
+ path = fetchurl {
+ name = "through___through_2.3.8.tgz";
+ url = "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz";
+ sha1 = "0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5";
+ };
+ }
+
+ {
+ name = "thunky___thunky_1.0.3.tgz";
+ path = fetchurl {
+ name = "thunky___thunky_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/thunky/-/thunky-1.0.3.tgz";
+ sha1 = "f5df732453407b09191dae73e2a8cc73f381a826";
+ };
+ }
+
+ {
+ name = "timed_out___timed_out_4.0.1.tgz";
+ path = fetchurl {
+ name = "timed_out___timed_out_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz";
+ sha1 = "f32eacac5a175bea25d7fab565ab3ed8741ef56f";
+ };
+ }
+
+ {
+ name = "timers_ext___timers_ext_0.1.7.tgz";
+ path = fetchurl {
+ name = "timers_ext___timers_ext_0.1.7.tgz";
+ url = "https://registry.yarnpkg.com/timers-ext/-/timers-ext-0.1.7.tgz";
+ sha1 = "6f57ad8578e07a3fb9f91d9387d65647555e25c6";
+ };
+ }
+
+ {
+ name = "tiny_relative_date___tiny_relative_date_1.3.0.tgz";
+ path = fetchurl {
+ name = "tiny_relative_date___tiny_relative_date_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/tiny-relative-date/-/tiny-relative-date-1.3.0.tgz";
+ sha1 = "fa08aad501ed730f31cc043181d995c39a935e07";
+ };
+ }
+
+ {
+ name = "tmp___tmp_0.0.33.tgz";
+ path = fetchurl {
+ name = "tmp___tmp_0.0.33.tgz";
+ url = "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz";
+ sha1 = "6d34335889768d21b2bcda0aa277ced3b1bfadf9";
+ };
+ }
+
+ {
+ name = "to_array___to_array_0.1.4.tgz";
+ path = fetchurl {
+ name = "to_array___to_array_0.1.4.tgz";
+ url = "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz";
+ sha1 = "17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890";
+ };
+ }
+
+ {
+ name = "to_arraybuffer___to_arraybuffer_1.0.1.tgz";
+ path = fetchurl {
+ name = "to_arraybuffer___to_arraybuffer_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz";
+ sha1 = "7d229b1fcc637e466ca081180836a7aabff83f43";
+ };
+ }
+
+ {
+ name = "to_buffer___to_buffer_1.1.1.tgz";
+ path = fetchurl {
+ name = "to_buffer___to_buffer_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.1.1.tgz";
+ sha1 = "493bd48f62d7c43fcded313a03dcadb2e1213a80";
+ };
+ }
+
+ {
+ name = "to_object_path___to_object_path_0.3.0.tgz";
+ path = fetchurl {
+ name = "to_object_path___to_object_path_0.3.0.tgz";
+ url = "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz";
+ sha1 = "297588b7b0e7e0ac08e04e672f85c1f4999e17af";
+ };
+ }
+
+ {
+ name = "to_regex_range___to_regex_range_2.1.1.tgz";
+ path = fetchurl {
+ name = "to_regex_range___to_regex_range_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz";
+ sha1 = "7c80c17b9dfebe599e27367e0d4dd5590141db38";
+ };
+ }
+
+ {
+ name = "to_regex___to_regex_3.0.2.tgz";
+ path = fetchurl {
+ name = "to_regex___to_regex_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz";
+ sha1 = "13cfdd9b336552f30b51f33a8ae1b42a7a7599ce";
+ };
+ }
+
+ {
+ name = "to_utf_8___to_utf_8_1.3.0.tgz";
+ path = fetchurl {
+ name = "to_utf_8___to_utf_8_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/to-utf-8/-/to-utf-8-1.3.0.tgz";
+ sha1 = "b2af7be9e003f4c3817cc116d3baed2a054993c9";
+ };
+ }
+
+ {
+ name = "toposort_class___toposort_class_1.0.1.tgz";
+ path = fetchurl {
+ name = "toposort_class___toposort_class_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/toposort-class/-/toposort-class-1.0.1.tgz";
+ sha1 = "7ffd1f78c8be28c3ba45cd4e1a3f5ee193bd9988";
+ };
+ }
+
+ {
+ name = "torrent_discovery___torrent_discovery_9.1.1.tgz";
+ path = fetchurl {
+ name = "torrent_discovery___torrent_discovery_9.1.1.tgz";
+ url = "https://registry.yarnpkg.com/torrent-discovery/-/torrent-discovery-9.1.1.tgz";
+ sha1 = "56704e6747b24fe00dbb75b442d202051f78d37d";
+ };
+ }
+
+ {
+ name = "torrent_piece___torrent_piece_2.0.0.tgz";
+ path = fetchurl {
+ name = "torrent_piece___torrent_piece_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/torrent-piece/-/torrent-piece-2.0.0.tgz";
+ sha1 = "6598ae67d93699e887f178db267ba16d89d7ec9b";
+ };
+ }
+
+ {
+ name = "touch___touch_3.1.0.tgz";
+ path = fetchurl {
+ name = "touch___touch_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz";
+ sha1 = "fe365f5f75ec9ed4e56825e0bb76d24ab74af83b";
+ };
+ }
+
+ {
+ name = "tough_cookie___tough_cookie_2.4.3.tgz";
+ path = fetchurl {
+ name = "tough_cookie___tough_cookie_2.4.3.tgz";
+ url = "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz";
+ sha1 = "53f36da3f47783b0925afa06ff9f3b165280f781";
+ };
+ }
+
+ {
+ name = "traverse___traverse_0.6.6.tgz";
+ path = fetchurl {
+ name = "traverse___traverse_0.6.6.tgz";
+ url = "https://registry.yarnpkg.com/traverse/-/traverse-0.6.6.tgz";
+ sha1 = "cbdf560fd7b9af632502fed40f918c157ea97137";
+ };
+ }
+
+ {
+ name = "tree_kill___tree_kill_1.2.1.tgz";
+ path = fetchurl {
+ name = "tree_kill___tree_kill_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.1.tgz";
+ sha1 = "5398f374e2f292b9dcc7b2e71e30a5c3bb6c743a";
+ };
+ }
+
+ {
+ name = "triple_beam___triple_beam_1.3.0.tgz";
+ path = fetchurl {
+ name = "triple_beam___triple_beam_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.3.0.tgz";
+ sha1 = "a595214c7298db8339eeeee083e4d10bd8cb8dd9";
+ };
+ }
+
+ {
+ name = "ts_node___ts_node_7.0.1.tgz";
+ path = fetchurl {
+ name = "ts_node___ts_node_7.0.1.tgz";
+ url = "https://registry.yarnpkg.com/ts-node/-/ts-node-7.0.1.tgz";
+ sha1 = "9562dc2d1e6d248d24bc55f773e3f614337d9baf";
+ };
+ }
+
+ {
+ name = "tslib___tslib_1.9.0.tgz";
+ path = fetchurl {
+ name = "tslib___tslib_1.9.0.tgz";
+ url = "https://registry.yarnpkg.com/tslib/-/tslib-1.9.0.tgz";
+ sha1 = "e37a86fda8cbbaf23a057f473c9f4dc64e5fc2e8";
+ };
+ }
+
+ {
+ name = "tslib___tslib_1.9.3.tgz";
+ path = fetchurl {
+ name = "tslib___tslib_1.9.3.tgz";
+ url = "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz";
+ sha1 = "d7e4dd79245d85428c4d7e4822a79917954ca286";
+ };
+ }
+
+ {
+ name = "tslint_config_standard___tslint_config_standard_8.0.1.tgz";
+ path = fetchurl {
+ name = "tslint_config_standard___tslint_config_standard_8.0.1.tgz";
+ url = "https://registry.yarnpkg.com/tslint-config-standard/-/tslint-config-standard-8.0.1.tgz";
+ sha1 = "e4dd3128e84b0e34b51990b68715a641f2b417e4";
+ };
+ }
+
+ {
+ name = "tslint_eslint_rules___tslint_eslint_rules_5.4.0.tgz";
+ path = fetchurl {
+ name = "tslint_eslint_rules___tslint_eslint_rules_5.4.0.tgz";
+ url = "https://registry.yarnpkg.com/tslint-eslint-rules/-/tslint-eslint-rules-5.4.0.tgz";
+ sha1 = "e488cc9181bf193fe5cd7bfca213a7695f1737b5";
+ };
+ }
+
+ {
+ name = "tslint___tslint_5.11.0.tgz";
+ path = fetchurl {
+ name = "tslint___tslint_5.11.0.tgz";
+ url = "https://registry.yarnpkg.com/tslint/-/tslint-5.11.0.tgz";
+ sha1 = "98f30c02eae3cde7006201e4c33cb08b48581eed";
+ };
+ }
+
+ {
+ name = "tsutils___tsutils_2.29.0.tgz";
+ path = fetchurl {
+ name = "tsutils___tsutils_2.29.0.tgz";
+ url = "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz";
+ sha1 = "32b488501467acbedd4b85498673a0812aca0b99";
+ };
+ }
+
+ {
+ name = "tsutils___tsutils_3.5.2.tgz";
+ path = fetchurl {
+ name = "tsutils___tsutils_3.5.2.tgz";
+ url = "https://registry.yarnpkg.com/tsutils/-/tsutils-3.5.2.tgz";
+ sha1 = "6fd3c2d5a731e83bb21b070a173ec0faf3a8f6d3";
+ };
+ }
+
+ {
+ name = "tunnel_agent___tunnel_agent_0.6.0.tgz";
+ path = fetchurl {
+ name = "tunnel_agent___tunnel_agent_0.6.0.tgz";
+ url = "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz";
+ sha1 = "27a5dea06b36b04a0a9966774b290868f0fc40fd";
+ };
+ }
+
+ {
+ name = "tv4___tv4_1.2.7.tgz";
+ path = fetchurl {
+ name = "tv4___tv4_1.2.7.tgz";
+ url = "https://registry.yarnpkg.com/tv4/-/tv4-1.2.7.tgz";
+ sha1 = "bd29389afc73ade49ae5f48142b5d544bf68d120";
+ };
+ }
+
+ {
+ name = "tweetnacl___tweetnacl_0.14.5.tgz";
+ path = fetchurl {
+ name = "tweetnacl___tweetnacl_0.14.5.tgz";
+ url = "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz";
+ sha1 = "5ae68177f192d4456269d108afa93ff8743f4f64";
+ };
+ }
+
+ {
+ name = "type_check___type_check_0.3.2.tgz";
+ path = fetchurl {
+ name = "type_check___type_check_0.3.2.tgz";
+ url = "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz";
+ sha1 = "5884cab512cf1d355e3fb784f30804b2b520db72";
+ };
+ }
+
+ {
+ name = "type_detect___type_detect_0.1.1.tgz";
+ path = fetchurl {
+ name = "type_detect___type_detect_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/type-detect/-/type-detect-0.1.1.tgz";
+ sha1 = "0ba5ec2a885640e470ea4e8505971900dac58822";
+ };
+ }
+
+ {
+ name = "type_detect___type_detect_4.0.8.tgz";
+ path = fetchurl {
+ name = "type_detect___type_detect_4.0.8.tgz";
+ url = "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz";
+ sha1 = "7646fb5f18871cfbb7749e69bd39a6388eb7450c";
+ };
+ }
+
+ {
+ name = "type_is___type_is_1.6.15.tgz";
+ path = fetchurl {
+ name = "type_is___type_is_1.6.15.tgz";
+ url = "https://registry.yarnpkg.com/type-is/-/type-is-1.6.15.tgz";
+ sha1 = "cab10fb4909e441c82842eafe1ad646c81804410";
+ };
+ }
+
+ {
+ name = "type_is___type_is_1.6.16.tgz";
+ path = fetchurl {
+ name = "type_is___type_is_1.6.16.tgz";
+ url = "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz";
+ sha1 = "f89ce341541c672b25ee7ae3c73dee3b2be50194";
+ };
+ }
+
+ {
+ name = "typedarray_to_buffer___typedarray_to_buffer_3.1.5.tgz";
+ path = fetchurl {
+ name = "typedarray_to_buffer___typedarray_to_buffer_3.1.5.tgz";
+ url = "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz";
+ sha1 = "a97ee7a9ff42691b9f783ff1bc5112fe3fca9080";
+ };
+ }
+
+ {
+ name = "typedarray___typedarray_0.0.6.tgz";
+ path = fetchurl {
+ name = "typedarray___typedarray_0.0.6.tgz";
+ url = "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz";
+ sha1 = "867ac74e3864187b1d3d47d996a78ec5c8830777";
+ };
+ }
+
+ {
+ name = "typescript___typescript_3.2.1.tgz";
+ path = fetchurl {
+ name = "typescript___typescript_3.2.1.tgz";
+ url = "https://registry.yarnpkg.com/typescript/-/typescript-3.2.1.tgz";
+ sha1 = "0b7a04b8cf3868188de914d9568bd030f0c56192";
+ };
+ }
+
+ {
+ name = "uid_number___uid_number_0.0.6.tgz";
+ path = fetchurl {
+ name = "uid_number___uid_number_0.0.6.tgz";
+ url = "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz";
+ sha1 = "0ea10e8035e8eb5b8e4449f06da1c730663baa81";
+ };
+ }
+
+ {
+ name = "uint64be___uint64be_2.0.2.tgz";
+ path = fetchurl {
+ name = "uint64be___uint64be_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/uint64be/-/uint64be-2.0.2.tgz";
+ sha1 = "ef4a179752fe8f9ddaa29544ecfc13490031e8e5";
+ };
+ }
+
+ {
+ name = "ultron___ultron_1.0.2.tgz";
+ path = fetchurl {
+ name = "ultron___ultron_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/ultron/-/ultron-1.0.2.tgz";
+ sha1 = "ace116ab557cd197386a4e88f4685378c8b2e4fa";
+ };
+ }
+
+ {
+ name = "umask___umask_1.1.0.tgz";
+ path = fetchurl {
+ name = "umask___umask_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/umask/-/umask-1.1.0.tgz";
+ sha1 = "f29cebf01df517912bb58ff9c4e50fde8e33320d";
+ };
+ }
+
+ {
+ name = "undefsafe___undefsafe_2.0.2.tgz";
+ path = fetchurl {
+ name = "undefsafe___undefsafe_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.2.tgz";
+ sha1 = "225f6b9e0337663e0d8e7cfd686fc2836ccace76";
+ };
+ }
+
+ {
+ name = "underscore_keypath___underscore_keypath_0.0.22.tgz";
+ path = fetchurl {
+ name = "underscore_keypath___underscore_keypath_0.0.22.tgz";
+ url = "https://registry.yarnpkg.com/underscore-keypath/-/underscore-keypath-0.0.22.tgz";
+ sha1 = "48a528392bb6efc424be1caa56da4b5faccf264d";
+ };
+ }
+
+ {
+ name = "underscore___underscore_1.9.1.tgz";
+ path = fetchurl {
+ name = "underscore___underscore_1.9.1.tgz";
+ url = "https://registry.yarnpkg.com/underscore/-/underscore-1.9.1.tgz";
+ sha1 = "06dce34a0e68a7babc29b365b8e74b8925203961";
+ };
+ }
+
+ {
+ name = "union_value___union_value_1.0.0.tgz";
+ path = fetchurl {
+ name = "union_value___union_value_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz";
+ sha1 = "5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4";
+ };
+ }
+
+ {
+ name = "uniq___uniq_1.0.1.tgz";
+ path = fetchurl {
+ name = "uniq___uniq_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz";
+ sha1 = "b31c5ae8254844a3a8281541ce2b04b865a734ff";
+ };
+ }
+
+ {
+ name = "unique_filename___unique_filename_1.1.1.tgz";
+ path = fetchurl {
+ name = "unique_filename___unique_filename_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz";
+ sha1 = "1d69769369ada0583103a1e6ae87681b56573230";
+ };
+ }
+
+ {
+ name = "unique_slug___unique_slug_2.0.1.tgz";
+ path = fetchurl {
+ name = "unique_slug___unique_slug_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.1.tgz";
+ sha1 = "5e9edc6d1ce8fb264db18a507ef9bd8544451ca6";
+ };
+ }
+
+ {
+ name = "unique_string___unique_string_1.0.0.tgz";
+ path = fetchurl {
+ name = "unique_string___unique_string_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz";
+ sha1 = "9e1057cca851abb93398f8b33ae187b99caec11a";
+ };
+ }
+
+ {
+ name = "universalify___universalify_0.1.2.tgz";
+ path = fetchurl {
+ name = "universalify___universalify_0.1.2.tgz";
+ url = "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz";
+ sha1 = "b646f69be3942dabcecc9d6639c80dc105efaa66";
+ };
+ }
+
+ {
+ name = "unordered_array_remove___unordered_array_remove_1.0.2.tgz";
+ path = fetchurl {
+ name = "unordered_array_remove___unordered_array_remove_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/unordered-array-remove/-/unordered-array-remove-1.0.2.tgz";
+ sha1 = "c546e8f88e317a0cf2644c97ecb57dba66d250ef";
+ };
+ }
+
+ {
+ name = "unpipe___unpipe_1.0.0.tgz";
+ path = fetchurl {
+ name = "unpipe___unpipe_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz";
+ sha1 = "b2bf4ee8514aae6165b4817829d21b2ef49904ec";
+ };
+ }
+
+ {
+ name = "unset_value___unset_value_1.0.0.tgz";
+ path = fetchurl {
+ name = "unset_value___unset_value_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz";
+ sha1 = "8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559";
+ };
+ }
+
+ {
+ name = "unzip_response___unzip_response_2.0.1.tgz";
+ path = fetchurl {
+ name = "unzip_response___unzip_response_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz";
+ sha1 = "d2f0f737d16b0615e72a6935ed04214572d56f97";
+ };
+ }
+
+ {
+ name = "upath___upath_1.1.0.tgz";
+ path = fetchurl {
+ name = "upath___upath_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/upath/-/upath-1.1.0.tgz";
+ sha1 = "35256597e46a581db4793d0ce47fa9aebfc9fabd";
+ };
+ }
+
+ {
+ name = "update_notifier___update_notifier_2.5.0.tgz";
+ path = fetchurl {
+ name = "update_notifier___update_notifier_2.5.0.tgz";
+ url = "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.5.0.tgz";
+ sha1 = "d0744593e13f161e406acb1d9408b72cad08aff6";
+ };
+ }
+
+ {
+ name = "uri_js___uri_js_4.2.2.tgz";
+ path = fetchurl {
+ name = "uri_js___uri_js_4.2.2.tgz";
+ url = "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz";
+ sha1 = "94c540e1ff772956e2299507c010aea6c8838eb0";
+ };
+ }
+
+ {
+ name = "urix___urix_0.1.0.tgz";
+ path = fetchurl {
+ name = "urix___urix_0.1.0.tgz";
+ url = "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz";
+ sha1 = "da937f7a62e21fec1fd18d49b35c2935067a6c72";
+ };
+ }
+
+ {
+ name = "url_join___url_join_4.0.0.tgz";
+ path = fetchurl {
+ name = "url_join___url_join_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/url-join/-/url-join-4.0.0.tgz";
+ sha1 = "4d3340e807d3773bda9991f8305acdcc2a665d2a";
+ };
+ }
+
+ {
+ name = "url_parse_lax___url_parse_lax_1.0.0.tgz";
+ path = fetchurl {
+ name = "url_parse_lax___url_parse_lax_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz";
+ sha1 = "7af8f303645e9bd79a272e7a14ac68bc0609da73";
+ };
+ }
+
+ {
+ name = "use___use_3.1.1.tgz";
+ path = fetchurl {
+ name = "use___use_3.1.1.tgz";
+ url = "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz";
+ sha1 = "d50c8cac79a19fbc20f2911f56eb973f4e10070f";
+ };
+ }
+
+ {
+ name = "user_home___user_home_2.0.0.tgz";
+ path = fetchurl {
+ name = "user_home___user_home_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz";
+ sha1 = "9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f";
+ };
+ }
+
+ {
+ name = "useragent___useragent_2.3.0.tgz";
+ path = fetchurl {
+ name = "useragent___useragent_2.3.0.tgz";
+ url = "https://registry.yarnpkg.com/useragent/-/useragent-2.3.0.tgz";
+ sha1 = "217f943ad540cb2128658ab23fc960f6a88c9972";
+ };
+ }
+
+ {
+ name = "ut_metadata___ut_metadata_3.3.0.tgz";
+ path = fetchurl {
+ name = "ut_metadata___ut_metadata_3.3.0.tgz";
+ url = "https://registry.yarnpkg.com/ut_metadata/-/ut_metadata-3.3.0.tgz";
+ sha1 = "a0e0e861ebc39ed96e506601d1463ade3b548a7e";
+ };
+ }
+
+ {
+ name = "ut_pex___ut_pex_1.2.1.tgz";
+ path = fetchurl {
+ name = "ut_pex___ut_pex_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/ut_pex/-/ut_pex-1.2.1.tgz";
+ sha1 = "472ed0ea5e9bbc9148b833339d56d7b17cf3dad0";
+ };
+ }
+
+ {
+ name = "utf_8_validate___utf_8_validate_5.0.1.tgz";
+ path = fetchurl {
+ name = "utf_8_validate___utf_8_validate_5.0.1.tgz";
+ url = "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.1.tgz";
+ sha1 = "cef1f9011ba4b216f4d7c6ddf5189d750599ff8b";
+ };
+ }
+
+ {
+ name = "util_deprecate___util_deprecate_1.0.2.tgz";
+ path = fetchurl {
+ name = "util_deprecate___util_deprecate_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz";
+ sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf";
+ };
+ }
+
+ {
+ name = "util_extend___util_extend_1.0.3.tgz";
+ path = fetchurl {
+ name = "util_extend___util_extend_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/util-extend/-/util-extend-1.0.3.tgz";
+ sha1 = "a7c216d267545169637b3b6edc6ca9119e2ff93f";
+ };
+ }
+
+ {
+ name = "util___util_0.10.4.tgz";
+ path = fetchurl {
+ name = "util___util_0.10.4.tgz";
+ url = "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz";
+ sha1 = "3aa0125bfe668a4672de58857d3ace27ecb76901";
+ };
+ }
+
+ {
+ name = "utile___utile_0.3.0.tgz";
+ path = fetchurl {
+ name = "utile___utile_0.3.0.tgz";
+ url = "https://registry.yarnpkg.com/utile/-/utile-0.3.0.tgz";
+ sha1 = "1352c340eb820e4d8ddba039a4fbfaa32ed4ef3a";
+ };
+ }
+
+ {
+ name = "utils_merge___utils_merge_1.0.0.tgz";
+ path = fetchurl {
+ name = "utils_merge___utils_merge_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.0.tgz";
+ sha1 = "0294fb922bb9375153541c4f7096231f287c8af8";
+ };
+ }
+
+ {
+ name = "utils_merge___utils_merge_1.0.1.tgz";
+ path = fetchurl {
+ name = "utils_merge___utils_merge_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz";
+ sha1 = "9f95710f50a267947b2ccc124741c1028427e713";
+ };
+ }
+
+ {
+ name = "uue___uue_3.1.2.tgz";
+ path = fetchurl {
+ name = "uue___uue_3.1.2.tgz";
+ url = "https://registry.yarnpkg.com/uue/-/uue-3.1.2.tgz";
+ sha1 = "e99368414e87200012eb37de4dbaebaa1c742ad2";
+ };
+ }
+
+ {
+ name = "uuid___uuid_3.3.2.tgz";
+ path = fetchurl {
+ name = "uuid___uuid_3.3.2.tgz";
+ url = "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz";
+ sha1 = "1b4af4955eb3077c501c23872fc6513811587131";
+ };
+ }
+
+ {
+ name = "validate_npm_package_license___validate_npm_package_license_3.0.4.tgz";
+ path = fetchurl {
+ name = "validate_npm_package_license___validate_npm_package_license_3.0.4.tgz";
+ url = "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz";
+ sha1 = "fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a";
+ };
+ }
+
+ {
+ name = "validate_npm_package_name___validate_npm_package_name_3.0.0.tgz";
+ path = fetchurl {
+ name = "validate_npm_package_name___validate_npm_package_name_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz";
+ sha1 = "5fa912d81eb7d0c74afc140de7317f0ca7df437e";
+ };
+ }
+
+ {
+ name = "validator___validator_10.9.0.tgz";
+ path = fetchurl {
+ name = "validator___validator_10.9.0.tgz";
+ url = "https://registry.yarnpkg.com/validator/-/validator-10.9.0.tgz";
+ sha1 = "d10c11673b5061fb7ccf4c1114412411b2bac2a8";
+ };
+ }
+
+ {
+ name = "vary___vary_1.1.2.tgz";
+ path = fetchurl {
+ name = "vary___vary_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz";
+ sha1 = "2299f02c6ded30d4a5961b0b9f74524a18f634fc";
+ };
+ }
+
+ {
+ name = "vary___vary_1.0.1.tgz";
+ path = fetchurl {
+ name = "vary___vary_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/vary/-/vary-1.0.1.tgz";
+ sha1 = "99e4981566a286118dfb2b817357df7993376d10";
+ };
+ }
+
+ {
+ name = "vasync___vasync_1.6.4.tgz";
+ path = fetchurl {
+ name = "vasync___vasync_1.6.4.tgz";
+ url = "https://registry.yarnpkg.com/vasync/-/vasync-1.6.4.tgz";
+ sha1 = "dfe93616ad0e7ae801b332a9d88bfc5cdc8e1d1f";
+ };
+ }
+
+ {
+ name = "verror___verror_1.10.0.tgz";
+ path = fetchurl {
+ name = "verror___verror_1.10.0.tgz";
+ url = "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz";
+ sha1 = "3a105ca17053af55d6e270c1f8288682e18da400";
+ };
+ }
+
+ {
+ name = "verror___verror_1.6.0.tgz";
+ path = fetchurl {
+ name = "verror___verror_1.6.0.tgz";
+ url = "https://registry.yarnpkg.com/verror/-/verror-1.6.0.tgz";
+ sha1 = "7d13b27b1facc2e2da90405eb5ea6e5bdd252ea5";
+ };
+ }
+
+ {
+ name = "videostream___videostream_2.6.0.tgz";
+ path = fetchurl {
+ name = "videostream___videostream_2.6.0.tgz";
+ url = "https://registry.yarnpkg.com/videostream/-/videostream-2.6.0.tgz";
+ sha1 = "7f0b2b84bc457c12cfe599aa2345f5cc06241ab6";
+ };
+ }
+
+ {
+ name = "wcwidth___wcwidth_1.0.1.tgz";
+ path = fetchurl {
+ name = "wcwidth___wcwidth_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz";
+ sha1 = "f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8";
+ };
+ }
+
+ {
+ name = "webfinger.js___webfinger.js_2.7.0.tgz";
+ path = fetchurl {
+ name = "webfinger.js___webfinger.js_2.7.0.tgz";
+ url = "https://registry.yarnpkg.com/webfinger.js/-/webfinger.js-2.7.0.tgz";
+ sha1 = "403354a14a65aeeba64c1408c18a387487cea106";
+ };
+ }
+
+ {
+ name = "webtorrent___webtorrent_0.102.4.tgz";
+ path = fetchurl {
+ name = "webtorrent___webtorrent_0.102.4.tgz";
+ url = "https://registry.yarnpkg.com/webtorrent/-/webtorrent-0.102.4.tgz";
+ sha1 = "0902f5dddb244c4ca8137d5d678546b733adeb2f";
+ };
+ }
+
+ {
+ name = "which_module___which_module_2.0.0.tgz";
+ path = fetchurl {
+ name = "which_module___which_module_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz";
+ sha1 = "d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a";
+ };
+ }
+
+ {
+ name = "which_pm_runs___which_pm_runs_1.0.0.tgz";
+ path = fetchurl {
+ name = "which_pm_runs___which_pm_runs_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.0.0.tgz";
+ sha1 = "670b3afbc552e0b55df6b7780ca74615f23ad1cb";
+ };
+ }
+
+ {
+ name = "which___which_1.3.1.tgz";
+ path = fetchurl {
+ name = "which___which_1.3.1.tgz";
+ url = "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz";
+ sha1 = "a45043d54f5805316da8d62f9f50918d3da70b0a";
+ };
+ }
+
+ {
+ name = "wide_align___wide_align_1.1.3.tgz";
+ path = fetchurl {
+ name = "wide_align___wide_align_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz";
+ sha1 = "ae074e6bdc0c14a431e804e624549c633b000457";
+ };
+ }
+
+ {
+ name = "widest_line___widest_line_2.0.1.tgz";
+ path = fetchurl {
+ name = "widest_line___widest_line_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.1.tgz";
+ sha1 = "7438764730ec7ef4381ce4df82fb98a53142a3fc";
+ };
+ }
+
+ {
+ name = "wildstring___wildstring_1.0.8.tgz";
+ path = fetchurl {
+ name = "wildstring___wildstring_1.0.8.tgz";
+ url = "https://registry.yarnpkg.com/wildstring/-/wildstring-1.0.8.tgz";
+ sha1 = "80b5f85b7f8aa98bc19cc230e60ac7f5e0dd226d";
+ };
+ }
+
+ {
+ name = "winston_transport___winston_transport_4.2.0.tgz";
+ path = fetchurl {
+ name = "winston_transport___winston_transport_4.2.0.tgz";
+ url = "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.2.0.tgz";
+ sha1 = "a20be89edf2ea2ca39ba25f3e50344d73e6520e5";
+ };
+ }
+
+ {
+ name = "winston___winston_2.1.1.tgz";
+ path = fetchurl {
+ name = "winston___winston_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/winston/-/winston-2.1.1.tgz";
+ sha1 = "3c9349d196207fd1bdff9d4bc43ef72510e3a12e";
+ };
+ }
+
+ {
+ name = "winston___winston_3.1.0.tgz";
+ path = fetchurl {
+ name = "winston___winston_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/winston/-/winston-3.1.0.tgz";
+ sha1 = "80724376aef164e024f316100d5b178d78ac5331";
+ };
+ }
+
+ {
+ name = "wkx___wkx_0.4.5.tgz";
+ path = fetchurl {
+ name = "wkx___wkx_0.4.5.tgz";
+ url = "https://registry.yarnpkg.com/wkx/-/wkx-0.4.5.tgz";
+ sha1 = "a85e15a6e69d1bfaec2f3c523be3dfa40ab861d0";
+ };
+ }
+
+ {
+ name = "wordwrap___wordwrap_1.0.0.tgz";
+ path = fetchurl {
+ name = "wordwrap___wordwrap_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz";
+ sha1 = "27584810891456a4171c8d0226441ade90cbcaeb";
+ };
+ }
+
+ {
+ name = "worker_farm___worker_farm_1.6.0.tgz";
+ path = fetchurl {
+ name = "worker_farm___worker_farm_1.6.0.tgz";
+ url = "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.6.0.tgz";
+ sha1 = "aecc405976fab5a95526180846f0dba288f3a4a0";
+ };
+ }
+
+ {
+ name = "wrap_ansi___wrap_ansi_2.1.0.tgz";
+ path = fetchurl {
+ name = "wrap_ansi___wrap_ansi_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz";
+ sha1 = "d8fc3d284dd05794fe84973caecdd1cf824fdd85";
+ };
+ }
+
+ {
+ name = "wrap_ansi___wrap_ansi_3.0.1.tgz";
+ path = fetchurl {
+ name = "wrap_ansi___wrap_ansi_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-3.0.1.tgz";
+ sha1 = "288a04d87eda5c286e060dfe8f135ce8d007f8ba";
+ };
+ }
+
+ {
+ name = "wrappy___wrappy_1.0.2.tgz";
+ path = fetchurl {
+ name = "wrappy___wrappy_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz";
+ sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f";
+ };
+ }
+
+ {
+ name = "write_file_atomic___write_file_atomic_2.3.0.tgz";
+ path = fetchurl {
+ name = "write_file_atomic___write_file_atomic_2.3.0.tgz";
+ url = "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.3.0.tgz";
+ sha1 = "1ff61575c2e2a4e8e510d6fa4e243cce183999ab";
+ };
+ }
+
+ {
+ name = "write___write_0.2.1.tgz";
+ path = fetchurl {
+ name = "write___write_0.2.1.tgz";
+ url = "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz";
+ sha1 = "5fc03828e264cea3fe91455476f7a3c566cb0757";
+ };
+ }
+
+ {
+ name = "ws___ws_1.1.2.tgz";
+ path = fetchurl {
+ name = "ws___ws_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/ws/-/ws-1.1.2.tgz";
+ sha1 = "8a244fa052401e08c9886cf44a85189e1fd4067f";
+ };
+ }
+
+ {
+ name = "ws___ws_6.1.2.tgz";
+ path = fetchurl {
+ name = "ws___ws_6.1.2.tgz";
+ url = "https://registry.yarnpkg.com/ws/-/ws-6.1.2.tgz";
+ sha1 = "3cc7462e98792f0ac679424148903ded3b9c3ad8";
+ };
+ }
+
+ {
+ name = "wtf_8___wtf_8_1.0.0.tgz";
+ path = fetchurl {
+ name = "wtf_8___wtf_8_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/wtf-8/-/wtf-8-1.0.0.tgz";
+ sha1 = "392d8ba2d0f1c34d1ee2d630f15d0efb68e1048a";
+ };
+ }
+
+ {
+ name = "x_xss_protection___x_xss_protection_1.1.0.tgz";
+ path = fetchurl {
+ name = "x_xss_protection___x_xss_protection_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/x-xss-protection/-/x-xss-protection-1.1.0.tgz";
+ sha1 = "4f1898c332deb1e7f2be1280efb3e2c53d69c1a7";
+ };
+ }
+
+ {
+ name = "xdg_basedir___xdg_basedir_3.0.0.tgz";
+ path = fetchurl {
+ name = "xdg_basedir___xdg_basedir_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz";
+ sha1 = "496b2cc109eca8dbacfe2dc72b603c17c5870ad4";
+ };
+ }
+
+ {
+ name = "xhr2___xhr2_0.1.4.tgz";
+ path = fetchurl {
+ name = "xhr2___xhr2_0.1.4.tgz";
+ url = "https://registry.yarnpkg.com/xhr2/-/xhr2-0.1.4.tgz";
+ sha1 = "7f87658847716db5026323812f818cadab387a5f";
+ };
+ }
+
+ {
+ name = "xliff___xliff_4.1.2.tgz";
+ path = fetchurl {
+ name = "xliff___xliff_4.1.2.tgz";
+ url = "https://registry.yarnpkg.com/xliff/-/xliff-4.1.2.tgz";
+ sha1 = "eb6fae21346d82653febd44d478f5748ad79fbd2";
+ };
+ }
+
+ {
+ name = "xml_js___xml_js_1.6.8.tgz";
+ path = fetchurl {
+ name = "xml_js___xml_js_1.6.8.tgz";
+ url = "https://registry.yarnpkg.com/xml-js/-/xml-js-1.6.8.tgz";
+ sha1 = "e06419c54235f18f4c2cdda824cbd65a782330de";
+ };
+ }
+
+ {
+ name = "xml2js___xml2js_0.4.19.tgz";
+ path = fetchurl {
+ name = "xml2js___xml2js_0.4.19.tgz";
+ url = "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.19.tgz";
+ sha1 = "686c20f213209e94abf0d1bcf1efaa291c7827a7";
+ };
+ }
+
+ {
+ name = "xml___xml_1.0.1.tgz";
+ path = fetchurl {
+ name = "xml___xml_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/xml/-/xml-1.0.1.tgz";
+ sha1 = "78ba72020029c5bc87b8a81a3cfcd74b4a2fc1e5";
+ };
+ }
+
+ {
+ name = "xmlbuilder___xmlbuilder_10.1.1.tgz";
+ path = fetchurl {
+ name = "xmlbuilder___xmlbuilder_10.1.1.tgz";
+ url = "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-10.1.1.tgz";
+ sha1 = "8cae6688cc9b38d850b7c8d3c0a4161dcaf475b0";
+ };
+ }
+
+ {
+ name = "xmlbuilder___xmlbuilder_9.0.7.tgz";
+ path = fetchurl {
+ name = "xmlbuilder___xmlbuilder_9.0.7.tgz";
+ url = "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz";
+ sha1 = "132ee63d2ec5565c557e20f4c22df9aca686b10d";
+ };
+ }
+
+ {
+ name = "xmldom___xmldom_0.1.19.tgz";
+ path = fetchurl {
+ name = "xmldom___xmldom_0.1.19.tgz";
+ url = "https://registry.yarnpkg.com/xmldom/-/xmldom-0.1.19.tgz";
+ sha1 = "631fc07776efd84118bf25171b37ed4d075a0abc";
+ };
+ }
+
+ {
+ name = "xmlhttprequest_ssl___xmlhttprequest_ssl_1.5.3.tgz";
+ path = fetchurl {
+ name = "xmlhttprequest_ssl___xmlhttprequest_ssl_1.5.3.tgz";
+ url = "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz";
+ sha1 = "185a888c04eca46c3e4070d99f7b49de3528992d";
+ };
+ }
+
+ {
+ name = "xmlhttprequest_ssl___xmlhttprequest_ssl_1.5.5.tgz";
+ path = fetchurl {
+ name = "xmlhttprequest_ssl___xmlhttprequest_ssl_1.5.5.tgz";
+ url = "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz";
+ sha1 = "c2876b06168aadc40e57d97e81191ac8f4398b3e";
+ };
+ }
+
+ {
+ name = "xtend___xtend_4.0.1.tgz";
+ path = fetchurl {
+ name = "xtend___xtend_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz";
+ sha1 = "a5c6d532be656e23db820efb943a1f04998d63af";
+ };
+ }
+
+ {
+ name = "y18n___y18n_3.2.1.tgz";
+ path = fetchurl {
+ name = "y18n___y18n_3.2.1.tgz";
+ url = "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz";
+ sha1 = "6d15fba884c08679c0d77e88e7759e811e07fa41";
+ };
+ }
+
+ {
+ name = "y18n___y18n_4.0.0.tgz";
+ path = fetchurl {
+ name = "y18n___y18n_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz";
+ sha1 = "95ef94f85ecc81d007c264e190a120f0a3c8566b";
+ };
+ }
+
+ {
+ name = "yallist___yallist_2.1.2.tgz";
+ path = fetchurl {
+ name = "yallist___yallist_2.1.2.tgz";
+ url = "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz";
+ sha1 = "1c11f9218f076089a47dd512f93c6699a6a81d52";
+ };
+ }
+
+ {
+ name = "yallist___yallist_3.0.3.tgz";
+ path = fetchurl {
+ name = "yallist___yallist_3.0.3.tgz";
+ url = "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz";
+ sha1 = "b4b049e314be545e3ce802236d6cd22cd91c3de9";
+ };
+ }
+
+ {
+ name = "yargs_parser___yargs_parser_11.1.1.tgz";
+ path = fetchurl {
+ name = "yargs_parser___yargs_parser_11.1.1.tgz";
+ url = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz";
+ sha1 = "879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4";
+ };
+ }
+
+ {
+ name = "yargs_parser___yargs_parser_8.1.0.tgz";
+ path = fetchurl {
+ name = "yargs_parser___yargs_parser_8.1.0.tgz";
+ url = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-8.1.0.tgz";
+ sha1 = "f1376a33b6629a5d063782944da732631e966950";
+ };
+ }
+
+ {
+ name = "yargs_parser___yargs_parser_9.0.2.tgz";
+ path = fetchurl {
+ name = "yargs_parser___yargs_parser_9.0.2.tgz";
+ url = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-9.0.2.tgz";
+ sha1 = "9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077";
+ };
+ }
+
+ {
+ name = "yargs___yargs_11.1.0.tgz";
+ path = fetchurl {
+ name = "yargs___yargs_11.1.0.tgz";
+ url = "https://registry.yarnpkg.com/yargs/-/yargs-11.1.0.tgz";
+ sha1 = "90b869934ed6e871115ea2ff58b03f4724ed2d77";
+ };
+ }
+
+ {
+ name = "yargs___yargs_12.0.5.tgz";
+ path = fetchurl {
+ name = "yargs___yargs_12.0.5.tgz";
+ url = "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz";
+ sha1 = "05f5997b609647b64f66b81e3b4b10a368e7ad13";
+ };
+ }
+
+ {
+ name = "yeast___yeast_0.1.2.tgz";
+ path = fetchurl {
+ name = "yeast___yeast_0.1.2.tgz";
+ url = "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz";
+ sha1 = "008e06d8094320c372dbc2f8ed76a0ca6c8ac419";
+ };
+ }
+
+ {
+ name = "yn___yn_2.0.0.tgz";
+ path = fetchurl {
+ name = "yn___yn_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/yn/-/yn-2.0.0.tgz";
+ sha1 = "e5adabc8acf408f6385fc76495684c88e6af689a";
+ };
+ }
+
+ {
+ name = "youtube_dl___youtube_dl_1.12.2.tgz";
+ path = fetchurl {
+ name = "youtube_dl___youtube_dl_1.12.2.tgz";
+ url = "https://registry.yarnpkg.com/youtube-dl/-/youtube-dl-1.12.2.tgz";
+ sha1 = "11985268564c92b229f62b43d97374f86a605d1d";
+ };
+ }
+
+ {
+ name = "z_schema___z_schema_3.24.2.tgz";
+ path = fetchurl {
+ name = "z_schema___z_schema_3.24.2.tgz";
+ url = "https://registry.yarnpkg.com/z-schema/-/z-schema-3.24.2.tgz";
+ sha1 = "193560e718812d98fdc190c38871b634b92f2386";
+ };
+ }
+
+ {
+ name = "zero_fill___zero_fill_2.2.3.tgz";
+ path = fetchurl {
+ name = "zero_fill___zero_fill_2.2.3.tgz";
+ url = "https://registry.yarnpkg.com/zero-fill/-/zero-fill-2.2.3.tgz";
+ sha1 = "a3def06ba5e39ae644850bb4ca2ad4112b4855e9";
+ };
+ }
+ ];
+}
--- /dev/null
+--- a/yarn.lock 2019-05-09 11:59:32.199273420 +0200
++++ b/yarn.lock 2019-05-09 12:02:46.270581238 +0200
+@@ -45,11 +45,16 @@
+ dependencies:
+ "@types/node" "*"
+
+-"@types/bluebird@*", "@types/bluebird@3.5.18", "@types/bluebird@3.5.21":
++"@types/bluebird@*", "@types/bluebird@^3.5.18", "@types/bluebird@3.5.21":
+ version "3.5.21"
+ resolved "https://registry.yarnpkg.com/@types/bluebird/-/bluebird-3.5.21.tgz#567615589cc913e84a28ecf9edb031732bdf2634"
+ integrity sha512-6UNEwyw+6SGMC/WMI0ld0PS4st7Qq51qgguFrFizOSpGvZiqe9iswztFSdZvwJBEhLOy2JaxNE6VC7yMAlbfyQ==
+
++"@types/bluebird@3.5.18":
++ version "3.5.18"
++ resolved "https://registry.yarnpkg.com/@types/bluebird/-/bluebird-3.5.18.tgz#6a60435d4663e290f3709898a4f75014f279c4d6"
++ integrity sha512-OTPWHmsyW18BhrnG5x8F7PzeZ2nFxmHGb42bZn79P9hl+GI5cMzyPgQTwNjbem0lJhoru/8vtjAFCUOu3+gE2w==
++
+ "@types/body-parser@*", "@types/body-parser@^1.16.3":
+ version "1.17.0"
+ resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.17.0.tgz#9f5c9d9bd04bb54be32d5eb9fc0d8c974e6cf58c"
+@@ -4334,9 +4339,9 @@
+ resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73"
+ integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=
+
+-"jsonld-signatures@https://github.com/Chocobozzz/jsonld-signatures#rsa2017":
+- version "1.2.2-2"
+- resolved "https://github.com/Chocobozzz/jsonld-signatures#77660963e722eb4541d2d255f9d9d4216329665f"
++jsonld-signatures@^1.2.2:
++ version "1.2.2"
++ resolved "https://github.com/Chocobozzz/jsonld-signatures/archive/77660963e722eb4541d2d255f9d9d4216329665f.tar.gz"
+ dependencies:
+ bitcore-message "github:CoMakery/bitcore-message#dist"
+ jsonld "^0.5.12"
+@@ -7331,7 +7331,7 @@
+ resolved "https://registry.yarnpkg.com/sequelize-typescript/-/sequelize-typescript-0.6.6.tgz#926037b542dae9f4eff20609d095cc5e3a3640f3"
+ integrity sha512-WGJTaNuHyYwUM8itxZvMVLeNEb7xSjisbVN1Q5rxLaIf2w67Xaf1GX6Jb+9840bjcNPvMsKgC2aR88zmw7UlcQ==
+ dependencies:
+- "@types/bluebird" "3.5.18"
++ "@types/bluebird" "^3.5.18"
+ "@types/node" "6.0.41"
+ "@types/sequelize" "4.27.24"
+ es6-shim "0.35.3"
+--- a/package.json 2019-05-09 13:26:34.784870603 +0200
++++ b/package.json 2019-05-09 13:26:52.941348635 +0200
+@@ -124,7 +124,7 @@
+ "iso-639-3": "^1.0.1",
+ "js-yaml": "^3.5.4",
+ "jsonld": "^1.0.1",
+- "jsonld-signatures": "https://github.com/Chocobozzz/jsonld-signatures#rsa2017",
++ "jsonld-signatures": "^1.2.2",
+ "lodash": "^4.17.10",
+ "magnet-uri": "^5.1.4",
+ "memoizee": "^0.4.14",
--- /dev/null
+--- a/yarn.lock 2019-05-09 11:59:32.199273420 +0200
++++ b/yarn.lock 2019-05-09 12:02:46.270581238 +0200
+@@ -45,11 +45,16 @@
+ dependencies:
+ "@types/node" "*"
+
+-"@types/bluebird@*", "@types/bluebird@3.5.18", "@types/bluebird@3.5.21":
++"@types/bluebird@*", "@types/bluebird@^3.5.18", "@types/bluebird@3.5.21":
+ version "3.5.21"
+ resolved "https://registry.yarnpkg.com/@types/bluebird/-/bluebird-3.5.21.tgz#567615589cc913e84a28ecf9edb031732bdf2634"
+ integrity sha512-6UNEwyw+6SGMC/WMI0ld0PS4st7Qq51qgguFrFizOSpGvZiqe9iswztFSdZvwJBEhLOy2JaxNE6VC7yMAlbfyQ==
+
++"@types/bluebird@3.5.18":
++ version "3.5.18"
++ resolved "https://registry.yarnpkg.com/@types/bluebird/-/bluebird-3.5.18.tgz#6a60435d4663e290f3709898a4f75014f279c4d6"
++ integrity sha512-OTPWHmsyW18BhrnG5x8F7PzeZ2nFxmHGb42bZn79P9hl+GI5cMzyPgQTwNjbem0lJhoru/8vtjAFCUOu3+gE2w==
++
+ "@types/body-parser@*", "@types/body-parser@^1.16.3":
+ version "1.17.0"
+ resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.17.0.tgz#9f5c9d9bd04bb54be32d5eb9fc0d8c974e6cf58c"
+@@ -4384,9 +4389,9 @@
+ resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73"
+ integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=
+
+-"jsonld-signatures@https://github.com/Chocobozzz/jsonld-signatures#rsa2017":
+- version "1.2.2-2"
+- resolved "https://github.com/Chocobozzz/jsonld-signatures#77660963e722eb4541d2d255f9d9d4216329665f"
++jsonld-signatures@^1.2.2:
++ version "1.2.2"
++ resolved "https://github.com/Chocobozzz/jsonld-signatures/archive/77660963e722eb4541d2d255f9d9d4216329665f.tar.gz"
+ dependencies:
+ bitcore-message "github:CoMakery/bitcore-message#dist"
+ jsonld "^0.5.12"
+@@ -7441,7 +7441,7 @@
+ resolved "https://registry.yarnpkg.com/sequelize-typescript/-/sequelize-typescript-0.6.6.tgz#926037b542dae9f4eff20609d095cc5e3a3640f3"
+ integrity sha512-WGJTaNuHyYwUM8itxZvMVLeNEb7xSjisbVN1Q5rxLaIf2w67Xaf1GX6Jb+9840bjcNPvMsKgC2aR88zmw7UlcQ==
+ dependencies:
+- "@types/bluebird" "3.5.18"
++ "@types/bluebird" "^3.5.18"
+ "@types/node" "6.0.41"
+ "@types/sequelize" "4.27.24"
+ es6-shim "0.35.3"
+--- a/package.json 2019-05-09 13:26:34.784870603 +0200
++++ b/package.json 2019-05-09 13:26:52.941348635 +0200
+@@ -124,7 +124,7 @@
+ "iso-639-3": "^1.0.1",
+ "js-yaml": "^3.5.4",
+ "jsonld": "^1.0.1",
+- "jsonld-signatures": "https://github.com/Chocobozzz/jsonld-signatures#rsa2017",
++ "jsonld-signatures": "^1.2.2",
+ "ldapjs": "^1.0.2",
+ "lodash": "^4.17.10",
+ "magnet-uri": "^5.1.4",
--- /dev/null
+{ config ? "/etc/phpldapadmin/config.php", fetchurl, stdenv, optipng }:
+stdenv.mkDerivation rec {
+ version = "1.2.3";
+ name = "phpldapadmin-${version}";
+ src = fetchurl {
+ url = "https://downloads.sourceforge.net/project/phpldapadmin/phpldapadmin-php5/${version}/${name}.tgz";
+ sha256 = "0n7dhp2a7n1krmnik3pb969jynsmhghmxviivnckifkprv1zijmf";
+ };
+ patches = [
+ ./ldap-php5_5.patch
+ ./ldap-disable-mcrypt.patch
+ ./ldap-php7_2.patch
+ ./ldap-sort-in-templates.patch
+ ./ldap-align-button.patch
+ ];
+ buildInputs = [ optipng ];
+ buildPhase = ''
+ find -name '*.png' -exec optipng -quiet -force -fix {} \;
+ '';
+ installPhase = ''
+ cp -a . $out
+ ln -sf ${config} $out/config/config.php
+ '';
+}
--- /dev/null
+--- a/htdocs/update_confirm.php 2012-10-01 08:54:14.000000000 +0200
++++ b/htdocs/update_confirm.php 2018-06-06 15:47:44.122398888 +0200
+@@ -187,7 +187,7 @@
+
+ echo '</table>';
+
+- echo '<div style="text-align: center;">';
++ echo '<div style="text-align: left;">';
+ echo '<br />';
+ // @todo cant use AJAX here, it affects file uploads.
+ printf('<input type="submit" value="%s" />',
--- /dev/null
+diff -wbBur phpldapadmin-1.2.3/lib/functions.php phpldapadmin-1.2.3.my/lib/functions.php
+--- phpldapadmin-1.2.3/lib/functions.php 2012-10-01 10:54:14.000000000 +0400
++++ phpldapadmin-1.2.3.my/lib/functions.php 2017-02-02 20:02:14.424245233 +0300
+@@ -745,6 +745,7 @@
+ if (! trim($secret))
+ return $data;
+
++/*
+ if (function_exists('mcrypt_module_open') && ! empty($data)) {
+ $td = mcrypt_module_open(MCRYPT_BLOWFISH,'',MCRYPT_MODE_ECB,'');
+ $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td),MCRYPT_DEV_URANDOM);
+@@ -754,7 +755,7 @@
+
+ return $encrypted_data;
+ }
+-
++*/
+ if (file_exists(LIBDIR.'blowfish.php'))
+ require_once LIBDIR.'blowfish.php';
+ else
+@@ -801,6 +802,7 @@
+ if (! trim($secret))
+ return $encdata;
+
++/*
+ if (function_exists('mcrypt_module_open') && ! empty($encdata)) {
+ $td = mcrypt_module_open(MCRYPT_BLOWFISH,'',MCRYPT_MODE_ECB,'');
+ $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td),MCRYPT_DEV_URANDOM);
+@@ -810,6 +812,7 @@
+
+ return $decrypted_data;
+ }
++*/
+
+ if (file_exists(LIBDIR.'blowfish.php'))
+ require_once LIBDIR.'blowfish.php';
--- /dev/null
+diff -Nrbu phpldapadmin-1.2.3/lib/PageRender.php phpldapadmin-1.2.3-OK/lib/PageRender.php
+--- phpldapadmin-1.2.3/lib/PageRender.php 2012-10-01 10:54:14.000000000 +0400
++++ phpldapadmin-1.2.3-OK/lib/PageRender.php 2013-11-12 03:44:40.518144839 +0400
+@@ -287,7 +287,7 @@
+ break;
+
+ default:
+- $vals[$i] = password_hash($passwordvalue,$enc);
++ $vals[$i] = pla_password_hash($passwordvalue,$enc);
+ }
+
+ $vals = array_unique($vals);
+diff -Nrbu phpldapadmin-1.2.3/lib/ds_ldap.php phpldapadmin-1.2.3-OK/lib/ds_ldap.php
+--- phpldapadmin-1.2.3/lib/ds_ldap.php 2012-10-01 10:54:14.000000000 +0400
++++ phpldapadmin-1.2.3-OK/lib/ds_ldap.php 2013-11-12 03:40:56.638343739 +0400
+@@ -1117,12 +1117,14 @@
+ if (is_array($dn)) {
+ $a = array();
+ foreach ($dn as $key => $rdn)
+- $a[$key] = preg_replace('/\\\([0-9A-Fa-f]{2})/e',"''.chr(hexdec('\\1')).''",$rdn);
++ $a[$key] = preg_replace_callback('/\\\([0-9A-Fa-f]{2})/',
++ function ($matches) { return chr(hexdec($matches[1])); }, $rdn);
+
+ return $a;
+
+ } else
+- return preg_replace('/\\\([0-9A-Fa-f]{2})/e',"''.chr(hexdec('\\1')).''",$dn);
++ return preg_replace_callback('/\\\([0-9A-Fa-f]{2})/',
++ function ($matches) { return chr(hexdec($matches[1])); }, $dn);
+ }
+
+ public function getRootDSE($method=null) {
+diff -Nrbu phpldapadmin-1.2.3/lib/functions.php phpldapadmin-1.2.3-OK/lib/functions.php
+--- phpldapadmin-1.2.3/lib/functions.php 2012-10-01 10:54:14.000000000 +0400
++++ phpldapadmin-1.2.3-OK/lib/functions.php 2013-11-12 03:44:17.298065264 +0400
+@@ -2127,7 +2127,7 @@
+ * crypt, ext_des, md5crypt, blowfish, md5, sha, smd5, ssha, sha512, or clear.
+ * @return string The hashed password.
+ */
+-function password_hash($password_clear,$enc_type) {
++function pla_password_hash($password_clear,$enc_type) {
+ if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
+ debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs);
+
+@@ -2318,7 +2318,7 @@
+
+ # SHA crypted passwords
+ case 'sha':
+- if (strcasecmp(password_hash($plainpassword,'sha'),'{SHA}'.$cryptedpassword) == 0)
++ if (strcasecmp(pla_password_hash($plainpassword,'sha'),'{SHA}'.$cryptedpassword) == 0)
+ return true;
+ else
+ return false;
+@@ -2327,7 +2327,7 @@
+
+ # MD5 crypted passwords
+ case 'md5':
+- if( strcasecmp(password_hash($plainpassword,'md5'),'{MD5}'.$cryptedpassword) == 0)
++ if( strcasecmp(pla_password_hash($plainpassword,'md5'),'{MD5}'.$cryptedpassword) == 0)
+ return true;
+ else
+ return false;
+@@ -2392,7 +2392,7 @@
+
+ # SHA512 crypted passwords
+ case 'sha512':
+- if (strcasecmp(password_hash($plainpassword,'sha512'),'{SHA512}'.$cryptedpassword) == 0)
++ if (strcasecmp(pla_password_hash($plainpassword,'sha512'),'{SHA512}'.$cryptedpassword) == 0)
+ return true;
+ else
+ return false;
+@@ -2565,12 +2565,14 @@
+ $a = array();
+
+ foreach ($dn as $key => $rdn)
+- $a[$key] = preg_replace('/\\\([0-9A-Fa-f]{2})/e',"''.chr(hexdec('\\1')).''",$rdn);
++ $a[$key] = preg_replace_callback('/\\\([0-9A-Fa-f]{2})/',
++ function ($matches) { return chr(hexdec($matches[1])); }, $rdn );
+
+ return $a;
+
+ } else {
+- return preg_replace('/\\\([0-9A-Fa-f]{2})/e',"''.chr(hexdec('\\1')).''",$dn);
++ return preg_replace_callback('/\\\([0-9A-Fa-f]{2})/',
++ function ($matches) { return chr(hexdec($matches[1])); }, $dn);
+ }
+ }
+
--- /dev/null
+diff -wbBur phpldapadmin.org/lib/functions.php phpldapadmin/lib/functions.php
+--- phpldapadmin.org/lib/functions.php 2017-02-02 10:03:58.000000000 -0700
++++ phpldapadmin/lib/functions.php 2018-01-23 06:18:31.118312887 -0700
+@@ -51,7 +51,7 @@
+ /**
+ * Loads class definition
+ */
+-function __autoload($className) {
++spl_autoload_register(function($className) {
+ if (file_exists(HOOKSDIR."classes/$className.php"))
+ require_once(HOOKSDIR."classes/$className.php");
+ elseif (file_exists(LIBDIR."$className.php"))
+@@ -64,7 +64,7 @@
+ 'body'=>sprintf('%s: %s [%s]',
+ __METHOD__,_('Called to load a class that cant be found'),$className),
+ 'type'=>'error'));
+-}
++});
+
+ /**
+ * Strips all slashes from the specified array in place (pass by ref).
+@@ -1083,7 +1083,7 @@
+
+ $code .= 'return $c;';
+
+- $CACHE[$sortby] = create_function('$a, $b',$code);
++ eval("\$CACHE[\$sortby] = function(\$a, \$b) { $code; };");
+ }
+
+ uasort($data,$CACHE[$sortby]);
--- /dev/null
+diff -wbBur phpldapadmin-1.2.3.org/lib/TemplateRender.php phpldapadmin-1.2.3/lib/TemplateRender.php
+--- phpldapadmin-1.2.3.org/lib/TemplateRender.php 2012-10-01 10:54:14.000000000 +0400
++++ phpldapadmin-1.2.3/lib/TemplateRender.php 2018-02-02 19:06:45.674760057 +0300
+@@ -321,6 +321,8 @@
+
+ $vals = array();
+
++ asort($picklistvalues);
++
+ foreach ($picklistvalues as $key => $values) {
+ $display = $args[3];
+
--- /dev/null
+{ varDir ? "/var/lib/rompr", stdenv, mylibs }:
+stdenv.mkDerivation (mylibs.fetchedGithub ./rompr.json // {
+ installPhase = ''
+ cp -a . $out
+ ln -sf ${varDir}/prefs $out/prefs
+ ln -sf ${varDir}/albumart $out/albumart
+ '';
+})
--- /dev/null
+{
+ "tag": "1.24",
+ "meta": {
+ "name": "rompr",
+ "url": "https://github.com/fatg3erman/RompR",
+ "branch": "refs/tags/1.24"
+ },
+ "github": {
+ "owner": "fatg3erman",
+ "repo": "RompR",
+ "rev": "0d8f597027ac71b320963fe3f33f461a136312ad",
+ "sha256": "13p3c4whhmvz1vvh9fva5gdx4xji288k108hjdi8b1yn506lzix2",
+ "fetchSubmodules": true
+ }
+}
--- /dev/null
+{ varDir ? "/var/lib/roundcubemail"
+, roundcube_config ? "/etc/roundcube/config.php"
+, stdenv, fetchurl }:
+let
+ defaultInstall = ''
+ mkdir -p $out
+ cp -R . $out/
+ cd $out
+ if [ -d skins -a -d skins/larry -a ! -d skins/elastic ]; then
+ ln -s larry skins/elastic
+ fi
+ '';
+ buildPlugin = { appName, version, url, sha256, installPhase ? defaultInstall }:
+ stdenv.mkDerivation rec {
+ name = "roundcube-${appName}-${version}";
+ inherit version;
+ phases = "unpackPhase installPhase";
+ inherit installPhase;
+ src = fetchurl { inherit url sha256; };
+ passthru.pluginName = appName;
+ };
+ withPlugins = plugins: skins: package.overrideAttrs(old: {
+ name = "${old.name}${if builtins.length skins > 0 then "-with-skins" else ""}${if builtins.length plugins > 0 then "-with-plugins" else ""}";
+ installPhase = old.installPhase +
+ builtins.concatStringsSep "\n" (
+ map (value: "ln -s ${value} $out/plugins/${value.pluginName}") plugins
+ ) +
+ builtins.concatStringsSep "\n" (
+ map (value: "ln -s ${value} $out/skins/${value.skinName}") skins
+ );
+ passthru = old.passthru // {
+ inherit plugins skins;
+ withPlugins = morePlugins: moreSkins: old.withPlugins (morePlugins ++ plugins) (morePlugins ++ skins);
+ };
+ });
+ package = stdenv.mkDerivation rec {
+ version = "1.4-rc1";
+ name = "roundcubemail-${version}";
+ src= fetchurl {
+ url = "https://github.com/roundcube/roundcubemail/releases/download/${version}/${name}-complete.tar.gz";
+ sha256 = "0p18wffwi2prh6vxhx1bc69qd1vwybggm8gvg3shahfdknxci9i4";
+ };
+ buildPhase = ''
+ sed -i \
+ -e "s|RCUBE_INSTALL_PATH . 'temp.*|'${varDir}/cache';|" \
+ config/defaults.inc.php
+ sed -i \
+ -e "s|RCUBE_INSTALL_PATH . 'logs.*|'${varDir}/logs';|" \
+ config/defaults.inc.php
+ '';
+ installPhase = ''
+ cp -a . $out
+ ln -s ${roundcube_config} $out/config/config.inc.php
+ '';
+ passthru = {
+ plugins = [];
+ skins = [];
+ inherit withPlugins buildPlugin;
+ };
+ };
+in package
--- /dev/null
+{ buildPlugin }:
+buildPlugin rec {
+ appName = "automatic_addressbook";
+ version = "0.4.3";
+ url = "https://github.com/sblaisot/${appName}/archive/${version}.tar.gz";
+ sha256 = "0bx5qjzp3a3wc72fr295bvgsy5n15949c041hq76n6c7sqdn7inc";
+}
--- /dev/null
+{ buildPlugin }:
+buildPlugin rec {
+ appName = "carddav";
+ version = "3.0.3";
+ url = "https://github.com/blind-coder/rcmcarddav/releases/download/v${version}/${appName}-${version}.tar.bz2";
+ sha256 = "0cf5rnqkhhag2vdy808zfpr4l5586fn43nvcia8ac1ha58azrxal";
+}
--- /dev/null
+{ buildPlugin }:
+buildPlugin rec {
+ appName = "contextmenu";
+ version = "2.3";
+ url = "https://github.com/johndoh/roundcube-${appName}/archive/${version}.tar.gz";
+ sha256 = "1rb8n821ylfniiiccfskc534vd6rczhk3g82455ks3m09q6l8hif";
+}
--- /dev/null
+{ buildPlugin }:
+buildPlugin rec {
+ appName = "contextmenu_folder";
+ version = "1.3.3";
+ url = "https://github.com/random-cuber/${appName}/archive/${version}.tar.gz";
+ sha256 = "1ngfws1v8qrpa52rjh7kirc98alchk2vbqwra86h00agyjjlcc57";
+}
--- /dev/null
+{ buildPlugin }:
+buildPlugin rec {
+ appName = "html5_notifier";
+ version = "v0.6.2";
+ url = "https://github.com/stremlau/${appName}/archive/${version}.tar.gz";
+ sha256 = "0s1wq9ira4bcd8jvhn93nhxiqzpp92i0za2kw37kf7ksyhr0xslq";
+}
--- /dev/null
+{ buildPlugin }:
+buildPlugin rec {
+ appName = "ident_switch";
+ version = "4.0.1";
+ url = "https://bitbucket.org/BoresExpress/${appName}/get/${version}.tar.gz";
+ sha256 = "1zyy40lfq2kn7hkghbl8lgp18fb634zr4fxmmxvb1wqyvqdpdpyk";
+}
--- /dev/null
+{ buildPlugin }:
+buildPlugin rec {
+ appName = "message_highlight";
+ version = "4.4";
+ url = "https://github.com/corbosman/${appName}/archive/${version}.tar.gz";
+ sha256 = "12c4x47y70xdl5pgm8csh5i4yiyhpi232lvjbixmca6di4lkhh9j";
+}
--- /dev/null
+{ buildPlugin }:
+buildPlugin rec {
+ appName = "thunderbird_labels";
+ version = "v1.3.2";
+ url = "https://github.com/mike-kfed/roundcube-${appName}/archive/${version}.tar.gz";
+ sha256 = "1q4x30w66m02v3lw2n8020g0158rmyfzs6gydfk89pa1hs28k9bg";
+}
--- /dev/null
+{ siteName ? "spip"
+, siteDir ? runCommand "empty" { preferLocalBuild = true; } "mkdir -p $out"
+, environment ? "prod"
+, ldap ? false
+, varDir ? "/var/lib/${siteName}_${environment}"
+, lib, fetchzip, runCommand, stdenv }:
+let
+ app = stdenv.mkDerivation rec {
+ name = "${siteName}-${environment}-spip-${version}";
+ version = "3.2.3";
+ src = fetchzip {
+ url = "https://files.spip.net/spip/archives/SPIP-v${version}.zip";
+ sha256 = "1r1mjvsnrp6mvkgjakvi3x4ms8m8k5mp93micbbg8r99fj7qlfkq";
+ };
+ paches = lib.optionals ldap [ ./spip_ldap_patch.patch ];
+ buildPhase = ''
+ rm -rf IMG local tmp config/remove.txt
+ ln -sf ${./spip_mes_options.php} config/mes_options.php
+ echo "Require all denied" > "config/.htaccess"
+ ln -sf ${varDir}/{IMG,local} .
+ '';
+ installPhase = ''
+ cp -a . $out
+ cp -a ${siteDir}/* $out
+ '';
+ passthru = {
+ inherit siteName siteDir environment varDir;
+ webRoot = app;
+ spipConfig = ./spip_mes_options.php;
+ };
+ };
+in app
--- /dev/null
+--- old/ecrire/auth/ldap.php 2017-06-08 21:58:17.000000000 +0200
++++ new/ecrire/auth/ldap.php 2017-06-10 02:54:02.687954143 +0200
+@@ -171,24 +171,41 @@
+ $desc = isset($ldap['attributes']) && $ldap['attributes'] ? $ldap['attributes'] : $GLOBALS['ldap_attributes'] ;
+
+ $logins = is_array($desc['login']) ? $desc['login'] : array($desc['login']);
++ if (isset($GLOBALS['ldap_search'])) {
++ $search_query = str_replace("%user%", $login_search, $GLOBALS['ldap_search']);
++ $result = @ldap_search($ldap_link, $ldap_base, $search_query, array("dn"));
++ $info = @ldap_get_entries($ldap_link, $result);
++ // Ne pas accepter les resultats si plus d'une entree
++ // (on veut un attribut unique)
+
+- // Tenter une recherche pour essayer de retrouver le DN
+- foreach ($logins as $att) {
+- $result = @ldap_search($ldap_link, $ldap_base, "$att=$login_search", array("dn"));
+- $info = @ldap_get_entries($ldap_link, $result);
+- // Ne pas accepter les resultats si plus d'une entree
+- // (on veut un attribut unique)
++ if (is_array($info) and $info['count'] == 1) {
++ $dn = $info[0]['dn'];
++ if (!$checkpass) {
++ return $dn;
++ }
++ if (@ldap_bind($ldap_link, $dn, $pass)) {
++ return $dn;
++ }
++ }
++ } else {
++ // Tenter une recherche pour essayer de retrouver le DN
++ foreach ($logins as $att) {
++ $result = @ldap_search($ldap_link, $ldap_base, "$att=$login_search", array("dn"));
++ $info = @ldap_get_entries($ldap_link, $result);
++ // Ne pas accepter les resultats si plus d'une entree
++ // (on veut un attribut unique)
+
+- if (is_array($info) and $info['count'] == 1) {
+- $dn = $info[0]['dn'];
+- if (!$checkpass) {
+- return $dn;
+- }
+- if (@ldap_bind($ldap_link, $dn, $pass)) {
+- return $dn;
+- }
+- }
+- }
++ if (is_array($info) and $info['count'] == 1) {
++ $dn = $info[0]['dn'];
++ if (!$checkpass) {
++ return $dn;
++ }
++ if (@ldap_bind($ldap_link, $dn, $pass)) {
++ return $dn;
++ }
++ }
++ }
++ }
+
+ if ($checkpass and !isset($dn)) {
+ // Si echec, essayer de deviner le DN
--- /dev/null
+<?php // /!\ Important: There must be no blank space before <?php or after ?>
+// This file was inspired from the spip contrib website
+// http://www.spip.net/fr_article3811.html
+
+$config_dir = getenv('SPIP_CONFIG_DIR') . '/';
+$var_dir = getenv('SPIP_VAR_DIR') . '/';
+
+$cookie_prefix = str_replace('.', '_', getenv("SPIP_SITE"));
+$table_prefix = 'spip';
+
+spip_initialisation(
+ $config_dir,
+ _DIR_RACINE . _NOM_PERMANENTS_ACCESSIBLES,
+ $var_dir . _NOM_TEMPORAIRES_INACCESSIBLES,
+ _DIR_RACINE . _NOM_TEMPORAIRES_ACCESSIBLES
+);
+
+?>
--- /dev/null
+PATH
+ remote: .
+ specs:
+ taskwarrior-web (1.1.12)
+ activesupport (~> 3)
+ json (~> 1.8)
+ parseconfig
+ rack-flash3
+ rinku
+ sinatra
+ sinatra-simple-navigation
+ vegas
+ versionomy
+
+GEM
+ remote: http://rubygems.org/
+ specs:
+ activesupport (3.2.22.5)
+ i18n (~> 0.6, >= 0.6.4)
+ multi_json (~> 1.0)
+ blockenspiel (0.5.0)
+ coderay (1.1.2)
+ concurrent-ruby (1.1.4)
+ daemons (1.3.1)
+ diff-lcs (1.3)
+ docile (1.3.1)
+ eventmachine (1.2.7)
+ ffi (1.10.0)
+ formatador (0.2.5)
+ growl (1.0.3)
+ guard (2.15.0)
+ formatador (>= 0.2.4)
+ listen (>= 2.7, < 4.0)
+ lumberjack (>= 1.0.12, < 2.0)
+ nenv (~> 0.1)
+ notiffany (~> 0.0)
+ pry (>= 0.9.12)
+ shellany (~> 0.0)
+ thor (>= 0.18.1)
+ guard-bundler (2.2.1)
+ bundler (>= 1.3.0, < 3)
+ guard (~> 2.2)
+ guard-compat (~> 1.1)
+ guard-compat (1.2.1)
+ guard-rspec (4.7.3)
+ guard (~> 2.1)
+ guard-compat (~> 1.1)
+ rspec (>= 2.99.0, < 4.0)
+ i18n (0.9.5)
+ concurrent-ruby (~> 1.0)
+ json (1.8.6)
+ listen (3.1.5)
+ rb-fsevent (~> 0.9, >= 0.9.4)
+ rb-inotify (~> 0.9, >= 0.9.7)
+ ruby_dep (~> 1.2)
+ lumberjack (1.0.13)
+ method_source (0.9.2)
+ mini_portile2 (2.4.0)
+ multi_json (1.13.1)
+ mustermann (1.0.3)
+ nenv (0.3.0)
+ nokogiri (1.10.1)
+ mini_portile2 (~> 2.4.0)
+ notiffany (0.1.1)
+ nenv (~> 0.1)
+ shellany (~> 0.0)
+ parseconfig (1.0.8)
+ pry (0.12.2)
+ coderay (~> 1.1.0)
+ method_source (~> 0.9.0)
+ rack (2.0.6)
+ rack-flash3 (1.0.5)
+ rack
+ rack-protection (2.0.5)
+ rack
+ rack-test (1.1.0)
+ rack (>= 1.0, < 3)
+ rake (10.5.0)
+ rb-fsevent (0.10.3)
+ rb-inotify (0.10.0)
+ ffi (~> 1.0)
+ rinku (2.0.5)
+ rspec (2.99.0)
+ rspec-core (~> 2.99.0)
+ rspec-expectations (~> 2.99.0)
+ rspec-mocks (~> 2.99.0)
+ rspec-core (2.99.2)
+ rspec-expectations (2.99.2)
+ diff-lcs (>= 1.1.3, < 2.0)
+ rspec-html-matchers (0.5.0)
+ nokogiri (~> 1)
+ rspec (~> 2, >= 2.11.0)
+ rspec-mocks (2.99.4)
+ ruby_dep (1.5.0)
+ shellany (0.0.1)
+ simple-navigation (4.0.5)
+ activesupport (>= 2.3.2)
+ simplecov (0.16.1)
+ docile (~> 1.1)
+ json (>= 1.8, < 3)
+ simplecov-html (~> 0.10.0)
+ simplecov-html (0.10.2)
+ sinatra (2.0.5)
+ mustermann (~> 1.0)
+ rack (~> 2.0)
+ rack-protection (= 2.0.5)
+ tilt (~> 2.0)
+ sinatra-simple-navigation (4.1.0)
+ simple-navigation (~> 4.0)
+ sinatra (>= 1.0, < 3.0)
+ thin (1.7.2)
+ daemons (~> 1.0, >= 1.0.9)
+ eventmachine (~> 1.0, >= 1.0.4)
+ rack (>= 1, < 3)
+ thor (0.20.3)
+ tilt (2.0.9)
+ vegas (0.1.11)
+ rack (>= 1.0.0)
+ versionomy (0.5.0)
+ blockenspiel (~> 0.5)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ growl
+ guard-bundler
+ guard-rspec
+ rack-test
+ rake (< 11)
+ rb-fsevent
+ rspec (~> 2)
+ rspec-html-matchers
+ simplecov
+ taskwarrior-web!
+ thin
+
+BUNDLED WITH
+ 1.16.2
--- /dev/null
+{ ruby_2_6, bundlerEnv, mylibs, stdenv }:
+let
+ gems = bundlerEnv {
+ name = "taskwarrior-web-env";
+ ruby = ruby_2_6;
+ pname = "taskwarrior-web";
+ gemset = ./gemset.nix;
+ gemdir = package.out;
+ groups = [ "default" "local" "development" ];
+ };
+ package = stdenv.mkDerivation (mylibs.fetchedGithub ./taskwarrior-web.json // rec {
+ phases = [ "unpackPhase" "patchPhase" "installPhase" ];
+ patches = [ ./fixes.patch ./thin.patch ];
+ installPhase = ''
+ cp -a . $out
+ cp ${./Gemfile.lock} $out/Gemfile.lock
+ '';
+ passthru = {
+ inherit gems;
+ };
+ });
+in package
--- /dev/null
+diff --git a/lib/taskwarrior-web/helpers.rb b/lib/taskwarrior-web/helpers.rb
+index 212aed7..94c57df 100644
+--- a/lib/taskwarrior-web/helpers.rb
++++ b/lib/taskwarrior-web/helpers.rb
+@@ -1,6 +1,8 @@
+ require 'active_support/core_ext/date/calculations'
+
+ module TaskwarriorWeb::App::Helpers
++ include ERB::Util
++
+ def format_date(timestamp)
+ format = TaskwarriorWeb::Config.dateformat || '%-m/%-d/%Y'
+ Time.parse(timestamp).localtime.strftime(format)
+diff --git a/lib/taskwarrior-web/services/builder/base.rb b/lib/taskwarrior-web/services/builder/base.rb
+index 58d246e..8f716ac 100644
+--- a/lib/taskwarrior-web/services/builder/base.rb
++++ b/lib/taskwarrior-web/services/builder/base.rb
+@@ -10,7 +10,7 @@ module TaskwarriorWeb::CommandBuilder::Base
+ :complete => ':id done',
+ :annotate => ':id annotate',
+ :denotate => ':id denotate',
+- :projects => '_projects',
++ :projects => '_unique project',
+ :tags => '_tags',
+ :sync => 'sync'
+ }
+diff --git a/lib/taskwarrior-web/views/tasks/_form.erb b/lib/taskwarrior-web/views/tasks/_form.erb
+index 789e7a1..fa08698 100644
+--- a/lib/taskwarrior-web/views/tasks/_form.erb
++++ b/lib/taskwarrior-web/views/tasks/_form.erb
+@@ -1,14 +1,14 @@
+ <div class="control-group">
+ <label for="task-description" class="control-label">Description</label>
+ <div class="controls">
+- <input type="text" required="required" id="task-description" name="task[description]" value="<%= @task.description unless @task.nil? %>" />
++ <input type="text" required="required" id="task-description" name="task[description]" value="<%=h @task.description unless @task.nil? %>" />
+ </div>
+ </div>
+
+ <div class="control-group">
+ <label for="task-project" class="control-label">Project</label>
+ <div class="controls">
+- <input type="text" id="task-project" name="task[project]" value="<%= @task.project unless @task.nil? %>" autocomplete="off" />
++ <input type="text" id="task-project" name="task[project]" value="<%=h @task.project unless @task.nil? %>" autocomplete="off" />
+ </div>
+ </div>
+
+@@ -45,7 +45,7 @@
+ <div class="control-group">
+ <label for="task-tags" class="control-label">Tags</label>
+ <div class="controls">
+- <input type="text" id="task-tags" name="task[tags]" value="<%= @task.tags.join(', ') unless @task.nil? %>" autocomplete="off" />
++ <input type="text" id="task-tags" name="task[tags]" value="<%=h @task.tags.join(', ') unless @task.nil? %>" autocomplete="off" />
+ <span class="help-block">Enter tags separated by commas or spaces (e.g. <em>each, word will,be a tag</em>)</span>
+ </div>
+ </div>
--- /dev/null
+{
+ activesupport = {
+ dependencies = ["i18n" "multi_json"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["http://rubygems.org"];
+ sha256 = "0fyxqkkws4px4lzkbcqzp0bwai7nn7jk4p0bgfy0dny9cwm0qc9r";
+ type = "gem";
+ };
+ version = "3.2.22.5";
+ };
+ blockenspiel = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["http://rubygems.org"];
+ sha256 = "1h701s45n5qprvcpc7fnr45n88p56x07pznkxqnhz1dbdbhb7xx8";
+ type = "gem";
+ };
+ version = "0.5.0";
+ };
+ coderay = {
+ groups = ["default" "local"];
+ platforms = [];
+ source = {
+ remotes = ["http://rubygems.org"];
+ sha256 = "15vav4bhcc2x3jmi3izb11l4d9f3xv8hp2fszb7iqmpsccv1pz4y";
+ type = "gem";
+ };
+ version = "1.1.2";
+ };
+ concurrent-ruby = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["http://rubygems.org"];
+ sha256 = "1ixcx9pfissxrga53jbdpza85qd5f6b5nq1sfqa9rnfq82qnlbp1";
+ type = "gem";
+ };
+ version = "1.1.4";
+ };
+ daemons = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["http://rubygems.org"];
+ sha256 = "0l5gai3vd4g7aqff0k1mp41j9zcsvm2rbwmqn115a325k9r7pf4w";
+ type = "gem";
+ };
+ version = "1.3.1";
+ };
+ diff-lcs = {
+ groups = ["default" "development" "local"];
+ platforms = [];
+ source = {
+ remotes = ["http://rubygems.org"];
+ sha256 = "18w22bjz424gzafv6nzv98h0aqkwz3d9xhm7cbr1wfbyas8zayza";
+ type = "gem";
+ };
+ version = "1.3";
+ };
+ docile = {
+ groups = ["default" "local"];
+ platforms = [];
+ source = {
+ remotes = ["http://rubygems.org"];
+ sha256 = "04d2izkna3ahfn6fwq4xrcafa715d3bbqczxm16fq40fqy87xn17";
+ type = "gem";
+ };
+ version = "1.3.1";
+ };
+ eventmachine = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["http://rubygems.org"];
+ sha256 = "0wh9aqb0skz80fhfn66lbpr4f86ya2z5rx6gm5xlfhd05bj1ch4r";
+ type = "gem";
+ };
+ version = "1.2.7";
+ };
+ ffi = {
+ groups = ["default" "local"];
+ platforms = [];
+ source = {
+ remotes = ["http://rubygems.org"];
+ sha256 = "0j8pzj8raxbir5w5k6s7a042sb5k02pg0f8s4na1r5lan901j00p";
+ type = "gem";
+ };
+ version = "1.10.0";
+ };
+ formatador = {
+ groups = ["default" "local"];
+ platforms = [];
+ source = {
+ remotes = ["http://rubygems.org"];
+ sha256 = "1gc26phrwlmlqrmz4bagq1wd5b7g64avpx0ghxr9xdxcvmlii0l0";
+ type = "gem";
+ };
+ version = "0.2.5";
+ };
+ growl = {
+ groups = ["local"];
+ platforms = [];
+ source = {
+ remotes = ["http://rubygems.org"];
+ sha256 = "0s0y7maljnalpbv2q1j5j5hvb4wcc31y9af0n7x1q2l0fzxgc9n9";
+ type = "gem";
+ };
+ version = "1.0.3";
+ };
+ guard = {
+ dependencies = ["formatador" "listen" "lumberjack" "nenv" "notiffany" "pry" "shellany" "thor"];
+ groups = ["default" "local"];
+ platforms = [];
+ source = {
+ remotes = ["http://rubygems.org"];
+ sha256 = "0h84ja6qvii3hx86w9l4vjpbgl4m8ma8fbawwp7s8l791cgkdcmk";
+ type = "gem";
+ };
+ version = "2.15.0";
+ };
+ guard-bundler = {
+ dependencies = ["guard" "guard-compat"];
+ groups = ["local"];
+ platforms = [];
+ source = {
+ remotes = ["http://rubygems.org"];
+ sha256 = "0lji8f8w7y4prmpr2lqmlljvkqgkgnlsiwqgwvq7b1y3sxlsvy62";
+ type = "gem";
+ };
+ version = "2.2.1";
+ };
+ guard-compat = {
+ groups = ["default" "local"];
+ platforms = [];
+ source = {
+ remotes = ["http://rubygems.org"];
+ sha256 = "1zj6sr1k8w59mmi27rsii0v8xyy2rnsi09nqvwpgj1q10yq1mlis";
+ type = "gem";
+ };
+ version = "1.2.1";
+ };
+ guard-rspec = {
+ dependencies = ["guard" "guard-compat" "rspec"];
+ groups = ["local"];
+ platforms = [];
+ source = {
+ remotes = ["http://rubygems.org"];
+ sha256 = "1jkm5xp90gm4c5s51pmf92i9hc10gslwwic6mvk72g0yplya0yx4";
+ type = "gem";
+ };
+ version = "4.7.3";
+ };
+ i18n = {
+ dependencies = ["concurrent-ruby"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["http://rubygems.org"];
+ sha256 = "038qvz7kd3cfxk8bvagqhakx68pfbnmghpdkx7573wbf0maqp9a3";
+ type = "gem";
+ };
+ version = "0.9.5";
+ };
+ json = {
+ groups = ["default" "local"];
+ platforms = [];
+ source = {
+ remotes = ["http://rubygems.org"];
+ sha256 = "0qmj7fypgb9vag723w1a49qihxrcf5shzars106ynw2zk352gbv5";
+ type = "gem";
+ };
+ version = "1.8.6";
+ };
+ listen = {
+ dependencies = ["rb-fsevent" "rb-inotify" "ruby_dep"];
+ groups = ["default" "local"];
+ platforms = [];
+ source = {
+ remotes = ["http://rubygems.org"];
+ sha256 = "01v5mrnfqm6sgm8xn2v5swxsn1wlmq7rzh2i48d4jzjsc7qvb6mx";
+ type = "gem";
+ };
+ version = "3.1.5";
+ };
+ lumberjack = {
+ groups = ["default" "local"];
+ platforms = [];
+ source = {
+ remotes = ["http://rubygems.org"];
+ sha256 = "06im7gcg42x77yhz2w5da2ly9xz0n0c36y5ks7xs53v0l9g0vf5n";
+ type = "gem";
+ };
+ version = "1.0.13";
+ };
+ method_source = {
+ groups = ["default" "local"];
+ platforms = [];
+ source = {
+ remotes = ["http://rubygems.org"];
+ sha256 = "1pviwzvdqd90gn6y7illcdd9adapw8fczml933p5vl739dkvl3lq";
+ type = "gem";
+ };
+ version = "0.9.2";
+ };
+ mini_portile2 = {
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["http://rubygems.org"];
+ sha256 = "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy";
+ type = "gem";
+ };
+ version = "2.4.0";
+ };
+ multi_json = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["http://rubygems.org"];
+ sha256 = "1rl0qy4inf1mp8mybfk56dfga0mvx97zwpmq5xmiwl5r770171nv";
+ type = "gem";
+ };
+ version = "1.13.1";
+ };
+ mustermann = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["http://rubygems.org"];
+ sha256 = "0lycgkmnyy0bf29nnd2zql5a6pcf8sp69g9v4xw0gcfcxgpwp7i1";
+ type = "gem";
+ };
+ version = "1.0.3";
+ };
+ nenv = {
+ groups = ["default" "local"];
+ platforms = [];
+ source = {
+ remotes = ["http://rubygems.org"];
+ sha256 = "0r97jzknll9bhd8yyg2bngnnkj8rjhal667n7d32h8h7ny7nvpnr";
+ type = "gem";
+ };
+ version = "0.3.0";
+ };
+ nokogiri = {
+ dependencies = ["mini_portile2"];
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["http://rubygems.org"];
+ sha256 = "09zll7c6j7xr6wyvh5mm5ncj6pkryp70ybcsxdbw1nyphx5dh184";
+ type = "gem";
+ };
+ version = "1.10.1";
+ };
+ notiffany = {
+ dependencies = ["nenv" "shellany"];
+ groups = ["default" "local"];
+ platforms = [];
+ source = {
+ remotes = ["http://rubygems.org"];
+ sha256 = "0x838fa5il0dd9zbm3lxkpbfxcf5fxv9556mayc2mxsdl5ghv8nx";
+ type = "gem";
+ };
+ version = "0.1.1";
+ };
+ parseconfig = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["http://rubygems.org"];
+ sha256 = "0br2g9k6zc4ygah52aa8cwvpnnkszia29bnvnr8bhpk3rdzi2vmq";
+ type = "gem";
+ };
+ version = "1.0.8";
+ };
+ pry = {
+ dependencies = ["coderay" "method_source"];
+ groups = ["default" "local"];
+ platforms = [];
+ source = {
+ remotes = ["http://rubygems.org"];
+ sha256 = "00rm71x0r1jdycwbs83lf9l6p494m99asakbvqxh8rz7zwnlzg69";
+ type = "gem";
+ };
+ version = "0.12.2";
+ };
+ rack = {
+ groups = ["default" "development"];
+ platforms = [];
+ source = {
+ remotes = ["http://rubygems.org"];
+ sha256 = "1pcgv8dv4vkaczzlix8q3j68capwhk420cddzijwqgi2qb4lm1zm";
+ type = "gem";
+ };
+ version = "2.0.6";
+ };
+ rack-flash3 = {
+ dependencies = ["rack"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["http://rubygems.org"];
+ sha256 = "0rim9afrns6s8zc4apiymncysyvijpdg18k57kdpz66p55jf4mqz";
+ type = "gem";
+ };
+ version = "1.0.5";
+ };
+ rack-protection = {
+ dependencies = ["rack"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["http://rubygems.org"];
+ sha256 = "15167q25rmxipqwi6hjqj3i1byi9iwl3xq9b7mdar7qiz39pmjsk";
+ type = "gem";
+ };
+ version = "2.0.5";
+ };
+ rack-test = {
+ dependencies = ["rack"];
+ groups = ["development"];
+ platforms = [];
+ source = {
+ remotes = ["http://rubygems.org"];
+ sha256 = "0rh8h376mx71ci5yklnpqqn118z3bl67nnv5k801qaqn1zs62h8m";
+ type = "gem";
+ };
+ version = "1.1.0";
+ };
+ rake = {
+ groups = ["development"];
+ platforms = [];
+ source = {
+ remotes = ["http://rubygems.org"];
+ sha256 = "0jcabbgnjc788chx31sihc5pgbqnlc1c75wakmqlbjdm8jns2m9b";
+ type = "gem";
+ };
+ version = "10.5.0";
+ };
+ rb-fsevent = {
+ groups = ["local"];
+ platforms = [];
+ source = {
+ remotes = ["http://rubygems.org"];
+ sha256 = "1lm1k7wpz69jx7jrc92w3ggczkjyjbfziq5mg62vjnxmzs383xx8";
+ type = "gem";
+ };
+ version = "0.10.3";
+ };
+ rb-inotify = {
+ dependencies = ["ffi"];
+ groups = ["default" "local"];
+ platforms = [];
+ source = {
+ remotes = ["http://rubygems.org"];
+ sha256 = "1fs7hxm9g6ywv2yih83b879klhc4fs8i0p9166z795qmd77dk0a4";
+ type = "gem";
+ };
+ version = "0.10.0";
+ };
+ rinku = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["http://rubygems.org"];
+ sha256 = "1smkk299v18brk98gqbdnqrfwm3143kikl30scidqb5j3pzlbz91";
+ type = "gem";
+ };
+ version = "2.0.5";
+ };
+ rspec = {
+ dependencies = ["rspec-core" "rspec-expectations" "rspec-mocks"];
+ groups = ["development" "local"];
+ platforms = [];
+ source = {
+ remotes = ["http://rubygems.org"];
+ sha256 = "14q3hxvngk4ks8h41yw50d5fqbf2dhzwi9rz5ccxvh5a53ak2as3";
+ type = "gem";
+ };
+ version = "2.99.0";
+ };
+ rspec-core = {
+ groups = ["default" "development" "local"];
+ platforms = [];
+ source = {
+ remotes = ["http://rubygems.org"];
+ sha256 = "1wwz21lcz2lwd2jcp2pvq7n1677v23acf7wxsyszp8msb47mw38i";
+ type = "gem";
+ };
+ version = "2.99.2";
+ };
+ rspec-expectations = {
+ dependencies = ["diff-lcs"];
+ groups = ["default" "development" "local"];
+ platforms = [];
+ source = {
+ remotes = ["http://rubygems.org"];
+ sha256 = "11a5pph3anp4xr591dnlcy8xfkdf54qi2lvg4ykpqhxk37si1py3";
+ type = "gem";
+ };
+ version = "2.99.2";
+ };
+ rspec-html-matchers = {
+ dependencies = ["nokogiri" "rspec"];
+ groups = ["development"];
+ platforms = [];
+ source = {
+ remotes = ["http://rubygems.org"];
+ sha256 = "148grzvk0cvh24avhl0shjzz7ldhj138svf48pc5h1fdsb0pnqcv";
+ type = "gem";
+ };
+ version = "0.5.0";
+ };
+ rspec-mocks = {
+ groups = ["default" "development" "local"];
+ platforms = [];
+ source = {
+ remotes = ["http://rubygems.org"];
+ sha256 = "0bzhqahbiswq41nqi6y2dka1k42n0hl14jb6bldb206zp4hikz8r";
+ type = "gem";
+ };
+ version = "2.99.4";
+ };
+ ruby_dep = {
+ groups = ["default" "local"];
+ platforms = [];
+ source = {
+ remotes = ["http://rubygems.org"];
+ sha256 = "1c1bkl97i9mkcvkn1jks346ksnvnnp84cs22gwl0vd7radybrgy5";
+ type = "gem";
+ };
+ version = "1.5.0";
+ };
+ shellany = {
+ groups = ["default" "local"];
+ platforms = [];
+ source = {
+ remotes = ["http://rubygems.org"];
+ sha256 = "1ryyzrj1kxmnpdzhlv4ys3dnl2r5r3d2rs2jwzbnd1v96a8pl4hf";
+ type = "gem";
+ };
+ version = "0.0.1";
+ };
+ simple-navigation = {
+ dependencies = ["activesupport"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["http://rubygems.org"];
+ sha256 = "08a2s18an3br3xj5j86r33q0hrkai0y157xg67h1khdskb08yylk";
+ type = "gem";
+ };
+ version = "4.0.5";
+ };
+ simplecov = {
+ dependencies = ["docile" "json" "simplecov-html"];
+ groups = ["local"];
+ platforms = [];
+ source = {
+ remotes = ["http://rubygems.org"];
+ sha256 = "1sfyfgf7zrp2n42v7rswkqgk3bbwk1bnsphm24y7laxv3f8z0947";
+ type = "gem";
+ };
+ version = "0.16.1";
+ };
+ simplecov-html = {
+ groups = ["default" "local"];
+ platforms = [];
+ source = {
+ remotes = ["http://rubygems.org"];
+ sha256 = "1lihraa4rgxk8wbfl77fy9sf0ypk31iivly8vl3w04srd7i0clzn";
+ type = "gem";
+ };
+ version = "0.10.2";
+ };
+ sinatra = {
+ dependencies = ["mustermann" "rack" "rack-protection" "tilt"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["http://rubygems.org"];
+ sha256 = "1gasgn5f15myv08k10i16p326pchxjsy37pgqfw0xm66kcc5d7ry";
+ type = "gem";
+ };
+ version = "2.0.5";
+ };
+ sinatra-simple-navigation = {
+ dependencies = ["simple-navigation" "sinatra"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["http://rubygems.org"];
+ sha256 = "1gishxd23qw6bwsk7fkagkfc7ihqyvvvb98j9bmwc6wwpsfs4prs";
+ type = "gem";
+ };
+ version = "4.1.0";
+ };
+ taskwarrior-web = {
+ dependencies = ["activesupport" "json" "parseconfig" "rack-flash3" "rinku" "sinatra" "sinatra-simple-navigation" "vegas" "versionomy"];
+ groups = ["default"];
+ platforms = [];
+ bundledByPath = true;
+ path = ./.;
+ source = {
+ path = ./.;
+ type = "path";
+ };
+ version = "1.1.12";
+ };
+ thin = {
+ dependencies = ["daemons" "eventmachine" "rack"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["http://rubygems.org"];
+ sha256 = "0nagbf9pwy1vg09k6j4xqhbjjzrg5dwzvkn4ffvlj76fsn6vv61f";
+ type = "gem";
+ };
+ version = "1.7.2";
+ };
+ thor = {
+ groups = ["default" "local"];
+ platforms = [];
+ source = {
+ remotes = ["http://rubygems.org"];
+ sha256 = "1yhrnp9x8qcy5vc7g438amd5j9sw83ih7c30dr6g6slgw9zj3g29";
+ type = "gem";
+ };
+ version = "0.20.3";
+ };
+ tilt = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["http://rubygems.org"];
+ sha256 = "0ca4k0clwf0rkvy7726x4nxpjxkpv67w043i39saxgldxd97zmwz";
+ type = "gem";
+ };
+ version = "2.0.9";
+ };
+ vegas = {
+ dependencies = ["rack"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["http://rubygems.org"];
+ sha256 = "0kzv0v1zb8vvm188q4pqwahb6468bmiamn6wpsbiq6r5i69s1bs5";
+ type = "gem";
+ };
+ version = "0.1.11";
+ };
+ versionomy = {
+ dependencies = ["blockenspiel"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["http://rubygems.org"];
+ sha256 = "0i0l4pzrl1vyp4lpg2cxhgkk56spki3lld943d6h7168fj8qyv33";
+ type = "gem";
+ };
+ version = "0.5.0";
+ };
+}
--- /dev/null
+{
+ "tag": "a79cfe2-master",
+ "meta": {
+ "name": "taskwarrior-web",
+ "url": "https://github.com/theunraveler/taskwarrior-web",
+ "branch": "master"
+ },
+ "github": {
+ "owner": "theunraveler",
+ "repo": "taskwarrior-web",
+ "rev": "a79cfe2b42791b62364118e58b21b892fff6ded8",
+ "sha256": "028rb4wry2an19707bvy4n305f3s0hipg214224p1m0mb61c3cq4",
+ "fetchSubmodules": true
+ }
+}
--- /dev/null
+diff --git a/Gemfile b/Gemfile
+index 8544e15..9c4279c 100644
+--- a/Gemfile
++++ b/Gemfile
+@@ -3,6 +3,8 @@ source "http://rubygems.org"
+ # Specify your gem's dependencies in taskwarrior-web.gemspec
+ gemspec
+
++gem 'thin'
++
+ group :local do
+ gem 'rb-fsevent', :require => false
+ gem 'growl', :require => false
+diff --git a/config.ru b/config.ru
+index c3050c6..52387d8 100644
+--- a/config.ru
++++ b/config.ru
+@@ -1,5 +1,4 @@
+ require File.join(File.dirname(__FILE__), 'lib', 'taskwarrior-web')
+
+-disable :run
+ TaskwarriorWeb::App.set({ :environment => :production })
+ run TaskwarriorWeb::App
--- /dev/null
+{ ttrss_config ? "/etc/ttrss/config.php"
+, varDir ? "/var/lib/ttrss"
+, stdenv, mylibs }:
+let
+ withPlugins = plugins: package.overrideAttrs(old: rec {
+ name = "${old.name}-with-plugins";
+ installPhase = old.installPhase +
+ builtins.concatStringsSep "\n" (
+ map (value: "ln -s ${value} $out/plugins/${value.pluginName}") plugins
+ );
+ passthru = old.passthru // {
+ inherit plugins;
+ withPlugins = morePlugins: old.withPlugins (morePlugins ++ plugins);
+ };
+ });
+ package = stdenv.mkDerivation (mylibs.fetchedGit ./tt-rss.json // rec {
+ buildPhase = ''
+ rm -rf lock feed-icons cache
+ ln -sf ${varDir}/{lock,feed-icons,cache} .
+ '';
+ installPhase = ''
+ cp -a . $out
+ ln -s ${ttrss_config} $out/config.php
+ '';
+ passthru = {
+ plugins = [];
+ inherit withPlugins;
+ };
+ });
+in package
--- /dev/null
+{
+ "tag": "0ea2092-master",
+ "meta": {
+ "name": "ttrss-af_feedmod",
+ "url": "https://github.com/mbirth/ttrss_plugin-af_feedmod",
+ "branch": "master"
+ },
+ "github": {
+ "owner": "mbirth",
+ "repo": "ttrss_plugin-af_feedmod",
+ "rev": "0ea2092dd34067ecd898802cfca3570023d1ecfe",
+ "sha256": "02ibf47zcrsc2rr45wsix8gxyyf371davj8n8i0gj1zdq95klvnv",
+ "fetchSubmodules": true
+ }
+}
--- /dev/null
+{ patched ? false, stdenv, mylibs, lib }:
+stdenv.mkDerivation (mylibs.fetchedGithub ./af_feedmod.json // {
+ patches = lib.optionals patched [ ./type_replace.patch ];
+ installPhase = ''
+ mkdir $out
+ cp init.php $out
+ '';
+ passthru.pluginName = "af_feedmod";
+})
--- /dev/null
+--- a/init.php 2014-06-16 14:21:06.995480038 +0200
++++ b/init.php 2014-06-16 14:22:00.151027654 +0200
+@@ -147,6 +147,9 @@
+ }
+ }
+ break;
++ case 'replace':
++ $article['content'] = preg_replace("/".$config['pattern']."/",$config['replacement'],$article['content']);
++ break;
+
+ default:
+ // unknown type or invalid config
--- /dev/null
+{
+ "tag": "4d751b0-master",
+ "meta": {
+ "name": "ttrss-auth-ldap",
+ "url": "https://github.com/hydrian/TTRSS-Auth-LDAP",
+ "branch": "master"
+ },
+ "github": {
+ "owner": "hydrian",
+ "repo": "TTRSS-Auth-LDAP",
+ "rev": "4d751b095c29a8dbe2dc7bb07777742956136e94",
+ "sha256": "0b9fl86acrzpcv41r7pj3bl8b3n72hpkdywzx9zjyfqv5pskxyim",
+ "fetchSubmodules": true
+ }
+}
--- /dev/null
+{ stdenv, mylibs }:
+stdenv.mkDerivation (mylibs.fetchedGithub ./auth-ldap.json // {
+ installPhase = ''
+ mkdir $out
+ cp plugins/auth_ldap/init.php $out
+ '';
+ passthru.pluginName = "auth_ldap";
+})
--- /dev/null
+{ patched ? false, stdenv, mylibs, lib }:
+stdenv.mkDerivation (mylibs.fetchedGithub ./feediron.json // {
+ patches = lib.optionals patched [ ./json_reformat.patch ];
+ installPhase = ''
+ mkdir $out
+ cp -a . $out
+ '';
+ passthru.pluginName = "feediron";
+})
--- /dev/null
+{
+ "tag": "407168c-master",
+ "meta": {
+ "name": "ttrss-feediron",
+ "url": "https://github.com/m42e/ttrss_plugin-feediron",
+ "branch": "master"
+ },
+ "github": {
+ "owner": "m42e",
+ "repo": "ttrss_plugin-feediron",
+ "rev": "407168c628880b5ced572cc549db6d50e866d3c8",
+ "sha256": "17b95ifpcph6m03hjd1mhi8gi1hw9yd3fnffmw66fqr5c9l3zd9r",
+ "fetchSubmodules": true
+ }
+}
--- /dev/null
+diff --git a/init.php b/init.php
+index 3c0f2f9..1aad146 100644
+--- a/init.php
++++ b/init.php
+@@ -600,10 +600,11 @@ class Feediron extends Plugin implements IHandler
+ return false;
+ }
+
+- $this->host->set($this, 'json_conf', Feediron_Json::format($json_conf));
++ $new_conf = json_encode(json_decode($json_conf), JSON_PRETTY_PRINT);
++ $this->host->set($this, 'json_conf', $new_conf);
+ $json_reply['success'] = true;
+ $json_reply['message'] = __('Configuration saved.');
+- $json_reply['json_conf'] = Feediron_Json::format($json_conf);
++ $json_reply['json_conf'] = $new_conf;
+ echo json_encode($json_reply);
+ }
+
--- /dev/null
+{ stdenv, mylibs }:
+stdenv.mkDerivation (mylibs.fetchedGithub ./ff_instagram.json // {
+ installPhase = ''
+ mkdir $out
+ cp -a . $out
+ '';
+ passthru.pluginName = "ff_instagram";
+})
--- /dev/null
+{
+ "tag": "0366ffb-master",
+ "meta": {
+ "name": "ttrss-ff_instagram",
+ "url": "https://github.com/wltb/ff_instagram",
+ "branch": "master"
+ },
+ "github": {
+ "owner": "wltb",
+ "repo": "ff_instagram",
+ "rev": "0366ffb18c4d490c8fbfba2f5f3367a5af23cfe8",
+ "sha256": "0vvzl6wi6jmrqknsfddvckjgsgfizz1d923d1nyrpzjfn6bda1vk",
+ "fetchSubmodules": true
+ }
+}
--- /dev/null
+{ stdenv, mylibs }:
+stdenv.mkDerivation (mylibs.fetchedGithub ./tumblr_gdpr_ua.json // {
+ installPhase = ''
+ mkdir $out
+ cp -a . $out
+ '';
+ passthru.pluginName = "tumblr_gdpr_ua";
+})
--- /dev/null
+{
+ "tag": "287c584-master",
+ "meta": {
+ "name": "ttrss-tumblr_gdpr_ua",
+ "url": "https://github.com/hkockerbeck/ttrss-tumblr-gdpr-ua",
+ "branch": "master"
+ },
+ "github": {
+ "owner": "hkockerbeck",
+ "repo": "ttrss-tumblr-gdpr-ua",
+ "rev": "287c584e68845d524f920156bff0b2eaa6f65117",
+ "sha256": "1fviawgcclqky4k4xv1sqzvpb8i74w9f0pclm09m78s8l85wh9py",
+ "fetchSubmodules": true
+ }
+}
--- /dev/null
+{
+ "tag": "986ca25-master",
+ "meta": {
+ "name": "tt-rss",
+ "url": "https://git.tt-rss.org/fox/tt-rss.git",
+ "branch": "master"
+ },
+ "git": {
+ "url": "https://git.tt-rss.org/fox/tt-rss.git",
+ "rev": "986ca251f995f7754a0470d3e0c44538a545081f",
+ "sha256": "0xkafkh7l9zazm5d6snlq03kdfxfhkb4c8fdsb32wn8b9bhdzf5s",
+ "fetchSubmodules": true
+ }
+}
--- /dev/null
+{ varDir ? "/var/lib/wallabag"
+, wallabag_config ? "/etc/wallabag/parameters.yml"
+, ldap ? false
+, composerEnv, fetchurl, lib }:
+composerEnv.buildPackage rec {
+ packages = {
+ "fr3d/ldap-bundle" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "fr3d-ldap-bundle-5a8927c11af45fa06331b97221c6da1a4a237475";
+ src = fetchurl {
+ url = https://api.github.com/repos/Maks3w/FR3DLdapBundle/zipball/5a8927c11af45fa06331b97221c6da1a4a237475;
+ sha256 = "168zkd82j200wd6h0a3lq81g5s2pifg889rv27q2g429nppsbfxc";
+ };
+ };
+ };
+ "zendframework/zend-ldap" = {
+ targetDir = "";
+ src = composerEnv.buildZipPackage {
+ name = "zendframework-zend-ldap-b63c7884a08d3a6bda60ebcf7d6238cf8ad89f49";
+ src = fetchurl {
+ url = https://api.github.com/repos/zendframework/zend-ldap/zipball/b63c7884a08d3a6bda60ebcf7d6238cf8ad89f49;
+ sha256 = "0mn4yqnb5prqhrbbybmw1i2rx7xf4s4wagbdq9qi55fa0vk3jgw9";
+ };
+ };
+ };
+ };
+ noDev = true;
+ doRemoveVendor = false;
+ # Beware when upgrading, I probably messed up with the migrations table
+ # (due to a psql bug in wallabag)
+ version = "2.3.6";
+ name = "wallabag-${version}";
+ src = fetchurl {
+ url = "https://static.wallabag.org/releases/wallabag-release-${version}.tar.gz";
+ sha256 = "0m0dy3r94ks5pfxyb9vbgrsm0vrwdl3jd5wqwg4f5vd107lq90q1";
+ };
+ unpackPhase = ''
+ unpackFile "$src"
+ sourceRoot=${version}
+ src=$PWD/${version}
+ '';
+ patches = lib.optionals ldap [ ./ldap.patch ];
+ preInstall = ''
+ export SYMFONY_ENV="prod"
+ '';
+ postInstall = ''
+ rm -rf web/assets var/{cache,logs,sessions} app/config/parameters.yml data
+ ln -sf ${wallabag_config} app/config/parameters.yml
+ ln -sf ${varDir}/var/{cache,logs,sessions} var
+ ln -sf ${varDir}/data data
+ ln -sf ${varDir}/assets web/assets
+ '';
+}
--- /dev/null
+diff --git a/.travis.yml b/.travis.yml
+index 04cea258..56b1f576 100644
+--- a/.travis.yml
++++ b/.travis.yml
+@@ -58,6 +58,7 @@ install:
+
+ before_script:
+ - PHP=$TRAVIS_PHP_VERSION
++ - echo "extension=ldap.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini
+ - if [[ ! $PHP = hhvm* ]]; then echo "memory_limit=-1" >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini; fi;
+ # xdebug isn't enable for PHP 7.1
+ - if [[ ! $PHP = hhvm* ]]; then phpenv config-rm xdebug.ini || echo "xdebug not available"; fi
+diff --git a/app/AppKernel.php b/app/AppKernel.php
+index 40726f05..c4f465dc 100644
+--- a/app/AppKernel.php
++++ b/app/AppKernel.php
+@@ -42,6 +42,10 @@ class AppKernel extends Kernel
+ new OldSound\RabbitMqBundle\OldSoundRabbitMqBundle(),
+ ];
+
++ if (class_exists('FR3D\\LdapBundle\\FR3DLdapBundle')) {
++ $bundles[] = new FR3D\LdapBundle\FR3DLdapBundle();
++ }
++
+ if (in_array($this->getEnvironment(), ['dev', 'test'], true)) {
+ $bundles[] = new Symfony\Bundle\DebugBundle\DebugBundle();
+ $bundles[] = new Symfony\Bundle\WebProfilerBundle\WebProfilerBundle();
+diff --git a/app/DoctrineMigrations/Version20170710113900.php b/app/DoctrineMigrations/Version20170710113900.php
+new file mode 100644
+index 00000000..7be83110
+--- /dev/null
++++ b/app/DoctrineMigrations/Version20170710113900.php
+@@ -0,0 +1,54 @@
++<?php
++
++namespace Application\Migrations;
++
++use Doctrine\DBAL\Migrations\AbstractMigration;
++use Doctrine\DBAL\Schema\Schema;
++use Symfony\Component\DependencyInjection\ContainerAwareInterface;
++use Symfony\Component\DependencyInjection\ContainerInterface;
++
++/**
++ * Added dn field on wallabag_users
++ */
++class Version20170710113900 extends AbstractMigration implements ContainerAwareInterface
++{
++ /**
++ * @var ContainerInterface
++ */
++ private $container;
++
++ public function setContainer(ContainerInterface $container = null)
++ {
++ $this->container = $container;
++ }
++
++ private function getTable($tableName)
++ {
++ return $this->container->getParameter('database_table_prefix').$tableName;
++ }
++
++ /**
++ * @param Schema $schema
++ */
++ public function up(Schema $schema)
++ {
++ $usersTable = $schema->getTable($this->getTable('user'));
++
++ $this->skipIf($usersTable->hasColumn('dn'), 'It seems that you already played this migration.');
++
++ $usersTable->addColumn('dn', 'text', [
++ 'default' => null,
++ 'notnull' => false,
++ ]);
++ }
++
++ /**
++ * @param Schema $schema
++ */
++ public function down(Schema $schema)
++ {
++ $usersTable = $schema->getTable($this->getTable('user'));
++ $usersTable->dropColumn('dn');
++ }
++}
++
+diff --git a/app/config/parameters.yml.dist b/app/config/parameters.yml.dist
+index 6b0cb8e8..cfd41b69 100644
+--- a/app/config/parameters.yml.dist
++++ b/app/config/parameters.yml.dist
+@@ -62,3 +62,23 @@ parameters:
+ redis_port: 6379
+ redis_path: null
+ redis_password: null
++
++ # ldap configuration
++ # To enable, you need to require fr3d/ldap-bundle
++ ldap_enabled: false
++ ldap_host: localhost
++ ldap_port: 389
++ ldap_tls: false
++ ldap_ssl: false
++ ldap_bind_requires_dn: true
++ ldap_base: dc=example,dc=com
++ ldap_manager_dn: ou=Manager,dc=example,dc=com
++ ldap_manager_pw: password
++ ldap_filter: (&(ObjectClass=Person))
++ # optional (if null: no ldap user is admin)
++ ldap_admin_filter: (&(memberOf=ou=admins,dc=example,dc=com)(uid=%s))
++ ldap_username_attribute: uid
++ ldap_email_attribute: mail
++ ldap_name_attribute: cn
++ # optional (default sets user as enabled unconditionally)
++ ldap_enabled_attribute: ~
+diff --git a/app/config/security.yml b/app/config/security.yml
+index 02afc9ea..48fbb553 100644
+--- a/app/config/security.yml
++++ b/app/config/security.yml
+@@ -6,6 +6,7 @@ security:
+ ROLE_ADMIN: ROLE_USER
+ ROLE_SUPER_ADMIN: [ ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH ]
+
++ # /!\ This list is modified in WallabagUserBundle when LDAP is enabled
+ providers:
+ administrators:
+ entity:
+@@ -36,6 +37,7 @@ security:
+ pattern: ^/login$
+ anonymous: ~
+
++ # /!\ This section is modified in WallabagUserBundle when LDAP is enabled
+ secured_area:
+ pattern: ^/
+ form_login:
+diff --git a/composer.json b/composer.json
+index 68cfad05..32a3d1a4 100644
+--- a/composer.json
++++ b/composer.json
+@@ -85,7 +85,11 @@
+ "friendsofsymfony/jsrouting-bundle": "^1.6.3",
+ "bdunogier/guzzle-site-authenticator": "^1.0.0",
+ "defuse/php-encryption": "^2.1",
+- "html2text/html2text": "^4.1"
++ "html2text/html2text": "^4.1",
++ "fr3d/ldap-bundle": "^3.0"
++ },
++ "suggest": {
++ "fr3d/ldap-bundle": "If you want to authenticate via LDAP"
+ },
+ "require-dev": {
+ "doctrine/doctrine-fixtures-bundle": "~2.2",
+diff --git a/composer.lock b/composer.lock
+index 251ee081..37795e0b 100644
+--- a/composer.lock
++++ b/composer.lock
+@@ -4,7 +4,7 @@
+ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
+ "This file is @generated automatically"
+ ],
+- "content-hash": "d2a0bd8408dccdeb7a7455996519829b",
++ "content-hash": "4699d166d03a8e5f70d802d0bc3e6a20",
+ "packages": [
+ {
+ "name": "bdunogier/guzzle-site-authenticator",
+@@ -1346,6 +1346,65 @@
+ ],
+ "time": "2018-12-14T19:44:53+00:00"
+ },
++ {
++ "name": "fr3d/ldap-bundle",
++ "version": "v3.0.0",
++ "source": {
++ "type": "git",
++ "url": "https://github.com/Maks3w/FR3DLdapBundle.git",
++ "reference": "5a8927c11af45fa06331b97221c6da1a4a237475"
++ },
++ "dist": {
++ "type": "zip",
++ "url": "https://api.github.com/repos/Maks3w/FR3DLdapBundle/zipball/5a8927c11af45fa06331b97221c6da1a4a237475",
++ "reference": "5a8927c11af45fa06331b97221c6da1a4a237475",
++ "shasum": ""
++ },
++ "require": {
++ "php": ">=5.5",
++ "psr/log": "~1.0",
++ "symfony/config": "2.3 - 3",
++ "symfony/dependency-injection": "2.3 - 3",
++ "symfony/polyfill-php56": "^1.1",
++ "symfony/security": "2.3 - 3",
++ "symfony/security-bundle": "2.3 - 3",
++ "zendframework/zend-ldap": "2.5 - 3"
++ },
++ "require-dev": {
++ "fabpot/php-cs-fixer": "1.11.*",
++ "fr3d/psr3-message-assertions": "0.1.*",
++ "friendsofsymfony/user-bundle": "~1.3",
++ "maks3w/phpunit-methods-trait": "^4.6",
++ "phpunit/phpunit": "^4.6",
++ "symfony/validator": "2.3 - 3"
++ },
++ "suggest": {
++ "friendsofsymfony/user-bundle": "Integrate authentication and management for DB users, useful for unmanned LDAP servers",
++ "symfony/validator": "Allow pre-validate for existing users before register new ones"
++ },
++ "type": "symfony-bundle",
++ "autoload": {
++ "psr-4": {
++ "FR3D\\LdapBundle\\": ""
++ }
++ },
++ "notification-url": "https://packagist.org/downloads/",
++ "license": [
++ "MIT"
++ ],
++ "authors": [
++ {
++ "name": "Maks3w"
++ }
++ ],
++ "description": "This package provide users and authentication services based on LDAP directories for Symfony2 framework",
++ "homepage": "https://github.com/Maks3w/FR3DLdapBundle",
++ "keywords": [
++ "Authentication",
++ "ldap"
++ ],
++ "time": "2016-02-12T17:45:14+00:00"
++ },
+ {
+ "name": "friendsofsymfony/jsrouting-bundle",
+ "version": "1.6.3",
+@@ -7027,6 +7086,59 @@
+ "zf2"
+ ],
+ "time": "2018-04-25T15:33:34+00:00"
++ },
++ {
++ "name": "zendframework/zend-ldap",
++ "version": "2.10.0",
++ "source": {
++ "type": "git",
++ "url": "https://github.com/zendframework/zend-ldap.git",
++ "reference": "b63c7884a08d3a6bda60ebcf7d6238cf8ad89f49"
++ },
++ "dist": {
++ "type": "zip",
++ "url": "https://api.github.com/repos/zendframework/zend-ldap/zipball/b63c7884a08d3a6bda60ebcf7d6238cf8ad89f49",
++ "reference": "b63c7884a08d3a6bda60ebcf7d6238cf8ad89f49",
++ "shasum": ""
++ },
++ "require": {
++ "ext-ldap": "*",
++ "php": "^5.6 || ^7.0"
++ },
++ "require-dev": {
++ "php-mock/php-mock-phpunit": "^1.1.2 || ^2.1.1",
++ "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.2",
++ "zendframework/zend-coding-standard": "~1.0.0",
++ "zendframework/zend-config": "^2.5",
++ "zendframework/zend-eventmanager": "^2.6.3 || ^3.0.1",
++ "zendframework/zend-stdlib": "^2.7 || ^3.0"
++ },
++ "suggest": {
++ "zendframework/zend-eventmanager": "Zend\\EventManager component"
++ },
++ "type": "library",
++ "extra": {
++ "branch-alias": {
++ "dev-master": "2.10.x-dev",
++ "dev-develop": "2.11.x-dev"
++ }
++ },
++ "autoload": {
++ "psr-4": {
++ "Zend\\Ldap\\": "src/"
++ }
++ },
++ "notification-url": "https://packagist.org/downloads/",
++ "license": [
++ "BSD-3-Clause"
++ ],
++ "description": "Provides support for LDAP operations including but not limited to binding, searching and modifying entries in an LDAP directory",
++ "keywords": [
++ "ZendFramework",
++ "ldap",
++ "zf"
++ ],
++ "time": "2018-07-05T05:05:12+00:00"
+ }
+ ],
+ "packages-dev": [
+@@ -7561,12 +7673,12 @@
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/phpunit-bridge.git",
+- "reference": "5dab0d4b2ac99ab22b447b615fdfdc10ec4af3d5"
++ "reference": "d61ec438634e0f234c6bda1c6ee97016bbb0e7a1"
+ },
+ "dist": {
+ "type": "zip",
+- "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/5dab0d4b2ac99ab22b447b615fdfdc10ec4af3d5",
+- "reference": "5dab0d4b2ac99ab22b447b615fdfdc10ec4af3d5",
++ "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/d61ec438634e0f234c6bda1c6ee97016bbb0e7a1",
++ "reference": "d61ec438634e0f234c6bda1c6ee97016bbb0e7a1",
+ "shasum": ""
+ },
+ "require": {
+@@ -7619,7 +7731,7 @@
+ ],
+ "description": "Symfony PHPUnit Bridge",
+ "homepage": "https://symfony.com",
+- "time": "2019-01-01T13:45:19+00:00"
++ "time": "2019-01-16T13:27:11+00:00"
+ },
+ {
+ "name": "symfony/polyfill-php72",
+diff --git a/scripts/install.sh b/scripts/install.sh
+index 8b7ea03f..3a4a33ab 100755
+--- a/scripts/install.sh
++++ b/scripts/install.sh
+@@ -26,5 +26,8 @@ ENV=$1
+ TAG=$(git describe --tags $(git rev-list --tags --max-count=1))
+
+ git checkout $TAG
++if [ -n "$LDAP_ENABLED" ]; then
++ SYMFONY_ENV=$ENV $COMPOSER_COMMAND require --no-update fr3d/ldap-bundle
++fi
+ SYMFONY_ENV=$ENV $COMPOSER_COMMAND install --no-dev -o --prefer-dist
+ php bin/console wallabag:install --env=$ENV
+diff --git a/scripts/update.sh b/scripts/update.sh
+index c62d104a..6259a431 100755
+--- a/scripts/update.sh
++++ b/scripts/update.sh
+@@ -32,6 +32,9 @@ git fetch origin
+ git fetch --tags
+ TAG=$(git describe --tags $(git rev-list --tags --max-count=1))
+ git checkout $TAG --force
++if [ -n "$LDAP_ENABLED" ]; then
++ SYMFONY_ENV=$ENV $COMPOSER_COMMAND require --no-update fr3d/ldap-bundle
++fi
+ SYMFONY_ENV=$ENV $COMPOSER_COMMAND install --no-dev -o --prefer-dist
+ php bin/console doctrine:migrations:migrate --no-interaction --env=$ENV
+ php bin/console cache:clear --env=$ENV
+diff --git a/src/Wallabag/UserBundle/DependencyInjection/WallabagUserExtension.php b/src/Wallabag/UserBundle/DependencyInjection/WallabagUserExtension.php
+index 5ca3482e..904a6af1 100644
+--- a/src/Wallabag/UserBundle/DependencyInjection/WallabagUserExtension.php
++++ b/src/Wallabag/UserBundle/DependencyInjection/WallabagUserExtension.php
+@@ -6,9 +6,34 @@ use Symfony\Component\Config\FileLocator;
+ use Symfony\Component\DependencyInjection\ContainerBuilder;
+ use Symfony\Component\DependencyInjection\Loader;
+ use Symfony\Component\HttpKernel\DependencyInjection\Extension;
++use Symfony\Component\DependencyInjection\Extension\PrependExtensionInterface;
+
+-class WallabagUserExtension extends Extension
++class WallabagUserExtension extends Extension implements PrependExtensionInterface
+ {
++ public function prepend(ContainerBuilder $container)
++ {
++ $ldap = $container->getParameter('ldap_enabled');
++
++ if ($ldap) {
++ $container->prependExtensionConfig('security', array(
++ 'providers' => array(
++ 'chain_provider' => array(),
++ ),
++ ));
++ $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
++ $loader->load('ldap.yml');
++ } elseif ($container->hasExtension('fr3d_ldap')) {
++ $container->prependExtensionConfig('fr3_d_ldap', array(
++ 'driver' => array(
++ 'host' => 'localhost',
++ ),
++ 'user' => array(
++ 'baseDn' => 'dc=example,dc=com',
++ ),
++ ));
++ }
++ }
++
+ public function load(array $configs, ContainerBuilder $container)
+ {
+ $configuration = new Configuration();
+@@ -16,6 +41,9 @@ class WallabagUserExtension extends Extension
+
+ $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config'));
+ $loader->load('services.yml');
++ if ($container->getParameter('ldap_enabled')) {
++ $loader->load('ldap_services.yml');
++ }
+ $container->setParameter('wallabag_user.registration_enabled', $config['registration_enabled']);
+ }
+
+diff --git a/src/Wallabag/UserBundle/Entity/User.php b/src/Wallabag/UserBundle/Entity/User.php
+index 48446e3c..f93c59c7 100644
+--- a/src/Wallabag/UserBundle/Entity/User.php
++++ b/src/Wallabag/UserBundle/Entity/User.php
+@@ -1,5 +1,15 @@
+ <?php
+
++// This permits to have the LdapUserInterface even when fr3d/ldap-bundle is not
++// in the packages
++namespace FR3D\LdapBundle\Model;
++
++interface LdapUserInterface
++{
++ public function setDn($dn);
++ public function getDn();
++}
++
+ namespace Wallabag\UserBundle\Entity;
+
+ use Doctrine\Common\Collections\ArrayCollection;
+@@ -16,6 +26,7 @@ use Wallabag\ApiBundle\Entity\Client;
+ use Wallabag\CoreBundle\Entity\Config;
+ use Wallabag\CoreBundle\Entity\Entry;
+ use Wallabag\CoreBundle\Helper\EntityTimestampsTrait;
++use FR3D\LdapBundle\Model\LdapUserInterface;
+
+ /**
+ * User.
+@@ -28,7 +39,7 @@ use Wallabag\CoreBundle\Helper\EntityTimestampsTrait;
+ * @UniqueEntity("email")
+ * @UniqueEntity("username")
+ */
+-class User extends BaseUser implements TwoFactorInterface, TrustedComputerInterface
++class User extends BaseUser implements TwoFactorInterface, TrustedComputerInterface, LdapUserInterface
+ {
+ use EntityTimestampsTrait;
+
+@@ -67,6 +78,13 @@ class User extends BaseUser implements TwoFactorInterface, TrustedComputerInterf
+ */
+ protected $email;
+
++ /**
++ * @var string
++ *
++ * @ORM\Column(name="dn", type="text", nullable=true)
++ */
++ protected $dn;
++
+ /**
+ * @var \DateTime
+ *
+@@ -309,4 +327,33 @@ class User extends BaseUser implements TwoFactorInterface, TrustedComputerInterf
+ return $this->clients->first();
+ }
+ }
++
++ /**
++ * Set dn.
++ *
++ * @param string $dn
++ *
++ * @return User
++ */
++ public function setDn($dn)
++ {
++ $this->dn = $dn;
++
++ return $this;
++ }
++
++ /**
++ * Get dn.
++ *
++ * @return string
++ */
++ public function getDn()
++ {
++ return $this->dn;
++ }
++
++ public function isLdapUser()
++ {
++ return $this->dn !== null;
++ }
+ }
+diff --git a/src/Wallabag/UserBundle/LdapHydrator.php b/src/Wallabag/UserBundle/LdapHydrator.php
+new file mode 100644
+index 00000000..cea2450f
+--- /dev/null
++++ b/src/Wallabag/UserBundle/LdapHydrator.php
+@@ -0,0 +1,103 @@
++<?php
++
++namespace Wallabag\UserBundle;
++
++use FR3D\LdapBundle\Hydrator\HydratorInterface;
++use FOS\UserBundle\FOSUserEvents;
++use FOS\UserBundle\Event\UserEvent;
++
++class LdapHydrator implements HydratorInterface
++{
++ private $userManager;
++ private $eventDispatcher;
++ private $attributesMap;
++ private $enabledAttribute;
++ private $ldapBaseDn;
++ private $ldapAdminFilter;
++ private $ldapDriver;
++
++ public function __construct(
++ $user_manager,
++ $event_dispatcher,
++ array $attributes_map,
++ $ldap_base_dn,
++ $ldap_admin_filter,
++ $ldap_driver
++ ) {
++ $this->userManager = $user_manager;
++ $this->eventDispatcher = $event_dispatcher;
++
++ $this->attributesMap = array(
++ 'setUsername' => $attributes_map[0],
++ 'setEmail' => $attributes_map[1],
++ 'setName' => $attributes_map[2],
++ );
++ $this->enabledAttribute = $attributes_map[3];
++
++ $this->ldapBaseDn = $ldap_base_dn;
++ $this->ldapAdminFilter = $ldap_admin_filter;
++ $this->ldapDriver = $ldap_driver;
++ }
++
++ public function hydrate(array $ldapEntry)
++ {
++ $user = $this->userManager->findUserBy(array('dn' => $ldapEntry['dn']));
++
++ if (!$user) {
++ $user = $this->userManager->createUser();
++ $user->setDn($ldapEntry['dn']);
++ $user->setPassword('');
++ $user->setSalt('');
++ $this->updateUserFields($user, $ldapEntry);
++
++ $event = new UserEvent($user);
++ $this->eventDispatcher->dispatch(FOSUserEvents::USER_CREATED, $event);
++
++ $this->userManager->reloadUser($user);
++ } else {
++ $this->updateUserFields($user, $ldapEntry);
++ }
++
++ return $user;
++ }
++
++ private function updateUserFields($user, $ldapEntry)
++ {
++ foreach ($this->attributesMap as $key => $value) {
++ if (is_array($ldapEntry[$value])) {
++ $ldap_value = $ldapEntry[$value][0];
++ } else {
++ $ldap_value = $ldapEntry[$value];
++ }
++
++ call_user_func([$user, $key], $ldap_value);
++ }
++
++ if ($this->enabledAttribute !== null) {
++ $user->setEnabled($ldapEntry[$this->enabledAttribute]);
++ } else {
++ $user->setEnabled(true);
++ }
++
++ if ($this->isAdmin($user)) {
++ $user->addRole('ROLE_SUPER_ADMIN');
++ } else {
++ $user->removeRole('ROLE_SUPER_ADMIN');
++ }
++
++ $this->userManager->updateUser($user, true);
++ }
++
++ private function isAdmin($user)
++ {
++ if ($this->ldapAdminFilter === null) {
++ return false;
++ }
++
++ $escaped_username = ldap_escape($user->getUsername(), '', LDAP_ESCAPE_FILTER);
++ $filter = sprintf($this->ldapAdminFilter, $escaped_username);
++ $entries = $this->ldapDriver->search($this->ldapBaseDn, $filter);
++
++ return $entries['count'] == 1;
++ }
++}
+diff --git a/src/Wallabag/UserBundle/OAuthStorageLdapWrapper.php b/src/Wallabag/UserBundle/OAuthStorageLdapWrapper.php
+new file mode 100644
+index 00000000..8a851f12
+--- /dev/null
++++ b/src/Wallabag/UserBundle/OAuthStorageLdapWrapper.php
+@@ -0,0 +1,43 @@
++<?php
++
++namespace Wallabag\UserBundle;
++
++use FOS\OAuthServerBundle\Storage\OAuthStorage;
++use OAuth2\Model\IOAuth2Client;
++use Symfony\Component\Security\Core\Exception\AuthenticationException;
++
++class OAuthStorageLdapWrapper extends OAuthStorage
++{
++ private $ldapManager;
++
++ public function setLdapManager($ldap_manager)
++ {
++ $this->ldapManager = $ldap_manager;
++ }
++
++ public function checkUserCredentials(IOAuth2Client $client, $username, $password)
++ {
++ try {
++ $user = $this->userProvider->loadUserByUsername($username);
++ } catch (AuthenticationException $e) {
++ return false;
++ }
++
++ if ($user->isLdapUser()) {
++ return $this->checkLdapUserCredentials($user, $password);
++ } else {
++ return parent::checkUserCredentials($client, $username, $password);
++ }
++ }
++
++ private function checkLdapUserCredentials($user, $password)
++ {
++ if ($this->ldapManager->bind($user, $password)) {
++ return array(
++ 'data' => $user,
++ );
++ } else {
++ return false;
++ }
++ }
++}
+diff --git a/src/Wallabag/UserBundle/Resources/config/ldap.yml b/src/Wallabag/UserBundle/Resources/config/ldap.yml
+new file mode 100644
+index 00000000..5ec16088
+--- /dev/null
++++ b/src/Wallabag/UserBundle/Resources/config/ldap.yml
+@@ -0,0 +1,28 @@
++fr3d_ldap:
++ service:
++ user_hydrator: ldap_user_hydrator
++ driver:
++ host: "%ldap_host%"
++ port: "%ldap_port%"
++ useSsl: "%ldap_ssl%"
++ useStartTls: "%ldap_tls%"
++ bindRequiresDn: "%ldap_bind_requires_dn%"
++ username: "%ldap_manager_dn%"
++ password: "%ldap_manager_pw%"
++ user:
++ baseDn: "%ldap_base%"
++ filter: "%ldap_filter%"
++ usernameAttribute: "%ldap_username_attribute%"
++security:
++ providers:
++ chain_provider:
++ chain:
++ providers: [ fr3d_ldapbundle, fos_userbundle ]
++ fr3d_ldapbundle:
++ id: fr3d_ldap.security.user.provider
++ firewalls:
++ secured_area:
++ fr3d_ldap: ~
++ form_login:
++ provider: chain_provider
++
+diff --git a/src/Wallabag/UserBundle/Resources/config/ldap_services.yml b/src/Wallabag/UserBundle/Resources/config/ldap_services.yml
+new file mode 100644
+index 00000000..b3e3fd8a
+--- /dev/null
++++ b/src/Wallabag/UserBundle/Resources/config/ldap_services.yml
+@@ -0,0 +1,22 @@
++services:
++ fos_oauth_server.server:
++ class: OAuth2\OAuth2
++ arguments:
++ - "@oauth_storage_ldap_wrapper"
++ - "%fos_oauth_server.server.options%"
++ oauth_storage_ldap_wrapper:
++ class: Wallabag\UserBundle\OAuthStorageLdapWrapper
++ parent: fos_oauth_server.storage
++ calls:
++ - [setLdapManager, ["@fr3d_ldap.ldap_manager"]]
++
++ ldap_user_hydrator:
++ class: Wallabag\UserBundle\LdapHydrator
++ arguments:
++ - "@fos_user.user_manager"
++ - "@event_dispatcher"
++ - [ "%ldap_username_attribute%", "%ldap_email_attribute%", "%ldap_name_attribute%", "%ldap_enabled_attribute%" ]
++ - "%ldap_base%"
++ - "%ldap_admin_filter%"
++ - "@fr3d_ldap.ldap_driver"
++
--- /dev/null
+{ yourls_config ? "/etc/yourls/config.php", mylibs, stdenv }:
+let
+ withPlugins = plugins: package.overrideAttrs(old: {
+ name = "${old.name}-with-plugins";
+ installPhase = old.installPhase +
+ builtins.concatStringsSep "\n" (
+ map (value: "ln -s ${value} $out/user/plugins/${value.pluginName}") plugins
+ );
+ passthru = old.passthru // {
+ inherit plugins;
+ withPlugins = morePlugins: old.withPlugins (morePlugins ++ plugins);
+ };
+ });
+ package = stdenv.mkDerivation (mylibs.fetchedGithub ./yourls.json // rec {
+ installPhase = ''
+ mkdir -p $out
+ cp -a */ *.php $out/
+ cp sample-robots.txt $out/robots.txt
+ ln -sf ${yourls_config} $out/includes/config.php
+ '';
+ passthru = {
+ plugins = [];
+ inherit withPlugins;
+ };
+ });
+in package
--- /dev/null
+{ stdenv, mylibs }:
+stdenv.mkDerivation (mylibs.fetchedGithub ./ldap.json // rec {
+ installPhase = ''
+ mkdir -p $out
+ cp plugin.php $out
+ '';
+ passthru.pluginName = "ldap";
+})
--- /dev/null
+{
+ "tag": "2a3cb03-master",
+ "meta": {
+ "name": "yourls-ldap-plugin",
+ "url": "https://github.com/k3a/yourls-ldap-plugin",
+ "branch": "master"
+ },
+ "github": {
+ "owner": "k3a",
+ "repo": "yourls-ldap-plugin",
+ "rev": "2a3cb0334b8a6b81b284a7196e614bbd2b2b1615",
+ "sha256": "0cchbnli77d295lzf7kjmn4dcxj2bmdqa9qc3f8l8qgmp4n5n0gh",
+ "fetchSubmodules": true
+ }
+}
--- /dev/null
+{
+ "tag": "1.7.3",
+ "meta": {
+ "name": "yourls",
+ "url": "https://github.com/YOURLS/YOURLS",
+ "branch": "refs/tags/1.7.3"
+ },
+ "github": {
+ "owner": "YOURLS",
+ "repo": "YOURLS",
+ "rev": "077018822d3594229daa8343310d0b40804b9ddc",
+ "sha256": "1av6h619rwqn0yn0kjn2s2h3gmrhmxaaa9hd5ns4ralxgg731imd",
+ "fetchSubmodules": true
+ }
+}
--- /dev/null
+#!/bin/bash
+
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
+
+source $(dirname $DIR)/nix_path_env
+nix-env -r -i -A myEnvironments.immae-eu -f "<nixpkgs>" "$@"
+
+cat >> $(dirname $DIR)/versions_log <<EOF
+# Ran $(date) with args "$@"
+$($DIR/nix_infos | sed -e "s/^/# /")
+EOF
--- /dev/null
+#!/bin/bash
+
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
+
+source $(dirname $DIR)/nix_path_env
+version=$(nix eval --raw nixpkgs.lib.version)
+mainversion=$(echo $version | cut -d"." -f -2)
+
+echo "https://releases.nixos.org/nixos/$mainversion/nixos-$version/nixexprs.tar.xz"
+nix eval --raw nixpkgs.bc.meta.position | cut -d"/" -f-4