From 1dec73cfa93cb2f93eab3d02c105201674128137 Mon Sep 17 00:00:00 2001 From: Mehmet Samet Duman Date: Sat, 4 Apr 2026 23:51:10 +0300 Subject: NOISSUE add ofborg-viewer (tickborg-viewer) in tickborg Signed-off-by: Mehmet Samet Duman --- ofborg/ofborg-viewer/.eslintrc.js | 290 ++ ofborg/ofborg-viewer/.gitignore | 5 + ofborg/ofborg-viewer/.ignore | 7 + ofborg/ofborg-viewer/LICENSE | 21 + ofborg/ofborg-viewer/README.md | 29 + ofborg/ofborg-viewer/bin/bump-version | 38 + ofborg/ofborg-viewer/bin/eslint | 9 + ofborg/ofborg-viewer/bin/webpack | 9 + ofborg/ofborg-viewer/bin/webpack-dev-server | 9 + ofborg/ofborg-viewer/bin/yarn2nix-update.sh | 24 + ofborg/ofborg-viewer/build.js | 72 + ofborg/ofborg-viewer/default.nix | 14 + ofborg/ofborg-viewer/package-lock.json | 924 ++++ ofborg/ofborg-viewer/package.json | 19 + ofborg/ofborg-viewer/release.nix | 34 + ofborg/ofborg-viewer/src/app.html | 22 + ofborg/ofborg-viewer/src/app.js | 201 + ofborg/ofborg-viewer/src/backlog.js | 8 + ofborg/ofborg-viewer/src/config.js | 9 + ofborg/ofborg-viewer/src/gui/index.js | 158 + ofborg/ofborg-viewer/src/gui/log.js | 162 + ofborg/ofborg-viewer/src/index.js | 40 + ofborg/ofborg-viewer/src/lib/bsod.js | 16 + ofborg/ofborg-viewer/src/lib/html.js | 11 + ofborg/ofborg-viewer/src/lib/ready.js | 12 + ofborg/ofborg-viewer/src/listener.js | 90 + ofborg/ofborg-viewer/src/mixins/eventable.js | 48 + ofborg/ofborg-viewer/src/state.js | 59 + ofborg/ofborg-viewer/src/styles/index.less | 233 + ofborg/ofborg-viewer/webpack.config.js | 43 + ofborg/ofborg-viewer/webpack/revision.js | 39 + ofborg/ofborg-viewer/yarn.nix | 6782 ++++++++++++++++++++++++++ ofborg/ofborg-viewer/yarn2nix.json | 7 + 33 files changed, 9444 insertions(+) create mode 100644 ofborg/ofborg-viewer/.eslintrc.js create mode 100644 ofborg/ofborg-viewer/.gitignore create mode 100644 ofborg/ofborg-viewer/.ignore create mode 100644 ofborg/ofborg-viewer/LICENSE create mode 100644 ofborg/ofborg-viewer/README.md create mode 100755 ofborg/ofborg-viewer/bin/bump-version create mode 100755 ofborg/ofborg-viewer/bin/eslint create mode 100755 ofborg/ofborg-viewer/bin/webpack create mode 100755 ofborg/ofborg-viewer/bin/webpack-dev-server create mode 100755 ofborg/ofborg-viewer/bin/yarn2nix-update.sh create mode 100644 ofborg/ofborg-viewer/build.js create mode 100644 ofborg/ofborg-viewer/default.nix create mode 100644 ofborg/ofborg-viewer/package-lock.json create mode 100644 ofborg/ofborg-viewer/package.json create mode 100644 ofborg/ofborg-viewer/release.nix create mode 100644 ofborg/ofborg-viewer/src/app.html create mode 100644 ofborg/ofborg-viewer/src/app.js create mode 100644 ofborg/ofborg-viewer/src/backlog.js create mode 100644 ofborg/ofborg-viewer/src/config.js create mode 100644 ofborg/ofborg-viewer/src/gui/index.js create mode 100644 ofborg/ofborg-viewer/src/gui/log.js create mode 100644 ofborg/ofborg-viewer/src/index.js create mode 100644 ofborg/ofborg-viewer/src/lib/bsod.js create mode 100644 ofborg/ofborg-viewer/src/lib/html.js create mode 100644 ofborg/ofborg-viewer/src/lib/ready.js create mode 100644 ofborg/ofborg-viewer/src/listener.js create mode 100644 ofborg/ofborg-viewer/src/mixins/eventable.js create mode 100644 ofborg/ofborg-viewer/src/state.js create mode 100644 ofborg/ofborg-viewer/src/styles/index.less create mode 100644 ofborg/ofborg-viewer/webpack.config.js create mode 100644 ofborg/ofborg-viewer/webpack/revision.js create mode 100644 ofborg/ofborg-viewer/yarn.nix create mode 100644 ofborg/ofborg-viewer/yarn2nix.json diff --git a/ofborg/ofborg-viewer/.eslintrc.js b/ofborg/ofborg-viewer/.eslintrc.js new file mode 100644 index 0000000000..f9a1078cb7 --- /dev/null +++ b/ofborg/ofborg-viewer/.eslintrc.js @@ -0,0 +1,290 @@ +module.exports = { + "env": { + "browser": true, + "es6": true + }, + "extends": "eslint:recommended", + "parserOptions": { + "sourceType": "module" + }, + "rules": { + "accessor-pairs": "error", + "array-bracket-newline": "error", + "array-bracket-spacing": "error", + "array-callback-return": "error", + "array-element-newline": "error", + "arrow-body-style": "error", + "arrow-parens": [ + "error", + "always" + ], + "arrow-spacing": [ + "error", + { + "after": true, + "before": true + } + ], + "block-scoped-var": "error", + "block-spacing": "error", + "brace-style": "off", + "callback-return": "error", + "camelcase": "off", + "capitalized-comments": "off", + "class-methods-use-this": "error", + "comma-dangle": "off", + "comma-spacing": [ + "error", + { + "after": true, + "before": false + } + ], + "comma-style": [ + "error", + "last" + ], + "complexity": "error", + "computed-property-spacing": [ + "error", + "never" + ], + "consistent-return": "off", + "consistent-this": "error", + "curly": "error", + "default-case": "error", + "dot-location": "off", + "dot-notation": "off", + "eol-last": "error", + "eqeqeq": "error", + "for-direction": "error", + "func-call-spacing": "error", + "func-name-matching": "error", + "func-style": "off", + "function-paren-newline": "off", + "generator-star-spacing": "error", + "getter-return": "error", + "global-require": "error", + "guard-for-in": "error", + "handle-callback-err": "error", + "id-blacklist": "error", + "id-length": "off", + "id-match": "error", + "implicit-arrow-linebreak": [ + "error", + "beside" + ], + "indent": ["error", "tab"], + "indent-legacy": "off", + "init-declarations": "error", + "jsx-quotes": "error", + "key-spacing": "error", + "keyword-spacing": "off", + "line-comment-position": "error", + "linebreak-style": [ + "error", + "unix" + ], + "lines-around-comment": "error", + "lines-around-directive": "error", + "lines-between-class-members": [ + "error", + "always" + ], + "max-depth": "error", + "max-len": "off", + "max-lines": "error", + "max-nested-callbacks": "error", + "max-params": "error", + "max-statements": "off", + "max-statements-per-line": "error", + "multiline-comment-style": [ + "error", + "separate-lines" + ], + "new-cap": "error", + "new-parens": "error", + "newline-after-var": "off", + "newline-before-return": "off", + "newline-per-chained-call": "error", + "no-alert": "error", + "no-array-constructor": "error", + "no-await-in-loop": "error", + "no-bitwise": "error", + "no-buffer-constructor": "error", + "no-caller": "error", + "no-catch-shadow": "error", + "no-confusing-arrow": "error", + "no-continue": "error", + "no-div-regex": "error", + "no-duplicate-imports": "error", + "no-else-return": "error", + "no-empty-function": "error", + "no-eq-null": "error", + "no-eval": "error", + "no-extend-native": "error", + "no-extra-bind": "error", + "no-extra-label": "error", + "no-extra-parens": "error", + "no-floating-decimal": "error", + "no-implicit-globals": "error", + "no-implied-eval": "error", + "no-inline-comments": "error", + "no-inner-declarations": [ + "error", + "functions" + ], + "no-invalid-this": "error", + "no-iterator": "error", + "no-label-var": "error", + "no-labels": "error", + "no-lone-blocks": "error", + "no-lonely-if": "error", + "no-loop-func": "error", + "no-magic-numbers": "off", + "no-mixed-operators": "error", + "no-mixed-requires": "error", + "no-multi-assign": "error", + "no-multi-spaces": "error", + "no-multi-str": "error", + "no-multiple-empty-lines": "error", + "no-native-reassign": "error", + "no-negated-condition": "error", + "no-negated-in-lhs": "error", + "no-nested-ternary": "error", + "no-new": "error", + "no-new-func": "error", + "no-new-object": "error", + "no-new-require": "error", + "no-new-wrappers": "error", + "no-octal-escape": "error", + "no-param-reassign": "error", + "no-path-concat": "error", + "no-plusplus": [ + "error", + { + "allowForLoopAfterthoughts": true + } + ], + "no-process-env": "error", + "no-process-exit": "error", + "no-proto": "error", + "no-prototype-builtins": "error", + "no-restricted-globals": "error", + "no-restricted-imports": "error", + "no-restricted-modules": "error", + "no-restricted-properties": "error", + "no-restricted-syntax": "error", + "no-return-assign": "error", + "no-return-await": "error", + "no-script-url": "error", + "no-self-compare": "error", + "no-sequences": "error", + "no-shadow": "error", + "no-shadow-restricted-names": "error", + "no-spaced-func": "error", + "no-sync": "error", + "no-tabs": "off", + "no-template-curly-in-string": "error", + "no-ternary": "off", + "no-throw-literal": "error", + "no-undef-init": "error", + "no-undefined": "error", + "no-underscore-dangle": "error", + "no-unmodified-loop-condition": "error", + "no-unneeded-ternary": "error", + "no-unused-expressions": "error", + "no-use-before-define": "error", + "no-useless-call": "error", + "no-useless-computed-key": "error", + "no-useless-concat": "error", + "no-useless-constructor": "error", + "no-useless-rename": "error", + "no-useless-return": "error", + "no-var": "off", + "no-void": "error", + "no-warning-comments": "warn", + "no-whitespace-before-property": "error", + "no-with": "error", + "nonblock-statement-body-position": "error", + "object-curly-newline": "error", + "object-curly-spacing": [ + "error", + "never" + ], + "object-property-newline": "error", + "object-shorthand": "error", + "one-var": "off", + "one-var-declaration-per-line": "error", + "operator-assignment": [ + "error", + "always" + ], + "operator-linebreak": "error", + "padded-blocks": "off", + "padding-line-between-statements": "error", + "prefer-arrow-callback": "error", + "prefer-const": "error", + "prefer-destructuring": "off", + "prefer-numeric-literals": "error", + "prefer-promise-reject-errors": "error", + "prefer-reflect": "error", + "prefer-rest-params": "error", + "prefer-spread": "error", + "prefer-template": "off", + "quote-props": "off", + "quotes": "off", + "radix": "error", + "require-await": "error", + "require-jsdoc": "off", + "rest-spread-spacing": [ + "error", + "never" + ], + "semi": ["error"], + "semi-spacing": [ + "error", + { + "after": false, + "before": false + } + ], + "semi-style": "off", + "sort-imports": "off", + "sort-keys": "off", + "sort-vars": "error", + "space-before-blocks": "off", + "space-before-function-paren": "off", + "space-in-parens": [ + "error", + "never" + ], + "space-infix-ops": "off", + "space-unary-ops": "error", + "spaced-comment": [ + "error", + "always" + ], + "strict": "error", + "switch-colon-spacing": "error", + "symbol-description": "error", + "template-curly-spacing": [ + "error", + "never" + ], + "template-tag-spacing": "error", + "unicode-bom": [ + "error", + "never" + ], + "valid-jsdoc": "off", + "vars-on-top": "off", + "wrap-iife": "error", + "wrap-regex": "error", + "yield-star-spacing": "error", + "yoda": [ + "error", + "never" + ] + } +}; diff --git a/ofborg/ofborg-viewer/.gitignore b/ofborg/ofborg-viewer/.gitignore new file mode 100644 index 0000000000..c623cc8525 --- /dev/null +++ b/ofborg/ofborg-viewer/.gitignore @@ -0,0 +1,5 @@ +node_modules +dist +build +result +website diff --git a/ofborg/ofborg-viewer/.ignore b/ofborg/ofborg-viewer/.ignore new file mode 100644 index 0000000000..456c68cab0 --- /dev/null +++ b/ofborg/ofborg-viewer/.ignore @@ -0,0 +1,7 @@ +# No need for all those files. +default.nix +package.json +release.nix +yarn.lock +yarn.nix +yarn2nix.json diff --git a/ofborg/ofborg-viewer/LICENSE b/ofborg/ofborg-viewer/LICENSE new file mode 100644 index 0000000000..fad649f1ed --- /dev/null +++ b/ofborg/ofborg-viewer/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 Samuel Dionne-Riel + +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. diff --git a/ofborg/ofborg-viewer/README.md b/ofborg/ofborg-viewer/README.md new file mode 100644 index 0000000000..45eb7b155e --- /dev/null +++ b/ofborg/ofborg-viewer/README.md @@ -0,0 +1,29 @@ +`tickborg-viewer` +=============== + +An as-light-as possible viewer for tickborg build logs. + +Development use +--------------- + +``` + $ nix-shell + $ yarn install + $ bin/webpack-dev-server +``` + +Building (production) +--------------------- + +``` + $ nix-build ./release.nix +``` + +Peculiarities +------------- + +This uses the DOM directly and no fancy virtual dom thing, this anyway +is an append-mostly type thing. + +This uses as few libraries as possible (and sane). Modern JS with ES6 +makes it possible to write lean code when targetting modern browsers. diff --git a/ofborg/ofborg-viewer/bin/bump-version b/ofborg/ofborg-viewer/bin/bump-version new file mode 100755 index 0000000000..3ac6cefc04 --- /dev/null +++ b/ofborg/ofborg-viewer/bin/bump-version @@ -0,0 +1,38 @@ +#!/usr/bin/env nix-shell +#!ruby +#!nix-shell -p gitMinimal -p ruby -i ruby + +require "json" + +VERSION_MATCHER = /\A\d+\.\d+\.\d+\z/; +NPM_FORMAT = { + indent: " ", + space: " ", + object_nl: "\n", + array_nl: "\n", +} + +$version = ARGV.first + +unless $version + STDERR.puts "Needs a new version number.\n" + exit 1 +end + +unless $version.match(VERSION_MATCHER) + STDERR.puts "Argument is not a valid version number.\n" + exit 1 +end + +Dir.chdir(File.expand_path(File.join(__dir__(), ".."))) do + data = JSON.parse(File.read("package.json")) + data["version"] = $version + File.write("package.json", JSON.generate(data, NPM_FORMAT) + "\n") + `git add package.json` + `git commit -m "Bumps to v#{$version}" package.json` + `git tag v#{$version}` +end + +puts "Don't forget to `git push && git push --tags`"; + +# vim: ft=ruby diff --git a/ofborg/ofborg-viewer/bin/eslint b/ofborg/ofborg-viewer/bin/eslint new file mode 100755 index 0000000000..9b00a1274c --- /dev/null +++ b/ofborg/ofborg-viewer/bin/eslint @@ -0,0 +1,9 @@ +#!/usr/bin/env bash + +set -e +set -u + +this_dir="$(dirname "${BASH_SOURCE[0]}")" +this_name="${BASH_SOURCE[0]##*/}" + +exec "$this_dir/../node_modules/.bin/$this_name" "$@" diff --git a/ofborg/ofborg-viewer/bin/webpack b/ofborg/ofborg-viewer/bin/webpack new file mode 100755 index 0000000000..9b00a1274c --- /dev/null +++ b/ofborg/ofborg-viewer/bin/webpack @@ -0,0 +1,9 @@ +#!/usr/bin/env bash + +set -e +set -u + +this_dir="$(dirname "${BASH_SOURCE[0]}")" +this_name="${BASH_SOURCE[0]##*/}" + +exec "$this_dir/../node_modules/.bin/$this_name" "$@" diff --git a/ofborg/ofborg-viewer/bin/webpack-dev-server b/ofborg/ofborg-viewer/bin/webpack-dev-server new file mode 100755 index 0000000000..9b00a1274c --- /dev/null +++ b/ofborg/ofborg-viewer/bin/webpack-dev-server @@ -0,0 +1,9 @@ +#!/usr/bin/env bash + +set -e +set -u + +this_dir="$(dirname "${BASH_SOURCE[0]}")" +this_name="${BASH_SOURCE[0]##*/}" + +exec "$this_dir/../node_modules/.bin/$this_name" "$@" diff --git a/ofborg/ofborg-viewer/bin/yarn2nix-update.sh b/ofborg/ofborg-viewer/bin/yarn2nix-update.sh new file mode 100755 index 0000000000..c085156971 --- /dev/null +++ b/ofborg/ofborg-viewer/bin/yarn2nix-update.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env nix-shell +#!nix-shell -p bash -p git -p nix-prefetch-git -i bash + +set -eux +set -o pipefail + +nix-prefetch-git https://github.com/moretea/yarn2nix.git > yarn2nix.json + +rm -rf scratch +mkdir scratch + +( + cd scratch + + git clone git@github.com:moretea/yarn2nix.git + + ( + cd yarn2nix + nix-build . -A yarn2nix + ) +) + +./scratch/yarn2nix/result/bin/yarn2nix > yarn.nix +rm -rf scratch diff --git a/ofborg/ofborg-viewer/build.js b/ofborg/ofborg-viewer/build.js new file mode 100644 index 0000000000..bcdcbc889f --- /dev/null +++ b/ofborg/ofborg-viewer/build.js @@ -0,0 +1,72 @@ +#!/usr/bin/env node +/** + * Build script for tickborg-viewer. + * Replaces ancient webpack 3 + Node 6 setup with esbuild. + */ +const { execSync } = require("child_process"); +const fs = require("fs"); +const path = require("path"); + +const ROOT = __dirname; +const DIST = path.join(ROOT, "dist"); + +// Ensure dist/ +if (!fs.existsSync(DIST)) { + fs.mkdirSync(DIST, { recursive: true }); +} + +// 1. Get git revision + version +let GIT_REVISION = ""; +const revFile = path.join(ROOT, ".git-revision"); +if (fs.existsSync(revFile)) { + GIT_REVISION = fs.readFileSync(revFile, "utf-8").trim(); +} else { + try { + GIT_REVISION = execSync("git rev-parse --short HEAD", { cwd: ROOT, encoding: "utf-8" }).trim(); + } catch (e) { + // ignore + } +} +const VERSION = JSON.parse(fs.readFileSync(path.join(ROOT, "package.json"), "utf-8")).version; + +// 2. Compile LESS → CSS +console.log("Compiling LESS..."); +const lessFile = path.join(ROOT, "src/styles/index.less"); +const cssOutput = execSync(`npx lessc ${lessFile}`, { encoding: "utf-8" }); + +// 3. Build JS bundle with esbuild +console.log("Bundling JS..."); +execSync( + `npx esbuild src/index.js --bundle --outfile=dist/bundle.js --format=iife --target=es2018 --minify ` + + `--define:GIT_REVISION='"${GIT_REVISION}"' --define:VERSION='"${VERSION}"'`, + { cwd: ROOT, stdio: "inherit" } +); + +// 4. Generate index.html +console.log("Generating HTML..."); +const html = ` + + + + + + TickBorg Log Viewer + + + +
+
+
+ Loading... + you may need to enable some JavaScript for this to work. +
+
+
+ + +`; + +fs.writeFileSync(path.join(DIST, "index.html"), html); +console.log(`Build complete → ${DIST}/`); diff --git a/ofborg/ofborg-viewer/default.nix b/ofborg/ofborg-viewer/default.nix new file mode 100644 index 0000000000..5d75e9b5fd --- /dev/null +++ b/ofborg/ofborg-viewer/default.nix @@ -0,0 +1,14 @@ +{ pkgs ? import {} }: +with pkgs; +stdenv.mkDerivation rec { + name = "tickborg-logviewer-env"; + buildInputs = [ + nodejs-6_x + yarn + ]; + + passthru = { + # Allows use of a tarball URL. + release = (import ./release.nix {inherit pkgs;}); + }; +} diff --git a/ofborg/ofborg-viewer/package-lock.json b/ofborg/ofborg-viewer/package-lock.json new file mode 100644 index 0000000000..115427cd94 --- /dev/null +++ b/ofborg/ofborg-viewer/package-lock.json @@ -0,0 +1,924 @@ +{ + "name": "tickborg-viewer-web", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "tickborg-viewer-web", + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "@stomp/stompjs": "^4.0.0", + "lodash": "^4.17.21", + "query-string": "^5.1.1", + "websocket": "^1.0.35" + }, + "devDependencies": { + "esbuild": "^0.20.0", + "less": "^4.2.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", + "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz", + "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", + "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz", + "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", + "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", + "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", + "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", + "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", + "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", + "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", + "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", + "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", + "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", + "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", + "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", + "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", + "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", + "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", + "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", + "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", + "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", + "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", + "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@stomp/stompjs": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/@stomp/stompjs/-/stompjs-4.0.8.tgz", + "integrity": "sha512-bR8W43sC9/py6qFJtSRwYXhzNW6PuVCXblAZuXeZkXVeenycRqppWmbuUQLuZE2LRONDyDz8G1qHW0EizT/q1g==", + "license": "Apache-2.0", + "optionalDependencies": { + "websocket": "^1.0.24" + } + }, + "node_modules/bufferutil": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.1.0.tgz", + "integrity": "sha512-ZMANVnAixE6AWWnPzlW2KpUrxhm9woycYvPOo67jWHyFowASTEd9s+QN1EIMsSDtwhIxN4sWE1jotpuDUIgyIw==", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">=6.14.2" + } + }, + "node_modules/copy-anything": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-3.0.5.tgz", + "integrity": "sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-what": "^4.1.8" + }, + "engines": { + "node": ">=12.13" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/d": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.2.tgz", + "integrity": "sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==", + "license": "ISC", + "dependencies": { + "es5-ext": "^0.10.64", + "type": "^2.7.2" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/es5-ext": { + "version": "0.10.64", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz", + "integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==", + "hasInstallScript": true, + "license": "ISC", + "dependencies": { + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.3", + "esniff": "^2.0.1", + "next-tick": "^1.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", + "license": "MIT", + "dependencies": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/es6-symbol": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.4.tgz", + "integrity": "sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==", + "license": "ISC", + "dependencies": { + "d": "^1.0.2", + "ext": "^1.7.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/esbuild": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz", + "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.20.2", + "@esbuild/android-arm": "0.20.2", + "@esbuild/android-arm64": "0.20.2", + "@esbuild/android-x64": "0.20.2", + "@esbuild/darwin-arm64": "0.20.2", + "@esbuild/darwin-x64": "0.20.2", + "@esbuild/freebsd-arm64": "0.20.2", + "@esbuild/freebsd-x64": "0.20.2", + "@esbuild/linux-arm": "0.20.2", + "@esbuild/linux-arm64": "0.20.2", + "@esbuild/linux-ia32": "0.20.2", + "@esbuild/linux-loong64": "0.20.2", + "@esbuild/linux-mips64el": "0.20.2", + "@esbuild/linux-ppc64": "0.20.2", + "@esbuild/linux-riscv64": "0.20.2", + "@esbuild/linux-s390x": "0.20.2", + "@esbuild/linux-x64": "0.20.2", + "@esbuild/netbsd-x64": "0.20.2", + "@esbuild/openbsd-x64": "0.20.2", + "@esbuild/sunos-x64": "0.20.2", + "@esbuild/win32-arm64": "0.20.2", + "@esbuild/win32-ia32": "0.20.2", + "@esbuild/win32-x64": "0.20.2" + } + }, + "node_modules/esniff": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz", + "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==", + "license": "ISC", + "dependencies": { + "d": "^1.0.1", + "es5-ext": "^0.10.62", + "event-emitter": "^0.3.5", + "type": "^2.7.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", + "license": "MIT", + "dependencies": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "node_modules/ext": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", + "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", + "license": "ISC", + "dependencies": { + "type": "^2.7.2" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", + "dev": true, + "license": "MIT", + "optional": true, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "license": "MIT" + }, + "node_modules/is-what": { + "version": "4.1.16", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-4.1.16.tgz", + "integrity": "sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.13" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/less": { + "version": "4.6.4", + "resolved": "https://registry.npmjs.org/less/-/less-4.6.4.tgz", + "integrity": "sha512-OJmO5+HxZLLw0RLzkqaNHzcgEAQG7C0y3aMbwtCzIUFZsLMNNq/1IdAdHEycQ58CwUO3jPTHmoN+tE5I7FQxNg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "copy-anything": "^3.0.5", + "parse-node-version": "^1.0.1" + }, + "bin": { + "lessc": "bin/lessc" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "needle": "^3.1.0", + "source-map": "~0.6.0" + } + }, + "node_modules/lodash": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", + "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==", + "license": "MIT" + }, + "node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "license": "MIT", + "optional": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/needle": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/needle/-/needle-3.5.0.tgz", + "integrity": "sha512-jaQyPKKk2YokHrEg+vFDYxXIHTCBgiZwSHOoVx/8V3GIBS8/VN6NdVRmg8q1ERtPkMvmOvebsgga4sAj5hls/w==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.3", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 4.4.x" + } + }, + "node_modules/next-tick": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", + "license": "ISC" + }, + "node_modules/node-gyp-build": { + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz", + "integrity": "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==", + "license": "MIT", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/query-string": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", + "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", + "license": "MIT", + "dependencies": { + "decode-uri-component": "^0.2.0", + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/sax": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.6.0.tgz", + "integrity": "sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==", + "dev": true, + "license": "BlueOak-1.0.0", + "optional": true, + "engines": { + "node": ">=11.0.0" + } + }, + "node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "optional": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/type": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/type/-/type-2.7.3.tgz", + "integrity": "sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==", + "license": "ISC" + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "license": "MIT", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/utf-8-validate": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", + "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">=6.14.2" + } + }, + "node_modules/websocket": { + "version": "1.0.35", + "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.35.tgz", + "integrity": "sha512-/REy6amwPZl44DDzvRCkaI1q1bIiQB0mEFQLUrhz3z2EK91cp3n72rAjUlrTP0zV22HJIUOVHQGPxhFRjxjt+Q==", + "license": "Apache-2.0", + "dependencies": { + "bufferutil": "^4.0.1", + "debug": "^2.2.0", + "es5-ext": "^0.10.63", + "typedarray-to-buffer": "^3.1.5", + "utf-8-validate": "^5.0.2", + "yaeti": "^0.0.6" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/yaeti": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", + "integrity": "sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "license": "MIT", + "engines": { + "node": ">=0.10.32" + } + } + } +} diff --git a/ofborg/ofborg-viewer/package.json b/ofborg/ofborg-viewer/package.json new file mode 100644 index 0000000000..73d525d27b --- /dev/null +++ b/ofborg/ofborg-viewer/package.json @@ -0,0 +1,19 @@ +{ + "name": "tickborg-viewer-web", + "version": "1.0.0", + "license": "MIT", + "scripts": { + "build": "node build.js", + "dev": "npx esbuild src/index.js --bundle --outfile=dist/bundle.js --format=iife --target=es2018 --servedir=dist --define:GIT_REVISION='\"dev\"' --define:VERSION='\"dev\"'" + }, + "devDependencies": { + "esbuild": "^0.20.0", + "less": "^4.2.0" + }, + "dependencies": { + "@stomp/stompjs": "^4.0.0", + "lodash": "^4.17.21", + "query-string": "^5.1.1", + "websocket": "^1.0.35" + } +} diff --git a/ofborg/ofborg-viewer/release.nix b/ofborg/ofborg-viewer/release.nix new file mode 100644 index 0000000000..62120f6133 --- /dev/null +++ b/ofborg/ofborg-viewer/release.nix @@ -0,0 +1,34 @@ +{ pkgs ? import {} }: +let + yarn2nix = import (pkgs.fetchFromGitHub (let + revs = builtins.fromJSON (builtins.readFile ./yarn2nix.json); + in { + owner = "moretea"; + repo = "yarn2nix"; + + inherit (revs) rev sha256; + })) { inherit pkgs; }; +in +yarn2nix.mkYarnPackage rec { + version = (builtins.fromJSON (builtins.readFile ./package.json)).version; + name = "ofborg-viewer-web-${version}"; + src = ./.; + packageJson = ./package.json; + yarnLock = ./yarn.lock; + yarnNix = ./yarn.nix; + + # When building from git repo, add the revision to the source. + # The build process will use it. + preConfigure = '' + if [ -d .git ]; then + ${pkgs.gitMinimal}/bin/git rev-parse HEAD > .git-revision + fi + ''; + + postInstall = '' + export NODE_ENV=production + rm -rf website + yarn run preinstall + mv website/ $out/website + ''; +} diff --git a/ofborg/ofborg-viewer/src/app.html b/ofborg/ofborg-viewer/src/app.html new file mode 100644 index 0000000000..9b4eaf73eb --- /dev/null +++ b/ofborg/ofborg-viewer/src/app.html @@ -0,0 +1,22 @@ + + + + + + + TickBorg Log Viewer + + + +
+
+
+ Loading... + you may need to enable some JavaScript for this to work. +
+
+
+ + diff --git a/ofborg/ofborg-viewer/src/app.js b/ofborg/ofborg-viewer/src/app.js new file mode 100644 index 0000000000..cdfc3b4e0d --- /dev/null +++ b/ofborg/ofborg-viewer/src/app.js @@ -0,0 +1,201 @@ +import ready from "./lib/ready"; +import Listener from "./listener"; +import Gui from "./gui"; +import Backlog from "./backlog"; +import State from "./state"; +import {WELL_KNOWN} from "./config"; + +const MAN = ` +tickborg-viewer(web) tickborg web interface tickborg-viewer(web) + +NAME + tickborg-viewer — Build logs web interface + +DESCRIPTION + tickborg-viewer is a web interface that aggregates the currently in-progress + build logs made by tickborg. + + New logs for the given build will be added to the discovered logs at the + top of the interface. Clicking them or activating them through the keyboard + shortcuts of your browser will show them. + + The log will autoscroll when the logger interface is scrolled at the + bottom. Scrolling up will stop the autoscroll until scrolled back down. + +`; + +/** + * The logger app. + */ +class App { + constructor() { + // Only "boot" the app when the DOM is ready. + ready(() => this.boot()); + + // To use as event listener targets. + this.handle_select = this.handle_select.bind(this); + } + + /** + * Hooks and starts the app. + * + * This means: + * * Starts the GUI. + * * Reads parameters. + * * Starts the Listener. + */ + boot() { + window.document.title = "Log viewer starting..."; + this.gui = new Gui(); + + this.gui.addEventListener("select", this.handle_select); + + this.log("$ tickborg-viewer --version", null, {tag: "tickborg"}); + this.log(`tickborg-viewer, version ${VERSION}${GIT_REVISION && ` (${GIT_REVISION})`}`, null, {tag: "tickborg"}); + this.log("$ man tickborg-viewer", null, {tag: "tickborg"}); + this.log(MAN, null, {tag: "man"}); + + this.log("→ logger starting", null, {tag: "tickborg"}); + window.document.title = "Log viewer started..."; + + this.state = new State(); + this.state.on_state_change = (s) => this.handle_state_change(s); + this.handle_state_change(this.state.params); + } + + handle_select(selected) { + this.state.set_state({attempt_id: selected["name"]}); + } + + handle_state_change(new_state) { + const {attempt_id, key} = new_state; + const {logs} = this.gui; + + // Loading parameters + if (!key) { + this.log("!! No key parameter... stopping now.", "tickborg"); + return; + } + + // This will allow some app parts to log more information. + if (new_state["debug"]) { + window.DEBUG = true; + } + + window.document.title = `Log viewer [${key}]`; + + // This is set only once in the lifetime of the app and is expected + // never to change. + // FIXME : Allow key to change live. + if (!this.key) { + this.key = key; + + // Pings the logger API for existing logs. + // Those logs can be either live or complete. + this.load_logs(() => { + // Selects the log if loaded async. + if (logs[attempt_id]) { + logs[attempt_id].select(); + } + }); + } + + // Attempts to select the log. + if (logs[attempt_id]) { + logs[attempt_id].select(); + } + + if (!this.listener) { + // Starts the listener. + this.listener = new Listener({ + key: new_state["key"], + logger: (msg, tag) => this.log(msg, null, {tag}), + fn: (...msg) => this.from_listener(...msg), + }); + } + } + + load_logs(callback) { + this.log(`→ fetching existing attempts for ${this.key}`, null, {tag: "tickborg"}); + return fetch(`${WELL_KNOWN}/${this.key}`, {mode: "cors"}) + .then((response) => response.json()) + .then(({attempts}) => Object.keys(attempts).forEach((attempt_id) => { + this.log(`→ fetching log for ${attempt_id}`, null, {tag: "tickborg"}); + const attempt = attempts[attempt_id]; + const log = this.gui.addLog(attempt_id, attempt["metadata"]); + const {log_url} = attempt; + // Loads backlog only when needed. + const handler = () => { + log.backlog_loading(); + fetch(log_url, {mode: "cors"}) + .then((response) => response.text()) + .then((txt) => { + const lines = txt.split("\n"); + log.backlog(lines, log_url); + this.log(`→ added log for ${attempt_id}`, null, {tag: "tickborg"}); + }) + ; + // Removes self from events. + log.removeEventListener("select", handler); + }; + log.addEventListener("select", handler); + })) + .then(() => callback()) + ; + } + + from_listener(message, routing_key) { + const {output, attempt_id, line_number} = message; + + // Probably a build-start message. + if (!output && output !== "") { + this.gui.addLog(attempt_id, message); + return; + } + + // Opening a new log? + // It should already have been created, but just in case. + if (Object.keys(this.gui.logs).indexOf(attempt_id) === -1) { + const log = this.gui.addLog(attempt_id); + + // Assumes if there was no log open for attempt, it needs to fetch backlog. + if (line_number > 1) { + // FIXME : Loop backlog fetching until all lines are found up to line_number. + log.backlog_loading(); + const log_url = Backlog.get_url(routing_key, attempt_id); + + return fetch(log_url, {mode: "cors"}) + .then((response) => response.text()) + .then((txt) => { + const lines = txt.split("\n").slice(0, line_number - 1); + log.backlog(lines, log_url); + }) + .catch((err) => { + log.backlog_error(err); + }) + ; + } + } + + return this.log(output, attempt_id, { + tag: "stdout", + title: `#${line_number}`, + }); + } + + /** + * Logs to the console. + * + * This can receive a class for some more styling. + */ + log(msg, log, {tag, title} = {}) { + this.gui.log({ + msg, + log, + tag, + title, + }); + } +} + +export default App; diff --git a/ofborg/ofborg-viewer/src/backlog.js b/ofborg/ofborg-viewer/src/backlog.js new file mode 100644 index 0000000000..bb99917196 --- /dev/null +++ b/ofborg/ofborg-viewer/src/backlog.js @@ -0,0 +1,8 @@ +import {WELL_KNOWN} from "./config"; +class Backlog { + static get_url(routing, id) { + return `${WELL_KNOWN}/${routing}/${id}`; + } +} + +export default Backlog; diff --git a/ofborg/ofborg-viewer/src/config.js b/ofborg/ofborg-viewer/src/config.js new file mode 100644 index 0000000000..827b06c231 --- /dev/null +++ b/ofborg/ofborg-viewer/src/config.js @@ -0,0 +1,9 @@ +const infra = "projecttick.net"; + +const WELL_KNOWN = `https://logs.tickborg.${infra}/logs`; +const SOCK = `wss://logs.tickborg.${infra}/ws/`; +const SOCK_VHOST = `/`; +const AUTH = "tickborg-logviewer"; +const MAX_LINES = 25000; + +export {SOCK, SOCK_VHOST, AUTH, MAX_LINES, WELL_KNOWN}; diff --git a/ofborg/ofborg-viewer/src/gui/index.js b/ofborg/ofborg-viewer/src/gui/index.js new file mode 100644 index 0000000000..d63b17d695 --- /dev/null +++ b/ofborg/ofborg-viewer/src/gui/index.js @@ -0,0 +1,158 @@ +import bsod from "../lib/bsod"; +import html from "../lib/html"; +import Log from "./log"; +import eventable from "../mixins/eventable"; + +/** + * Name of the "internal" log, both for system messages + * and as a fallback logging mechanism. + */ +const INTERNAL_LOG = "-tickborg-"; + +/** + * The "Gui" for the app. + * + * This handles the tab-like controls to switch the shown log. + * This handles keeping track of whether it should follow scroll or not. + * + * The whole body is scrolled, always. + */ +class Gui { + constructor() { + eventable(this); + console.log("Creating log interface...."); // eslint-disable-line + this.setFollowing(true); + + // To use as event listener targets. + this.handle_select = this.handle_select.bind(this); + this.maybe_scroll = this.maybe_scroll.bind(this); + + // Registry of Log instances. + // ({`attempt_id`: instance}) + this.logs = {}; + + this.$app = window.document.querySelectorAll("#tickborg-logviewer .app")[0]; + if (!this.$app) { + return bsod("Couldn't hook app."); + } + + // Empties app... + this.$app.innerHTML = ""; + + this.$header = html(`
`)[0]; + this.$nav = html(`
    `)[0]; + this.$header.appendChild(this.$nav); + this.$app.appendChild(this.$header); + + // Logs DOM instance holder. + this.$logs = html(`
    `)[0]; + this.$app.appendChild(this.$logs); + + this.addLog(INTERNAL_LOG); + + // Hooks on scroll + window.addEventListener("scroll", () => this.watchScroll()); + console.log("... log interface created."); // eslint-disable-line + } + + addLog(name, metadata) { + const log = new Log(name, metadata); + this.logs[name] = log; + this.$logs.appendChild(log.$node); + + this.$nav.appendChild(log.$tab); + + if (Object.keys(this.logs).length === 1) { + log.select(); + } + + log.addEventListener("select", this.handle_select); + log.addEventListener("backlog", this.maybe_scroll) + + return log; + } + + handle_select(selected) { + this.maybe_scroll(); + // Uses map as a cheap foreach. + Object.values(this.logs).map((l) => { + if (selected !== l) { + l.unselect(); + } + + return null; + }); + + this.sendEvent("select", selected); + } + + setFollowing(following) { + if (following !== this.following) { + this.following = following; + + const body = window.document.body; + if (following) { + body.classList.add("following"); + body.classList.remove("not-following"); + } + else { + body.classList.add("not-following"); + body.classList.remove("following"); + } + } + } + + /** + * Marks the window as auto-scrollable or not when scrolling. + */ + watchScroll() { + const body = window.document.documentElement; + const scroll_bottom = Math.round(body.scrollTop) + Math.round(window.innerHeight); + const total_height = body.scrollHeight; + + // Some fudging around because of higher and fractional DPI issues. + // On 1.5 DPI chrome, it is possible to get the scroll to bottom + // not matching with the total height *some* times. + this.setFollowing(Math.abs(total_height - scroll_bottom) < 5); + } + + /** + * Logs the message `msg`, tagged with tag `tag` in log instance `log`. + */ + log({msg, tag, log, title}) { + // `null` logs to internal log. + const used_log = log || INTERNAL_LOG; + // Can't find a log? + if (!this.logs[used_log]) { + // Warn in the console + console.warn(`Couldn't find log "${log}"...`); // eslint-disable-line + + // Makes sure we aren't missing the system log... + if (used_log === INTERNAL_LOG) { + bsod(`Log "${INTERNAL_LOG}" log. This shouldn't have happened.`); + } + + // Log instead to the internal log. + this.log({ + msg, + tag, + log: INTERNAL_LOG, + title, + }); + + return; + } + this.logs[used_log].log(msg, tag, {title}); + this.maybe_scroll(); + } + + // Scroll as needed. + maybe_scroll() { + const body = window.document.documentElement; + if (this.following) { + body.scrollTop = body.scrollHeight; + } + } +} + +export default Gui; diff --git a/ofborg/ofborg-viewer/src/gui/log.js b/ofborg/ofborg-viewer/src/gui/log.js new file mode 100644 index 0000000000..b354c66b5f --- /dev/null +++ b/ofborg/ofborg-viewer/src/gui/log.js @@ -0,0 +1,162 @@ +import html from "../lib/html"; +import eventable from "../mixins/eventable"; +import {MAX_LINES} from "../config"; + +const SEP = " ╱ "; + +/** + * The line-oriented GUI for the application. + * + * It presents a (1) node that should be added by the owner to the DOM. + */ +class Log { + constructor(name, metadata = null, {label = null} = {}) { + eventable(this); + this.name = name; + this.$node = html(`
    `)[0]; + this.$node.classList.add(`name__${name.replace(/[^a-zA-Z0-9]/g, "_")}`); + + let label_text = label; + + // Makes a default label... + if (!label_text) { + label_text = name; + + // For UUID-like labels + // The chances of hitting both conditions on a custom-made string is + // quite low. + if (label_text.length === 36 && label_text.split("-").length === 5) { + label_text = name + .split("-") + .splice(0, 2) + .join("-"); + } + } + + this.$backlog = html(`
    `)[0]; + this.$log = html(`
    `)[0]; + // Empties app... + this.$node.innerHTML = ""; + + if (metadata) { + this.$identity = html(`
    `)[0]; + this.$node.appendChild(this.$identity); + } + + // Appends the "app parts" + this.$node.appendChild(this.$backlog); + this.$node.appendChild(this.$log); + + // The tab used for navigation. + this.$tab = html(`
  • `)[0]; + const radio = this.$tab.querySelectorAll("input")[0]; + const $label = this.$tab.querySelectorAll("label > span")[0]; + $label.innerText = label_text; + radio.value = name; + radio.onclick = () => { + this.select(); + }; + + if (metadata) { + const {attempt_id, identity, system} = metadata; + const txt = []; + txt.push(`id: ${identity}`); + txt.push(`system: ${system}`); + this.$identity.innerText = " " + txt.join(SEP) + SEP; + this.$identity.title = JSON.stringify(metadata, null, " "); + $label.title = txt.concat([`attempt_id: ${attempt_id}`]).join(SEP); + } + + radio.onfocus = () => { + this.$tab.classList.add("__focus"); + }; + radio.onblur = () => { + this.$tab.classList.remove("__focus"); + }; + } + + /** + * Logs to the console. + * + * This can receive a class for some more styling. + */ + log(text, tag, {title}) { + const el = html(`
    `)[0]; + if (tag) { + el.classList.add(tag); + } + if (title) { + el.title = title; + } + // The replace regex allows more intelligent splitting. + // It will prefer splitting words, this way. + // .replace(/([,-=/])/g, "\u200B$1\u200B"); + // It breaks search, until a solution is found we'll manage with crappy + // line breaks. + el.innerText = text; + this.$log.appendChild(el); + } + + select() { + this.$node.classList.add("selected"); + this.$tab.classList.add("selected"); + this.$tab.querySelectorAll("input")[0].checked = true; + this.sendEvent("select", this); + } + + unselect() { + this.$node.classList.remove("selected"); + this.$tab.classList.remove("selected"); + this.sendEvent("unselect"); + } + + backlog(lines, log_url = null) { + this.$backlog.classList.remove("loading"); + // Empties backlog... + const start = Math.max(lines.length - MAX_LINES, 0); + const length = Math.min(lines.length, MAX_LINES); + let line_no = start + 1; + const fragment = document.createDocumentFragment(length); + this.$backlog.innerText = `(Rendering backlog, ${length} lines long...)**`; + lines.slice(start, lines.length) + .forEach((text) => { + const el = document.createElement("div"); + el.title = `#${line_no}`; + line_no += 1; + el.innerText = text; + fragment.appendChild(el); + }); + const $link = html(`Log has been truncated... (${length} lines shown out of ${lines.length}.)`)[0]; + if (log_url) { + $link.href = log_url; + } + if (length < lines.length) { + this.$backlog.innerText = `(Rendering backlog, ${length} lines out of ${lines.length}...)`; + } + else { + this.$backlog.innerText = `(Rendering backlog, ${length} lines long...)`; + } + + // Delays appendChild to allow reflow for previous message. + window.setTimeout(() => { + this.$backlog.innerText = ""; + if (length < lines.length) { + this.$backlog.appendChild($link); + } + this.$backlog.appendChild(fragment); + this.sendEvent("backlog", this); + }, 10); + } + + backlog_error(err) { + this.$backlog.classList.remove("loading"); + this.$backlog.innerText = `An error happened fetching the backlog...\n${err}`; + } + + backlog_loading() { + this.$backlog.classList.add("loading"); + this.$backlog.innerText = `Fetching the backlog...`; + } +} + +export default Log; diff --git a/ofborg/ofborg-viewer/src/index.js b/ofborg/ofborg-viewer/src/index.js new file mode 100644 index 0000000000..e2b8683f9e --- /dev/null +++ b/ofborg/ofborg-viewer/src/index.js @@ -0,0 +1,40 @@ +import App from "./app"; +import WELL_KNOWN from "./config"; + +/** + * Entry-point of the application. + * + * If any polyfilling is needed, do it here. + * Then, start the app. + */ + +// Fetch compat. +{ + const FETCH_MISSING = "fetch is required for this app to work properly."; + + /** + * Acts mostly like a promise. + */ + const pseudo_promise = function() { + return { + then: () => pseudo_promise(), + catch: (fn) => fn(new Error(FETCH_MISSING)), + }; + }; + + /** + * Replaces fetch when fetch is missing. + */ + const pseudo_fetch = function() { // eslint-disable-line + return pseudo_promise(); + }; + + // Ensures calls to `fetch` don't crash the app. + if (!window.fetch) { + console.warn(FETCH_MISSING); // eslint-disable-line + window.fetch = pseudo_fetch; // eslint-disable-line + } +} + +// Starts the app. +window.APP = new App(); diff --git a/ofborg/ofborg-viewer/src/lib/bsod.js b/ofborg/ofborg-viewer/src/lib/bsod.js new file mode 100644 index 0000000000..6b29d41417 --- /dev/null +++ b/ofborg/ofborg-viewer/src/lib/bsod.js @@ -0,0 +1,16 @@ +/** + * Borg screen of death. + * + * Replaces the whole body with an error message. + */ +const bsod = function(msg = "Something happened.") { + const body = window.document.body; + body.innerText = +`Hmmm, this is embarassing... + +-> ${msg} +`; + body.className = "bsod"; +}; + +export default bsod; diff --git a/ofborg/ofborg-viewer/src/lib/html.js b/ofborg/ofborg-viewer/src/lib/html.js new file mode 100644 index 0000000000..dcacecd423 --- /dev/null +++ b/ofborg/ofborg-viewer/src/lib/html.js @@ -0,0 +1,11 @@ +/** + * Uses the DOM to parse HTML. + */ +const html = function(str) { + const tmp = document.implementation.createHTMLDocument(); + tmp.body.innerHTML = str; + + return tmp.body.children; +}; + +export default html; diff --git a/ofborg/ofborg-viewer/src/lib/ready.js b/ofborg/ofborg-viewer/src/lib/ready.js new file mode 100644 index 0000000000..74f9358a8e --- /dev/null +++ b/ofborg/ofborg-viewer/src/lib/ready.js @@ -0,0 +1,12 @@ +/** + * Triggers when the document is ready. + */ +const ready = function(fn) { + if (document.attachEvent ? document.readyState === "complete" : document.readyState !== "loading"){ + fn(); + } else { + document.addEventListener('DOMContentLoaded', fn); + } +}; + +export default ready; diff --git a/ofborg/ofborg-viewer/src/listener.js b/ofborg/ofborg-viewer/src/listener.js new file mode 100644 index 0000000000..f2060aa725 --- /dev/null +++ b/ofborg/ofborg-viewer/src/listener.js @@ -0,0 +1,90 @@ +import bsod from "./lib/bsod"; +import Stomp from "@stomp/stompjs"; +import {SOCK, AUTH, SOCK_VHOST} from "./config"; + +/** + * Listener interface; subscribes to the queue and uses the given callback. + */ +class Listener { + constructor({key, logger, fn}) { + this.subscription = null; + this.key = key; + this.fn = fn; + this.logger = logger; + this.logger("Socket created...", "tickborg"); + this.client = Stomp.client(SOCK); + this.client.debug = (str) => this.debug_callback(str); + this.connect(); + } + + /** + * Catches stomp.js debug log. + * window.DEBUG can be set (using param debug=true) to help debug issues. + */ + debug_callback(str) { + if (window.DEBUG) { + /* eslint-disable no-control-regex */ + const cleaned = str.replace(/[\x00\s]+$/g, "").trim(); + /* eslint-enable */ + this.logger(cleaned, "stomp"); + } + } + + connect() { + this.client.connect( + AUTH, AUTH, + () => this.connected(), + (err) => this.handle_failure(err), + SOCK_VHOST + ); + } + + disconnect() { + this.logger("Disconnecting...", "tickborg"); + this.client.disconnect( + () => this.logger("Disconnected.", "tickborg") + ); + } + + connected() { + this.succesfully_connected = true; + this.logger("Connected...", "tickborg"); + this.logger(`Subscribing to "${this.key}"...`, "tickborg"); + this.subscription = this.client.subscribe( + `/exchange/logs/${encodeURIComponent(this.key)}`, + (m) => this.handle_message(JSON.parse(m.body), m) + ); + } + + handle_failure(err) { + console.error("STOMP error..."); + console.error(err); + if (this.succesfully_connected) { + this.logger("Uhhh, we lost the websocket connection... refresh to fix this issue.", "stderr") + } + else { + bsod("Couldn't connect to websocket.\n\nMake sure content blockers (noscript, µblock) are not blocking websockets.") + } + } + + /** + * Handler for messages. + */ + handle_message(msg, raw) { + // Get the routing key, which will be used to fetch the backlogs. + const destination = raw.headers["destination"].split("/"); + const routing = decodeURIComponent(destination[destination.length - 1]); + this.receive(msg, routing); + } + + /** + * Conditionally calls the callback registered. + */ + receive(...args) { + if (this.fn) { + return this.fn(...args); + } + } +} + +export default Listener; diff --git a/ofborg/ofborg-viewer/src/mixins/eventable.js b/ofborg/ofborg-viewer/src/mixins/eventable.js new file mode 100644 index 0000000000..a33e8edafd --- /dev/null +++ b/ofborg/ofborg-viewer/src/mixins/eventable.js @@ -0,0 +1,48 @@ +import each from "lodash/each"; +import pull from "lodash/pull"; + +/** + * Adds functions looking like the EventTarget ones on `this`. + * + * This is NOT compatible, as they are not using Event. + * They cannot preventDefault. + * They cannot stop propagation. + * There is no propagation. + */ +const eventable = (self) => { + each( + // Functions to mix in. + { + addEventListener(type, listener) { + if (!this[`_${type}_listeners`]) { + this[`_${type}_listeners`] = []; + } + const table = this[`_${type}_listeners`]; + + table.push(listener); + }, + removeEventListener(type, listener) { + if (!this[`_${type}_listeners`]) { + this[`_${type}_listeners`] = {}; + } + const table = this[`_${type}_listeners`]; + + pull(table, listener); + }, + sendEvent(type, ...params) { + if (!this[`_${type}_listeners`]) { + this[`_${type}_listeners`] = []; + } + const table = this[`_${type}_listeners`]; + + table.forEach((fn) => fn(...params)); + } + }, + // Mixing in all those. + (fn, name) => { + self[name] = fn.bind(self); + } + ); +}; + +export default eventable; diff --git a/ofborg/ofborg-viewer/src/state.js b/ofborg/ofborg-viewer/src/state.js new file mode 100644 index 0000000000..936d07653a --- /dev/null +++ b/ofborg/ofborg-viewer/src/state.js @@ -0,0 +1,59 @@ +import queryString from "query-string"; +import isEqual from "lodash/isEqual"; + +/** + * Maps the state of the application to the history API. + * This is used to make the current view linkable. + * In the URL, the hash part is **reserved for line numbers**. + * (line number links are not implemented yet.) + */ +class State { + + /** + * Loads the state from URL. + * + * Prepares event listeners. + */ + constructor() { + const params = queryString.parse(location.search); + const {history} = window; + // Loads from params in URL, then history in order of importance. + this.params = Object.assign({}, params, history.state); + + window.onpopstate = (e) => this.handle_popstate(e); + } + + handle_popstate(e) { + console.log(e); + const {state} = e; + if (state) { + this.set_state(state, {push: false}); + if (this.on_state_change) { + this.on_state_change(state); + } + } + } + + set_state(new_state, {push} = {push: true}) { + const {history} = window; + const params = Object.assign({}, this.params, new_state); + Object.keys(params).forEach((k) => { + if (!params[k]) { + Reflect.deleteProperty(params, k); + } + }); + + if (isEqual(params, this.params)) { + // set_state won't fire on "identity" change. + return; + } + + this.params = params; + + if (push) { + history.pushState(this.params, "", `?${queryString.stringify(params)}`); + } + } +} + +export default State; diff --git a/ofborg/ofborg-viewer/src/styles/index.less b/ofborg/ofborg-viewer/src/styles/index.less new file mode 100644 index 0000000000..6718eedefb --- /dev/null +++ b/ofborg/ofborg-viewer/src/styles/index.less @@ -0,0 +1,233 @@ +@color_borg: #2D8F34; +@color_debug: #8F2D87; +@color_man: #424775; +@color_man_bg: #EDF3FF; +@color_header_bg: #eeeeee; +@color_header_fg: #005FFF; +@color_tab_bg: #AFFFFF; +@color_tab_selected: #ffffff; +@color_tab_focus: #DC00B8; + +@line_height: 1.3rem; +@header_height: @line_height; + +#no-select { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: default; +} + +body { + color: #000000; + background-color: #ffffff; + margin: 0; + padding: 0; + line-height: @line_height; + font-family: + "Go Mono", + "DejaVu Sans Mono", + "Lucida Console", + monospace + ; +} + +.bsod { + background: @color_borg; + color: #ffffff; + white-space: pre; +} + +.loading { + strong { + display: block; + } + em { + color: #666; + } +} + +.app { + margin: 0; +} + +.app > header { + background: @color_header_bg; + color: @color_header_fg; + height: @header_height; + z-index: 10; + position: sticky; + top: 0; + left: 0; + right: 0; + + // Temp fix for overflowing tabs. + overflow-x: hidden; + overflow-y: hidden; + white-space: nowrap; + + ul { + // The JS app will need to add appropriate text-indent when showing a tab. + //text-indent: -100px; + // Text-indent shouldn't then apply to the included elements. + & > * { + text-indent: initial; + } + } + + // .__active is handled by the JS app. + // This unwraps the tabs bar. + // The JS app will need to text-indent appropriately to make the tab shown when !&.__active + &:hover, &.__active { + height: auto; + white-space: normal; + ul { + text-indent: 0; + } + } + + ul, ul > li { + margin: 0; + padding: 0; + list-style-type: none; + } + + ul > li { + display: inline-block; + background-color: @color_tab_bg; + margin-right: 1em; + } + li > * { + position: relative; + #no-select(); + cursor: pointer; + + // Input is hidden, but through opacity and position. + // Otherwise, it won't be keyboard-interactable. + input { + opacity: 0; + height: 1px; + width: 1px; + position: absolute; + top: 0; + left: 0; + } + padding-left: 0.5em; + padding-right: 0.5em; + display: block; + color: inherit; + text-decoration: inherit; + } + li { + &:focus, &.__focus { + color: @color_tab_selected; + background-color: @color_tab_focus; + } + } + + .selected { + color: @color_tab_selected; + background-color: @color_header_fg; + } +} + +.app > .logs { + & > :not(.selected) { + display: none; + } +} + +// A logger pane. +.logger-log { + @left_border: 1em; + + // Makes it mostly behave like pre. + // But with more wrapping. + white-space: pre-wrap; + word-wrap: break-word; + + // All lines. + & > * { + border-bottom: 0.05em solid #eee; + padding-left: @left_border; + min-height: @line_height; + } + + a { + color: @color_header_fg; + text-decoration: underline; + &:hover, &:focus, &:active { + background-color: @color_tab_bg; + } + &:visited { + color: @color_debug; + } + } + + // Specially tagged messages. + .tickborg, .stomp, .man { + border-left: @left_border/2 solid transparent; + padding-left: @left_border/2; + } + .tickborg, .stomp { + color: #888; + } + + // And their (tagged) colors. + .tickborg { + border-left-color: @color_borg; + } + .stomp { + border-left-color: @color_debug; + } + .stderr { + color: #BA3300; + } + .man { + border-left-color: @color_man; + background-color: @color_man_bg; + } + + // The previous bits of logs. + &.backlog { + } + + // The "live" part of the logs. + &.newlog { + // Adds sensible spacing at the bottom of the screen. + padding-bottom: 0.7em; + } + + a.truncated { + display: block; + animation-name: flash; + animation-duration: 0.8s; + animation-fill-mode: both; + animation-timing-function: ease-in-out; + } +} + +.logger .identity { + z-index: 1; + background: #FFFAAF; + color: #5270A3; + min-height: @line_height; + position: sticky; + top: @header_height; + left: 0; + right: 0; +} + +@keyframes flash { + @low: 0.1; + + 0% {opacity: @low;} + 16.6% {opacity: 1;} + 33.3% {opacity: @low;} + 50% {opacity: 1;} + 66.6% {opacity: @low;} + 100% {opacity: 1;} +} diff --git a/ofborg/ofborg-viewer/webpack.config.js b/ofborg/ofborg-viewer/webpack.config.js new file mode 100644 index 0000000000..f7cfd86bbf --- /dev/null +++ b/ofborg/ofborg-viewer/webpack.config.js @@ -0,0 +1,43 @@ +const webpack = require("webpack"); +const HtmlWebpackPlugin = require("html-webpack-plugin"); +const path = require("path"); +const {get_version, get_revision} = require("./webpack/revision"); + +module.exports = { + entry: "./src/index.js", + output: { + filename: "bundle.js", + path: path.resolve(__dirname, "dist") + }, + module: { + loaders: [ + { + test: /.js$/, + // ES2015 to JS, without some features: + // → https://buble.surge.sh/guide/ + loaders: "buble-loader", + include: path.join(__dirname, "src"), + query: { + objectAssign: "Object.assign" + } + }, + { + test: /\.less$/, + use: [ + {loader: "raw-loader"}, + {loader: "less-loader"}, + ] + }, + ] + }, + plugins: [ + new HtmlWebpackPlugin({ + hash: true, + template: "src/app.html", + }), + new webpack.DefinePlugin({ + "GIT_REVISION": JSON.stringify(get_revision()), + "VERSION": JSON.stringify(get_version()), + }), + ] +}; diff --git a/ofborg/ofborg-viewer/webpack/revision.js b/ofborg/ofborg-viewer/webpack/revision.js new file mode 100644 index 0000000000..e5e1256eb9 --- /dev/null +++ b/ofborg/ofborg-viewer/webpack/revision.js @@ -0,0 +1,39 @@ +/* globals require, module */ +const path = require("path"); +const fs = require("fs"); +const exec = require("child_process").execSync; + +const {NODE_ENV = "development"} = process.env; + +// Identifies the git revision. +// Makes it available in the environement of the app. + +const get_revision = () => { + // Git revision from deployment. + const file = path.resolve("./.git-revision"); + if (fs.existsSync(file)) { + // It is assumed that the build process *can* dirty the repo, + // but it manages to do it in a sane way. + return fs.readFileSync(file, {encoding: "utf-8"}).trim(); + } + + // Assumes no need to show revision, *should* be clean. + return ""; +}; + +const get_version = () => { + const file = path.resolve("./package.json"); + const data = fs.readFileSync(file, {encoding: "utf-8"}).trim(); + const {version} = JSON.parse(data); + + if (NODE_ENV === "development") { + return version + "-dev"; + } + + return version; +}; + +module.exports = { + get_revision, + get_version, +}; diff --git a/ofborg/ofborg-viewer/yarn.nix b/ofborg/ofborg-viewer/yarn.nix new file mode 100644 index 0000000000..320481dac3 --- /dev/null +++ b/ofborg/ofborg-viewer/yarn.nix @@ -0,0 +1,6782 @@ +{fetchurl, linkFarm}: rec { + offline_cache = linkFarm "offline" packages; + packages = [ + + { + name = "stompjs-4.0.1.tgz"; + path = fetchurl { + name = "stompjs-4.0.1.tgz"; + url = "https://registry.yarnpkg.com/@stomp/stompjs/-/stompjs-4.0.1.tgz"; + sha1 = "e90ba2bebc9565cd7af56cd62fbbed47e7ae99fa"; + }; + } + + { + name = "abbrev-1.1.1.tgz"; + path = fetchurl { + name = "abbrev-1.1.1.tgz"; + url = "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz"; + sha1 = "f8f2c887ad10bf67f634f005b6987fed3179aac8"; + }; + } + + { + name = "accepts-1.3.4.tgz"; + path = fetchurl { + name = "accepts-1.3.4.tgz"; + url = "https://registry.yarnpkg.com/accepts/-/accepts-1.3.4.tgz"; + sha1 = "86246758c7dd6d21a6474ff084a4740ec05eb21f"; + }; + } + + { + name = "acorn-dynamic-import-2.0.2.tgz"; + path = fetchurl { + name = "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-dynamic-import-3.0.0.tgz"; + path = fetchurl { + name = "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-jsx-3.0.1.tgz"; + path = fetchurl { + name = "acorn-jsx-3.0.1.tgz"; + url = "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz"; + sha1 = "afdf9488fb1ecefc8348f6fb22f464e32a58b36b"; + }; + } + + { + name = "acorn-jsx-4.1.1.tgz"; + path = fetchurl { + name = "acorn-jsx-4.1.1.tgz"; + url = "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-4.1.1.tgz"; + sha1 = "e8e41e48ea2fe0c896740610ab6a4ffd8add225e"; + }; + } + + { + name = "acorn-object-spread-1.0.0.tgz"; + path = fetchurl { + name = "acorn-object-spread-1.0.0.tgz"; + url = "https://registry.yarnpkg.com/acorn-object-spread/-/acorn-object-spread-1.0.0.tgz"; + sha1 = "48ead0f4a8eb16995a17a0db9ffc6acaada4ba68"; + }; + } + + { + name = "acorn-3.3.0.tgz"; + path = fetchurl { + name = "acorn-3.3.0.tgz"; + url = "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz"; + sha1 = "45e37fb39e8da3f25baee3ff5369e2bb5f22017a"; + }; + } + + { + name = "acorn-4.0.13.tgz"; + path = fetchurl { + name = "acorn-4.0.13.tgz"; + url = "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz"; + sha1 = "105495ae5361d697bd195c825192e1ad7f253787"; + }; + } + + { + name = "acorn-5.3.0.tgz"; + path = fetchurl { + name = "acorn-5.3.0.tgz"; + url = "https://registry.yarnpkg.com/acorn/-/acorn-5.3.0.tgz"; + sha1 = "7446d39459c54fb49a80e6ee6478149b940ec822"; + }; + } + + { + name = "acorn-5.4.1.tgz"; + path = fetchurl { + name = "acorn-5.4.1.tgz"; + url = "https://registry.yarnpkg.com/acorn/-/acorn-5.4.1.tgz"; + sha1 = "fdc58d9d17f4a4e98d102ded826a9b9759125102"; + }; + } + + { + name = "ajv-keywords-2.1.1.tgz"; + path = fetchurl { + name = "ajv-keywords-2.1.1.tgz"; + url = "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz"; + sha1 = "617997fc5f60576894c435f940d819e135b80762"; + }; + } + + { + name = "ajv-keywords-3.1.0.tgz"; + path = fetchurl { + name = "ajv-keywords-3.1.0.tgz"; + url = "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.1.0.tgz"; + sha1 = "ac2b27939c543e95d2c06e7f7f5c27be4aa543be"; + }; + } + + { + name = "ajv-4.11.8.tgz"; + path = fetchurl { + name = "ajv-4.11.8.tgz"; + url = "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz"; + sha1 = "82ffb02b29e662ae53bdc20af15947706739c536"; + }; + } + + { + name = "ajv-5.5.2.tgz"; + path = fetchurl { + name = "ajv-5.5.2.tgz"; + url = "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz"; + sha1 = "73b5eeca3fab653e3d3f9422b341ad42205dc965"; + }; + } + + { + name = "ajv-6.1.1.tgz"; + path = fetchurl { + name = "ajv-6.1.1.tgz"; + url = "https://registry.yarnpkg.com/ajv/-/ajv-6.1.1.tgz"; + sha1 = "978d597fbc2b7d0e5a5c3ddeb149a682f2abfa0e"; + }; + } + + { + name = "align-text-0.1.4.tgz"; + path = fetchurl { + name = "align-text-0.1.4.tgz"; + url = "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz"; + sha1 = "0cd90a561093f35d0a99256c22b7069433fad117"; + }; + } + + { + name = "ansi-escapes-3.0.0.tgz"; + path = fetchurl { + name = "ansi-escapes-3.0.0.tgz"; + url = "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.0.0.tgz"; + sha1 = "ec3e8b4e9f8064fc02c3ac9b65f1c275bda8ef92"; + }; + } + + { + name = "ansi-html-0.0.7.tgz"; + path = fetchurl { + name = "ansi-html-0.0.7.tgz"; + url = "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz"; + sha1 = "813584021962a9e9e6fd039f940d12f56ca7859e"; + }; + } + + { + name = "ansi-regex-2.1.1.tgz"; + path = fetchurl { + name = "ansi-regex-2.1.1.tgz"; + url = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz"; + sha1 = "c3b33ab5ee360d86e0e628f0468ae7ef27d654df"; + }; + } + + { + name = "ansi-regex-3.0.0.tgz"; + path = fetchurl { + name = "ansi-regex-3.0.0.tgz"; + url = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz"; + sha1 = "ed0317c322064f79466c02966bddb605ab37d998"; + }; + } + + { + name = "ansi-styles-2.2.1.tgz"; + path = fetchurl { + name = "ansi-styles-2.2.1.tgz"; + url = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz"; + sha1 = "b432dd3358b634cf75e1e4664368240533c1ddbe"; + }; + } + + { + name = "ansi-styles-3.2.0.tgz"; + path = fetchurl { + name = "ansi-styles-3.2.0.tgz"; + url = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.0.tgz"; + sha1 = "c159b8d5be0f9e5a6f346dab94f16ce022161b88"; + }; + } + + { + name = "anymatch-1.3.2.tgz"; + path = fetchurl { + name = "anymatch-1.3.2.tgz"; + url = "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz"; + sha1 = "553dcb8f91e3c889845dfdba34c77721b90b9d7a"; + }; + } + + { + name = "anymatch-2.0.0.tgz"; + path = fetchurl { + name = "anymatch-2.0.0.tgz"; + url = "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz"; + sha1 = "bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb"; + }; + } + + { + name = "aproba-1.2.0.tgz"; + path = fetchurl { + name = "aproba-1.2.0.tgz"; + url = "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz"; + sha1 = "6802e6264efd18c790a1b0d517f0f2627bf2c94a"; + }; + } + + { + name = "are-we-there-yet-1.1.4.tgz"; + path = fetchurl { + name = "are-we-there-yet-1.1.4.tgz"; + url = "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz"; + sha1 = "bb5dca382bb94f05e15194373d16fd3ba1ca110d"; + }; + } + + { + name = "argparse-1.0.9.tgz"; + path = fetchurl { + name = "argparse-1.0.9.tgz"; + url = "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz"; + sha1 = "73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86"; + }; + } + + { + name = "arr-diff-2.0.0.tgz"; + path = fetchurl { + name = "arr-diff-2.0.0.tgz"; + url = "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz"; + sha1 = "8f3b827f955a8bd669697e4a4256ac3ceae356cf"; + }; + } + + { + name = "arr-diff-4.0.0.tgz"; + path = fetchurl { + name = "arr-diff-4.0.0.tgz"; + url = "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz"; + sha1 = "d6461074febfec71e7e15235761a329a5dc7c520"; + }; + } + + { + name = "arr-flatten-1.1.0.tgz"; + path = fetchurl { + name = "arr-flatten-1.1.0.tgz"; + url = "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz"; + sha1 = "36048bbff4e7b47e136644316c99669ea5ae91f1"; + }; + } + + { + name = "arr-union-3.1.0.tgz"; + path = fetchurl { + name = "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-1.0.2.tgz"; + path = fetchurl { + name = "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-1.1.1.tgz"; + path = fetchurl { + name = "array-flatten-1.1.1.tgz"; + url = "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz"; + sha1 = "9a5f699051b1e7073328f2a008968b64ea2955d2"; + }; + } + + { + name = "array-flatten-2.1.1.tgz"; + path = fetchurl { + name = "array-flatten-2.1.1.tgz"; + url = "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.1.tgz"; + sha1 = "426bb9da84090c1838d812c8150af20a8331e296"; + }; + } + + { + name = "array-includes-3.0.3.tgz"; + path = fetchurl { + name = "array-includes-3.0.3.tgz"; + url = "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz"; + sha1 = "184b48f62d92d7452bb31b323165c7f8bd02266d"; + }; + } + + { + name = "array-union-1.0.2.tgz"; + path = fetchurl { + name = "array-union-1.0.2.tgz"; + url = "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz"; + sha1 = "9a34410e4f4e3da23dea375be5be70f24778ec39"; + }; + } + + { + name = "array-uniq-1.0.3.tgz"; + path = fetchurl { + name = "array-uniq-1.0.3.tgz"; + url = "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz"; + sha1 = "af6ac877a25cc7f74e058894753858dfdb24fdb6"; + }; + } + + { + name = "array-unique-0.2.1.tgz"; + path = fetchurl { + name = "array-unique-0.2.1.tgz"; + url = "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz"; + sha1 = "a1d97ccafcbc2625cc70fadceb36a50c58b01a53"; + }; + } + + { + name = "array-unique-0.3.2.tgz"; + path = fetchurl { + name = "array-unique-0.3.2.tgz"; + url = "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz"; + sha1 = "a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"; + }; + } + + { + name = "arrify-1.0.1.tgz"; + path = fetchurl { + name = "arrify-1.0.1.tgz"; + url = "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz"; + sha1 = "898508da2226f380df904728456849c1501a4b0d"; + }; + } + + { + name = "asap-2.0.6.tgz"; + path = fetchurl { + name = "asap-2.0.6.tgz"; + url = "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz"; + sha1 = "e50347611d7e690943208bbdafebcbc2fb866d46"; + }; + } + + { + name = "asn1.js-4.9.2.tgz"; + path = fetchurl { + name = "asn1.js-4.9.2.tgz"; + url = "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.9.2.tgz"; + sha1 = "8117ef4f7ed87cd8f89044b5bff97ac243a16c9a"; + }; + } + + { + name = "asn1-0.2.3.tgz"; + path = fetchurl { + name = "asn1-0.2.3.tgz"; + url = "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz"; + sha1 = "dac8787713c9966849fc8180777ebe9c1ddf3b86"; + }; + } + + { + name = "assert-plus-1.0.0.tgz"; + path = fetchurl { + name = "assert-plus-1.0.0.tgz"; + url = "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz"; + sha1 = "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"; + }; + } + + { + name = "assert-plus-0.2.0.tgz"; + path = fetchurl { + name = "assert-plus-0.2.0.tgz"; + url = "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz"; + sha1 = "d74e1b87e7affc0db8aadb7021f3fe48101ab234"; + }; + } + + { + name = "assert-1.4.1.tgz"; + path = fetchurl { + name = "assert-1.4.1.tgz"; + url = "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz"; + sha1 = "99912d591836b5a6f5b345c0f07eefc08fc65d91"; + }; + } + + { + name = "assign-symbols-1.0.0.tgz"; + path = fetchurl { + name = "assign-symbols-1.0.0.tgz"; + url = "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz"; + sha1 = "59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367"; + }; + } + + { + name = "async-each-1.0.1.tgz"; + path = fetchurl { + name = "async-each-1.0.1.tgz"; + url = "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz"; + sha1 = "19d386a1d9edc6e7c1c85d388aedbcc56d33602d"; + }; + } + + { + name = "async-1.5.2.tgz"; + path = fetchurl { + name = "async-1.5.2.tgz"; + url = "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz"; + sha1 = "ec6a61ae56480c0c3cb241c95618e20892f9672a"; + }; + } + + { + name = "async-2.6.0.tgz"; + path = fetchurl { + name = "async-2.6.0.tgz"; + url = "https://registry.yarnpkg.com/async/-/async-2.6.0.tgz"; + sha1 = "61a29abb6fcc026fea77e56d1c6ec53a795951f4"; + }; + } + + { + name = "asynckit-0.4.0.tgz"; + path = fetchurl { + name = "asynckit-0.4.0.tgz"; + url = "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz"; + sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"; + }; + } + + { + name = "atob-2.0.3.tgz"; + path = fetchurl { + name = "atob-2.0.3.tgz"; + url = "https://registry.yarnpkg.com/atob/-/atob-2.0.3.tgz"; + sha1 = "19c7a760473774468f20b2d2d03372ad7d4cbf5d"; + }; + } + + { + name = "aws-sign2-0.6.0.tgz"; + path = fetchurl { + name = "aws-sign2-0.6.0.tgz"; + url = "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz"; + sha1 = "14342dd38dbcc94d0e5b87d763cd63612c0e794f"; + }; + } + + { + name = "aws4-1.6.0.tgz"; + path = fetchurl { + name = "aws4-1.6.0.tgz"; + url = "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz"; + sha1 = "83ef5ca860b2b32e4a0deedee8c771b9db57471e"; + }; + } + + { + name = "babel-code-frame-6.26.0.tgz"; + path = fetchurl { + name = "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 = "balanced-match-1.0.0.tgz"; + path = fetchurl { + name = "balanced-match-1.0.0.tgz"; + url = "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz"; + sha1 = "89b4d199ab2bee49de164ea02b89ce462d71b767"; + }; + } + + { + name = "base64-js-1.2.1.tgz"; + path = fetchurl { + name = "base64-js-1.2.1.tgz"; + url = "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.1.tgz"; + sha1 = "a91947da1f4a516ea38e5b4ec0ec3773675e0886"; + }; + } + + { + name = "base-0.11.2.tgz"; + path = fetchurl { + name = "base-0.11.2.tgz"; + url = "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz"; + sha1 = "7bde5ced145b6d551a90db87f83c558b4eb48a8f"; + }; + } + + { + name = "batch-0.6.1.tgz"; + path = fetchurl { + name = "batch-0.6.1.tgz"; + url = "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz"; + sha1 = "dc34314f4e679318093fc760272525f94bf25c16"; + }; + } + + { + name = "bcrypt-pbkdf-1.0.1.tgz"; + path = fetchurl { + name = "bcrypt-pbkdf-1.0.1.tgz"; + url = "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz"; + sha1 = "63bc5dcb61331b92bc05fd528953c33462a06f8d"; + }; + } + + { + name = "big.js-3.2.0.tgz"; + path = fetchurl { + name = "big.js-3.2.0.tgz"; + url = "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz"; + sha1 = "a5fc298b81b9e0dca2e458824784b65c52ba588e"; + }; + } + + { + name = "binary-extensions-1.11.0.tgz"; + path = fetchurl { + name = "binary-extensions-1.11.0.tgz"; + url = "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz"; + sha1 = "46aa1751fb6a2f93ee5e689bb1087d4b14c6c205"; + }; + } + + { + name = "block-stream-0.0.9.tgz"; + path = fetchurl { + name = "block-stream-0.0.9.tgz"; + url = "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz"; + sha1 = "13ebfe778a03205cfe03751481ebb4b3300c126a"; + }; + } + + { + name = "bluebird-3.5.1.tgz"; + path = fetchurl { + name = "bluebird-3.5.1.tgz"; + url = "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz"; + sha1 = "d9551f9de98f1fcda1e683d17ee91a0602ee2eb9"; + }; + } + + { + name = "bn.js-4.11.8.tgz"; + path = fetchurl { + name = "bn.js-4.11.8.tgz"; + url = "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz"; + sha1 = "2cde09eb5ee341f484746bb0309b3253b1b1442f"; + }; + } + + { + name = "body-parser-1.18.2.tgz"; + path = fetchurl { + name = "body-parser-1.18.2.tgz"; + url = "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.2.tgz"; + sha1 = "87678a19d84b47d859b83199bd59bce222b10454"; + }; + } + + { + name = "bonjour-3.5.0.tgz"; + path = fetchurl { + name = "bonjour-3.5.0.tgz"; + url = "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz"; + sha1 = "8e890a183d8ee9a2393b3844c691a42bcf7bc9f5"; + }; + } + + { + name = "boolbase-1.0.0.tgz"; + path = fetchurl { + name = "boolbase-1.0.0.tgz"; + url = "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz"; + sha1 = "68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"; + }; + } + + { + name = "boom-2.10.1.tgz"; + path = fetchurl { + name = "boom-2.10.1.tgz"; + url = "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz"; + sha1 = "39c8918ceff5799f83f9492a848f625add0c766f"; + }; + } + + { + name = "brace-expansion-1.1.8.tgz"; + path = fetchurl { + name = "brace-expansion-1.1.8.tgz"; + url = "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz"; + sha1 = "c07b211c7c952ec1f8efd51a77ef0d1d3990a292"; + }; + } + + { + name = "braces-1.8.5.tgz"; + path = fetchurl { + name = "braces-1.8.5.tgz"; + url = "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz"; + sha1 = "ba77962e12dff969d6b76711e914b737857bf6a7"; + }; + } + + { + name = "braces-2.3.1.tgz"; + path = fetchurl { + name = "braces-2.3.1.tgz"; + url = "https://registry.yarnpkg.com/braces/-/braces-2.3.1.tgz"; + sha1 = "7086c913b4e5a08dbe37ac0ee6a2500c4ba691bb"; + }; + } + + { + name = "brorand-1.1.0.tgz"; + path = fetchurl { + name = "brorand-1.1.0.tgz"; + url = "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz"; + sha1 = "12c25efe40a45e3c323eb8675a0a0ce57b22371f"; + }; + } + + { + name = "browserify-aes-1.1.1.tgz"; + path = fetchurl { + name = "browserify-aes-1.1.1.tgz"; + url = "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.1.1.tgz"; + sha1 = "38b7ab55edb806ff2dcda1a7f1620773a477c49f"; + }; + } + + { + name = "browserify-cipher-1.0.0.tgz"; + path = fetchurl { + name = "browserify-cipher-1.0.0.tgz"; + url = "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.0.tgz"; + sha1 = "9988244874bf5ed4e28da95666dcd66ac8fc363a"; + }; + } + + { + name = "browserify-des-1.0.0.tgz"; + path = fetchurl { + name = "browserify-des-1.0.0.tgz"; + url = "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.0.tgz"; + sha1 = "daa277717470922ed2fe18594118a175439721dd"; + }; + } + + { + name = "browserify-rsa-4.0.1.tgz"; + path = fetchurl { + name = "browserify-rsa-4.0.1.tgz"; + url = "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz"; + sha1 = "21e0abfaf6f2029cf2fafb133567a701d4135524"; + }; + } + + { + name = "browserify-sign-4.0.4.tgz"; + path = fetchurl { + name = "browserify-sign-4.0.4.tgz"; + url = "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz"; + sha1 = "aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298"; + }; + } + + { + name = "browserify-zlib-0.2.0.tgz"; + path = fetchurl { + name = "browserify-zlib-0.2.0.tgz"; + url = "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz"; + sha1 = "2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f"; + }; + } + + { + name = "buble-loader-0.4.1.tgz"; + path = fetchurl { + name = "buble-loader-0.4.1.tgz"; + url = "https://registry.yarnpkg.com/buble-loader/-/buble-loader-0.4.1.tgz"; + sha1 = "45a4fe43ccc500835e99ae38ef17df4390ca66b9"; + }; + } + + { + name = "buble-0.15.2.tgz"; + path = fetchurl { + name = "buble-0.15.2.tgz"; + url = "https://registry.yarnpkg.com/buble/-/buble-0.15.2.tgz"; + sha1 = "547fc47483f8e5e8176d82aa5ebccb183b02d613"; + }; + } + + { + name = "buble-0.19.3.tgz"; + path = fetchurl { + name = "buble-0.19.3.tgz"; + url = "https://registry.yarnpkg.com/buble/-/buble-0.19.3.tgz"; + sha1 = "01e9412062cff1da6f20342b6ecd72e7bf699d02"; + }; + } + + { + name = "buffer-indexof-1.1.1.tgz"; + path = fetchurl { + name = "buffer-indexof-1.1.1.tgz"; + url = "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz"; + sha1 = "52fabcc6a606d1a00302802648ef68f639da268c"; + }; + } + + { + name = "buffer-xor-1.0.3.tgz"; + path = fetchurl { + name = "buffer-xor-1.0.3.tgz"; + url = "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz"; + sha1 = "26e61ed1422fb70dd42e6e36729ed51d855fe8d9"; + }; + } + + { + name = "buffer-4.9.1.tgz"; + path = fetchurl { + name = "buffer-4.9.1.tgz"; + url = "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz"; + sha1 = "6d1bb601b07a4efced97094132093027c95bc298"; + }; + } + + { + name = "builtin-modules-1.1.1.tgz"; + path = fetchurl { + name = "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-3.0.0.tgz"; + path = fetchurl { + name = "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-3.0.0.tgz"; + path = fetchurl { + name = "bytes-3.0.0.tgz"; + url = "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz"; + sha1 = "d32815404d689699f85a4ea4fa8755dd13a96048"; + }; + } + + { + name = "cacache-10.0.2.tgz"; + path = fetchurl { + name = "cacache-10.0.2.tgz"; + url = "https://registry.yarnpkg.com/cacache/-/cacache-10.0.2.tgz"; + sha1 = "105a93a162bbedf3a25da42e1939ed99ffb145f8"; + }; + } + + { + name = "cache-base-1.0.1.tgz"; + path = fetchurl { + name = "cache-base-1.0.1.tgz"; + url = "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz"; + sha1 = "0a7f46416831c8b662ee36fe4e7c59d76f666ab2"; + }; + } + + { + name = "caller-path-0.1.0.tgz"; + path = fetchurl { + name = "caller-path-0.1.0.tgz"; + url = "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz"; + sha1 = "94085ef63581ecd3daa92444a8fe94e82577751f"; + }; + } + + { + name = "callsites-0.2.0.tgz"; + path = fetchurl { + name = "callsites-0.2.0.tgz"; + url = "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz"; + sha1 = "afab96262910a7f33c19a5775825c69f34e350ca"; + }; + } + + { + name = "camel-case-3.0.0.tgz"; + path = fetchurl { + name = "camel-case-3.0.0.tgz"; + url = "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz"; + sha1 = "ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73"; + }; + } + + { + name = "camelcase-keys-2.1.0.tgz"; + path = fetchurl { + name = "camelcase-keys-2.1.0.tgz"; + url = "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz"; + sha1 = "308beeaffdf28119051efa1d932213c91b8f92e7"; + }; + } + + { + name = "camelcase-1.2.1.tgz"; + path = fetchurl { + name = "camelcase-1.2.1.tgz"; + url = "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz"; + sha1 = "9bb5304d2e0b56698b2c758b08a3eaa9daa58a39"; + }; + } + + { + name = "camelcase-2.1.1.tgz"; + path = fetchurl { + name = "camelcase-2.1.1.tgz"; + url = "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz"; + sha1 = "7c1d16d679a1bbe59ca02cacecfb011e201f5a1f"; + }; + } + + { + name = "camelcase-3.0.0.tgz"; + path = fetchurl { + name = "camelcase-3.0.0.tgz"; + url = "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz"; + sha1 = "32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a"; + }; + } + + { + name = "camelcase-4.1.0.tgz"; + path = fetchurl { + name = "camelcase-4.1.0.tgz"; + url = "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz"; + sha1 = "d545635be1e33c542649c69173e5de6acfae34dd"; + }; + } + + { + name = "caseless-0.12.0.tgz"; + path = fetchurl { + name = "caseless-0.12.0.tgz"; + url = "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz"; + sha1 = "1b681c21ff84033c826543090689420d187151dc"; + }; + } + + { + name = "center-align-0.1.3.tgz"; + path = fetchurl { + name = "center-align-0.1.3.tgz"; + url = "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz"; + sha1 = "aa0d32629b6ee972200411cbd4461c907bc2b7ad"; + }; + } + + { + name = "chalk-1.1.3.tgz"; + path = fetchurl { + name = "chalk-1.1.3.tgz"; + url = "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz"; + sha1 = "a8115c55e4a702fe4d150abd3872822a7e09fc98"; + }; + } + + { + name = "chalk-2.3.0.tgz"; + path = fetchurl { + name = "chalk-2.3.0.tgz"; + url = "https://registry.yarnpkg.com/chalk/-/chalk-2.3.0.tgz"; + sha1 = "b5ea48efc9c1793dccc9b4767c93914d3f2d52ba"; + }; + } + + { + name = "chalk-2.3.1.tgz"; + path = fetchurl { + name = "chalk-2.3.1.tgz"; + url = "https://registry.yarnpkg.com/chalk/-/chalk-2.3.1.tgz"; + sha1 = "523fe2678aec7b04e8041909292fe8b17059b796"; + }; + } + + { + name = "chardet-0.4.2.tgz"; + path = fetchurl { + name = "chardet-0.4.2.tgz"; + url = "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz"; + sha1 = "b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2"; + }; + } + + { + name = "chokidar-1.7.0.tgz"; + path = fetchurl { + name = "chokidar-1.7.0.tgz"; + url = "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz"; + sha1 = "798e689778151c8076b4b360e5edd28cda2bb468"; + }; + } + + { + name = "chokidar-2.0.2.tgz"; + path = fetchurl { + name = "chokidar-2.0.2.tgz"; + url = "https://registry.yarnpkg.com/chokidar/-/chokidar-2.0.2.tgz"; + sha1 = "4dc65139eeb2714977735b6a35d06e97b494dfd7"; + }; + } + + { + name = "chownr-1.0.1.tgz"; + path = fetchurl { + name = "chownr-1.0.1.tgz"; + url = "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz"; + sha1 = "e2a75042a9551908bebd25b8523d5f9769d79181"; + }; + } + + { + name = "cipher-base-1.0.4.tgz"; + path = fetchurl { + name = "cipher-base-1.0.4.tgz"; + url = "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz"; + sha1 = "8760e4ecc272f4c363532f926d874aae2c1397de"; + }; + } + + { + name = "circular-json-0.3.3.tgz"; + path = fetchurl { + name = "circular-json-0.3.3.tgz"; + url = "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz"; + sha1 = "815c99ea84f6809529d2f45791bdf82711352d66"; + }; + } + + { + name = "class-utils-0.3.6.tgz"; + path = fetchurl { + name = "class-utils-0.3.6.tgz"; + url = "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz"; + sha1 = "f93369ae8b9a7ce02fd41faad0ca83033190c463"; + }; + } + + { + name = "clean-css-4.1.9.tgz"; + path = fetchurl { + name = "clean-css-4.1.9.tgz"; + url = "https://registry.yarnpkg.com/clean-css/-/clean-css-4.1.9.tgz"; + sha1 = "35cee8ae7687a49b98034f70de00c4edd3826301"; + }; + } + + { + name = "cli-cursor-2.1.0.tgz"; + path = fetchurl { + name = "cli-cursor-2.1.0.tgz"; + url = "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz"; + sha1 = "b35dac376479facc3e94747d41d0d0f5238ffcb5"; + }; + } + + { + name = "cli-width-2.2.0.tgz"; + path = fetchurl { + name = "cli-width-2.2.0.tgz"; + url = "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz"; + sha1 = "ff19ede8a9a5e579324147b0c11f0fbcbabed639"; + }; + } + + { + name = "cliui-2.1.0.tgz"; + path = fetchurl { + name = "cliui-2.1.0.tgz"; + url = "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz"; + sha1 = "4b475760ff80264c762c3a1719032e91c7fea0d1"; + }; + } + + { + name = "cliui-3.2.0.tgz"; + path = fetchurl { + name = "cliui-3.2.0.tgz"; + url = "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz"; + sha1 = "120601537a916d29940f934da3b48d585a39213d"; + }; + } + + { + name = "clone-2.1.1.tgz"; + path = fetchurl { + name = "clone-2.1.1.tgz"; + url = "https://registry.yarnpkg.com/clone/-/clone-2.1.1.tgz"; + sha1 = "d217d1e961118e3ac9a4b8bba3285553bf647cdb"; + }; + } + + { + name = "co-4.6.0.tgz"; + path = fetchurl { + name = "co-4.6.0.tgz"; + url = "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz"; + sha1 = "6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"; + }; + } + + { + name = "code-point-at-1.1.0.tgz"; + path = fetchurl { + name = "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-1.0.0.tgz"; + path = fetchurl { + name = "collection-visit-1.0.0.tgz"; + url = "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz"; + sha1 = "4bc0373c164bc3291b4d368c829cf1a80a59dca0"; + }; + } + + { + name = "color-convert-1.9.1.tgz"; + path = fetchurl { + name = "color-convert-1.9.1.tgz"; + url = "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.1.tgz"; + sha1 = "c1261107aeb2f294ebffec9ed9ecad529a6097ed"; + }; + } + + { + name = "color-name-1.1.3.tgz"; + path = fetchurl { + name = "color-name-1.1.3.tgz"; + url = "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz"; + sha1 = "a7d0558bd89c42f795dd42328f740831ca53bc25"; + }; + } + + { + name = "combined-stream-1.0.5.tgz"; + path = fetchurl { + name = "combined-stream-1.0.5.tgz"; + url = "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz"; + sha1 = "938370a57b4a51dea2c77c15d5c5fdf895164009"; + }; + } + + { + name = "commander-2.12.2.tgz"; + path = fetchurl { + name = "commander-2.12.2.tgz"; + url = "https://registry.yarnpkg.com/commander/-/commander-2.12.2.tgz"; + sha1 = "0f5946c427ed9ec0d91a46bb9def53e54650e555"; + }; + } + + { + name = "commander-2.13.0.tgz"; + path = fetchurl { + name = "commander-2.13.0.tgz"; + url = "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz"; + sha1 = "6964bca67685df7c1f1430c584f07d7597885b9c"; + }; + } + + { + name = "commondir-1.0.1.tgz"; + path = fetchurl { + name = "commondir-1.0.1.tgz"; + url = "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz"; + sha1 = "ddd800da0c66127393cca5950ea968a3aaf1253b"; + }; + } + + { + name = "component-emitter-1.2.1.tgz"; + path = fetchurl { + name = "component-emitter-1.2.1.tgz"; + url = "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz"; + sha1 = "137918d6d78283f7df7a6b7c5a63e140e69425e6"; + }; + } + + { + name = "compressible-2.0.13.tgz"; + path = fetchurl { + name = "compressible-2.0.13.tgz"; + url = "https://registry.yarnpkg.com/compressible/-/compressible-2.0.13.tgz"; + sha1 = "0d1020ab924b2fdb4d6279875c7d6daba6baa7a9"; + }; + } + + { + name = "compression-1.7.2.tgz"; + path = fetchurl { + name = "compression-1.7.2.tgz"; + url = "https://registry.yarnpkg.com/compression/-/compression-1.7.2.tgz"; + sha1 = "aaffbcd6aaf854b44ebb280353d5ad1651f59a69"; + }; + } + + { + name = "concat-map-0.0.1.tgz"; + path = fetchurl { + name = "concat-map-0.0.1.tgz"; + url = "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz"; + sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b"; + }; + } + + { + name = "concat-stream-1.6.0.tgz"; + path = fetchurl { + name = "concat-stream-1.6.0.tgz"; + url = "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz"; + sha1 = "0aac662fd52be78964d5532f694784e70110acf7"; + }; + } + + { + name = "connect-history-api-fallback-1.5.0.tgz"; + path = fetchurl { + name = "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-1.1.0.tgz"; + path = fetchurl { + name = "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-1.1.0.tgz"; + path = fetchurl { + name = "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-1.0.0.tgz"; + path = fetchurl { + name = "constants-browserify-1.0.0.tgz"; + url = "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz"; + sha1 = "c20b96d8c617748aaf1c16021760cd27fcb8cb75"; + }; + } + + { + name = "content-disposition-0.5.2.tgz"; + path = fetchurl { + name = "content-disposition-0.5.2.tgz"; + url = "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz"; + sha1 = "0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4"; + }; + } + + { + name = "content-type-1.0.4.tgz"; + path = fetchurl { + name = "content-type-1.0.4.tgz"; + url = "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz"; + sha1 = "e138cc75e040c727b1966fe5e5f8c9aee256fe3b"; + }; + } + + { + name = "cookie-signature-1.0.6.tgz"; + path = fetchurl { + name = "cookie-signature-1.0.6.tgz"; + url = "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz"; + sha1 = "e303a882b342cc3ee8ca513a79999734dab3ae2c"; + }; + } + + { + name = "cookie-0.3.1.tgz"; + path = fetchurl { + name = "cookie-0.3.1.tgz"; + url = "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz"; + sha1 = "e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb"; + }; + } + + { + name = "copy-concurrently-1.0.5.tgz"; + path = fetchurl { + name = "copy-concurrently-1.0.5.tgz"; + url = "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz"; + sha1 = "92297398cae34937fcafd6ec8139c18051f0b5e0"; + }; + } + + { + name = "copy-descriptor-0.1.1.tgz"; + path = fetchurl { + name = "copy-descriptor-0.1.1.tgz"; + url = "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz"; + sha1 = "676f6eb3c39997c2ee1ac3a924fd6124748f578d"; + }; + } + + { + name = "core-util-is-1.0.2.tgz"; + path = fetchurl { + name = "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-4.0.0.tgz"; + path = fetchurl { + name = "create-ecdh-4.0.0.tgz"; + url = "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.0.tgz"; + sha1 = "888c723596cdf7612f6498233eebd7a35301737d"; + }; + } + + { + name = "create-hash-1.1.3.tgz"; + path = fetchurl { + name = "create-hash-1.1.3.tgz"; + url = "https://registry.yarnpkg.com/create-hash/-/create-hash-1.1.3.tgz"; + sha1 = "606042ac8b9262750f483caddab0f5819172d8fd"; + }; + } + + { + name = "create-hmac-1.1.6.tgz"; + path = fetchurl { + name = "create-hmac-1.1.6.tgz"; + url = "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.6.tgz"; + sha1 = "acb9e221a4e17bdb076e90657c42b93e3726cf06"; + }; + } + + { + name = "cross-spawn-5.1.0.tgz"; + path = fetchurl { + name = "cross-spawn-5.1.0.tgz"; + url = "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz"; + sha1 = "e8bd0efee58fcff6f8f94510a0a554bbfa235449"; + }; + } + + { + name = "cryptiles-2.0.5.tgz"; + path = fetchurl { + name = "cryptiles-2.0.5.tgz"; + url = "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz"; + sha1 = "3bdfecdc608147c1c67202fa291e7dca59eaa3b8"; + }; + } + + { + name = "crypto-browserify-3.12.0.tgz"; + path = fetchurl { + name = "crypto-browserify-3.12.0.tgz"; + url = "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz"; + sha1 = "396cf9f3137f03e4b8e532c58f698254e00f80ec"; + }; + } + + { + name = "css-select-1.2.0.tgz"; + path = fetchurl { + name = "css-select-1.2.0.tgz"; + url = "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz"; + sha1 = "2b3a110539c5355f1cd8d314623e870b121ec858"; + }; + } + + { + name = "css-what-2.1.0.tgz"; + path = fetchurl { + name = "css-what-2.1.0.tgz"; + url = "https://registry.yarnpkg.com/css-what/-/css-what-2.1.0.tgz"; + sha1 = "9467d032c38cfaefb9f2d79501253062f87fa1bd"; + }; + } + + { + name = "currently-unhandled-0.4.1.tgz"; + path = fetchurl { + name = "currently-unhandled-0.4.1.tgz"; + url = "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz"; + sha1 = "988df33feab191ef799a61369dd76c17adf957ea"; + }; + } + + { + name = "cyclist-0.2.2.tgz"; + path = fetchurl { + name = "cyclist-0.2.2.tgz"; + url = "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz"; + sha1 = "1b33792e11e914a2fd6d6ed6447464444e5fa640"; + }; + } + + { + name = "d-1.0.0.tgz"; + path = fetchurl { + name = "d-1.0.0.tgz"; + url = "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz"; + sha1 = "754bb5bfe55451da69a58b94d45f4c5b0462d58f"; + }; + } + + { + name = "dashdash-1.14.1.tgz"; + path = fetchurl { + name = "dashdash-1.14.1.tgz"; + url = "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz"; + sha1 = "853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"; + }; + } + + { + name = "date-now-0.1.4.tgz"; + path = fetchurl { + name = "date-now-0.1.4.tgz"; + url = "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz"; + sha1 = "eaf439fd4d4848ad74e5cc7dbef200672b9e345b"; + }; + } + + { + name = "debug-2.6.9.tgz"; + path = fetchurl { + name = "debug-2.6.9.tgz"; + url = "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz"; + sha1 = "5d128515df134ff327e90a4c93f4e077a536341f"; + }; + } + + { + name = "debug-3.1.0.tgz"; + path = fetchurl { + name = "debug-3.1.0.tgz"; + url = "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz"; + sha1 = "5bb5a0672628b64149566ba16819e61518c67261"; + }; + } + + { + name = "decamelize-1.2.0.tgz"; + path = fetchurl { + name = "decamelize-1.2.0.tgz"; + url = "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz"; + sha1 = "f6534d15148269b20352e7bee26f501f9a191290"; + }; + } + + { + name = "decode-uri-component-0.2.0.tgz"; + path = fetchurl { + name = "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-1.0.1.tgz"; + path = fetchurl { + name = "deep-equal-1.0.1.tgz"; + url = "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz"; + sha1 = "f5d260292b660e084eff4cdbc9f08ad3247448b5"; + }; + } + + { + name = "deep-extend-0.4.2.tgz"; + path = fetchurl { + name = "deep-extend-0.4.2.tgz"; + url = "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz"; + sha1 = "48b699c27e334bf89f10892be432f6e4c7d34a7f"; + }; + } + + { + name = "deep-is-0.1.3.tgz"; + path = fetchurl { + name = "deep-is-0.1.3.tgz"; + url = "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz"; + sha1 = "b369d6fb5dbc13eecf524f91b070feedc357cf34"; + }; + } + + { + name = "define-properties-1.1.2.tgz"; + path = fetchurl { + name = "define-properties-1.1.2.tgz"; + url = "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz"; + sha1 = "83a73f2fea569898fb737193c8f873caf6d45c94"; + }; + } + + { + name = "define-property-0.2.5.tgz"; + path = fetchurl { + name = "define-property-0.2.5.tgz"; + url = "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz"; + sha1 = "c35b1ef918ec3c990f9a5bc57be04aacec5c8116"; + }; + } + + { + name = "define-property-1.0.0.tgz"; + path = fetchurl { + name = "define-property-1.0.0.tgz"; + url = "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz"; + sha1 = "769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6"; + }; + } + + { + name = "define-property-2.0.2.tgz"; + path = fetchurl { + name = "define-property-2.0.2.tgz"; + url = "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz"; + sha1 = "d459689e8d654ba77e02a817f8710d702cb16e9d"; + }; + } + + { + name = "del-2.2.2.tgz"; + path = fetchurl { + name = "del-2.2.2.tgz"; + url = "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz"; + sha1 = "c12c981d067846c84bcaf862cff930d907ffd1a8"; + }; + } + + { + name = "del-3.0.0.tgz"; + path = fetchurl { + name = "del-3.0.0.tgz"; + url = "https://registry.yarnpkg.com/del/-/del-3.0.0.tgz"; + sha1 = "53ecf699ffcbcb39637691ab13baf160819766e5"; + }; + } + + { + name = "delayed-stream-1.0.0.tgz"; + path = fetchurl { + name = "delayed-stream-1.0.0.tgz"; + url = "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz"; + sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619"; + }; + } + + { + name = "delegates-1.0.0.tgz"; + path = fetchurl { + name = "delegates-1.0.0.tgz"; + url = "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz"; + sha1 = "84c6e159b81904fdca59a0ef44cd870d31250f9a"; + }; + } + + { + name = "depd-1.1.1.tgz"; + path = fetchurl { + name = "depd-1.1.1.tgz"; + url = "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz"; + sha1 = "5783b4e1c459f06fa5ca27f991f3d06e7a310359"; + }; + } + + { + name = "depd-1.1.2.tgz"; + path = fetchurl { + name = "depd-1.1.2.tgz"; + url = "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz"; + sha1 = "9bcd52e14c097763e749b274c4346ed2e560b5a9"; + }; + } + + { + name = "des.js-1.0.0.tgz"; + path = fetchurl { + name = "des.js-1.0.0.tgz"; + url = "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz"; + sha1 = "c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc"; + }; + } + + { + name = "destroy-1.0.4.tgz"; + path = fetchurl { + name = "destroy-1.0.4.tgz"; + url = "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz"; + sha1 = "978857442c44749e4206613e37946205826abd80"; + }; + } + + { + name = "detect-libc-1.0.3.tgz"; + path = fetchurl { + name = "detect-libc-1.0.3.tgz"; + url = "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz"; + sha1 = "fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"; + }; + } + + { + name = "detect-node-2.0.3.tgz"; + path = fetchurl { + name = "detect-node-2.0.3.tgz"; + url = "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.3.tgz"; + sha1 = "a2033c09cc8e158d37748fbde7507832bd6ce127"; + }; + } + + { + name = "diffie-hellman-5.0.2.tgz"; + path = fetchurl { + name = "diffie-hellman-5.0.2.tgz"; + url = "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.2.tgz"; + sha1 = "b5835739270cfe26acf632099fded2a07f209e5e"; + }; + } + + { + name = "dns-equal-1.0.0.tgz"; + path = fetchurl { + name = "dns-equal-1.0.0.tgz"; + url = "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz"; + sha1 = "b39e7f1da6eb0a75ba9c17324b34753c47e0654d"; + }; + } + + { + name = "dns-packet-1.3.1.tgz"; + path = fetchurl { + name = "dns-packet-1.3.1.tgz"; + url = "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.1.tgz"; + sha1 = "12aa426981075be500b910eedcd0b47dd7deda5a"; + }; + } + + { + name = "dns-txt-2.0.2.tgz"; + path = fetchurl { + name = "dns-txt-2.0.2.tgz"; + url = "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz"; + sha1 = "b91d806f5d27188e4ab3e7d107d881a1cc4642b6"; + }; + } + + { + name = "doctrine-2.1.0.tgz"; + path = fetchurl { + name = "doctrine-2.1.0.tgz"; + url = "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz"; + sha1 = "5cd01fc101621b42c4cd7f5d1a66243716d3f39d"; + }; + } + + { + name = "dom-converter-0.1.4.tgz"; + path = fetchurl { + name = "dom-converter-0.1.4.tgz"; + url = "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.1.4.tgz"; + sha1 = "a45ef5727b890c9bffe6d7c876e7b19cb0e17f3b"; + }; + } + + { + name = "dom-serializer-0.1.0.tgz"; + path = fetchurl { + name = "dom-serializer-0.1.0.tgz"; + url = "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz"; + sha1 = "073c697546ce0780ce23be4a28e293e40bc30c82"; + }; + } + + { + name = "domain-browser-1.1.7.tgz"; + path = fetchurl { + name = "domain-browser-1.1.7.tgz"; + url = "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.1.7.tgz"; + sha1 = "867aa4b093faa05f1de08c06f4d7b21fdf8698bc"; + }; + } + + { + name = "domelementtype-1.3.0.tgz"; + path = fetchurl { + name = "domelementtype-1.3.0.tgz"; + url = "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.0.tgz"; + sha1 = "b17aed82e8ab59e52dd9c19b1756e0fc187204c2"; + }; + } + + { + name = "domelementtype-1.1.3.tgz"; + path = fetchurl { + name = "domelementtype-1.1.3.tgz"; + url = "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz"; + sha1 = "bd28773e2642881aec51544924299c5cd822185b"; + }; + } + + { + name = "domhandler-2.1.0.tgz"; + path = fetchurl { + name = "domhandler-2.1.0.tgz"; + url = "https://registry.yarnpkg.com/domhandler/-/domhandler-2.1.0.tgz"; + sha1 = "d2646f5e57f6c3bab11cf6cb05d3c0acf7412594"; + }; + } + + { + name = "domutils-1.1.6.tgz"; + path = fetchurl { + name = "domutils-1.1.6.tgz"; + url = "https://registry.yarnpkg.com/domutils/-/domutils-1.1.6.tgz"; + sha1 = "bddc3de099b9a2efacc51c623f28f416ecc57485"; + }; + } + + { + name = "domutils-1.5.1.tgz"; + path = fetchurl { + name = "domutils-1.5.1.tgz"; + url = "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz"; + sha1 = "dcd8488a26f563d61079e48c9f7b7e32373682cf"; + }; + } + + { + name = "duplexify-3.5.3.tgz"; + path = fetchurl { + name = "duplexify-3.5.3.tgz"; + url = "https://registry.yarnpkg.com/duplexify/-/duplexify-3.5.3.tgz"; + sha1 = "8b5818800df92fd0125b27ab896491912858243e"; + }; + } + + { + name = "ecc-jsbn-0.1.1.tgz"; + path = fetchurl { + name = "ecc-jsbn-0.1.1.tgz"; + url = "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz"; + sha1 = "0fc73a9ed5f0d53c38193398523ef7e543777505"; + }; + } + + { + name = "ee-first-1.1.1.tgz"; + path = fetchurl { + name = "ee-first-1.1.1.tgz"; + url = "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz"; + sha1 = "590c61156b0ae2f4f0255732a158b266bc56b21d"; + }; + } + + { + name = "elliptic-6.4.0.tgz"; + path = fetchurl { + name = "elliptic-6.4.0.tgz"; + url = "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.0.tgz"; + sha1 = "cac9af8762c85836187003c8dfe193e5e2eae5df"; + }; + } + + { + name = "emojis-list-2.1.0.tgz"; + path = fetchurl { + name = "emojis-list-2.1.0.tgz"; + url = "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz"; + sha1 = "4daa4d9db00f9819880c79fa457ae5b09a1fd389"; + }; + } + + { + name = "encodeurl-1.0.2.tgz"; + path = fetchurl { + name = "encodeurl-1.0.2.tgz"; + url = "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz"; + sha1 = "ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"; + }; + } + + { + name = "end-of-stream-1.4.1.tgz"; + path = fetchurl { + name = "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-3.4.1.tgz"; + path = fetchurl { + name = "enhanced-resolve-3.4.1.tgz"; + url = "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz"; + sha1 = "0421e339fd71419b3da13d129b3979040230476e"; + }; + } + + { + name = "entities-1.1.1.tgz"; + path = fetchurl { + name = "entities-1.1.1.tgz"; + url = "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz"; + sha1 = "6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0"; + }; + } + + { + name = "errno-0.1.6.tgz"; + path = fetchurl { + name = "errno-0.1.6.tgz"; + url = "https://registry.yarnpkg.com/errno/-/errno-0.1.6.tgz"; + sha1 = "c386ce8a6283f14fc09563b71560908c9bf53026"; + }; + } + + { + name = "error-ex-1.3.1.tgz"; + path = fetchurl { + name = "error-ex-1.3.1.tgz"; + url = "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz"; + sha1 = "f855a86ce61adc4e8621c3cda21e7a7612c3a8dc"; + }; + } + + { + name = "es-abstract-1.10.0.tgz"; + path = fetchurl { + name = "es-abstract-1.10.0.tgz"; + url = "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.10.0.tgz"; + sha1 = "1ecb36c197842a00d8ee4c2dfd8646bb97d60864"; + }; + } + + { + name = "es-to-primitive-1.1.1.tgz"; + path = fetchurl { + name = "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-0.10.38.tgz"; + path = fetchurl { + name = "es5-ext-0.10.38.tgz"; + url = "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.38.tgz"; + sha1 = "fa7d40d65bbc9bb8a67e1d3f9cc656a00530eed3"; + }; + } + + { + name = "es6-iterator-2.0.3.tgz"; + path = fetchurl { + name = "es6-iterator-2.0.3.tgz"; + url = "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz"; + sha1 = "a7de889141a05a94b0854403b2d0a0fbfa98f3b7"; + }; + } + + { + name = "es6-map-0.1.5.tgz"; + path = fetchurl { + name = "es6-map-0.1.5.tgz"; + url = "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz"; + sha1 = "9136e0503dcc06a301690f0bb14ff4e364e949f0"; + }; + } + + { + name = "es6-set-0.1.5.tgz"; + path = fetchurl { + name = "es6-set-0.1.5.tgz"; + url = "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz"; + sha1 = "d2b3ec5d4d800ced818db538d28974db0a73ccb1"; + }; + } + + { + name = "es6-symbol-3.1.1.tgz"; + path = fetchurl { + name = "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-2.0.2.tgz"; + path = fetchurl { + name = "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-1.0.3.tgz"; + path = fetchurl { + name = "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-1.0.5.tgz"; + path = fetchurl { + name = "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-3.6.0.tgz"; + path = fetchurl { + name = "escope-3.6.0.tgz"; + url = "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz"; + sha1 = "e01975e812781a163a6dadfdd80398dc64c889c3"; + }; + } + + { + name = "eslint-scope-3.7.1.tgz"; + path = fetchurl { + name = "eslint-scope-3.7.1.tgz"; + url = "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz"; + sha1 = "3d63c3edfda02e06e01a452ad88caacc7cdcb6e8"; + }; + } + + { + name = "eslint-visitor-keys-1.0.0.tgz"; + path = fetchurl { + name = "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-4.18.1.tgz"; + path = fetchurl { + name = "eslint-4.18.1.tgz"; + url = "https://registry.yarnpkg.com/eslint/-/eslint-4.18.1.tgz"; + sha1 = "b9138440cb1e98b2f44a0d578c6ecf8eae6150b0"; + }; + } + + { + name = "espree-3.5.2.tgz"; + path = fetchurl { + name = "espree-3.5.2.tgz"; + url = "https://registry.yarnpkg.com/espree/-/espree-3.5.2.tgz"; + sha1 = "756ada8b979e9dcfcdb30aad8d1a9304a905e1ca"; + }; + } + + { + name = "esprima-4.0.0.tgz"; + path = fetchurl { + name = "esprima-4.0.0.tgz"; + url = "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz"; + sha1 = "4499eddcd1110e0b218bacf2fa7f7f59f55ca804"; + }; + } + + { + name = "esquery-1.0.0.tgz"; + path = fetchurl { + name = "esquery-1.0.0.tgz"; + url = "https://registry.yarnpkg.com/esquery/-/esquery-1.0.0.tgz"; + sha1 = "cfba8b57d7fba93f17298a8a006a04cda13d80fa"; + }; + } + + { + name = "esrecurse-4.2.0.tgz"; + path = fetchurl { + name = "esrecurse-4.2.0.tgz"; + url = "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.0.tgz"; + sha1 = "fa9568d98d3823f9a41d91e902dcab9ea6e5b163"; + }; + } + + { + name = "estraverse-4.2.0.tgz"; + path = fetchurl { + name = "estraverse-4.2.0.tgz"; + url = "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz"; + sha1 = "0dee3fed31fcd469618ce7342099fc1afa0bdb13"; + }; + } + + { + name = "esutils-2.0.2.tgz"; + path = fetchurl { + name = "esutils-2.0.2.tgz"; + url = "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz"; + sha1 = "0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"; + }; + } + + { + name = "etag-1.8.1.tgz"; + path = fetchurl { + name = "etag-1.8.1.tgz"; + url = "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz"; + sha1 = "41ae2eeb65efa62268aebfea83ac7d79299b0887"; + }; + } + + { + name = "event-emitter-0.3.5.tgz"; + path = fetchurl { + name = "event-emitter-0.3.5.tgz"; + url = "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz"; + sha1 = "df8c69eef1647923c7157b9ce83840610b02cc39"; + }; + } + + { + name = "eventemitter3-1.2.0.tgz"; + path = fetchurl { + name = "eventemitter3-1.2.0.tgz"; + url = "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-1.2.0.tgz"; + sha1 = "1c86991d816ad1e504750e73874224ecf3bec508"; + }; + } + + { + name = "events-1.1.1.tgz"; + path = fetchurl { + name = "events-1.1.1.tgz"; + url = "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz"; + sha1 = "9ebdb7635ad099c70dcc4c2a1f5004288e8bd924"; + }; + } + + { + name = "eventsource-0.1.6.tgz"; + path = fetchurl { + name = "eventsource-0.1.6.tgz"; + url = "https://registry.yarnpkg.com/eventsource/-/eventsource-0.1.6.tgz"; + sha1 = "0acede849ed7dd1ccc32c811bb11b944d4f29232"; + }; + } + + { + name = "evp_bytestokey-1.0.3.tgz"; + path = fetchurl { + name = "evp_bytestokey-1.0.3.tgz"; + url = "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz"; + sha1 = "7fcbdb198dc71959432efe13842684e0525acb02"; + }; + } + + { + name = "execa-0.7.0.tgz"; + path = fetchurl { + name = "execa-0.7.0.tgz"; + url = "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz"; + sha1 = "944becd34cc41ee32a63a9faf27ad5a65fc59777"; + }; + } + + { + name = "expand-brackets-0.1.5.tgz"; + path = fetchurl { + name = "expand-brackets-0.1.5.tgz"; + url = "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz"; + sha1 = "df07284e342a807cd733ac5af72411e581d1177b"; + }; + } + + { + name = "expand-brackets-2.1.4.tgz"; + path = fetchurl { + name = "expand-brackets-2.1.4.tgz"; + url = "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz"; + sha1 = "b77735e315ce30f6b6eff0f83b04151a22449622"; + }; + } + + { + name = "expand-range-1.8.2.tgz"; + path = fetchurl { + name = "expand-range-1.8.2.tgz"; + url = "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz"; + sha1 = "a299effd335fe2721ebae8e257ec79644fc85337"; + }; + } + + { + name = "express-4.16.2.tgz"; + path = fetchurl { + name = "express-4.16.2.tgz"; + url = "https://registry.yarnpkg.com/express/-/express-4.16.2.tgz"; + sha1 = "e35c6dfe2d64b7dca0a5cd4f21781be3299e076c"; + }; + } + + { + name = "extend-shallow-2.0.1.tgz"; + path = fetchurl { + name = "extend-shallow-2.0.1.tgz"; + url = "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz"; + sha1 = "51af7d614ad9a9f610ea1bafbb989d6b1c56890f"; + }; + } + + { + name = "extend-shallow-3.0.2.tgz"; + path = fetchurl { + name = "extend-shallow-3.0.2.tgz"; + url = "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz"; + sha1 = "26a71aaf073b39fb2127172746131c2704028db8"; + }; + } + + { + name = "extend-3.0.1.tgz"; + path = fetchurl { + name = "extend-3.0.1.tgz"; + url = "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz"; + sha1 = "a755ea7bc1adfcc5a31ce7e762dbaadc5e636444"; + }; + } + + { + name = "external-editor-2.1.0.tgz"; + path = fetchurl { + name = "external-editor-2.1.0.tgz"; + url = "https://registry.yarnpkg.com/external-editor/-/external-editor-2.1.0.tgz"; + sha1 = "3d026a21b7f95b5726387d4200ac160d372c3b48"; + }; + } + + { + name = "extglob-0.3.2.tgz"; + path = fetchurl { + name = "extglob-0.3.2.tgz"; + url = "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz"; + sha1 = "2e18ff3d2f49ab2765cec9023f011daa8d8349a1"; + }; + } + + { + name = "extglob-2.0.4.tgz"; + path = fetchurl { + name = "extglob-2.0.4.tgz"; + url = "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz"; + sha1 = "ad00fe4dc612a9232e8718711dc5cb5ab0285543"; + }; + } + + { + name = "extsprintf-1.3.0.tgz"; + path = fetchurl { + name = "extsprintf-1.3.0.tgz"; + url = "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz"; + sha1 = "96918440e3041a7a414f8c52e3c574eb3c3e1e05"; + }; + } + + { + name = "extsprintf-1.4.0.tgz"; + path = fetchurl { + name = "extsprintf-1.4.0.tgz"; + url = "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz"; + sha1 = "e2689f8f356fad62cca65a3a91c5df5f9551692f"; + }; + } + + { + name = "fast-deep-equal-1.0.0.tgz"; + path = fetchurl { + name = "fast-deep-equal-1.0.0.tgz"; + url = "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz"; + sha1 = "96256a3bc975595eb36d82e9929d060d893439ff"; + }; + } + + { + name = "fast-json-stable-stringify-2.0.0.tgz"; + path = fetchurl { + name = "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-2.0.6.tgz"; + path = fetchurl { + name = "fast-levenshtein-2.0.6.tgz"; + url = "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz"; + sha1 = "3d8a5c66883a16a30ca8643e851f19baa7797917"; + }; + } + + { + name = "faye-websocket-0.10.0.tgz"; + path = fetchurl { + name = "faye-websocket-0.10.0.tgz"; + url = "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz"; + sha1 = "4e492f8d04dfb6f89003507f6edbf2d501e7c6f4"; + }; + } + + { + name = "faye-websocket-0.11.1.tgz"; + path = fetchurl { + name = "faye-websocket-0.11.1.tgz"; + url = "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.1.tgz"; + sha1 = "f0efe18c4f56e4f40afc7e06c719fd5ee6188f38"; + }; + } + + { + name = "figures-2.0.0.tgz"; + path = fetchurl { + name = "figures-2.0.0.tgz"; + url = "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz"; + sha1 = "3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962"; + }; + } + + { + name = "file-entry-cache-2.0.0.tgz"; + path = fetchurl { + name = "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 = "filename-regex-2.0.1.tgz"; + path = fetchurl { + name = "filename-regex-2.0.1.tgz"; + url = "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz"; + sha1 = "c1c4b9bee3e09725ddb106b75c1e301fe2f18b26"; + }; + } + + { + name = "fill-range-2.2.3.tgz"; + path = fetchurl { + name = "fill-range-2.2.3.tgz"; + url = "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz"; + sha1 = "50b77dfd7e469bc7492470963699fe7a8485a723"; + }; + } + + { + name = "fill-range-4.0.0.tgz"; + path = fetchurl { + name = "fill-range-4.0.0.tgz"; + url = "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz"; + sha1 = "d544811d428f98eb06a63dc402d2403c328c38f7"; + }; + } + + { + name = "finalhandler-1.1.0.tgz"; + path = fetchurl { + name = "finalhandler-1.1.0.tgz"; + url = "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.0.tgz"; + sha1 = "ce0b6855b45853e791b2fcc680046d88253dd7f5"; + }; + } + + { + name = "find-cache-dir-1.0.0.tgz"; + path = fetchurl { + name = "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-1.1.2.tgz"; + path = fetchurl { + name = "find-up-1.1.2.tgz"; + url = "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz"; + sha1 = "6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f"; + }; + } + + { + name = "find-up-2.1.0.tgz"; + path = fetchurl { + name = "find-up-2.1.0.tgz"; + url = "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz"; + sha1 = "45d1b7e506c717ddd482775a2b77920a3c0c57a7"; + }; + } + + { + name = "flat-cache-1.3.0.tgz"; + path = fetchurl { + name = "flat-cache-1.3.0.tgz"; + url = "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.0.tgz"; + sha1 = "d3030b32b38154f4e3b7e9c709f490f7ef97c481"; + }; + } + + { + name = "flush-write-stream-1.0.2.tgz"; + path = fetchurl { + name = "flush-write-stream-1.0.2.tgz"; + url = "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.0.2.tgz"; + sha1 = "c81b90d8746766f1a609a46809946c45dd8ae417"; + }; + } + + { + name = "for-in-1.0.2.tgz"; + path = fetchurl { + name = "for-in-1.0.2.tgz"; + url = "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz"; + sha1 = "81068d295a8142ec0ac726c6e2200c30fb6d5e80"; + }; + } + + { + name = "for-own-0.1.5.tgz"; + path = fetchurl { + name = "for-own-0.1.5.tgz"; + url = "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz"; + sha1 = "5265c681a4f294dabbf17c9509b6763aa84510ce"; + }; + } + + { + name = "foreach-2.0.5.tgz"; + path = fetchurl { + name = "foreach-2.0.5.tgz"; + url = "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz"; + sha1 = "0bee005018aeb260d0a3af3ae658dd0136ec1b99"; + }; + } + + { + name = "forever-agent-0.6.1.tgz"; + path = fetchurl { + name = "forever-agent-0.6.1.tgz"; + url = "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz"; + sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"; + }; + } + + { + name = "form-data-2.1.4.tgz"; + path = fetchurl { + name = "form-data-2.1.4.tgz"; + url = "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz"; + sha1 = "33c183acf193276ecaa98143a69e94bfee1750d1"; + }; + } + + { + name = "forwarded-0.1.2.tgz"; + path = fetchurl { + name = "forwarded-0.1.2.tgz"; + url = "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz"; + sha1 = "98c23dab1175657b8c0573e8ceccd91b0ff18c84"; + }; + } + + { + name = "fragment-cache-0.2.1.tgz"; + path = fetchurl { + name = "fragment-cache-0.2.1.tgz"; + url = "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz"; + sha1 = "4290fad27f13e89be7f33799c6bc5a0abfff0d19"; + }; + } + + { + name = "fresh-0.5.2.tgz"; + path = fetchurl { + name = "fresh-0.5.2.tgz"; + url = "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz"; + sha1 = "3d8cadd90d976569fa835ab1f8e4b23a105605a7"; + }; + } + + { + name = "from2-2.3.0.tgz"; + path = fetchurl { + name = "from2-2.3.0.tgz"; + url = "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz"; + sha1 = "8bfb5502bde4a4d36cfdeea007fcca21d7e382af"; + }; + } + + { + name = "fs-write-stream-atomic-1.0.10.tgz"; + path = fetchurl { + name = "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-1.0.0.tgz"; + path = fetchurl { + name = "fs.realpath-1.0.0.tgz"; + url = "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz"; + sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f"; + }; + } + + { + name = "fsevents-1.1.3.tgz"; + path = fetchurl { + name = "fsevents-1.1.3.tgz"; + url = "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.3.tgz"; + sha1 = "11f82318f5fe7bb2cd22965a108e9306208216d8"; + }; + } + + { + name = "fstream-ignore-1.0.5.tgz"; + path = fetchurl { + name = "fstream-ignore-1.0.5.tgz"; + url = "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz"; + sha1 = "9c31dae34767018fe1d249b24dada67d092da105"; + }; + } + + { + name = "fstream-1.0.11.tgz"; + path = fetchurl { + name = "fstream-1.0.11.tgz"; + url = "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz"; + sha1 = "5c1fb1f117477114f0632a0eb4b71b3cb0fd3171"; + }; + } + + { + name = "function-bind-1.1.1.tgz"; + path = fetchurl { + name = "function-bind-1.1.1.tgz"; + url = "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz"; + sha1 = "a56899d3ea3c9bab874bb9773b7c5ede92f4895d"; + }; + } + + { + name = "functional-red-black-tree-1.0.1.tgz"; + path = fetchurl { + name = "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-2.7.4.tgz"; + path = fetchurl { + name = "gauge-2.7.4.tgz"; + url = "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz"; + sha1 = "2c03405c7538c39d7eb37b317022e325fb018bf7"; + }; + } + + { + name = "get-caller-file-1.0.2.tgz"; + path = fetchurl { + name = "get-caller-file-1.0.2.tgz"; + url = "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz"; + sha1 = "f702e63127e7e231c160a80c1554acb70d5047e5"; + }; + } + + { + name = "get-stdin-4.0.1.tgz"; + path = fetchurl { + name = "get-stdin-4.0.1.tgz"; + url = "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz"; + sha1 = "b968c6b0a04384324902e8bf1a5df32579a450fe"; + }; + } + + { + name = "get-stream-3.0.0.tgz"; + path = fetchurl { + name = "get-stream-3.0.0.tgz"; + url = "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz"; + sha1 = "8e943d1358dc37555054ecbe2edb05aa174ede14"; + }; + } + + { + name = "get-value-2.0.6.tgz"; + path = fetchurl { + name = "get-value-2.0.6.tgz"; + url = "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz"; + sha1 = "dc15ca1c672387ca76bd37ac0a395ba2042a2c28"; + }; + } + + { + name = "getpass-0.1.7.tgz"; + path = fetchurl { + name = "getpass-0.1.7.tgz"; + url = "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz"; + sha1 = "5eff8e3e684d569ae4cb2b1282604e8ba62149fa"; + }; + } + + { + name = "glob-base-0.3.0.tgz"; + path = fetchurl { + name = "glob-base-0.3.0.tgz"; + url = "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz"; + sha1 = "dbb164f6221b1c0b1ccf82aea328b497df0ea3c4"; + }; + } + + { + name = "glob-parent-2.0.0.tgz"; + path = fetchurl { + name = "glob-parent-2.0.0.tgz"; + url = "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz"; + sha1 = "81383d72db054fcccf5336daa902f182f6edbb28"; + }; + } + + { + name = "glob-parent-3.1.0.tgz"; + path = fetchurl { + name = "glob-parent-3.1.0.tgz"; + url = "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz"; + sha1 = "9e6af6299d8d3bd2bd40430832bd113df906c5ae"; + }; + } + + { + name = "glob-7.1.2.tgz"; + path = fetchurl { + name = "glob-7.1.2.tgz"; + url = "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz"; + sha1 = "c19c9df9a028702d678612384a6552404c636d15"; + }; + } + + { + name = "globals-11.1.0.tgz"; + path = fetchurl { + name = "globals-11.1.0.tgz"; + url = "https://registry.yarnpkg.com/globals/-/globals-11.1.0.tgz"; + sha1 = "632644457f5f0e3ae711807183700ebf2e4633e4"; + }; + } + + { + name = "globby-5.0.0.tgz"; + path = fetchurl { + name = "globby-5.0.0.tgz"; + url = "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz"; + sha1 = "ebd84667ca0dbb330b99bcfc68eac2bc54370e0d"; + }; + } + + { + name = "globby-6.1.0.tgz"; + path = fetchurl { + name = "globby-6.1.0.tgz"; + url = "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz"; + sha1 = "f5a6d70e8395e21c858fb0489d64df02424d506c"; + }; + } + + { + name = "graceful-fs-4.1.11.tgz"; + path = fetchurl { + name = "graceful-fs-4.1.11.tgz"; + url = "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz"; + sha1 = "0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"; + }; + } + + { + name = "handle-thing-1.2.5.tgz"; + path = fetchurl { + name = "handle-thing-1.2.5.tgz"; + url = "https://registry.yarnpkg.com/handle-thing/-/handle-thing-1.2.5.tgz"; + sha1 = "fd7aad726bf1a5fd16dfc29b2f7a6601d27139c4"; + }; + } + + { + name = "har-schema-1.0.5.tgz"; + path = fetchurl { + name = "har-schema-1.0.5.tgz"; + url = "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz"; + sha1 = "d263135f43307c02c602afc8fe95970c0151369e"; + }; + } + + { + name = "har-validator-4.2.1.tgz"; + path = fetchurl { + name = "har-validator-4.2.1.tgz"; + url = "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz"; + sha1 = "33481d0f1bbff600dd203d75812a6a5fba002e2a"; + }; + } + + { + name = "has-ansi-2.0.0.tgz"; + path = fetchurl { + name = "has-ansi-2.0.0.tgz"; + url = "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz"; + sha1 = "34f5049ce1ecdf2b0649af3ef24e45ed35416d91"; + }; + } + + { + name = "has-flag-2.0.0.tgz"; + path = fetchurl { + name = "has-flag-2.0.0.tgz"; + url = "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz"; + sha1 = "e8207af1cc7b30d446cc70b734b5e8be18f88d51"; + }; + } + + { + name = "has-flag-3.0.0.tgz"; + path = fetchurl { + name = "has-flag-3.0.0.tgz"; + url = "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz"; + sha1 = "b5d454dc2199ae225699f3467e5a07f3b955bafd"; + }; + } + + { + name = "has-unicode-2.0.1.tgz"; + path = fetchurl { + name = "has-unicode-2.0.1.tgz"; + url = "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz"; + sha1 = "e0e6fe6a28cf51138855e086d1691e771de2a8b9"; + }; + } + + { + name = "has-value-0.3.1.tgz"; + path = fetchurl { + name = "has-value-0.3.1.tgz"; + url = "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz"; + sha1 = "7b1f58bada62ca827ec0a2078025654845995e1f"; + }; + } + + { + name = "has-value-1.0.0.tgz"; + path = fetchurl { + name = "has-value-1.0.0.tgz"; + url = "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz"; + sha1 = "18b281da585b1c5c51def24c930ed29a0be6b177"; + }; + } + + { + name = "has-values-0.1.4.tgz"; + path = fetchurl { + name = "has-values-0.1.4.tgz"; + url = "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz"; + sha1 = "6d61de95d91dfca9b9a02089ad384bff8f62b771"; + }; + } + + { + name = "has-values-1.0.0.tgz"; + path = fetchurl { + name = "has-values-1.0.0.tgz"; + url = "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz"; + sha1 = "95b0b63fec2146619a6fe57fe75628d5a39efe4f"; + }; + } + + { + name = "has-1.0.1.tgz"; + path = fetchurl { + name = "has-1.0.1.tgz"; + url = "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz"; + sha1 = "8461733f538b0837c9361e39a9ab9e9704dc2f28"; + }; + } + + { + name = "hash-base-2.0.2.tgz"; + path = fetchurl { + name = "hash-base-2.0.2.tgz"; + url = "https://registry.yarnpkg.com/hash-base/-/hash-base-2.0.2.tgz"; + sha1 = "66ea1d856db4e8a5470cadf6fce23ae5244ef2e1"; + }; + } + + { + name = "hash-base-3.0.4.tgz"; + path = fetchurl { + name = "hash-base-3.0.4.tgz"; + url = "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz"; + sha1 = "5fc8686847ecd73499403319a6b0a3f3f6ae4918"; + }; + } + + { + name = "hash.js-1.1.3.tgz"; + path = fetchurl { + name = "hash.js-1.1.3.tgz"; + url = "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.3.tgz"; + sha1 = "340dedbe6290187151c1ea1d777a3448935df846"; + }; + } + + { + name = "hawk-3.1.3.tgz"; + path = fetchurl { + name = "hawk-3.1.3.tgz"; + url = "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz"; + sha1 = "078444bd7c1640b0fe540d2c9b73d59678e8e1c4"; + }; + } + + { + name = "he-1.1.1.tgz"; + path = fetchurl { + name = "he-1.1.1.tgz"; + url = "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz"; + sha1 = "93410fd21b009735151f8868c2f271f3427e23fd"; + }; + } + + { + name = "hmac-drbg-1.0.1.tgz"; + path = fetchurl { + name = "hmac-drbg-1.0.1.tgz"; + url = "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz"; + sha1 = "d2745701025a6c775a6c545793ed502fc0c649a1"; + }; + } + + { + name = "hoek-2.16.3.tgz"; + path = fetchurl { + name = "hoek-2.16.3.tgz"; + url = "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz"; + sha1 = "20bb7403d3cea398e91dc4710a8ff1b8274a25ed"; + }; + } + + { + name = "hosted-git-info-2.5.0.tgz"; + path = fetchurl { + name = "hosted-git-info-2.5.0.tgz"; + url = "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz"; + sha1 = "6d60e34b3abbc8313062c3b798ef8d901a07af3c"; + }; + } + + { + name = "hpack.js-2.1.6.tgz"; + path = fetchurl { + name = "hpack.js-2.1.6.tgz"; + url = "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz"; + sha1 = "87774c0949e513f42e84575b3c45681fade2a0b2"; + }; + } + + { + name = "html-entities-1.2.1.tgz"; + path = fetchurl { + name = "html-entities-1.2.1.tgz"; + url = "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz"; + sha1 = "0df29351f0721163515dfb9e5543e5f6eed5162f"; + }; + } + + { + name = "html-minifier-3.5.8.tgz"; + path = fetchurl { + name = "html-minifier-3.5.8.tgz"; + url = "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.8.tgz"; + sha1 = "5ccdb1f73a0d654e6090147511f6e6b2ee312700"; + }; + } + + { + name = "html-webpack-plugin-2.30.1.tgz"; + path = fetchurl { + name = "html-webpack-plugin-2.30.1.tgz"; + url = "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-2.30.1.tgz"; + sha1 = "7f9c421b7ea91ec460f56527d78df484ee7537d5"; + }; + } + + { + name = "htmlparser2-3.3.0.tgz"; + path = fetchurl { + name = "htmlparser2-3.3.0.tgz"; + url = "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.3.0.tgz"; + sha1 = "cc70d05a59f6542e43f0e685c982e14c924a9efe"; + }; + } + + { + name = "http-deceiver-1.2.7.tgz"; + path = fetchurl { + name = "http-deceiver-1.2.7.tgz"; + url = "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz"; + sha1 = "fa7168944ab9a519d337cb0bec7284dc3e723d87"; + }; + } + + { + name = "http-errors-1.6.2.tgz"; + path = fetchurl { + name = "http-errors-1.6.2.tgz"; + url = "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz"; + sha1 = "0a002cc85707192a7e7946ceedc11155f60ec736"; + }; + } + + { + name = "http-parser-js-0.4.10.tgz"; + path = fetchurl { + name = "http-parser-js-0.4.10.tgz"; + url = "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.10.tgz"; + sha1 = "92c9c1374c35085f75db359ec56cc257cbb93fa4"; + }; + } + + { + name = "http-proxy-middleware-0.17.4.tgz"; + path = fetchurl { + name = "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-1.16.2.tgz"; + path = fetchurl { + name = "http-proxy-1.16.2.tgz"; + url = "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.16.2.tgz"; + sha1 = "06dff292952bf64dbe8471fa9df73066d4f37742"; + }; + } + + { + name = "http-signature-1.1.1.tgz"; + path = fetchurl { + name = "http-signature-1.1.1.tgz"; + url = "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz"; + sha1 = "df72e267066cd0ac67fb76adf8e134a8fbcf91bf"; + }; + } + + { + name = "https-browserify-1.0.0.tgz"; + path = fetchurl { + name = "https-browserify-1.0.0.tgz"; + url = "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz"; + sha1 = "ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73"; + }; + } + + { + name = "iconv-lite-0.4.19.tgz"; + path = fetchurl { + name = "iconv-lite-0.4.19.tgz"; + url = "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz"; + sha1 = "f7468f60135f5e5dad3399c0a81be9a1603a082b"; + }; + } + + { + name = "ieee754-1.1.8.tgz"; + path = fetchurl { + name = "ieee754-1.1.8.tgz"; + url = "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz"; + sha1 = "be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4"; + }; + } + + { + name = "iferr-0.1.5.tgz"; + path = fetchurl { + name = "iferr-0.1.5.tgz"; + url = "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz"; + sha1 = "c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501"; + }; + } + + { + name = "ignore-3.3.7.tgz"; + path = fetchurl { + name = "ignore-3.3.7.tgz"; + url = "https://registry.yarnpkg.com/ignore/-/ignore-3.3.7.tgz"; + sha1 = "612289bfb3c220e186a58118618d5be8c1bab021"; + }; + } + + { + name = "image-size-0.5.5.tgz"; + path = fetchurl { + name = "image-size-0.5.5.tgz"; + url = "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz"; + sha1 = "09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c"; + }; + } + + { + name = "import-local-1.0.0.tgz"; + path = fetchurl { + name = "import-local-1.0.0.tgz"; + url = "https://registry.yarnpkg.com/import-local/-/import-local-1.0.0.tgz"; + sha1 = "5e4ffdc03f4fe6c009c6729beb29631c2f8227bc"; + }; + } + + { + name = "imurmurhash-0.1.4.tgz"; + path = fetchurl { + name = "imurmurhash-0.1.4.tgz"; + url = "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz"; + sha1 = "9218b9b2b928a238b13dc4fb6b6d576f231453ea"; + }; + } + + { + name = "indent-string-2.1.0.tgz"; + path = fetchurl { + name = "indent-string-2.1.0.tgz"; + url = "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz"; + sha1 = "8e2d48348742121b4a8218b7a137e9a52049dc80"; + }; + } + + { + name = "indexof-0.0.1.tgz"; + path = fetchurl { + name = "indexof-0.0.1.tgz"; + url = "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz"; + sha1 = "82dc336d232b9062179d05ab3293a66059fd435d"; + }; + } + + { + name = "inflight-1.0.6.tgz"; + path = fetchurl { + name = "inflight-1.0.6.tgz"; + url = "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz"; + sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9"; + }; + } + + { + name = "inherits-2.0.3.tgz"; + path = fetchurl { + name = "inherits-2.0.3.tgz"; + url = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz"; + sha1 = "633c2c83e3da42a502f52466022480f4208261de"; + }; + } + + { + name = "inherits-2.0.1.tgz"; + path = fetchurl { + name = "inherits-2.0.1.tgz"; + url = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz"; + sha1 = "b17d08d326b4423e568eff719f91b0b1cbdf69f1"; + }; + } + + { + name = "ini-1.3.5.tgz"; + path = fetchurl { + name = "ini-1.3.5.tgz"; + url = "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz"; + sha1 = "eee25f56db1c9ec6085e0c22778083f596abf927"; + }; + } + + { + name = "inquirer-3.3.0.tgz"; + path = fetchurl { + name = "inquirer-3.3.0.tgz"; + url = "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz"; + sha1 = "9dd2f2ad765dcab1ff0443b491442a20ba227dc9"; + }; + } + + { + name = "internal-ip-1.2.0.tgz"; + path = fetchurl { + name = "internal-ip-1.2.0.tgz"; + url = "https://registry.yarnpkg.com/internal-ip/-/internal-ip-1.2.0.tgz"; + sha1 = "ae9fbf93b984878785d50a8de1b356956058cf5c"; + }; + } + + { + name = "interpret-1.1.0.tgz"; + path = fetchurl { + name = "interpret-1.1.0.tgz"; + url = "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz"; + sha1 = "7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614"; + }; + } + + { + name = "invert-kv-1.0.0.tgz"; + path = fetchurl { + name = "invert-kv-1.0.0.tgz"; + url = "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz"; + sha1 = "104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6"; + }; + } + + { + name = "ip-1.1.5.tgz"; + path = fetchurl { + name = "ip-1.1.5.tgz"; + url = "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz"; + sha1 = "bdded70114290828c0a039e72ef25f5aaec4354a"; + }; + } + + { + name = "ipaddr.js-1.6.0.tgz"; + path = fetchurl { + name = "ipaddr.js-1.6.0.tgz"; + url = "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.6.0.tgz"; + sha1 = "e3fa357b773da619f26e95f049d055c72796f86b"; + }; + } + + { + name = "is-accessor-descriptor-0.1.6.tgz"; + path = fetchurl { + name = "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-1.0.0.tgz"; + path = fetchurl { + name = "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-0.2.1.tgz"; + path = fetchurl { + name = "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-1.0.1.tgz"; + path = fetchurl { + name = "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-1.1.6.tgz"; + path = fetchurl { + name = "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-1.0.0.tgz"; + path = fetchurl { + name = "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-1.1.3.tgz"; + path = fetchurl { + name = "is-callable-1.1.3.tgz"; + url = "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz"; + sha1 = "86eb75392805ddc33af71c92a0eedf74ee7604b2"; + }; + } + + { + name = "is-data-descriptor-0.1.4.tgz"; + path = fetchurl { + name = "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-1.0.0.tgz"; + path = fetchurl { + name = "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-1.0.1.tgz"; + path = fetchurl { + name = "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-0.1.6.tgz"; + path = fetchurl { + name = "is-descriptor-0.1.6.tgz"; + url = "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz"; + sha1 = "366d8240dde487ca51823b1ab9f07a10a78251ca"; + }; + } + + { + name = "is-descriptor-1.0.2.tgz"; + path = fetchurl { + name = "is-descriptor-1.0.2.tgz"; + url = "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz"; + sha1 = "3b159746a66604b04f8c81524ba365c5f14d86ec"; + }; + } + + { + name = "is-dotfile-1.0.3.tgz"; + path = fetchurl { + name = "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-0.1.3.tgz"; + path = fetchurl { + name = "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-0.1.1.tgz"; + path = fetchurl { + name = "is-extendable-0.1.1.tgz"; + url = "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz"; + sha1 = "62b110e289a471418e3ec36a617d472e301dfc89"; + }; + } + + { + name = "is-extendable-1.0.1.tgz"; + path = fetchurl { + name = "is-extendable-1.0.1.tgz"; + url = "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz"; + sha1 = "a7470f9e426733d81bd81e1155264e3a3507cab4"; + }; + } + + { + name = "is-extglob-1.0.0.tgz"; + path = fetchurl { + name = "is-extglob-1.0.0.tgz"; + url = "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz"; + sha1 = "ac468177c4943405a092fc8f29760c6ffc6206c0"; + }; + } + + { + name = "is-extglob-2.1.1.tgz"; + path = fetchurl { + name = "is-extglob-2.1.1.tgz"; + url = "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz"; + sha1 = "a88c02535791f02ed37c76a1b9ea9773c833f8c2"; + }; + } + + { + name = "is-finite-1.0.2.tgz"; + path = fetchurl { + name = "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-1.0.0.tgz"; + path = fetchurl { + name = "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-2.0.0.tgz"; + path = fetchurl { + name = "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-2.0.1.tgz"; + path = fetchurl { + name = "is-glob-2.0.1.tgz"; + url = "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz"; + sha1 = "d096f926a3ded5600f3fdfd91198cb0888c2d863"; + }; + } + + { + name = "is-glob-3.1.0.tgz"; + path = fetchurl { + name = "is-glob-3.1.0.tgz"; + url = "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz"; + sha1 = "7ba5ae24217804ac70707b96922567486cc3e84a"; + }; + } + + { + name = "is-glob-4.0.0.tgz"; + path = fetchurl { + name = "is-glob-4.0.0.tgz"; + url = "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.0.tgz"; + sha1 = "9521c76845cc2610a85203ddf080a958c2ffabc0"; + }; + } + + { + name = "is-number-2.1.0.tgz"; + path = fetchurl { + name = "is-number-2.1.0.tgz"; + url = "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz"; + sha1 = "01fcbbb393463a548f2f466cce16dece49db908f"; + }; + } + + { + name = "is-number-3.0.0.tgz"; + path = fetchurl { + name = "is-number-3.0.0.tgz"; + url = "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz"; + sha1 = "24fd6201a4782cf50561c810276afc7d12d71195"; + }; + } + + { + name = "is-number-4.0.0.tgz"; + path = fetchurl { + name = "is-number-4.0.0.tgz"; + url = "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz"; + sha1 = "0026e37f5454d73e356dfe6564699867c6a7f0ff"; + }; + } + + { + name = "is-odd-2.0.0.tgz"; + path = fetchurl { + name = "is-odd-2.0.0.tgz"; + url = "https://registry.yarnpkg.com/is-odd/-/is-odd-2.0.0.tgz"; + sha1 = "7646624671fd7ea558ccd9a2795182f2958f1b24"; + }; + } + + { + name = "is-path-cwd-1.0.0.tgz"; + path = fetchurl { + name = "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-1.0.0.tgz"; + path = fetchurl { + name = "is-path-in-cwd-1.0.0.tgz"; + url = "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz"; + sha1 = "6477582b8214d602346094567003be8a9eac04dc"; + }; + } + + { + name = "is-path-inside-1.0.1.tgz"; + path = fetchurl { + name = "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-2.0.4.tgz"; + path = fetchurl { + name = "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-0.1.1.tgz"; + path = fetchurl { + name = "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-2.0.0.tgz"; + path = fetchurl { + name = "is-primitive-2.0.0.tgz"; + url = "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz"; + sha1 = "207bab91638499c07b2adf240a41a87210034575"; + }; + } + + { + name = "is-promise-2.1.0.tgz"; + path = fetchurl { + name = "is-promise-2.1.0.tgz"; + url = "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz"; + sha1 = "79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa"; + }; + } + + { + name = "is-regex-1.0.4.tgz"; + path = fetchurl { + name = "is-regex-1.0.4.tgz"; + url = "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz"; + sha1 = "5517489b547091b0930e095654ced25ee97e9491"; + }; + } + + { + name = "is-resolvable-1.0.1.tgz"; + path = fetchurl { + name = "is-resolvable-1.0.1.tgz"; + url = "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.0.1.tgz"; + sha1 = "acca1cd36dbe44b974b924321555a70ba03b1cf4"; + }; + } + + { + name = "is-stream-1.1.0.tgz"; + path = fetchurl { + name = "is-stream-1.1.0.tgz"; + url = "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz"; + sha1 = "12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"; + }; + } + + { + name = "is-symbol-1.0.1.tgz"; + path = fetchurl { + name = "is-symbol-1.0.1.tgz"; + url = "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz"; + sha1 = "3cc59f00025194b6ab2e38dbae6689256b660572"; + }; + } + + { + name = "is-typedarray-1.0.0.tgz"; + path = fetchurl { + name = "is-typedarray-1.0.0.tgz"; + url = "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz"; + sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a"; + }; + } + + { + name = "is-utf8-0.2.1.tgz"; + path = fetchurl { + name = "is-utf8-0.2.1.tgz"; + url = "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz"; + sha1 = "4b0da1442104d1b336340e80797e865cf39f7d72"; + }; + } + + { + name = "is-windows-1.0.2.tgz"; + path = fetchurl { + name = "is-windows-1.0.2.tgz"; + url = "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz"; + sha1 = "d1850eb9791ecd18e6182ce12a30f396634bb19d"; + }; + } + + { + name = "is-wsl-1.1.0.tgz"; + path = fetchurl { + name = "is-wsl-1.1.0.tgz"; + url = "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz"; + sha1 = "1f16e4aa22b04d1336b66188a66af3c600c3a66d"; + }; + } + + { + name = "isarray-0.0.1.tgz"; + path = fetchurl { + name = "isarray-0.0.1.tgz"; + url = "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz"; + sha1 = "8a18acfca9a8f4177e09abfc6038939b05d1eedf"; + }; + } + + { + name = "isarray-1.0.0.tgz"; + path = fetchurl { + name = "isarray-1.0.0.tgz"; + url = "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz"; + sha1 = "bb935d48582cba168c06834957a54a3e07124f11"; + }; + } + + { + name = "isexe-2.0.0.tgz"; + path = fetchurl { + name = "isexe-2.0.0.tgz"; + url = "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz"; + sha1 = "e8fbf374dc556ff8947a10dcb0572d633f2cfa10"; + }; + } + + { + name = "isobject-2.1.0.tgz"; + path = fetchurl { + name = "isobject-2.1.0.tgz"; + url = "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz"; + sha1 = "f065561096a3f1da2ef46272f815c840d87e0c89"; + }; + } + + { + name = "isobject-3.0.1.tgz"; + path = fetchurl { + name = "isobject-3.0.1.tgz"; + url = "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz"; + sha1 = "4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"; + }; + } + + { + name = "isstream-0.1.2.tgz"; + path = fetchurl { + name = "isstream-0.1.2.tgz"; + url = "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz"; + sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a"; + }; + } + + { + name = "js-tokens-3.0.2.tgz"; + path = fetchurl { + name = "js-tokens-3.0.2.tgz"; + url = "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz"; + sha1 = "9866df395102130e38f7f996bceb65443209c25b"; + }; + } + + { + name = "js-yaml-3.10.0.tgz"; + path = fetchurl { + name = "js-yaml-3.10.0.tgz"; + url = "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.10.0.tgz"; + sha1 = "2e78441646bd4682e963f22b6e92823c309c62dc"; + }; + } + + { + name = "jsbn-0.1.1.tgz"; + path = fetchurl { + name = "jsbn-0.1.1.tgz"; + url = "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz"; + sha1 = "a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"; + }; + } + + { + name = "json-loader-0.5.7.tgz"; + path = fetchurl { + name = "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-0.3.1.tgz"; + path = fetchurl { + name = "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-0.2.3.tgz"; + path = fetchurl { + name = "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-1.0.1.tgz"; + path = fetchurl { + name = "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-1.0.1.tgz"; + path = fetchurl { + name = "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-5.0.1.tgz"; + path = fetchurl { + name = "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-3.3.2.tgz"; + path = fetchurl { + name = "json3-3.3.2.tgz"; + url = "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz"; + sha1 = "3c0434743df93e2f5c42aee7b19bcb483575f4e1"; + }; + } + + { + name = "json5-0.5.1.tgz"; + path = fetchurl { + name = "json5-0.5.1.tgz"; + url = "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz"; + sha1 = "1eade7acc012034ad84e2396767ead9fa5495821"; + }; + } + + { + name = "jsonify-0.0.0.tgz"; + path = fetchurl { + name = "jsonify-0.0.0.tgz"; + url = "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz"; + sha1 = "2c74b6ee41d93ca51b7b5aaee8f503631d252a73"; + }; + } + + { + name = "jsprim-1.4.1.tgz"; + path = fetchurl { + name = "jsprim-1.4.1.tgz"; + url = "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz"; + sha1 = "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"; + }; + } + + { + name = "killable-1.0.0.tgz"; + path = fetchurl { + name = "killable-1.0.0.tgz"; + url = "https://registry.yarnpkg.com/killable/-/killable-1.0.0.tgz"; + sha1 = "da8b84bd47de5395878f95d64d02f2449fe05e6b"; + }; + } + + { + name = "kind-of-3.2.2.tgz"; + path = fetchurl { + name = "kind-of-3.2.2.tgz"; + url = "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz"; + sha1 = "31ea21a734bab9bbb0f32466d893aea51e4a3c64"; + }; + } + + { + name = "kind-of-4.0.0.tgz"; + path = fetchurl { + name = "kind-of-4.0.0.tgz"; + url = "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz"; + sha1 = "20813df3d712928b207378691a45066fae72dd57"; + }; + } + + { + name = "kind-of-5.1.0.tgz"; + path = fetchurl { + name = "kind-of-5.1.0.tgz"; + url = "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz"; + sha1 = "729c91e2d857b7a419a1f9aa65685c4c33f5845d"; + }; + } + + { + name = "kind-of-6.0.2.tgz"; + path = fetchurl { + name = "kind-of-6.0.2.tgz"; + url = "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz"; + sha1 = "01146b36a6218e64e58f3a8d66de5d7fc6f6d051"; + }; + } + + { + name = "lazy-cache-1.0.4.tgz"; + path = fetchurl { + name = "lazy-cache-1.0.4.tgz"; + url = "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz"; + sha1 = "a1d78fc3a50474cb80845d3b3b6e1da49a446e8e"; + }; + } + + { + name = "lazy-cache-2.0.2.tgz"; + path = fetchurl { + name = "lazy-cache-2.0.2.tgz"; + url = "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-2.0.2.tgz"; + sha1 = "b9190a4f913354694840859f8a8f7084d8822264"; + }; + } + + { + name = "lcid-1.0.0.tgz"; + path = fetchurl { + name = "lcid-1.0.0.tgz"; + url = "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz"; + sha1 = "308accafa0bc483a3867b4b6f2b9506251d1b835"; + }; + } + + { + name = "less-loader-4.0.5.tgz"; + path = fetchurl { + name = "less-loader-4.0.5.tgz"; + url = "https://registry.yarnpkg.com/less-loader/-/less-loader-4.0.5.tgz"; + sha1 = "ae155a7406cac6acd293d785587fcff0f478c4dd"; + }; + } + + { + name = "less-3.0.1.tgz"; + path = fetchurl { + name = "less-3.0.1.tgz"; + url = "https://registry.yarnpkg.com/less/-/less-3.0.1.tgz"; + sha1 = "ba2fea24a5632ccb8c84230d6043c0bf91855e37"; + }; + } + + { + name = "levn-0.3.0.tgz"; + path = fetchurl { + name = "levn-0.3.0.tgz"; + url = "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz"; + sha1 = "3b09924edf9f083c0490fdd4c0bc4421e04764ee"; + }; + } + + { + name = "load-json-file-1.1.0.tgz"; + path = fetchurl { + name = "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-2.0.0.tgz"; + path = fetchurl { + name = "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-2.3.0.tgz"; + path = fetchurl { + name = "loader-runner-2.3.0.tgz"; + url = "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.0.tgz"; + sha1 = "f482aea82d543e07921700d5a46ef26fdac6b8a2"; + }; + } + + { + name = "loader-utils-0.2.17.tgz"; + path = fetchurl { + name = "loader-utils-0.2.17.tgz"; + url = "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz"; + sha1 = "f86e6374d43205a6e6c60e9196f17c0299bfb348"; + }; + } + + { + name = "loader-utils-1.1.0.tgz"; + path = fetchurl { + name = "loader-utils-1.1.0.tgz"; + url = "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz"; + sha1 = "c98aef488bcceda2ffb5e2de646d6a754429f5cd"; + }; + } + + { + name = "locate-path-2.0.0.tgz"; + path = fetchurl { + name = "locate-path-2.0.0.tgz"; + url = "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz"; + sha1 = "2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"; + }; + } + + { + name = "lodash.endswith-4.2.1.tgz"; + path = fetchurl { + name = "lodash.endswith-4.2.1.tgz"; + url = "https://registry.yarnpkg.com/lodash.endswith/-/lodash.endswith-4.2.1.tgz"; + sha1 = "fed59ac1738ed3e236edd7064ec456448b37bc09"; + }; + } + + { + name = "lodash.isfunction-3.0.9.tgz"; + path = fetchurl { + name = "lodash.isfunction-3.0.9.tgz"; + url = "https://registry.yarnpkg.com/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz"; + sha1 = "06de25df4db327ac931981d1bdb067e5af68d051"; + }; + } + + { + name = "lodash.isstring-4.0.1.tgz"; + path = fetchurl { + name = "lodash.isstring-4.0.1.tgz"; + url = "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz"; + sha1 = "d527dfb5456eca7cc9bb95d5daeaf88ba54a5451"; + }; + } + + { + name = "lodash.startswith-4.2.1.tgz"; + path = fetchurl { + name = "lodash.startswith-4.2.1.tgz"; + url = "https://registry.yarnpkg.com/lodash.startswith/-/lodash.startswith-4.2.1.tgz"; + sha1 = "c598c4adce188a27e53145731cdc6c0e7177600c"; + }; + } + + { + name = "lodash-4.17.4.tgz"; + path = fetchurl { + name = "lodash-4.17.4.tgz"; + url = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz"; + sha1 = "78203a4d1c328ae1d86dca6460e369b57f4055ae"; + }; + } + + { + name = "lodash-4.17.5.tgz"; + path = fetchurl { + name = "lodash-4.17.5.tgz"; + url = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz"; + sha1 = "99a92d65c0272debe8c96b6057bc8fbfa3bed511"; + }; + } + + { + name = "loglevel-1.6.1.tgz"; + path = fetchurl { + name = "loglevel-1.6.1.tgz"; + url = "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.1.tgz"; + sha1 = "e0fc95133b6ef276cdc8887cdaf24aa6f156f8fa"; + }; + } + + { + name = "longest-1.0.1.tgz"; + path = fetchurl { + name = "longest-1.0.1.tgz"; + url = "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz"; + sha1 = "30a0b2da38f73770e8294a0d22e6625ed77d0097"; + }; + } + + { + name = "loud-rejection-1.6.0.tgz"; + path = fetchurl { + name = "loud-rejection-1.6.0.tgz"; + url = "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz"; + sha1 = "5b46f80147edee578870f086d04821cf998e551f"; + }; + } + + { + name = "lower-case-1.1.4.tgz"; + path = fetchurl { + name = "lower-case-1.1.4.tgz"; + url = "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz"; + sha1 = "9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac"; + }; + } + + { + name = "lru-cache-4.1.1.tgz"; + path = fetchurl { + name = "lru-cache-4.1.1.tgz"; + url = "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.1.tgz"; + sha1 = "622e32e82488b49279114a4f9ecf45e7cd6bba55"; + }; + } + + { + name = "magic-string-0.14.0.tgz"; + path = fetchurl { + name = "magic-string-0.14.0.tgz"; + url = "https://registry.yarnpkg.com/magic-string/-/magic-string-0.14.0.tgz"; + sha1 = "57224aef1701caeed273b17a39a956e72b172462"; + }; + } + + { + name = "magic-string-0.22.4.tgz"; + path = fetchurl { + name = "magic-string-0.22.4.tgz"; + url = "https://registry.yarnpkg.com/magic-string/-/magic-string-0.22.4.tgz"; + sha1 = "31039b4e40366395618c1d6cf8193c53917475ff"; + }; + } + + { + name = "make-dir-1.1.0.tgz"; + path = fetchurl { + name = "make-dir-1.1.0.tgz"; + url = "https://registry.yarnpkg.com/make-dir/-/make-dir-1.1.0.tgz"; + sha1 = "19b4369fe48c116f53c2af95ad102c0e39e85d51"; + }; + } + + { + name = "map-cache-0.2.2.tgz"; + path = fetchurl { + name = "map-cache-0.2.2.tgz"; + url = "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz"; + sha1 = "c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf"; + }; + } + + { + name = "map-obj-1.0.1.tgz"; + path = fetchurl { + name = "map-obj-1.0.1.tgz"; + url = "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz"; + sha1 = "d933ceb9205d82bdcf4886f6742bdc2b4dea146d"; + }; + } + + { + name = "map-visit-1.0.0.tgz"; + path = fetchurl { + name = "map-visit-1.0.0.tgz"; + url = "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz"; + sha1 = "ecdca8f13144e660f1b5bd41f12f3479d98dfb8f"; + }; + } + + { + name = "md5.js-1.3.4.tgz"; + path = fetchurl { + name = "md5.js-1.3.4.tgz"; + url = "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.4.tgz"; + sha1 = "e9bdbde94a20a5ac18b04340fc5764d5b09d901d"; + }; + } + + { + name = "media-typer-0.3.0.tgz"; + path = fetchurl { + name = "media-typer-0.3.0.tgz"; + url = "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz"; + sha1 = "8710d7af0aa626f8fffa1ce00168545263255748"; + }; + } + + { + name = "mem-1.1.0.tgz"; + path = fetchurl { + name = "mem-1.1.0.tgz"; + url = "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz"; + sha1 = "5edd52b485ca1d900fe64895505399a0dfa45f76"; + }; + } + + { + name = "memory-fs-0.4.1.tgz"; + path = fetchurl { + name = "memory-fs-0.4.1.tgz"; + url = "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz"; + sha1 = "3a9a20b8462523e447cfbc7e8bb80ed667bfc552"; + }; + } + + { + name = "meow-3.7.0.tgz"; + path = fetchurl { + name = "meow-3.7.0.tgz"; + url = "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz"; + sha1 = "72cb668b425228290abbfa856892587308a801fb"; + }; + } + + { + name = "merge-descriptors-1.0.1.tgz"; + path = fetchurl { + name = "merge-descriptors-1.0.1.tgz"; + url = "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz"; + sha1 = "b00aaa556dd8b44568150ec9d1b953f3f90cbb61"; + }; + } + + { + name = "methods-1.1.2.tgz"; + path = fetchurl { + name = "methods-1.1.2.tgz"; + url = "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz"; + sha1 = "5529a4d67654134edcc5266656835b0f851afcee"; + }; + } + + { + name = "micromatch-2.3.11.tgz"; + path = fetchurl { + name = "micromatch-2.3.11.tgz"; + url = "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz"; + sha1 = "86677c97d1720b363431d04d0d15293bd38c1565"; + }; + } + + { + name = "micromatch-3.1.8.tgz"; + path = fetchurl { + name = "micromatch-3.1.8.tgz"; + url = "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.8.tgz"; + sha1 = "5c8caa008de588eebb395e8c0ad12c128f25fff1"; + }; + } + + { + name = "miller-rabin-4.0.1.tgz"; + path = fetchurl { + name = "miller-rabin-4.0.1.tgz"; + url = "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz"; + sha1 = "f080351c865b0dc562a8462966daa53543c78a4d"; + }; + } + + { + name = "mime-db-1.33.0.tgz"; + path = fetchurl { + name = "mime-db-1.33.0.tgz"; + url = "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz"; + sha1 = "a3492050a5cb9b63450541e39d9788d2272783db"; + }; + } + + { + name = "mime-db-1.30.0.tgz"; + path = fetchurl { + name = "mime-db-1.30.0.tgz"; + url = "https://registry.yarnpkg.com/mime-db/-/mime-db-1.30.0.tgz"; + sha1 = "74c643da2dd9d6a45399963465b26d5ca7d71f01"; + }; + } + + { + name = "mime-types-2.1.17.tgz"; + path = fetchurl { + name = "mime-types-2.1.17.tgz"; + url = "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.17.tgz"; + sha1 = "09d7a393f03e995a79f8af857b70a9e0ab16557a"; + }; + } + + { + name = "mime-types-2.1.18.tgz"; + path = fetchurl { + name = "mime-types-2.1.18.tgz"; + url = "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz"; + sha1 = "6f323f60a83d11146f831ff11fd66e2fe5503bb8"; + }; + } + + { + name = "mime-1.4.1.tgz"; + path = fetchurl { + name = "mime-1.4.1.tgz"; + url = "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz"; + sha1 = "121f9ebc49e3766f311a76e1fa1c8003c4b03aa6"; + }; + } + + { + name = "mime-1.6.0.tgz"; + path = fetchurl { + name = "mime-1.6.0.tgz"; + url = "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz"; + sha1 = "32cd9e5c64553bd58d19a568af452acff04981b1"; + }; + } + + { + name = "mimic-fn-1.1.0.tgz"; + path = fetchurl { + name = "mimic-fn-1.1.0.tgz"; + url = "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz"; + sha1 = "e667783d92e89dbd342818b5230b9d62a672ad18"; + }; + } + + { + name = "minimalistic-assert-1.0.0.tgz"; + path = fetchurl { + name = "minimalistic-assert-1.0.0.tgz"; + url = "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz"; + sha1 = "702be2dda6b37f4836bcb3f5db56641b64a1d3d3"; + }; + } + + { + name = "minimalistic-crypto-utils-1.0.1.tgz"; + path = fetchurl { + name = "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-3.0.4.tgz"; + path = fetchurl { + name = "minimatch-3.0.4.tgz"; + url = "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz"; + sha1 = "5166e286457f03306064be5497e8dbb0c3d32083"; + }; + } + + { + name = "minimist-0.0.8.tgz"; + path = fetchurl { + name = "minimist-0.0.8.tgz"; + url = "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz"; + sha1 = "857fcabfc3397d2625b8228262e86aa7a011b05d"; + }; + } + + { + name = "minimist-1.2.0.tgz"; + path = fetchurl { + name = "minimist-1.2.0.tgz"; + url = "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz"; + sha1 = "a35008b20f41383eec1fb914f4cd5df79a264284"; + }; + } + + { + name = "mississippi-1.3.0.tgz"; + path = fetchurl { + name = "mississippi-1.3.0.tgz"; + url = "https://registry.yarnpkg.com/mississippi/-/mississippi-1.3.0.tgz"; + sha1 = "d201583eb12327e3c5c1642a404a9cacf94e34f5"; + }; + } + + { + name = "mixin-deep-1.3.1.tgz"; + path = fetchurl { + name = "mixin-deep-1.3.1.tgz"; + url = "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz"; + sha1 = "a49e7268dce1a0d9698e45326c5626df3543d0fe"; + }; + } + + { + name = "mkdirp-0.5.1.tgz"; + path = fetchurl { + name = "mkdirp-0.5.1.tgz"; + url = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz"; + sha1 = "30057438eac6cf7f8c4767f38648d6697d75c903"; + }; + } + + { + name = "move-concurrently-1.0.1.tgz"; + path = fetchurl { + name = "move-concurrently-1.0.1.tgz"; + url = "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz"; + sha1 = "be2c005fda32e0b29af1f05d7c4b33214c701f92"; + }; + } + + { + name = "ms-2.0.0.tgz"; + path = fetchurl { + name = "ms-2.0.0.tgz"; + url = "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz"; + sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8"; + }; + } + + { + name = "multicast-dns-service-types-1.1.0.tgz"; + path = fetchurl { + name = "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-6.2.3.tgz"; + path = fetchurl { + name = "multicast-dns-6.2.3.tgz"; + url = "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz"; + sha1 = "a0ec7bd9055c4282f790c3c82f4e28db3b31b229"; + }; + } + + { + name = "mute-stream-0.0.7.tgz"; + path = fetchurl { + name = "mute-stream-0.0.7.tgz"; + url = "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz"; + sha1 = "3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"; + }; + } + + { + name = "nan-2.8.0.tgz"; + path = fetchurl { + name = "nan-2.8.0.tgz"; + url = "https://registry.yarnpkg.com/nan/-/nan-2.8.0.tgz"; + sha1 = "ed715f3fe9de02b57a5e6252d90a96675e1f085a"; + }; + } + + { + name = "nanomatch-1.2.9.tgz"; + path = fetchurl { + name = "nanomatch-1.2.9.tgz"; + url = "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.9.tgz"; + sha1 = "879f7150cb2dab7a471259066c104eee6e0fa7c2"; + }; + } + + { + name = "natural-compare-1.4.0.tgz"; + path = fetchurl { + name = "natural-compare-1.4.0.tgz"; + url = "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz"; + sha1 = "4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"; + }; + } + + { + name = "ncname-1.0.0.tgz"; + path = fetchurl { + name = "ncname-1.0.0.tgz"; + url = "https://registry.yarnpkg.com/ncname/-/ncname-1.0.0.tgz"; + sha1 = "5b57ad18b1ca092864ef62b0b1ed8194f383b71c"; + }; + } + + { + name = "negotiator-0.6.1.tgz"; + path = fetchurl { + name = "negotiator-0.6.1.tgz"; + url = "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz"; + sha1 = "2b327184e8992101177b28563fb5e7102acd0ca9"; + }; + } + + { + name = "no-case-2.3.2.tgz"; + path = fetchurl { + name = "no-case-2.3.2.tgz"; + url = "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz"; + sha1 = "60b813396be39b3f1288a4c1ed5d1e7d28b464ac"; + }; + } + + { + name = "node-forge-0.7.1.tgz"; + path = fetchurl { + name = "node-forge-0.7.1.tgz"; + url = "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.1.tgz"; + sha1 = "9da611ea08982f4b94206b3beb4cc9665f20c300"; + }; + } + + { + name = "node-libs-browser-2.1.0.tgz"; + path = fetchurl { + name = "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-0.6.39.tgz"; + path = fetchurl { + name = "node-pre-gyp-0.6.39.tgz"; + url = "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz"; + sha1 = "c00e96860b23c0e1420ac7befc5044e1d78d8649"; + }; + } + + { + name = "nopt-4.0.1.tgz"; + path = fetchurl { + name = "nopt-4.0.1.tgz"; + url = "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz"; + sha1 = "d0d4685afd5415193c8c7505602d0d17cd64474d"; + }; + } + + { + name = "normalize-package-data-2.4.0.tgz"; + path = fetchurl { + name = "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-2.1.1.tgz"; + path = fetchurl { + name = "normalize-path-2.1.1.tgz"; + url = "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz"; + sha1 = "1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"; + }; + } + + { + name = "npm-run-path-2.0.2.tgz"; + path = fetchurl { + name = "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-4.1.2.tgz"; + path = fetchurl { + name = "npmlog-4.1.2.tgz"; + url = "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz"; + sha1 = "08a7f2a8bf734604779a9efa4ad5cc717abb954b"; + }; + } + + { + name = "nth-check-1.0.1.tgz"; + path = fetchurl { + name = "nth-check-1.0.1.tgz"; + url = "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.1.tgz"; + sha1 = "9929acdf628fc2c41098deab82ac580cf149aae4"; + }; + } + + { + name = "number-is-nan-1.0.1.tgz"; + path = fetchurl { + name = "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-0.8.2.tgz"; + path = fetchurl { + name = "oauth-sign-0.8.2.tgz"; + url = "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz"; + sha1 = "46a6ab7f0aead8deae9ec0565780b7d4efeb9d43"; + }; + } + + { + name = "object-assign-4.1.1.tgz"; + path = fetchurl { + name = "object-assign-4.1.1.tgz"; + url = "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz"; + sha1 = "2109adc7965887cfc05cbbd442cac8bfbb360863"; + }; + } + + { + name = "object-copy-0.1.0.tgz"; + path = fetchurl { + name = "object-copy-0.1.0.tgz"; + url = "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz"; + sha1 = "7e7d858b781bd7c991a41ba975ed3812754e998c"; + }; + } + + { + name = "object-keys-1.0.11.tgz"; + path = fetchurl { + name = "object-keys-1.0.11.tgz"; + url = "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz"; + sha1 = "c54601778ad560f1142ce0e01bcca8b56d13426d"; + }; + } + + { + name = "object-visit-1.0.1.tgz"; + path = fetchurl { + name = "object-visit-1.0.1.tgz"; + url = "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz"; + sha1 = "f79c4493af0c5377b59fe39d395e41042dd045bb"; + }; + } + + { + name = "object.omit-2.0.1.tgz"; + path = fetchurl { + name = "object.omit-2.0.1.tgz"; + url = "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz"; + sha1 = "1a9c744829f39dbb858c76ca3579ae2a54ebd1fa"; + }; + } + + { + name = "object.pick-1.3.0.tgz"; + path = fetchurl { + name = "object.pick-1.3.0.tgz"; + url = "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz"; + sha1 = "87a10ac4c1694bd2e1cbf53591a66141fb5dd747"; + }; + } + + { + name = "obuf-1.1.1.tgz"; + path = fetchurl { + name = "obuf-1.1.1.tgz"; + url = "https://registry.yarnpkg.com/obuf/-/obuf-1.1.1.tgz"; + sha1 = "104124b6c602c6796881a042541d36db43a5264e"; + }; + } + + { + name = "on-finished-2.3.0.tgz"; + path = fetchurl { + name = "on-finished-2.3.0.tgz"; + url = "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz"; + sha1 = "20f1336481b083cd75337992a16971aa2d906947"; + }; + } + + { + name = "on-headers-1.0.1.tgz"; + path = fetchurl { + name = "on-headers-1.0.1.tgz"; + url = "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.1.tgz"; + sha1 = "928f5d0f470d49342651ea6794b0857c100693f7"; + }; + } + + { + name = "once-1.4.0.tgz"; + path = fetchurl { + name = "once-1.4.0.tgz"; + url = "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz"; + sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1"; + }; + } + + { + name = "onetime-2.0.1.tgz"; + path = fetchurl { + name = "onetime-2.0.1.tgz"; + url = "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz"; + sha1 = "067428230fd67443b2794b22bba528b6867962d4"; + }; + } + + { + name = "opn-5.2.0.tgz"; + path = fetchurl { + name = "opn-5.2.0.tgz"; + url = "https://registry.yarnpkg.com/opn/-/opn-5.2.0.tgz"; + sha1 = "71fdf934d6827d676cecbea1531f95d354641225"; + }; + } + + { + name = "optionator-0.8.2.tgz"; + path = fetchurl { + name = "optionator-0.8.2.tgz"; + url = "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz"; + sha1 = "364c5e409d3f4d6301d6c0b4c05bba50180aeb64"; + }; + } + + { + name = "original-1.0.0.tgz"; + path = fetchurl { + name = "original-1.0.0.tgz"; + url = "https://registry.yarnpkg.com/original/-/original-1.0.0.tgz"; + sha1 = "9147f93fa1696d04be61e01bd50baeaca656bd3b"; + }; + } + + { + name = "os-browserify-0.3.0.tgz"; + path = fetchurl { + name = "os-browserify-0.3.0.tgz"; + url = "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz"; + sha1 = "854373c7f5c2315914fc9bfc6bd8238fdda1ec27"; + }; + } + + { + name = "os-homedir-1.0.2.tgz"; + path = fetchurl { + name = "os-homedir-1.0.2.tgz"; + url = "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz"; + sha1 = "ffbc4988336e0e833de0c168c7ef152121aa7fb3"; + }; + } + + { + name = "os-locale-1.4.0.tgz"; + path = fetchurl { + name = "os-locale-1.4.0.tgz"; + url = "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz"; + sha1 = "20f9f17ae29ed345e8bde583b13d2009803c14d9"; + }; + } + + { + name = "os-locale-2.1.0.tgz"; + path = fetchurl { + name = "os-locale-2.1.0.tgz"; + url = "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz"; + sha1 = "42bc2900a6b5b8bd17376c8e882b65afccf24bf2"; + }; + } + + { + name = "os-tmpdir-1.0.2.tgz"; + path = fetchurl { + name = "os-tmpdir-1.0.2.tgz"; + url = "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz"; + sha1 = "bbe67406c79aa85c5cfec766fe5734555dfa1274"; + }; + } + + { + name = "osenv-0.1.4.tgz"; + path = fetchurl { + name = "osenv-0.1.4.tgz"; + url = "https://registry.yarnpkg.com/osenv/-/osenv-0.1.4.tgz"; + sha1 = "42fe6d5953df06c8064be6f176c3d05aaaa34644"; + }; + } + + { + name = "p-finally-1.0.0.tgz"; + path = fetchurl { + name = "p-finally-1.0.0.tgz"; + url = "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz"; + sha1 = "3fbcfb15b899a44123b34b6dcc18b724336a2cae"; + }; + } + + { + name = "p-limit-1.2.0.tgz"; + path = fetchurl { + name = "p-limit-1.2.0.tgz"; + url = "https://registry.yarnpkg.com/p-limit/-/p-limit-1.2.0.tgz"; + sha1 = "0e92b6bedcb59f022c13d0f1949dc82d15909f1c"; + }; + } + + { + name = "p-locate-2.0.0.tgz"; + path = fetchurl { + name = "p-locate-2.0.0.tgz"; + url = "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz"; + sha1 = "20a0103b222a70c8fd39cc2e580680f3dde5ec43"; + }; + } + + { + name = "p-map-1.2.0.tgz"; + path = fetchurl { + name = "p-map-1.2.0.tgz"; + url = "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz"; + sha1 = "e4e94f311eabbc8633a1e79908165fca26241b6b"; + }; + } + + { + name = "p-try-1.0.0.tgz"; + path = fetchurl { + name = "p-try-1.0.0.tgz"; + url = "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz"; + sha1 = "cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"; + }; + } + + { + name = "pako-1.0.6.tgz"; + path = fetchurl { + name = "pako-1.0.6.tgz"; + url = "https://registry.yarnpkg.com/pako/-/pako-1.0.6.tgz"; + sha1 = "0101211baa70c4bca4a0f63f2206e97b7dfaf258"; + }; + } + + { + name = "parallel-transform-1.1.0.tgz"; + path = fetchurl { + name = "parallel-transform-1.1.0.tgz"; + url = "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.1.0.tgz"; + sha1 = "d410f065b05da23081fcd10f28854c29bda33b06"; + }; + } + + { + name = "param-case-2.1.1.tgz"; + path = fetchurl { + name = "param-case-2.1.1.tgz"; + url = "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz"; + sha1 = "df94fd8cf6531ecf75e6bef9a0858fbc72be2247"; + }; + } + + { + name = "parse-asn1-5.1.0.tgz"; + path = fetchurl { + name = "parse-asn1-5.1.0.tgz"; + url = "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.0.tgz"; + sha1 = "37c4f9b7ed3ab65c74817b5f2480937fbf97c712"; + }; + } + + { + name = "parse-glob-3.0.4.tgz"; + path = fetchurl { + name = "parse-glob-3.0.4.tgz"; + url = "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz"; + sha1 = "b2c376cfb11f35513badd173ef0bb6e3a388391c"; + }; + } + + { + name = "parse-json-2.2.0.tgz"; + path = fetchurl { + name = "parse-json-2.2.0.tgz"; + url = "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz"; + sha1 = "f480f40434ef80741f8469099f8dea18f55a4dc9"; + }; + } + + { + name = "parseurl-1.3.2.tgz"; + path = fetchurl { + name = "parseurl-1.3.2.tgz"; + url = "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz"; + sha1 = "fc289d4ed8993119460c156253262cdc8de65bf3"; + }; + } + + { + name = "pascalcase-0.1.1.tgz"; + path = fetchurl { + name = "pascalcase-0.1.1.tgz"; + url = "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz"; + sha1 = "b363e55e8006ca6fe21784d2db22bd15d7917f14"; + }; + } + + { + name = "path-browserify-0.0.0.tgz"; + path = fetchurl { + name = "path-browserify-0.0.0.tgz"; + url = "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz"; + sha1 = "a0b870729aae214005b7d5032ec2cbbb0fb4451a"; + }; + } + + { + name = "path-dirname-1.0.2.tgz"; + path = fetchurl { + name = "path-dirname-1.0.2.tgz"; + url = "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz"; + sha1 = "cc33d24d525e099a5388c0336c6e32b9160609e0"; + }; + } + + { + name = "path-exists-2.1.0.tgz"; + path = fetchurl { + name = "path-exists-2.1.0.tgz"; + url = "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz"; + sha1 = "0feb6c64f0fc518d9a754dd5efb62c7022761f4b"; + }; + } + + { + name = "path-exists-3.0.0.tgz"; + path = fetchurl { + name = "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-1.0.1.tgz"; + path = fetchurl { + name = "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-1.0.2.tgz"; + path = fetchurl { + name = "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-2.0.1.tgz"; + path = fetchurl { + name = "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-0.1.7.tgz"; + path = fetchurl { + name = "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-1.1.0.tgz"; + path = fetchurl { + name = "path-type-1.1.0.tgz"; + url = "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz"; + sha1 = "59c44f7ee491da704da415da5a4070ba4f8fe441"; + }; + } + + { + name = "path-type-2.0.0.tgz"; + path = fetchurl { + name = "path-type-2.0.0.tgz"; + url = "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz"; + sha1 = "f012ccb8415b7096fc2daa1054c3d72389594c73"; + }; + } + + { + name = "pbkdf2-3.0.14.tgz"; + path = fetchurl { + name = "pbkdf2-3.0.14.tgz"; + url = "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.14.tgz"; + sha1 = "a35e13c64799b06ce15320f459c230e68e73bade"; + }; + } + + { + name = "performance-now-0.2.0.tgz"; + path = fetchurl { + name = "performance-now-0.2.0.tgz"; + url = "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz"; + sha1 = "33ef30c5c77d4ea21c5a53869d91b56d8f2555e5"; + }; + } + + { + name = "pify-2.3.0.tgz"; + path = fetchurl { + name = "pify-2.3.0.tgz"; + url = "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz"; + sha1 = "ed141a6ac043a849ea588498e7dca8b15330e90c"; + }; + } + + { + name = "pify-3.0.0.tgz"; + path = fetchurl { + name = "pify-3.0.0.tgz"; + url = "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz"; + sha1 = "e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"; + }; + } + + { + name = "pinkie-promise-2.0.1.tgz"; + path = fetchurl { + name = "pinkie-promise-2.0.1.tgz"; + url = "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz"; + sha1 = "2135d6dfa7a358c069ac9b178776288228450ffa"; + }; + } + + { + name = "pinkie-2.0.4.tgz"; + path = fetchurl { + name = "pinkie-2.0.4.tgz"; + url = "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz"; + sha1 = "72556b80cfa0d48a974e80e77248e80ed4f7f870"; + }; + } + + { + name = "pkg-dir-2.0.0.tgz"; + path = fetchurl { + name = "pkg-dir-2.0.0.tgz"; + url = "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz"; + sha1 = "f6d5d1109e19d63edf428e0bd57e12777615334b"; + }; + } + + { + name = "pluralize-7.0.0.tgz"; + path = fetchurl { + name = "pluralize-7.0.0.tgz"; + url = "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz"; + sha1 = "298b89df8b93b0221dbf421ad2b1b1ea23fc6777"; + }; + } + + { + name = "portfinder-1.0.13.tgz"; + path = fetchurl { + name = "portfinder-1.0.13.tgz"; + url = "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.13.tgz"; + sha1 = "bb32ecd87c27104ae6ee44b5a3ccbf0ebb1aede9"; + }; + } + + { + name = "posix-character-classes-0.1.1.tgz"; + path = fetchurl { + name = "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-1.1.2.tgz"; + path = fetchurl { + name = "prelude-ls-1.1.2.tgz"; + url = "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz"; + sha1 = "21932a549f5e52ffd9a827f570e04be62a97da54"; + }; + } + + { + name = "preserve-0.2.0.tgz"; + path = fetchurl { + name = "preserve-0.2.0.tgz"; + url = "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz"; + sha1 = "815ed1f6ebc65926f865b310c0713bcb3315ce4b"; + }; + } + + { + name = "pretty-error-2.1.1.tgz"; + path = fetchurl { + name = "pretty-error-2.1.1.tgz"; + url = "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.1.tgz"; + sha1 = "5f4f87c8f91e5ae3f3ba87ab4cf5e03b1a17f1a3"; + }; + } + + { + name = "process-nextick-args-1.0.7.tgz"; + path = fetchurl { + name = "process-nextick-args-1.0.7.tgz"; + url = "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz"; + sha1 = "150e20b756590ad3f91093f25a4f2ad8bff30ba3"; + }; + } + + { + name = "process-nextick-args-2.0.0.tgz"; + path = fetchurl { + name = "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-0.11.10.tgz"; + path = fetchurl { + name = "process-0.11.10.tgz"; + url = "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz"; + sha1 = "7332300e840161bda3e69a1d1d91a7d4bc16f182"; + }; + } + + { + name = "progress-2.0.0.tgz"; + path = fetchurl { + name = "progress-2.0.0.tgz"; + url = "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz"; + sha1 = "8a1be366bf8fc23db2bd23f10c6fe920b4389d1f"; + }; + } + + { + name = "promise-inflight-1.0.1.tgz"; + path = fetchurl { + name = "promise-inflight-1.0.1.tgz"; + url = "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz"; + sha1 = "98472870bf228132fcbdd868129bad12c3c029e3"; + }; + } + + { + name = "promise-7.3.1.tgz"; + path = fetchurl { + name = "promise-7.3.1.tgz"; + url = "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz"; + sha1 = "064b72602b18f90f29192b8b1bc418ffd1ebd3bf"; + }; + } + + { + name = "proxy-addr-2.0.3.tgz"; + path = fetchurl { + name = "proxy-addr-2.0.3.tgz"; + url = "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.3.tgz"; + sha1 = "355f262505a621646b3130a728eb647e22055341"; + }; + } + + { + name = "prr-1.0.1.tgz"; + path = fetchurl { + name = "prr-1.0.1.tgz"; + url = "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz"; + sha1 = "d3fc114ba06995a45ec6893f484ceb1d78f5f476"; + }; + } + + { + name = "pseudomap-1.0.2.tgz"; + path = fetchurl { + name = "pseudomap-1.0.2.tgz"; + url = "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz"; + sha1 = "f052a28da70e618917ef0a8ac34c1ae5a68286b3"; + }; + } + + { + name = "public-encrypt-4.0.0.tgz"; + path = fetchurl { + name = "public-encrypt-4.0.0.tgz"; + url = "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.0.tgz"; + sha1 = "39f699f3a46560dd5ebacbca693caf7c65c18cc6"; + }; + } + + { + name = "pump-1.0.3.tgz"; + path = fetchurl { + name = "pump-1.0.3.tgz"; + url = "https://registry.yarnpkg.com/pump/-/pump-1.0.3.tgz"; + sha1 = "5dfe8311c33bbf6fc18261f9f34702c47c08a954"; + }; + } + + { + name = "pump-2.0.0.tgz"; + path = fetchurl { + name = "pump-2.0.0.tgz"; + url = "https://registry.yarnpkg.com/pump/-/pump-2.0.0.tgz"; + sha1 = "7946da1c8d622b098e2ceb2d3476582470829c9d"; + }; + } + + { + name = "pumpify-1.4.0.tgz"; + path = fetchurl { + name = "pumpify-1.4.0.tgz"; + url = "https://registry.yarnpkg.com/pumpify/-/pumpify-1.4.0.tgz"; + sha1 = "80b7c5df7e24153d03f0e7ac8a05a5d068bd07fb"; + }; + } + + { + name = "punycode-1.3.2.tgz"; + path = fetchurl { + name = "punycode-1.3.2.tgz"; + url = "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz"; + sha1 = "9653a036fb7c1ee42342f2325cceefea3926c48d"; + }; + } + + { + name = "punycode-1.4.1.tgz"; + path = fetchurl { + name = "punycode-1.4.1.tgz"; + url = "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz"; + sha1 = "c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"; + }; + } + + { + name = "qs-6.5.1.tgz"; + path = fetchurl { + name = "qs-6.5.1.tgz"; + url = "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz"; + sha1 = "349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8"; + }; + } + + { + name = "qs-6.4.0.tgz"; + path = fetchurl { + name = "qs-6.4.0.tgz"; + url = "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz"; + sha1 = "13e26d28ad6b0ffaa91312cd3bf708ed351e7233"; + }; + } + + { + name = "query-string-5.1.0.tgz"; + path = fetchurl { + name = "query-string-5.1.0.tgz"; + url = "https://registry.yarnpkg.com/query-string/-/query-string-5.1.0.tgz"; + sha1 = "9583b15fd1307f899e973ed418886426a9976469"; + }; + } + + { + name = "querystring-es3-0.2.1.tgz"; + path = fetchurl { + name = "querystring-es3-0.2.1.tgz"; + url = "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz"; + sha1 = "9ec61f79049875707d69414596fd907a4d711e73"; + }; + } + + { + name = "querystring-0.2.0.tgz"; + path = fetchurl { + name = "querystring-0.2.0.tgz"; + url = "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz"; + sha1 = "b209849203bb25df820da756e747005878521620"; + }; + } + + { + name = "querystringify-0.0.4.tgz"; + path = fetchurl { + name = "querystringify-0.0.4.tgz"; + url = "https://registry.yarnpkg.com/querystringify/-/querystringify-0.0.4.tgz"; + sha1 = "0cf7f84f9463ff0ae51c4c4b142d95be37724d9c"; + }; + } + + { + name = "querystringify-1.0.0.tgz"; + path = fetchurl { + name = "querystringify-1.0.0.tgz"; + url = "https://registry.yarnpkg.com/querystringify/-/querystringify-1.0.0.tgz"; + sha1 = "6286242112c5b712fa654e526652bf6a13ff05cb"; + }; + } + + { + name = "randomatic-1.1.7.tgz"; + path = fetchurl { + name = "randomatic-1.1.7.tgz"; + url = "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz"; + sha1 = "c7abe9cc8b87c0baa876b19fde83fd464797e38c"; + }; + } + + { + name = "randombytes-2.0.6.tgz"; + path = fetchurl { + name = "randombytes-2.0.6.tgz"; + url = "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.6.tgz"; + sha1 = "d302c522948588848a8d300c932b44c24231da80"; + }; + } + + { + name = "randomfill-1.0.3.tgz"; + path = fetchurl { + name = "randomfill-1.0.3.tgz"; + url = "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.3.tgz"; + sha1 = "b96b7df587f01dd91726c418f30553b1418e3d62"; + }; + } + + { + name = "range-parser-1.2.0.tgz"; + path = fetchurl { + name = "range-parser-1.2.0.tgz"; + url = "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz"; + sha1 = "f49be6b487894ddc40dcc94a322f611092e00d5e"; + }; + } + + { + name = "raw-body-2.3.2.tgz"; + path = fetchurl { + name = "raw-body-2.3.2.tgz"; + url = "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.2.tgz"; + sha1 = "bcd60c77d3eb93cde0050295c3f379389bc88f89"; + }; + } + + { + name = "raw-loader-0.5.1.tgz"; + path = fetchurl { + name = "raw-loader-0.5.1.tgz"; + url = "https://registry.yarnpkg.com/raw-loader/-/raw-loader-0.5.1.tgz"; + sha1 = "0c3d0beaed8a01c966d9787bf778281252a979aa"; + }; + } + + { + name = "rc-1.2.4.tgz"; + path = fetchurl { + name = "rc-1.2.4.tgz"; + url = "https://registry.yarnpkg.com/rc/-/rc-1.2.4.tgz"; + sha1 = "a0f606caae2a3b862bbd0ef85482c0125b315fa3"; + }; + } + + { + name = "read-pkg-up-1.0.1.tgz"; + path = fetchurl { + name = "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-2.0.0.tgz"; + path = fetchurl { + name = "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-1.1.0.tgz"; + path = fetchurl { + name = "read-pkg-1.1.0.tgz"; + url = "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz"; + sha1 = "f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28"; + }; + } + + { + name = "read-pkg-2.0.0.tgz"; + path = fetchurl { + name = "read-pkg-2.0.0.tgz"; + url = "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz"; + sha1 = "8ef1c0623c6a6db0dc6713c4bfac46332b2368f8"; + }; + } + + { + name = "readable-stream-2.3.3.tgz"; + path = fetchurl { + name = "readable-stream-2.3.3.tgz"; + url = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz"; + sha1 = "368f2512d79f9d46fdfc71349ae7878bbc1eb95c"; + }; + } + + { + name = "readable-stream-1.0.34.tgz"; + path = fetchurl { + name = "readable-stream-1.0.34.tgz"; + url = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz"; + sha1 = "125820e34bc842d2f2aaafafe4c2916ee32c157c"; + }; + } + + { + name = "readable-stream-2.3.4.tgz"; + path = fetchurl { + name = "readable-stream-2.3.4.tgz"; + url = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.4.tgz"; + sha1 = "c946c3f47fa7d8eabc0b6150f4a12f69a4574071"; + }; + } + + { + name = "readdirp-2.1.0.tgz"; + path = fetchurl { + name = "readdirp-2.1.0.tgz"; + url = "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz"; + sha1 = "4ed0ad060df3073300c48440373f72d1cc642d78"; + }; + } + + { + name = "redent-1.0.0.tgz"; + path = fetchurl { + name = "redent-1.0.0.tgz"; + url = "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz"; + sha1 = "cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde"; + }; + } + + { + name = "regex-cache-0.4.4.tgz"; + path = fetchurl { + name = "regex-cache-0.4.4.tgz"; + url = "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz"; + sha1 = "75bdc58a2a1496cec48a12835bc54c8d562336dd"; + }; + } + + { + name = "regex-not-1.0.2.tgz"; + path = fetchurl { + name = "regex-not-1.0.2.tgz"; + url = "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz"; + sha1 = "1f4ece27e00b0b65e0247a6810e6a85d83a5752c"; + }; + } + + { + name = "relateurl-0.2.7.tgz"; + path = fetchurl { + name = "relateurl-0.2.7.tgz"; + url = "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz"; + sha1 = "54dbf377e51440aca90a4cd274600d3ff2d888a9"; + }; + } + + { + name = "remove-trailing-separator-1.1.0.tgz"; + path = fetchurl { + name = "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-2.0.1.tgz"; + path = fetchurl { + name = "renderkid-2.0.1.tgz"; + url = "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.1.tgz"; + sha1 = "898cabfc8bede4b7b91135a3ffd323e58c0db319"; + }; + } + + { + name = "repeat-element-1.1.2.tgz"; + path = fetchurl { + name = "repeat-element-1.1.2.tgz"; + url = "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz"; + sha1 = "ef089a178d1483baae4d93eb98b4f9e4e11d990a"; + }; + } + + { + name = "repeat-string-1.6.1.tgz"; + path = fetchurl { + name = "repeat-string-1.6.1.tgz"; + url = "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz"; + sha1 = "8dcae470e1c88abc2d600fff4a776286da75e637"; + }; + } + + { + name = "repeating-2.0.1.tgz"; + path = fetchurl { + name = "repeating-2.0.1.tgz"; + url = "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz"; + sha1 = "5214c53a926d3552707527fbab415dbc08d06dda"; + }; + } + + { + name = "request-2.81.0.tgz"; + path = fetchurl { + name = "request-2.81.0.tgz"; + url = "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz"; + sha1 = "c6928946a0e06c5f8d6f8a9333469ffda46298a0"; + }; + } + + { + name = "require-directory-2.1.1.tgz"; + path = fetchurl { + name = "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-1.0.1.tgz"; + path = fetchurl { + name = "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-1.0.3.tgz"; + path = fetchurl { + name = "require-uncached-1.0.3.tgz"; + url = "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz"; + sha1 = "4e0d56d6c9662fd31e43011c4b95aa49955421d3"; + }; + } + + { + name = "requires-port-1.0.0.tgz"; + path = fetchurl { + name = "requires-port-1.0.0.tgz"; + url = "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz"; + sha1 = "925d2601d39ac485e091cf0da5c6e694dc3dcaff"; + }; + } + + { + name = "resolve-cwd-2.0.0.tgz"; + path = fetchurl { + name = "resolve-cwd-2.0.0.tgz"; + url = "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz"; + sha1 = "00a9f7387556e27038eae232caa372a6a59b665a"; + }; + } + + { + name = "resolve-from-1.0.1.tgz"; + path = fetchurl { + name = "resolve-from-1.0.1.tgz"; + url = "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz"; + sha1 = "26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226"; + }; + } + + { + name = "resolve-from-3.0.0.tgz"; + path = fetchurl { + name = "resolve-from-3.0.0.tgz"; + url = "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz"; + sha1 = "b22c7af7d9d6881bc8b6e653335eebcb0a188748"; + }; + } + + { + name = "resolve-url-0.2.1.tgz"; + path = fetchurl { + name = "resolve-url-0.2.1.tgz"; + url = "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz"; + sha1 = "2c637fe77c893afd2a663fe21aa9080068e2052a"; + }; + } + + { + name = "restore-cursor-2.0.0.tgz"; + path = fetchurl { + name = "restore-cursor-2.0.0.tgz"; + url = "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz"; + sha1 = "9f7ee287f82fd326d4fd162923d62129eee0dfaf"; + }; + } + + { + name = "ret-0.1.15.tgz"; + path = fetchurl { + name = "ret-0.1.15.tgz"; + url = "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz"; + sha1 = "b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"; + }; + } + + { + name = "right-align-0.1.3.tgz"; + path = fetchurl { + name = "right-align-0.1.3.tgz"; + url = "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz"; + sha1 = "61339b722fe6a3515689210d24e14c96148613ef"; + }; + } + + { + name = "rimraf-2.6.2.tgz"; + path = fetchurl { + name = "rimraf-2.6.2.tgz"; + url = "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz"; + sha1 = "2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36"; + }; + } + + { + name = "ripemd160-2.0.1.tgz"; + path = fetchurl { + name = "ripemd160-2.0.1.tgz"; + url = "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.1.tgz"; + sha1 = "0f4584295c53a3628af7e6d79aca21ce57d1c6e7"; + }; + } + + { + name = "run-async-2.3.0.tgz"; + path = fetchurl { + name = "run-async-2.3.0.tgz"; + url = "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz"; + sha1 = "0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0"; + }; + } + + { + name = "run-queue-1.0.3.tgz"; + path = fetchurl { + name = "run-queue-1.0.3.tgz"; + url = "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz"; + sha1 = "e848396f057d223f24386924618e25694161ec47"; + }; + } + + { + name = "rx-lite-aggregates-4.0.8.tgz"; + path = fetchurl { + name = "rx-lite-aggregates-4.0.8.tgz"; + url = "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz"; + sha1 = "753b87a89a11c95467c4ac1626c4efc4e05c67be"; + }; + } + + { + name = "rx-lite-4.0.8.tgz"; + path = fetchurl { + name = "rx-lite-4.0.8.tgz"; + url = "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz"; + sha1 = "0b1e11af8bc44836f04a6407e92da42467b79444"; + }; + } + + { + name = "safe-buffer-5.1.1.tgz"; + path = fetchurl { + name = "safe-buffer-5.1.1.tgz"; + url = "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz"; + sha1 = "893312af69b2123def71f57889001671eeb2c853"; + }; + } + + { + name = "safe-regex-1.1.0.tgz"; + path = fetchurl { + name = "safe-regex-1.1.0.tgz"; + url = "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz"; + sha1 = "40a3669f3b077d1e943d44629e157dd48023bf2e"; + }; + } + + { + name = "schema-utils-0.4.3.tgz"; + path = fetchurl { + name = "schema-utils-0.4.3.tgz"; + url = "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.3.tgz"; + sha1 = "e2a594d3395834d5e15da22b48be13517859458e"; + }; + } + + { + name = "select-hose-2.0.0.tgz"; + path = fetchurl { + name = "select-hose-2.0.0.tgz"; + url = "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz"; + sha1 = "625d8658f865af43ec962bfc376a37359a4994ca"; + }; + } + + { + name = "selfsigned-1.10.2.tgz"; + path = fetchurl { + name = "selfsigned-1.10.2.tgz"; + url = "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.2.tgz"; + sha1 = "b4449580d99929b65b10a48389301a6592088758"; + }; + } + + { + name = "semver-5.5.0.tgz"; + path = fetchurl { + name = "semver-5.5.0.tgz"; + url = "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz"; + sha1 = "dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab"; + }; + } + + { + name = "send-0.16.1.tgz"; + path = fetchurl { + name = "send-0.16.1.tgz"; + url = "https://registry.yarnpkg.com/send/-/send-0.16.1.tgz"; + sha1 = "a70e1ca21d1382c11d0d9f6231deb281080d7ab3"; + }; + } + + { + name = "serialize-javascript-1.4.0.tgz"; + path = fetchurl { + name = "serialize-javascript-1.4.0.tgz"; + url = "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.4.0.tgz"; + sha1 = "7c958514db6ac2443a8abc062dc9f7886a7f6005"; + }; + } + + { + name = "serve-index-1.9.1.tgz"; + path = fetchurl { + name = "serve-index-1.9.1.tgz"; + url = "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz"; + sha1 = "d3768d69b1e7d82e5ce050fff5b453bea12a9239"; + }; + } + + { + name = "serve-static-1.13.1.tgz"; + path = fetchurl { + name = "serve-static-1.13.1.tgz"; + url = "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.1.tgz"; + sha1 = "4c57d53404a761d8f2e7c1e8a18a47dbf278a719"; + }; + } + + { + name = "set-blocking-2.0.0.tgz"; + path = fetchurl { + name = "set-blocking-2.0.0.tgz"; + url = "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz"; + sha1 = "045f9782d011ae9a6803ddd382b24392b3d890f7"; + }; + } + + { + name = "set-getter-0.1.0.tgz"; + path = fetchurl { + name = "set-getter-0.1.0.tgz"; + url = "https://registry.yarnpkg.com/set-getter/-/set-getter-0.1.0.tgz"; + sha1 = "d769c182c9d5a51f409145f2fba82e5e86e80376"; + }; + } + + { + name = "set-immediate-shim-1.0.1.tgz"; + path = fetchurl { + name = "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-0.4.3.tgz"; + path = fetchurl { + name = "set-value-0.4.3.tgz"; + url = "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz"; + sha1 = "7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1"; + }; + } + + { + name = "set-value-2.0.0.tgz"; + path = fetchurl { + name = "set-value-2.0.0.tgz"; + url = "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz"; + sha1 = "71ae4a88f0feefbbf52d1ea604f3fb315ebb6274"; + }; + } + + { + name = "setimmediate-1.0.5.tgz"; + path = fetchurl { + name = "setimmediate-1.0.5.tgz"; + url = "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz"; + sha1 = "290cbb232e306942d7d7ea9b83732ab7856f8285"; + }; + } + + { + name = "setprototypeof-1.0.3.tgz"; + path = fetchurl { + name = "setprototypeof-1.0.3.tgz"; + url = "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz"; + sha1 = "66567e37043eeb4f04d91bd658c0cbefb55b8e04"; + }; + } + + { + name = "setprototypeof-1.1.0.tgz"; + path = fetchurl { + name = "setprototypeof-1.1.0.tgz"; + url = "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz"; + sha1 = "d0bd85536887b6fe7c0d818cb962d9d91c54e656"; + }; + } + + { + name = "sha.js-2.4.9.tgz"; + path = fetchurl { + name = "sha.js-2.4.9.tgz"; + url = "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.9.tgz"; + sha1 = "98f64880474b74f4a38b8da9d3c0f2d104633e7d"; + }; + } + + { + name = "shebang-command-1.2.0.tgz"; + path = fetchurl { + name = "shebang-command-1.2.0.tgz"; + url = "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz"; + sha1 = "44aac65b695b03398968c39f363fee5deafdf1ea"; + }; + } + + { + name = "shebang-regex-1.0.0.tgz"; + path = fetchurl { + name = "shebang-regex-1.0.0.tgz"; + url = "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz"; + sha1 = "da42f49740c0b42db2ca9728571cb190c98efea3"; + }; + } + + { + name = "signal-exit-3.0.2.tgz"; + path = fetchurl { + name = "signal-exit-3.0.2.tgz"; + url = "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz"; + sha1 = "b5fdc08f1287ea1178628e415e25132b73646c6d"; + }; + } + + { + name = "slice-ansi-1.0.0.tgz"; + path = fetchurl { + name = "slice-ansi-1.0.0.tgz"; + url = "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz"; + sha1 = "044f1a49d8842ff307aad6b505ed178bd950134d"; + }; + } + + { + name = "snapdragon-node-2.1.1.tgz"; + path = fetchurl { + name = "snapdragon-node-2.1.1.tgz"; + url = "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz"; + sha1 = "6c175f86ff14bdb0724563e8f3c1b021a286853b"; + }; + } + + { + name = "snapdragon-util-3.0.1.tgz"; + path = fetchurl { + name = "snapdragon-util-3.0.1.tgz"; + url = "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz"; + sha1 = "f956479486f2acd79700693f6f7b805e45ab56e2"; + }; + } + + { + name = "snapdragon-0.8.1.tgz"; + path = fetchurl { + name = "snapdragon-0.8.1.tgz"; + url = "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.1.tgz"; + sha1 = "e12b5487faded3e3dea0ac91e9400bf75b401370"; + }; + } + + { + name = "sntp-1.0.9.tgz"; + path = fetchurl { + name = "sntp-1.0.9.tgz"; + url = "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz"; + sha1 = "6541184cc90aeea6c6e7b35e2659082443c66198"; + }; + } + + { + name = "sockjs-client-1.1.4.tgz"; + path = fetchurl { + name = "sockjs-client-1.1.4.tgz"; + url = "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.1.4.tgz"; + sha1 = "5babe386b775e4cf14e7520911452654016c8b12"; + }; + } + + { + name = "sockjs-0.3.19.tgz"; + path = fetchurl { + name = "sockjs-0.3.19.tgz"; + url = "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.19.tgz"; + sha1 = "d976bbe800af7bd20ae08598d582393508993c0d"; + }; + } + + { + name = "source-list-map-2.0.0.tgz"; + path = fetchurl { + name = "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-0.5.1.tgz"; + path = fetchurl { + name = "source-map-resolve-0.5.1.tgz"; + url = "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.1.tgz"; + sha1 = "7ad0f593f2281598e854df80f19aae4b92d7a11a"; + }; + } + + { + name = "source-map-url-0.4.0.tgz"; + path = fetchurl { + name = "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-0.5.7.tgz"; + path = fetchurl { + name = "source-map-0.5.7.tgz"; + url = "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz"; + sha1 = "8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"; + }; + } + + { + name = "source-map-0.6.1.tgz"; + path = fetchurl { + name = "source-map-0.6.1.tgz"; + url = "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz"; + sha1 = "74722af32e9614e9c287a8d0bbde48b5e2f1a263"; + }; + } + + { + name = "spdx-correct-1.0.2.tgz"; + path = fetchurl { + name = "spdx-correct-1.0.2.tgz"; + url = "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz"; + sha1 = "4b3073d933ff51f3912f03ac5519498a4150db40"; + }; + } + + { + name = "spdx-expression-parse-1.0.4.tgz"; + path = fetchurl { + name = "spdx-expression-parse-1.0.4.tgz"; + url = "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz"; + sha1 = "9bdf2f20e1f40ed447fbe273266191fced51626c"; + }; + } + + { + name = "spdx-license-ids-1.2.2.tgz"; + path = fetchurl { + name = "spdx-license-ids-1.2.2.tgz"; + url = "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz"; + sha1 = "c9df7a3424594ade6bd11900d596696dc06bac57"; + }; + } + + { + name = "spdy-transport-2.0.20.tgz"; + path = fetchurl { + name = "spdy-transport-2.0.20.tgz"; + url = "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-2.0.20.tgz"; + sha1 = "735e72054c486b2354fe89e702256004a39ace4d"; + }; + } + + { + name = "spdy-3.4.7.tgz"; + path = fetchurl { + name = "spdy-3.4.7.tgz"; + url = "https://registry.yarnpkg.com/spdy/-/spdy-3.4.7.tgz"; + sha1 = "42ff41ece5cc0f99a3a6c28aabb73f5c3b03acbc"; + }; + } + + { + name = "split-string-3.1.0.tgz"; + path = fetchurl { + name = "split-string-3.1.0.tgz"; + url = "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz"; + sha1 = "7cb09dda3a86585705c64b39a6466038682e8fe2"; + }; + } + + { + name = "sprintf-js-1.0.3.tgz"; + path = fetchurl { + name = "sprintf-js-1.0.3.tgz"; + url = "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz"; + sha1 = "04e6926f662895354f3dd015203633b857297e2c"; + }; + } + + { + name = "sshpk-1.13.1.tgz"; + path = fetchurl { + name = "sshpk-1.13.1.tgz"; + url = "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.1.tgz"; + sha1 = "512df6da6287144316dc4c18fe1cf1d940739be3"; + }; + } + + { + name = "ssri-5.1.0.tgz"; + path = fetchurl { + name = "ssri-5.1.0.tgz"; + url = "https://registry.yarnpkg.com/ssri/-/ssri-5.1.0.tgz"; + sha1 = "2cbf1df36b74d0fc91fcf89640a4b3e1d10b1899"; + }; + } + + { + name = "static-extend-0.1.2.tgz"; + path = fetchurl { + name = "static-extend-0.1.2.tgz"; + url = "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz"; + sha1 = "60809c39cbff55337226fd5e0b520f341f1fb5c6"; + }; + } + + { + name = "statuses-1.4.0.tgz"; + path = fetchurl { + name = "statuses-1.4.0.tgz"; + url = "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz"; + sha1 = "bb73d446da2796106efcc1b601a253d6c46bd087"; + }; + } + + { + name = "statuses-1.3.1.tgz"; + path = fetchurl { + name = "statuses-1.3.1.tgz"; + url = "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz"; + sha1 = "faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e"; + }; + } + + { + name = "stream-browserify-2.0.1.tgz"; + path = fetchurl { + name = "stream-browserify-2.0.1.tgz"; + url = "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz"; + sha1 = "66266ee5f9bdb9940a4e4514cafb43bb71e5c9db"; + }; + } + + { + name = "stream-each-1.2.2.tgz"; + path = fetchurl { + name = "stream-each-1.2.2.tgz"; + url = "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.2.tgz"; + sha1 = "8e8c463f91da8991778765873fe4d960d8f616bd"; + }; + } + + { + name = "stream-http-2.8.0.tgz"; + path = fetchurl { + name = "stream-http-2.8.0.tgz"; + url = "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.0.tgz"; + sha1 = "fd86546dac9b1c91aff8fc5d287b98fafb41bc10"; + }; + } + + { + name = "stream-shift-1.0.0.tgz"; + path = fetchurl { + name = "stream-shift-1.0.0.tgz"; + url = "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz"; + sha1 = "d5c752825e5367e786f78e18e445ea223a155952"; + }; + } + + { + name = "strict-uri-encode-1.1.0.tgz"; + path = fetchurl { + name = "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-1.0.2.tgz"; + path = fetchurl { + name = "string-width-1.0.2.tgz"; + url = "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz"; + sha1 = "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"; + }; + } + + { + name = "string-width-2.1.1.tgz"; + path = fetchurl { + name = "string-width-2.1.1.tgz"; + url = "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz"; + sha1 = "ab93f27a8dc13d28cac815c462143a6d9012ae9e"; + }; + } + + { + name = "string_decoder-1.0.3.tgz"; + path = fetchurl { + name = "string_decoder-1.0.3.tgz"; + url = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz"; + sha1 = "0fc67d7c141825de94282dd536bec6b9bce860ab"; + }; + } + + { + name = "string_decoder-0.10.31.tgz"; + path = fetchurl { + name = "string_decoder-0.10.31.tgz"; + url = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz"; + sha1 = "62e203bc41766c6c28c9fc84301dab1c5310fa94"; + }; + } + + { + name = "stringstream-0.0.5.tgz"; + path = fetchurl { + name = "stringstream-0.0.5.tgz"; + url = "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz"; + sha1 = "4e484cd4de5a0bbbee18e46307710a8a81621878"; + }; + } + + { + name = "strip-ansi-3.0.1.tgz"; + path = fetchurl { + name = "strip-ansi-3.0.1.tgz"; + url = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz"; + sha1 = "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"; + }; + } + + { + name = "strip-ansi-4.0.0.tgz"; + path = fetchurl { + name = "strip-ansi-4.0.0.tgz"; + url = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz"; + sha1 = "a8479022eb1ac368a871389b635262c505ee368f"; + }; + } + + { + name = "strip-bom-2.0.0.tgz"; + path = fetchurl { + name = "strip-bom-2.0.0.tgz"; + url = "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz"; + sha1 = "6219a85616520491f35788bdbf1447a99c7e6b0e"; + }; + } + + { + name = "strip-bom-3.0.0.tgz"; + path = fetchurl { + name = "strip-bom-3.0.0.tgz"; + url = "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz"; + sha1 = "2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"; + }; + } + + { + name = "strip-eof-1.0.0.tgz"; + path = fetchurl { + name = "strip-eof-1.0.0.tgz"; + url = "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz"; + sha1 = "bb43ff5598a6eb05d89b59fcd129c983313606bf"; + }; + } + + { + name = "strip-indent-1.0.1.tgz"; + path = fetchurl { + name = "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-2.0.1.tgz"; + path = fetchurl { + name = "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-2.0.0.tgz"; + path = fetchurl { + name = "supports-color-2.0.0.tgz"; + url = "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz"; + sha1 = "535d045ce6b6363fa40117084629995e9df324c7"; + }; + } + + { + name = "supports-color-4.5.0.tgz"; + path = fetchurl { + name = "supports-color-4.5.0.tgz"; + url = "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz"; + sha1 = "be7a0de484dec5c5cddf8b3d59125044912f635b"; + }; + } + + { + name = "supports-color-5.2.0.tgz"; + path = fetchurl { + name = "supports-color-5.2.0.tgz"; + url = "https://registry.yarnpkg.com/supports-color/-/supports-color-5.2.0.tgz"; + sha1 = "b0d5333b1184dd3666cbe5aa0b45c5ac7ac17a4a"; + }; + } + + { + name = "table-4.0.2.tgz"; + path = fetchurl { + name = "table-4.0.2.tgz"; + url = "https://registry.yarnpkg.com/table/-/table-4.0.2.tgz"; + sha1 = "a33447375391e766ad34d3486e6e2aedc84d2e36"; + }; + } + + { + name = "tapable-0.2.8.tgz"; + path = fetchurl { + name = "tapable-0.2.8.tgz"; + url = "https://registry.yarnpkg.com/tapable/-/tapable-0.2.8.tgz"; + sha1 = "99372a5c999bf2df160afc0d74bed4f47948cd22"; + }; + } + + { + name = "tar-pack-3.4.1.tgz"; + path = fetchurl { + name = "tar-pack-3.4.1.tgz"; + url = "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.1.tgz"; + sha1 = "e1dbc03a9b9d3ba07e896ad027317eb679a10a1f"; + }; + } + + { + name = "tar-2.2.1.tgz"; + path = fetchurl { + name = "tar-2.2.1.tgz"; + url = "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz"; + sha1 = "8e4d2a256c0e2185c6b18ad694aec968b83cb1d1"; + }; + } + + { + name = "text-table-0.2.0.tgz"; + path = fetchurl { + name = "text-table-0.2.0.tgz"; + url = "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz"; + sha1 = "7f5ee823ae805207c00af2df4a84ec3fcfa570b4"; + }; + } + + { + name = "through2-2.0.3.tgz"; + path = fetchurl { + name = "through2-2.0.3.tgz"; + url = "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz"; + sha1 = "0004569b37c7c74ba39c43f3ced78d1ad94140be"; + }; + } + + { + name = "through-2.3.8.tgz"; + path = fetchurl { + name = "through-2.3.8.tgz"; + url = "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz"; + sha1 = "0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"; + }; + } + + { + name = "thunky-1.0.2.tgz"; + path = fetchurl { + name = "thunky-1.0.2.tgz"; + url = "https://registry.yarnpkg.com/thunky/-/thunky-1.0.2.tgz"; + sha1 = "a862e018e3fb1ea2ec3fce5d55605cf57f247371"; + }; + } + + { + name = "time-stamp-2.0.0.tgz"; + path = fetchurl { + name = "time-stamp-2.0.0.tgz"; + url = "https://registry.yarnpkg.com/time-stamp/-/time-stamp-2.0.0.tgz"; + sha1 = "95c6a44530e15ba8d6f4a3ecb8c3a3fac46da357"; + }; + } + + { + name = "timers-browserify-2.0.4.tgz"; + path = fetchurl { + name = "timers-browserify-2.0.4.tgz"; + url = "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.4.tgz"; + sha1 = "96ca53f4b794a5e7c0e1bd7cc88a372298fa01e6"; + }; + } + + { + name = "tmp-0.0.33.tgz"; + path = fetchurl { + name = "tmp-0.0.33.tgz"; + url = "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz"; + sha1 = "6d34335889768d21b2bcda0aa277ced3b1bfadf9"; + }; + } + + { + name = "to-arraybuffer-1.0.1.tgz"; + path = fetchurl { + name = "to-arraybuffer-1.0.1.tgz"; + url = "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz"; + sha1 = "7d229b1fcc637e466ca081180836a7aabff83f43"; + }; + } + + { + name = "to-object-path-0.3.0.tgz"; + path = fetchurl { + name = "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-2.1.1.tgz"; + path = fetchurl { + name = "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-3.0.1.tgz"; + path = fetchurl { + name = "to-regex-3.0.1.tgz"; + url = "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.1.tgz"; + sha1 = "15358bee4a2c83bd76377ba1dc049d0f18837aae"; + }; + } + + { + name = "toposort-1.0.6.tgz"; + path = fetchurl { + name = "toposort-1.0.6.tgz"; + url = "https://registry.yarnpkg.com/toposort/-/toposort-1.0.6.tgz"; + sha1 = "c31748e55d210effc00fdcdc7d6e68d7d7bb9cec"; + }; + } + + { + name = "tough-cookie-2.3.3.tgz"; + path = fetchurl { + name = "tough-cookie-2.3.3.tgz"; + url = "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.3.tgz"; + sha1 = "0b618a5565b6dea90bf3425d04d55edc475a7561"; + }; + } + + { + name = "trim-newlines-1.0.0.tgz"; + path = fetchurl { + name = "trim-newlines-1.0.0.tgz"; + url = "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz"; + sha1 = "5887966bb582a4503a41eb524f7d35011815a613"; + }; + } + + { + name = "tty-browserify-0.0.0.tgz"; + path = fetchurl { + name = "tty-browserify-0.0.0.tgz"; + url = "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz"; + sha1 = "a157ba402da24e9bf957f9aa69d524eed42901a6"; + }; + } + + { + name = "tunnel-agent-0.6.0.tgz"; + path = fetchurl { + name = "tunnel-agent-0.6.0.tgz"; + url = "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz"; + sha1 = "27a5dea06b36b04a0a9966774b290868f0fc40fd"; + }; + } + + { + name = "tweetnacl-0.14.5.tgz"; + path = fetchurl { + name = "tweetnacl-0.14.5.tgz"; + url = "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz"; + sha1 = "5ae68177f192d4456269d108afa93ff8743f4f64"; + }; + } + + { + name = "type-check-0.3.2.tgz"; + path = fetchurl { + name = "type-check-0.3.2.tgz"; + url = "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz"; + sha1 = "5884cab512cf1d355e3fb784f30804b2b520db72"; + }; + } + + { + name = "type-is-1.6.16.tgz"; + path = fetchurl { + name = "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-3.1.2.tgz"; + path = fetchurl { + name = "typedarray-to-buffer-3.1.2.tgz"; + url = "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.2.tgz"; + sha1 = "1017b32d984ff556eba100f501589aba1ace2e04"; + }; + } + + { + name = "typedarray-0.0.6.tgz"; + path = fetchurl { + name = "typedarray-0.0.6.tgz"; + url = "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz"; + sha1 = "867ac74e3864187b1d3d47d996a78ec5c8830777"; + }; + } + + { + name = "uglify-es-3.3.7.tgz"; + path = fetchurl { + name = "uglify-es-3.3.7.tgz"; + url = "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.3.7.tgz"; + sha1 = "d1249af668666aba7cb1163e277455be9eb393cf"; + }; + } + + { + name = "uglify-js-3.3.8.tgz"; + path = fetchurl { + name = "uglify-js-3.3.8.tgz"; + url = "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.3.8.tgz"; + sha1 = "51e9a5db73afb53ac98603d08224edcd0be45fd8"; + }; + } + + { + name = "uglify-js-2.8.29.tgz"; + path = fetchurl { + name = "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-1.0.2.tgz"; + path = fetchurl { + name = "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-0.4.6.tgz"; + path = fetchurl { + name = "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 = "uglifyjs-webpack-plugin-1.2.0.tgz"; + path = fetchurl { + name = "uglifyjs-webpack-plugin-1.2.0.tgz"; + url = "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.2.0.tgz"; + sha1 = "f706fa4c655000a086b4a97c7d835ed0f6e9b0ef"; + }; + } + + { + name = "uid-number-0.0.6.tgz"; + path = fetchurl { + name = "uid-number-0.0.6.tgz"; + url = "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz"; + sha1 = "0ea10e8035e8eb5b8e4449f06da1c730663baa81"; + }; + } + + { + name = "union-value-1.0.0.tgz"; + path = fetchurl { + name = "union-value-1.0.0.tgz"; + url = "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz"; + sha1 = "5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4"; + }; + } + + { + name = "unique-filename-1.1.0.tgz"; + path = fetchurl { + name = "unique-filename-1.1.0.tgz"; + url = "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.0.tgz"; + sha1 = "d05f2fe4032560871f30e93cbe735eea201514f3"; + }; + } + + { + name = "unique-slug-2.0.0.tgz"; + path = fetchurl { + name = "unique-slug-2.0.0.tgz"; + url = "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.0.tgz"; + sha1 = "db6676e7c7cc0629878ff196097c78855ae9f4ab"; + }; + } + + { + name = "unpipe-1.0.0.tgz"; + path = fetchurl { + name = "unpipe-1.0.0.tgz"; + url = "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz"; + sha1 = "b2bf4ee8514aae6165b4817829d21b2ef49904ec"; + }; + } + + { + name = "unset-value-1.0.0.tgz"; + path = fetchurl { + name = "unset-value-1.0.0.tgz"; + url = "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz"; + sha1 = "8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559"; + }; + } + + { + name = "upath-1.0.2.tgz"; + path = fetchurl { + name = "upath-1.0.2.tgz"; + url = "https://registry.yarnpkg.com/upath/-/upath-1.0.2.tgz"; + sha1 = "80aaae5395abc5fd402933ae2f58694f0860204c"; + }; + } + + { + name = "upper-case-1.1.3.tgz"; + path = fetchurl { + name = "upper-case-1.1.3.tgz"; + url = "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz"; + sha1 = "f6b4501c2ec4cdd26ba78be7222961de77621598"; + }; + } + + { + name = "urix-0.1.0.tgz"; + path = fetchurl { + name = "urix-0.1.0.tgz"; + url = "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz"; + sha1 = "da937f7a62e21fec1fd18d49b35c2935067a6c72"; + }; + } + + { + name = "url-parse-1.0.5.tgz"; + path = fetchurl { + name = "url-parse-1.0.5.tgz"; + url = "https://registry.yarnpkg.com/url-parse/-/url-parse-1.0.5.tgz"; + sha1 = "0854860422afdcfefeb6c965c662d4800169927b"; + }; + } + + { + name = "url-parse-1.2.0.tgz"; + path = fetchurl { + name = "url-parse-1.2.0.tgz"; + url = "https://registry.yarnpkg.com/url-parse/-/url-parse-1.2.0.tgz"; + sha1 = "3a19e8aaa6d023ddd27dcc44cb4fc8f7fec23986"; + }; + } + + { + name = "url-0.11.0.tgz"; + path = fetchurl { + name = "url-0.11.0.tgz"; + url = "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz"; + sha1 = "3838e97cfc60521eb73c525a8e55bfdd9e2e28f1"; + }; + } + + { + name = "use-2.0.2.tgz"; + path = fetchurl { + name = "use-2.0.2.tgz"; + url = "https://registry.yarnpkg.com/use/-/use-2.0.2.tgz"; + sha1 = "ae28a0d72f93bf22422a18a2e379993112dec8e8"; + }; + } + + { + name = "util-deprecate-1.0.2.tgz"; + path = fetchurl { + name = "util-deprecate-1.0.2.tgz"; + url = "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz"; + sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf"; + }; + } + + { + name = "util-0.10.3.tgz"; + path = fetchurl { + name = "util-0.10.3.tgz"; + url = "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz"; + sha1 = "7afb1afe50805246489e3db7fe0ed379336ac0f9"; + }; + } + + { + name = "utila-0.3.3.tgz"; + path = fetchurl { + name = "utila-0.3.3.tgz"; + url = "https://registry.yarnpkg.com/utila/-/utila-0.3.3.tgz"; + sha1 = "d7e8e7d7e309107092b05f8d9688824d633a4226"; + }; + } + + { + name = "utila-0.4.0.tgz"; + path = fetchurl { + name = "utila-0.4.0.tgz"; + url = "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz"; + sha1 = "8a16a05d445657a3aea5eecc5b12a4fa5379772c"; + }; + } + + { + name = "utils-merge-1.0.1.tgz"; + path = fetchurl { + name = "utils-merge-1.0.1.tgz"; + url = "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz"; + sha1 = "9f95710f50a267947b2ccc124741c1028427e713"; + }; + } + + { + name = "uuid-3.2.1.tgz"; + path = fetchurl { + name = "uuid-3.2.1.tgz"; + url = "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz"; + sha1 = "12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14"; + }; + } + + { + name = "validate-npm-package-license-3.0.1.tgz"; + path = fetchurl { + name = "validate-npm-package-license-3.0.1.tgz"; + url = "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz"; + sha1 = "2804babe712ad3379459acfbe24746ab2c303fbc"; + }; + } + + { + name = "vary-1.1.2.tgz"; + path = fetchurl { + name = "vary-1.1.2.tgz"; + url = "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz"; + sha1 = "2299f02c6ded30d4a5961b0b9f74524a18f634fc"; + }; + } + + { + name = "verror-1.10.0.tgz"; + path = fetchurl { + name = "verror-1.10.0.tgz"; + url = "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz"; + sha1 = "3a105ca17053af55d6e270c1f8288682e18da400"; + }; + } + + { + name = "vlq-0.2.3.tgz"; + path = fetchurl { + name = "vlq-0.2.3.tgz"; + url = "https://registry.yarnpkg.com/vlq/-/vlq-0.2.3.tgz"; + sha1 = "8f3e4328cf63b1540c0d67e1b2778386f8975b26"; + }; + } + + { + name = "vlq-1.0.0.tgz"; + path = fetchurl { + name = "vlq-1.0.0.tgz"; + url = "https://registry.yarnpkg.com/vlq/-/vlq-1.0.0.tgz"; + sha1 = "8101be90843422954c2b13eb27f2f3122bdcc806"; + }; + } + + { + name = "vm-browserify-0.0.4.tgz"; + path = fetchurl { + name = "vm-browserify-0.0.4.tgz"; + url = "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz"; + sha1 = "5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73"; + }; + } + + { + name = "watchpack-1.4.0.tgz"; + path = fetchurl { + name = "watchpack-1.4.0.tgz"; + url = "https://registry.yarnpkg.com/watchpack/-/watchpack-1.4.0.tgz"; + sha1 = "4a1472bcbb952bd0a9bb4036801f954dfb39faac"; + }; + } + + { + name = "wbuf-1.7.2.tgz"; + path = fetchurl { + name = "wbuf-1.7.2.tgz"; + url = "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.2.tgz"; + sha1 = "d697b99f1f59512df2751be42769c1580b5801fe"; + }; + } + + { + name = "webpack-dev-middleware-1.12.2.tgz"; + path = fetchurl { + name = "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-2.11.1.tgz"; + path = fetchurl { + name = "webpack-dev-server-2.11.1.tgz"; + url = "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-2.11.1.tgz"; + sha1 = "6f9358a002db8403f016e336816f4485384e5ec0"; + }; + } + + { + name = "webpack-sources-1.1.0.tgz"; + path = fetchurl { + name = "webpack-sources-1.1.0.tgz"; + url = "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.1.0.tgz"; + sha1 = "a101ebae59d6507354d71d8013950a3a8b7a5a54"; + }; + } + + { + name = "webpack-3.10.0.tgz"; + path = fetchurl { + name = "webpack-3.10.0.tgz"; + url = "https://registry.yarnpkg.com/webpack/-/webpack-3.10.0.tgz"; + sha1 = "5291b875078cf2abf42bdd23afe3f8f96c17d725"; + }; + } + + { + name = "webpack-3.11.0.tgz"; + path = fetchurl { + name = "webpack-3.11.0.tgz"; + url = "https://registry.yarnpkg.com/webpack/-/webpack-3.11.0.tgz"; + sha1 = "77da451b1d7b4b117adaf41a1a93b5742f24d894"; + }; + } + + { + name = "websocket-driver-0.7.0.tgz"; + path = fetchurl { + name = "websocket-driver-0.7.0.tgz"; + url = "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.0.tgz"; + sha1 = "0caf9d2d755d93aee049d4bdd0d3fe2cca2a24eb"; + }; + } + + { + name = "websocket-extensions-0.1.3.tgz"; + path = fetchurl { + name = "websocket-extensions-0.1.3.tgz"; + url = "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz"; + sha1 = "5d2ff22977003ec687a4b87073dfbbac146ccf29"; + }; + } + + { + name = "websocket-1.0.25.tgz"; + path = fetchurl { + name = "websocket-1.0.25.tgz"; + url = "https://registry.yarnpkg.com/websocket/-/websocket-1.0.25.tgz"; + sha1 = "998ec790f0a3eacb8b08b50a4350026692a11958"; + }; + } + + { + name = "which-module-1.0.0.tgz"; + path = fetchurl { + name = "which-module-1.0.0.tgz"; + url = "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz"; + sha1 = "bba63ca861948994ff307736089e3b96026c2a4f"; + }; + } + + { + name = "which-module-2.0.0.tgz"; + path = fetchurl { + name = "which-module-2.0.0.tgz"; + url = "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz"; + sha1 = "d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"; + }; + } + + { + name = "which-1.3.0.tgz"; + path = fetchurl { + name = "which-1.3.0.tgz"; + url = "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz"; + sha1 = "ff04bdfc010ee547d780bec38e1ac1c2777d253a"; + }; + } + + { + name = "wide-align-1.1.2.tgz"; + path = fetchurl { + name = "wide-align-1.1.2.tgz"; + url = "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz"; + sha1 = "571e0f1b0604636ebc0dfc21b0339bbe31341710"; + }; + } + + { + name = "window-size-0.1.0.tgz"; + path = fetchurl { + name = "window-size-0.1.0.tgz"; + url = "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz"; + sha1 = "5438cd2ea93b202efa3a19fe8887aee7c94f9c9d"; + }; + } + + { + name = "wordwrap-0.0.2.tgz"; + path = fetchurl { + name = "wordwrap-0.0.2.tgz"; + url = "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz"; + sha1 = "b79669bb42ecb409f83d583cad52ca17eaa1643f"; + }; + } + + { + name = "wordwrap-1.0.0.tgz"; + path = fetchurl { + name = "wordwrap-1.0.0.tgz"; + url = "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz"; + sha1 = "27584810891456a4171c8d0226441ade90cbcaeb"; + }; + } + + { + name = "worker-farm-1.5.2.tgz"; + path = fetchurl { + name = "worker-farm-1.5.2.tgz"; + url = "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.5.2.tgz"; + sha1 = "32b312e5dc3d5d45d79ef44acc2587491cd729ae"; + }; + } + + { + name = "wrap-ansi-2.1.0.tgz"; + path = fetchurl { + name = "wrap-ansi-2.1.0.tgz"; + url = "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz"; + sha1 = "d8fc3d284dd05794fe84973caecdd1cf824fdd85"; + }; + } + + { + name = "wrappy-1.0.2.tgz"; + path = fetchurl { + name = "wrappy-1.0.2.tgz"; + url = "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz"; + sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"; + }; + } + + { + name = "write-0.2.1.tgz"; + path = fetchurl { + name = "write-0.2.1.tgz"; + url = "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz"; + sha1 = "5fc03828e264cea3fe91455476f7a3c566cb0757"; + }; + } + + { + name = "xml-char-classes-1.0.0.tgz"; + path = fetchurl { + name = "xml-char-classes-1.0.0.tgz"; + url = "https://registry.yarnpkg.com/xml-char-classes/-/xml-char-classes-1.0.0.tgz"; + sha1 = "64657848a20ffc5df583a42ad8a277b4512bbc4d"; + }; + } + + { + name = "xtend-4.0.1.tgz"; + path = fetchurl { + name = "xtend-4.0.1.tgz"; + url = "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz"; + sha1 = "a5c6d532be656e23db820efb943a1f04998d63af"; + }; + } + + { + name = "y18n-3.2.1.tgz"; + path = fetchurl { + name = "y18n-3.2.1.tgz"; + url = "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz"; + sha1 = "6d15fba884c08679c0d77e88e7759e811e07fa41"; + }; + } + + { + name = "yaeti-0.0.6.tgz"; + path = fetchurl { + name = "yaeti-0.0.6.tgz"; + url = "https://registry.yarnpkg.com/yaeti/-/yaeti-0.0.6.tgz"; + sha1 = "f26f484d72684cf42bedfb76970aa1608fbf9577"; + }; + } + + { + name = "yallist-2.1.2.tgz"; + path = fetchurl { + name = "yallist-2.1.2.tgz"; + url = "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz"; + sha1 = "1c11f9218f076089a47dd512f93c6699a6a81d52"; + }; + } + + { + name = "yargs-parser-4.2.1.tgz"; + path = fetchurl { + name = "yargs-parser-4.2.1.tgz"; + url = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-4.2.1.tgz"; + sha1 = "29cceac0dc4f03c6c87b4a9f217dd18c9f74871c"; + }; + } + + { + name = "yargs-parser-7.0.0.tgz"; + path = fetchurl { + name = "yargs-parser-7.0.0.tgz"; + url = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz"; + sha1 = "8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9"; + }; + } + + { + name = "yargs-6.6.0.tgz"; + path = fetchurl { + name = "yargs-6.6.0.tgz"; + url = "https://registry.yarnpkg.com/yargs/-/yargs-6.6.0.tgz"; + sha1 = "782ec21ef403345f830a808ca3d513af56065208"; + }; + } + + { + name = "yargs-8.0.2.tgz"; + path = fetchurl { + name = "yargs-8.0.2.tgz"; + url = "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz"; + sha1 = "6299a9055b1cefc969ff7e79c1d918dceb22c360"; + }; + } + + { + name = "yargs-3.10.0.tgz"; + path = fetchurl { + name = "yargs-3.10.0.tgz"; + url = "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz"; + sha1 = "f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1"; + }; + } + ]; +} diff --git a/ofborg/ofborg-viewer/yarn2nix.json b/ofborg/ofborg-viewer/yarn2nix.json new file mode 100644 index 0000000000..9f805f6002 --- /dev/null +++ b/ofborg/ofborg-viewer/yarn2nix.json @@ -0,0 +1,7 @@ +{ + "url": "https://github.com/moretea/yarn2nix.git", + "rev": "d6e05a521bd92b2647bb7e853363d234f21b2cfd", + "date": "2017-12-28T22:35:38+00:00", + "sha256": "1nvpii9p41vrb6zvr8rqcvmycrl6lnzzaif85qj1aavizncgb4wy", + "fetchSubmodules": true +} -- cgit 0.0.5-2-1-g0f52