Skip to content

Instantly share code, notes, and snippets.

@MMesch
Created September 11, 2020 20:51
Show Gist options
  • Save MMesch/cfc3de1c115b796815f17e4ceaa3e72a to your computer and use it in GitHub Desktop.
Save MMesch/cfc3de1c115b796815f17e4ceaa3e72a to your computer and use it in GitHub Desktop.
vega-cli and vega-lite packaged for nix (with node2nix)

This is packaging the vega command line tools for nix (https://vega.github.io/vega/usage/#cli). Vega is a handy declarative visualization tool and this cli allows to convert vega specifications directly to svg/pdf/png instead of looking at them online.

Basically what I did was to run:

nix-shell -p nodePackages.node2nix --command "node2nix -i <(echo '[\"vega-cli\", \"vega-lite\"]')"

Then I added a few extra dependencies to the generated default.nix such that the last lines look like this:

...
import ./node-packages.nix {
  inherit (pkgs) fetchurl fetchgit;
  inherit nodeEnv;
  globalBuildInputs = with pkgs; [ nodePackages.node-pre-gyp pkgconfig pixman cairo pango libjpeg ];
}

you can then either build it with nix-build or you can import it in a shell.nix, for example to use it together with hvega:

{ pkgs ? import <nixpkgs> { } }:

with pkgs;
let
  vega = (import ./vega-cli { inherit pkgs; });
  haskenv = haskellPackages.ghcWithPackages (p: [
    p.req
    p.gnuplot
    p.aeson
    p.cassava
    p.Frames
    p.microlens-platform
    p.foldl
    p.hvega
  ]);
in mkShell {
  buildInputs = [
    gnuplot
    haskenv
    haskellPackages.haskell-language-server
    vega.vega-cli
    vega.vega-lite
  ];
}
# This file has been generated by node2nix 1.8.0. Do not edit!
{pkgs ? import <nixpkgs> {
inherit system;
}, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-12_x"}:
let
nodeEnv = import ./node-env.nix {
inherit (pkgs) stdenv python2 utillinux runCommand writeTextFile;
inherit nodejs;
libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
};
in
import ./node-packages.nix {
inherit (pkgs) fetchurl fetchgit;
inherit nodeEnv;
globalBuildInputs = with pkgs; [ nodePackages.node-pre-gyp pkgconfig pixman cairo pango libjpeg ];
}
# This file originates from node2nix
{stdenv, nodejs, python2, utillinux, libtool, runCommand, writeTextFile}:
let
python = if nodejs ? python then nodejs.python else python2;
# Create a tar wrapper that filters all the 'Ignoring unknown extended header keyword' noise
tarWrapper = runCommand "tarWrapper" {} ''
mkdir -p $out/bin
cat > $out/bin/tar <<EOF
#! ${stdenv.shell} -e
$(type -p tar) "\$@" --warning=no-unknown-keyword --delay-directory-restore
EOF
chmod +x $out/bin/tar
'';
# Function that generates a TGZ file from a NPM project
buildNodeSourceDist =
{ name, version, src, ... }:
stdenv.mkDerivation {
name = "node-tarball-${name}-${version}";
inherit src;
buildInputs = [ nodejs ];
buildPhase = ''
export HOME=$TMPDIR
tgzFile=$(npm pack | tail -n 1) # Hooks to the pack command will add output (https://docs.npmjs.com/misc/scripts)
'';
installPhase = ''
mkdir -p $out/tarballs
mv $tgzFile $out/tarballs
mkdir -p $out/nix-support
echo "file source-dist $out/tarballs/$tgzFile" >> $out/nix-support/hydra-build-products
'';
};
includeDependencies = {dependencies}:
stdenv.lib.optionalString (dependencies != [])
(stdenv.lib.concatMapStrings (dependency:
''
# Bundle the dependencies of the package
mkdir -p node_modules
cd node_modules
# Only include dependencies if they don't exist. They may also be bundled in the package.
if [ ! -e "${dependency.name}" ]
then
${composePackage dependency}
fi
cd ..
''
) dependencies);
# Recursively composes the dependencies of a package
composePackage = { name, packageName, src, dependencies ? [], ... }@args:
builtins.addErrorContext "while evaluating node package '${packageName}'" ''
DIR=$(pwd)
cd $TMPDIR
unpackFile ${src}
# Make the base dir in which the target dependency resides first
mkdir -p "$(dirname "$DIR/${packageName}")"
if [ -f "${src}" ]
then
# Figure out what directory has been unpacked
packageDir="$(find . -maxdepth 1 -type d | tail -1)"
# Restore write permissions to make building work
find "$packageDir" -type d -exec chmod u+x {} \;
chmod -R u+w "$packageDir"
# Move the extracted tarball into the output folder
mv "$packageDir" "$DIR/${packageName}"
elif [ -d "${src}" ]
then
# Get a stripped name (without hash) of the source directory.
# On old nixpkgs it's already set internally.
if [ -z "$strippedName" ]
then
strippedName="$(stripHash ${src})"
fi
# Restore write permissions to make building work
chmod -R u+w "$strippedName"
# Move the extracted directory into the output folder
mv "$strippedName" "$DIR/${packageName}"
fi
# Unset the stripped name to not confuse the next unpack step
unset strippedName
# Include the dependencies of the package
cd "$DIR/${packageName}"
${includeDependencies { inherit dependencies; }}
cd ..
${stdenv.lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
'';
pinpointDependencies = {dependencies, production}:
let
pinpointDependenciesFromPackageJSON = writeTextFile {
name = "pinpointDependencies.js";
text = ''
var fs = require('fs');
var path = require('path');
function resolveDependencyVersion(location, name) {
if(location == process.env['NIX_STORE']) {
return null;
} else {
var dependencyPackageJSON = path.join(location, "node_modules", name, "package.json");
if(fs.existsSync(dependencyPackageJSON)) {
var dependencyPackageObj = JSON.parse(fs.readFileSync(dependencyPackageJSON));
if(dependencyPackageObj.name == name) {
return dependencyPackageObj.version;
}
} else {
return resolveDependencyVersion(path.resolve(location, ".."), name);
}
}
}
function replaceDependencies(dependencies) {
if(typeof dependencies == "object" && dependencies !== null) {
for(var dependency in dependencies) {
var resolvedVersion = resolveDependencyVersion(process.cwd(), dependency);
if(resolvedVersion === null) {
process.stderr.write("WARNING: cannot pinpoint dependency: "+dependency+", context: "+process.cwd()+"\n");
} else {
dependencies[dependency] = resolvedVersion;
}
}
}
}
/* Read the package.json configuration */
var packageObj = JSON.parse(fs.readFileSync('./package.json'));
/* Pinpoint all dependencies */
replaceDependencies(packageObj.dependencies);
if(process.argv[2] == "development") {
replaceDependencies(packageObj.devDependencies);
}
replaceDependencies(packageObj.optionalDependencies);
/* Write the fixed package.json file */
fs.writeFileSync("package.json", JSON.stringify(packageObj, null, 2));
'';
};
in
''
node ${pinpointDependenciesFromPackageJSON} ${if production then "production" else "development"}
${stdenv.lib.optionalString (dependencies != [])
''
if [ -d node_modules ]
then
cd node_modules
${stdenv.lib.concatMapStrings (dependency: pinpointDependenciesOfPackage dependency) dependencies}
cd ..
fi
''}
'';
# Recursively traverses all dependencies of a package and pinpoints all
# dependencies in the package.json file to the versions that are actually
# being used.
pinpointDependenciesOfPackage = { packageName, dependencies ? [], production ? true, ... }@args:
''
if [ -d "${packageName}" ]
then
cd "${packageName}"
${pinpointDependencies { inherit dependencies production; }}
cd ..
${stdenv.lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
fi
'';
# Extract the Node.js source code which is used to compile packages with
# native bindings
nodeSources = runCommand "node-sources" {} ''
tar --no-same-owner --no-same-permissions -xf ${nodejs.src}
mv node-* $out
'';
# Script that adds _integrity fields to all package.json files to prevent NPM from consulting the cache (that is empty)
addIntegrityFieldsScript = writeTextFile {
name = "addintegrityfields.js";
text = ''
var fs = require('fs');
var path = require('path');
function augmentDependencies(baseDir, dependencies) {
for(var dependencyName in dependencies) {
var dependency = dependencies[dependencyName];
// Open package.json and augment metadata fields
var packageJSONDir = path.join(baseDir, "node_modules", dependencyName);
var packageJSONPath = path.join(packageJSONDir, "package.json");
if(fs.existsSync(packageJSONPath)) { // Only augment packages that exist. Sometimes we may have production installs in which development dependencies can be ignored
console.log("Adding metadata fields to: "+packageJSONPath);
var packageObj = JSON.parse(fs.readFileSync(packageJSONPath));
if(dependency.integrity) {
packageObj["_integrity"] = dependency.integrity;
} else {
packageObj["_integrity"] = "sha1-000000000000000000000000000="; // When no _integrity string has been provided (e.g. by Git dependencies), add a dummy one. It does not seem to harm and it bypasses downloads.
}
if(dependency.resolved) {
packageObj["_resolved"] = dependency.resolved; // Adopt the resolved property if one has been provided
} else {
packageObj["_resolved"] = dependency.version; // Set the resolved version to the version identifier. This prevents NPM from cloning Git repositories.
}
if(dependency.from !== undefined) { // Adopt from property if one has been provided
packageObj["_from"] = dependency.from;
}
fs.writeFileSync(packageJSONPath, JSON.stringify(packageObj, null, 2));
}
// Augment transitive dependencies
if(dependency.dependencies !== undefined) {
augmentDependencies(packageJSONDir, dependency.dependencies);
}
}
}
if(fs.existsSync("./package-lock.json")) {
var packageLock = JSON.parse(fs.readFileSync("./package-lock.json"));
if(packageLock.lockfileVersion !== 1) {
process.stderr.write("Sorry, I only understand lock file version 1!\n");
process.exit(1);
}
if(packageLock.dependencies !== undefined) {
augmentDependencies(".", packageLock.dependencies);
}
}
'';
};
# Reconstructs a package-lock file from the node_modules/ folder structure and package.json files with dummy sha1 hashes
reconstructPackageLock = writeTextFile {
name = "addintegrityfields.js";
text = ''
var fs = require('fs');
var path = require('path');
var packageObj = JSON.parse(fs.readFileSync("package.json"));
var lockObj = {
name: packageObj.name,
version: packageObj.version,
lockfileVersion: 1,
requires: true,
dependencies: {}
};
function augmentPackageJSON(filePath, dependencies) {
var packageJSON = path.join(filePath, "package.json");
if(fs.existsSync(packageJSON)) {
var packageObj = JSON.parse(fs.readFileSync(packageJSON));
dependencies[packageObj.name] = {
version: packageObj.version,
integrity: "sha1-000000000000000000000000000=",
dependencies: {}
};
processDependencies(path.join(filePath, "node_modules"), dependencies[packageObj.name].dependencies);
}
}
function processDependencies(dir, dependencies) {
if(fs.existsSync(dir)) {
var files = fs.readdirSync(dir);
files.forEach(function(entry) {
var filePath = path.join(dir, entry);
var stats = fs.statSync(filePath);
if(stats.isDirectory()) {
if(entry.substr(0, 1) == "@") {
// When we encounter a namespace folder, augment all packages belonging to the scope
var pkgFiles = fs.readdirSync(filePath);
pkgFiles.forEach(function(entry) {
if(stats.isDirectory()) {
var pkgFilePath = path.join(filePath, entry);
augmentPackageJSON(pkgFilePath, dependencies);
}
});
} else {
augmentPackageJSON(filePath, dependencies);
}
}
});
}
}
processDependencies("node_modules", lockObj.dependencies);
fs.writeFileSync("package-lock.json", JSON.stringify(lockObj, null, 2));
'';
};
prepareAndInvokeNPM = {packageName, bypassCache, reconstructLock, npmFlags, production}:
let
forceOfflineFlag = if bypassCache then "--offline" else "--registry http://www.example.com";
in
''
# Pinpoint the versions of all dependencies to the ones that are actually being used
echo "pinpointing versions of dependencies..."
source $pinpointDependenciesScriptPath
# Patch the shebangs of the bundled modules to prevent them from
# calling executables outside the Nix store as much as possible
patchShebangs .
# Deploy the Node.js package by running npm install. Since the
# dependencies have been provided already by ourselves, it should not
# attempt to install them again, which is good, because we want to make
# it Nix's responsibility. If it needs to install any dependencies
# anyway (e.g. because the dependency parameters are
# incomplete/incorrect), it fails.
#
# The other responsibilities of NPM are kept -- version checks, build
# steps, postprocessing etc.
export HOME=$TMPDIR
cd "${packageName}"
runHook preRebuild
${stdenv.lib.optionalString bypassCache ''
${stdenv.lib.optionalString reconstructLock ''
if [ -f package-lock.json ]
then
echo "WARNING: Reconstruct lock option enabled, but a lock file already exists!"
echo "This will most likely result in version mismatches! We will remove the lock file and regenerate it!"
rm package-lock.json
else
echo "No package-lock.json file found, reconstructing..."
fi
node ${reconstructPackageLock}
''}
node ${addIntegrityFieldsScript}
''}
npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${stdenv.lib.optionalString production "--production"} rebuild
if [ "''${dontNpmInstall-}" != "1" ]
then
# NPM tries to download packages even when they already exist if npm-shrinkwrap is used.
rm -f npm-shrinkwrap.json
npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${stdenv.lib.optionalString production "--production"} install
fi
'';
# Builds and composes an NPM package including all its dependencies
buildNodePackage =
{ name
, packageName
, version
, dependencies ? []
, buildInputs ? []
, production ? true
, npmFlags ? ""
, dontNpmInstall ? false
, bypassCache ? false
, reconstructLock ? false
, preRebuild ? ""
, dontStrip ? true
, unpackPhase ? "true"
, buildPhase ? "true"
, ... }@args:
let
extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" "dontStrip" "dontNpmInstall" "preRebuild" "unpackPhase" "buildPhase" ];
in
stdenv.mkDerivation ({
name = "node_${name}-${version}";
buildInputs = [ tarWrapper python nodejs ]
++ stdenv.lib.optional (stdenv.isLinux) utillinux
++ stdenv.lib.optional (stdenv.isDarwin) libtool
++ buildInputs;
inherit nodejs;
inherit dontStrip; # Stripping may fail a build for some package deployments
inherit dontNpmInstall preRebuild unpackPhase buildPhase;
compositionScript = composePackage args;
pinpointDependenciesScript = pinpointDependenciesOfPackage args;
passAsFile = [ "compositionScript" "pinpointDependenciesScript" ];
installPhase = ''
# Create and enter a root node_modules/ folder
mkdir -p $out/lib/node_modules
cd $out/lib/node_modules
# Compose the package and all its dependencies
source $compositionScriptPath
${prepareAndInvokeNPM { inherit packageName bypassCache reconstructLock npmFlags production; }}
# Create symlink to the deployed executable folder, if applicable
if [ -d "$out/lib/node_modules/.bin" ]
then
ln -s $out/lib/node_modules/.bin $out/bin
fi
# Create symlinks to the deployed manual page folders, if applicable
if [ -d "$out/lib/node_modules/${packageName}/man" ]
then
mkdir -p $out/share
for dir in "$out/lib/node_modules/${packageName}/man/"*
do
mkdir -p $out/share/man/$(basename "$dir")
for page in "$dir"/*
do
ln -s $page $out/share/man/$(basename "$dir")
done
done
fi
# Run post install hook, if provided
runHook postInstall
'';
} // extraArgs);
# Builds a development shell
buildNodeShell =
{ name
, packageName
, version
, src
, dependencies ? []
, buildInputs ? []
, production ? true
, npmFlags ? ""
, dontNpmInstall ? false
, bypassCache ? false
, reconstructLock ? false
, dontStrip ? true
, unpackPhase ? "true"
, buildPhase ? "true"
, ... }@args:
let
extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" ];
nodeDependencies = stdenv.mkDerivation ({
name = "node-dependencies-${name}-${version}";
buildInputs = [ tarWrapper python nodejs ]
++ stdenv.lib.optional (stdenv.isLinux) utillinux
++ stdenv.lib.optional (stdenv.isDarwin) libtool
++ buildInputs;
inherit dontStrip; # Stripping may fail a build for some package deployments
inherit dontNpmInstall unpackPhase buildPhase;
includeScript = includeDependencies { inherit dependencies; };
pinpointDependenciesScript = pinpointDependenciesOfPackage args;
passAsFile = [ "includeScript" "pinpointDependenciesScript" ];
installPhase = ''
mkdir -p $out/${packageName}
cd $out/${packageName}
source $includeScriptPath
# Create fake package.json to make the npm commands work properly
cp ${src}/package.json .
chmod 644 package.json
${stdenv.lib.optionalString bypassCache ''
if [ -f ${src}/package-lock.json ]
then
cp ${src}/package-lock.json .
fi
''}
# Go to the parent folder to make sure that all packages are pinpointed
cd ..
${stdenv.lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
${prepareAndInvokeNPM { inherit packageName bypassCache reconstructLock npmFlags production; }}
# Expose the executables that were installed
cd ..
${stdenv.lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
mv ${packageName} lib
ln -s $out/lib/node_modules/.bin $out/bin
'';
} // extraArgs);
in
stdenv.mkDerivation {
name = "node-shell-${name}-${version}";
buildInputs = [ python nodejs ] ++ stdenv.lib.optional (stdenv.isLinux) utillinux ++ buildInputs;
buildCommand = ''
mkdir -p $out/bin
cat > $out/bin/shell <<EOF
#! ${stdenv.shell} -e
$shellHook
exec ${stdenv.shell}
EOF
chmod +x $out/bin/shell
'';
# Provide the dependencies in a development shell through the NODE_PATH environment variable
inherit nodeDependencies;
shellHook = stdenv.lib.optionalString (dependencies != []) ''
export NODE_PATH=${nodeDependencies}/lib/node_modules
export PATH="${nodeDependencies}/bin:$PATH"
'';
};
in
{
buildNodeSourceDist = stdenv.lib.makeOverridable buildNodeSourceDist;
buildNodePackage = stdenv.lib.makeOverridable buildNodePackage;
buildNodeShell = stdenv.lib.makeOverridable buildNodeShell;
}
# This file has been generated by node2nix 1.8.0. Do not edit!
{nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}:
let
sources = {
"@types/clone-2.1.0" = {
name = "_at_types_slash_clone";
packageName = "@types/clone";
version = "2.1.0";
src = fetchurl {
url = "https://registry.npmjs.org/@types/clone/-/clone-2.1.0.tgz";
sha512 = "d/aS/lPOnUSruPhgNtT8jW39fHRVTLQy9sodysP1kkG8EdAtdZu1vt8NJaYA8w/6Z9j8izkAsx1A/yJhcYR1CA==";
};
};
"@types/color-name-1.1.1" = {
name = "_at_types_slash_color-name";
packageName = "@types/color-name";
version = "1.1.1";
src = fetchurl {
url = "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz";
sha512 = "rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==";
};
};
"@types/fast-json-stable-stringify-2.0.0" = {
name = "_at_types_slash_fast-json-stable-stringify";
packageName = "@types/fast-json-stable-stringify";
version = "2.0.0";
src = fetchurl {
url = "https://registry.npmjs.org/@types/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz";
sha512 = "mky/O83TXmGY39P1H9YbUpjV6l6voRYlufqfFCvel8l1phuy8HRjdWc1rrPuN53ITBJlbyMSV6z3niOySO5pgQ==";
};
};
"abbrev-1.1.1" = {
name = "abbrev";
packageName = "abbrev";
version = "1.1.1";
src = fetchurl {
url = "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz";
sha512 = "nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==";
};
};
"ansi-regex-2.1.1" = {
name = "ansi-regex";
packageName = "ansi-regex";
version = "2.1.1";
src = fetchurl {
url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz";
sha1 = "c3b33ab5ee360d86e0e628f0468ae7ef27d654df";
};
};
"ansi-regex-5.0.0" = {
name = "ansi-regex";
packageName = "ansi-regex";
version = "5.0.0";
src = fetchurl {
url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz";
sha512 = "bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==";
};
};
"ansi-styles-4.2.1" = {
name = "ansi-styles";
packageName = "ansi-styles";
version = "4.2.1";
src = fetchurl {
url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz";
sha512 = "9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==";
};
};
"aproba-1.2.0" = {
name = "aproba";
packageName = "aproba";
version = "1.2.0";
src = fetchurl {
url = "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz";
sha512 = "Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==";
};
};
"are-we-there-yet-1.1.5" = {
name = "are-we-there-yet";
packageName = "are-we-there-yet";
version = "1.1.5";
src = fetchurl {
url = "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz";
sha512 = "5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==";
};
};
"array-flat-polyfill-1.0.1" = {
name = "array-flat-polyfill";
packageName = "array-flat-polyfill";
version = "1.0.1";
src = fetchurl {
url = "https://registry.npmjs.org/array-flat-polyfill/-/array-flat-polyfill-1.0.1.tgz";
sha512 = "hfJmKupmQN0lwi0xG6FQ5U8Rd97RnIERplymOv/qpq8AoNKPPAnxJadjFA23FNWm88wykh9HmpLJUUwUtNU/iw==";
};
};
"balanced-match-1.0.0" = {
name = "balanced-match";
packageName = "balanced-match";
version = "1.0.0";
src = fetchurl {
url = "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz";
sha1 = "89b4d199ab2bee49de164ea02b89ce462d71b767";
};
};
"brace-expansion-1.1.11" = {
name = "brace-expansion";
packageName = "brace-expansion";
version = "1.1.11";
src = fetchurl {
url = "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz";
sha512 = "iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==";
};
};
"camelcase-5.3.1" = {
name = "camelcase";
packageName = "camelcase";
version = "5.3.1";
src = fetchurl {
url = "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz";
sha512 = "L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==";
};
};
"canvas-2.6.1" = {
name = "canvas";
packageName = "canvas";
version = "2.6.1";
src = fetchurl {
url = "https://registry.npmjs.org/canvas/-/canvas-2.6.1.tgz";
sha512 = "S98rKsPcuhfTcYbtF53UIJhcbgIAK533d1kJKMwsMwAIFgfd58MOyxRud3kktlzWiEkFliaJtvyZCBtud/XVEA==";
};
};
"chownr-1.1.4" = {
name = "chownr";
packageName = "chownr";
version = "1.1.4";
src = fetchurl {
url = "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz";
sha512 = "jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==";
};
};
"cliui-6.0.0" = {
name = "cliui";
packageName = "cliui";
version = "6.0.0";
src = fetchurl {
url = "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz";
sha512 = "t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==";
};
};
"clone-2.1.2" = {
name = "clone";
packageName = "clone";
version = "2.1.2";
src = fetchurl {
url = "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz";
sha1 = "1b7f4b9f591f1e8f83670401600345a02887435f";
};
};
"code-point-at-1.1.0" = {
name = "code-point-at";
packageName = "code-point-at";
version = "1.1.0";
src = fetchurl {
url = "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz";
sha1 = "0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77";
};
};
"color-convert-2.0.1" = {
name = "color-convert";
packageName = "color-convert";
version = "2.0.1";
src = fetchurl {
url = "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz";
sha512 = "RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==";
};
};
"color-name-1.1.4" = {
name = "color-name";
packageName = "color-name";
version = "1.1.4";
src = fetchurl {
url = "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz";
sha512 = "dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==";
};
};
"commander-2.20.3" = {
name = "commander";
packageName = "commander";
version = "2.20.3";
src = fetchurl {
url = "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz";
sha512 = "GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==";
};
};
"concat-map-0.0.1" = {
name = "concat-map";
packageName = "concat-map";
version = "0.0.1";
src = fetchurl {
url = "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz";
sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b";
};
};
"console-control-strings-1.1.0" = {
name = "console-control-strings";
packageName = "console-control-strings";
version = "1.1.0";
src = fetchurl {
url = "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz";
sha1 = "3d7cf4464db6446ea644bf4b39507f9851008e8e";
};
};
"core-util-is-1.0.2" = {
name = "core-util-is";
packageName = "core-util-is";
version = "1.0.2";
src = fetchurl {
url = "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz";
sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7";
};
};
"d3-array-2.7.1" = {
name = "d3-array";
packageName = "d3-array";
version = "2.7.1";
src = fetchurl {
url = "https://registry.npmjs.org/d3-array/-/d3-array-2.7.1.tgz";
sha512 = "dYWhEvg1L2+osFsSqNHpXaPQNugLT4JfyvbLE046I2PDcgYGFYc0w24GSJwbmcjjZYOPC3PNP2S782bWUM967Q==";
};
};
"d3-color-2.0.0" = {
name = "d3-color";
packageName = "d3-color";
version = "2.0.0";
src = fetchurl {
url = "https://registry.npmjs.org/d3-color/-/d3-color-2.0.0.tgz";
sha512 = "SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ==";
};
};
"d3-delaunay-5.3.0" = {
name = "d3-delaunay";
packageName = "d3-delaunay";
version = "5.3.0";
src = fetchurl {
url = "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-5.3.0.tgz";
sha512 = "amALSrOllWVLaHTnDLHwMIiz0d1bBu9gZXd1FiLfXf8sHcX9jrcj81TVZOqD4UX7MgBZZ07c8GxzEgBpJqc74w==";
};
};
"d3-dispatch-2.0.0" = {
name = "d3-dispatch";
packageName = "d3-dispatch";
version = "2.0.0";
src = fetchurl {
url = "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-2.0.0.tgz";
sha512 = "S/m2VsXI7gAti2pBoLClFFTMOO1HTtT0j99AuXLoGFKO6deHDdnv6ZGTxSTTUTgO1zVcv82fCOtDjYK4EECmWA==";
};
};
"d3-dsv-2.0.0" = {
name = "d3-dsv";
packageName = "d3-dsv";
version = "2.0.0";
src = fetchurl {
url = "https://registry.npmjs.org/d3-dsv/-/d3-dsv-2.0.0.tgz";
sha512 = "E+Pn8UJYx9mViuIUkoc93gJGGYut6mSDKy2+XaPwccwkRGlR+LO97L2VCCRjQivTwLHkSnAJG7yo00BWY6QM+w==";
};
};
"d3-force-2.1.1" = {
name = "d3-force";
packageName = "d3-force";
version = "2.1.1";
src = fetchurl {
url = "https://registry.npmjs.org/d3-force/-/d3-force-2.1.1.tgz";
sha512 = "nAuHEzBqMvpFVMf9OX75d00OxvOXdxY+xECIXjW6Gv8BRrXu6gAWbv/9XKrvfJ5i5DCokDW7RYE50LRoK092ew==";
};
};
"d3-format-2.0.0" = {
name = "d3-format";
packageName = "d3-format";
version = "2.0.0";
src = fetchurl {
url = "https://registry.npmjs.org/d3-format/-/d3-format-2.0.0.tgz";
sha512 = "Ab3S6XuE/Q+flY96HXT0jOXcM4EAClYFnRGY5zsjRGNy6qCYrQsMffs7cV5Q9xejb35zxW5hf/guKw34kvIKsA==";
};
};
"d3-geo-2.0.1" = {
name = "d3-geo";
packageName = "d3-geo";
version = "2.0.1";
src = fetchurl {
url = "https://registry.npmjs.org/d3-geo/-/d3-geo-2.0.1.tgz";
sha512 = "M6yzGbFRfxzNrVhxDJXzJqSLQ90q1cCyb3EWFZ1LF4eWOBYxFypw7I/NFVBNXKNqxv1bqLathhYvdJ6DC+th3A==";
};
};
"d3-geo-projection-3.0.0" = {
name = "d3-geo-projection";
packageName = "d3-geo-projection";
version = "3.0.0";
src = fetchurl {
url = "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-3.0.0.tgz";
sha512 = "1JE+filVbkEX2bT25dJdQ05iA4QHvUwev6o0nIQHOSrNlHCAKfVss/U10vEM3pA4j5v7uQoFdQ4KLbx9BlEbWA==";
};
};
"d3-hierarchy-2.0.0" = {
name = "d3-hierarchy";
packageName = "d3-hierarchy";
version = "2.0.0";
src = fetchurl {
url = "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-2.0.0.tgz";
sha512 = "SwIdqM3HxQX2214EG9GTjgmCc/mbSx4mQBn+DuEETubhOw6/U3fmnji4uCVrmzOydMHSO1nZle5gh6HB/wdOzw==";
};
};
"d3-interpolate-2.0.1" = {
name = "d3-interpolate";
packageName = "d3-interpolate";
version = "2.0.1";
src = fetchurl {
url = "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-2.0.1.tgz";
sha512 = "c5UhwwTs/yybcmTpAVqwSFl6vrQ8JZJoT5F7xNFK9pymv5C0Ymcc9/LIJHtYIggg/yS9YHw8i8O8tgb9pupjeQ==";
};
};
"d3-path-2.0.0" = {
name = "d3-path";
packageName = "d3-path";
version = "2.0.0";
src = fetchurl {
url = "https://registry.npmjs.org/d3-path/-/d3-path-2.0.0.tgz";
sha512 = "ZwZQxKhBnv9yHaiWd6ZU4x5BtCQ7pXszEV9CU6kRgwIQVQGLMv1oiL4M+MK/n79sYzsj+gcgpPQSctJUsLN7fA==";
};
};
"d3-quadtree-2.0.0" = {
name = "d3-quadtree";
packageName = "d3-quadtree";
version = "2.0.0";
src = fetchurl {
url = "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-2.0.0.tgz";
sha512 = "b0Ed2t1UUalJpc3qXzKi+cPGxeXRr4KU9YSlocN74aTzp6R/Ud43t79yLLqxHRWZfsvWXmbDWPpoENK1K539xw==";
};
};
"d3-scale-3.2.2" = {
name = "d3-scale";
packageName = "d3-scale";
version = "3.2.2";
src = fetchurl {
url = "https://registry.npmjs.org/d3-scale/-/d3-scale-3.2.2.tgz";
sha512 = "3Mvi5HfqPFq0nlyeFlkskGjeqrR/790pINMHc4RXKJ2E6FraTd3juaRIRZZHyMAbi3LjAMW0EH4FB1WgoGyeXg==";
};
};
"d3-shape-2.0.0" = {
name = "d3-shape";
packageName = "d3-shape";
version = "2.0.0";
src = fetchurl {
url = "https://registry.npmjs.org/d3-shape/-/d3-shape-2.0.0.tgz";
sha512 = "djpGlA779ua+rImicYyyjnOjeubyhql1Jyn1HK0bTyawuH76UQRWXd+pftr67H6Fa8hSwetkgb/0id3agKWykw==";
};
};
"d3-time-2.0.0" = {
name = "d3-time";
packageName = "d3-time";
version = "2.0.0";
src = fetchurl {
url = "https://registry.npmjs.org/d3-time/-/d3-time-2.0.0.tgz";
sha512 = "2mvhstTFcMvwStWd9Tj3e6CEqtOivtD8AUiHT8ido/xmzrI9ijrUUihZ6nHuf/vsScRBonagOdj0Vv+SEL5G3Q==";
};
};
"d3-time-format-3.0.0" = {
name = "d3-time-format";
packageName = "d3-time-format";
version = "3.0.0";
src = fetchurl {
url = "https://registry.npmjs.org/d3-time-format/-/d3-time-format-3.0.0.tgz";
sha512 = "UXJh6EKsHBTjopVqZBhFysQcoXSv/5yLONZvkQ5Kk3qbwiUYkdX17Xa1PT6U1ZWXGGfB1ey5L8dKMlFq2DO0Ag==";
};
};
"d3-timer-2.0.0" = {
name = "d3-timer";
packageName = "d3-timer";
version = "2.0.0";
src = fetchurl {
url = "https://registry.npmjs.org/d3-timer/-/d3-timer-2.0.0.tgz";
sha512 = "TO4VLh0/420Y/9dO3+f9abDEFYeCUr2WZRlxJvbp4HPTQcSylXNiL6yZa9FIUvV1yRiFufl1bszTCLDqv9PWNA==";
};
};
"debug-3.2.6" = {
name = "debug";
packageName = "debug";
version = "3.2.6";
src = fetchurl {
url = "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz";
sha512 = "mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==";
};
};
"decamelize-1.2.0" = {
name = "decamelize";
packageName = "decamelize";
version = "1.2.0";
src = fetchurl {
url = "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz";
sha1 = "f6534d15148269b20352e7bee26f501f9a191290";
};
};
"decompress-response-4.2.1" = {
name = "decompress-response";
packageName = "decompress-response";
version = "4.2.1";
src = fetchurl {
url = "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz";
sha512 = "jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==";
};
};
"deep-extend-0.6.0" = {
name = "deep-extend";
packageName = "deep-extend";
version = "0.6.0";
src = fetchurl {
url = "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz";
sha512 = "LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==";
};
};
"delaunator-4.0.1" = {
name = "delaunator";
packageName = "delaunator";
version = "4.0.1";
src = fetchurl {
url = "https://registry.npmjs.org/delaunator/-/delaunator-4.0.1.tgz";
sha512 = "WNPWi1IRKZfCt/qIDMfERkDp93+iZEmOxN2yy4Jg+Xhv8SLk2UTqqbe1sfiipn0and9QrE914/ihdx82Y/Giag==";
};
};
"delegates-1.0.0" = {
name = "delegates";
packageName = "delegates";
version = "1.0.0";
src = fetchurl {
url = "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz";
sha1 = "84c6e159b81904fdca59a0ef44cd870d31250f9a";
};
};
"detect-libc-1.0.3" = {
name = "detect-libc";
packageName = "detect-libc";
version = "1.0.3";
src = fetchurl {
url = "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz";
sha1 = "fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b";
};
};
"emoji-regex-8.0.0" = {
name = "emoji-regex";
packageName = "emoji-regex";
version = "8.0.0";
src = fetchurl {
url = "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz";
sha512 = "MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==";
};
};
"fast-deep-equal-3.1.3" = {
name = "fast-deep-equal";
packageName = "fast-deep-equal";
version = "3.1.3";
src = fetchurl {
url = "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz";
sha512 = "f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==";
};
};
"fast-json-stable-stringify-2.1.0" = {
name = "fast-json-stable-stringify";
packageName = "fast-json-stable-stringify";
version = "2.1.0";
src = fetchurl {
url = "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz";
sha512 = "lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==";
};
};
"find-up-4.1.0" = {
name = "find-up";
packageName = "find-up";
version = "4.1.0";
src = fetchurl {
url = "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz";
sha512 = "PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==";
};
};
"fs-minipass-1.2.7" = {
name = "fs-minipass";
packageName = "fs-minipass";
version = "1.2.7";
src = fetchurl {
url = "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz";
sha512 = "GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==";
};
};
"fs.realpath-1.0.0" = {
name = "fs.realpath";
packageName = "fs.realpath";
version = "1.0.0";
src = fetchurl {
url = "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz";
sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f";
};
};
"gauge-2.7.4" = {
name = "gauge";
packageName = "gauge";
version = "2.7.4";
src = fetchurl {
url = "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz";
sha1 = "2c03405c7538c39d7eb37b317022e325fb018bf7";
};
};
"get-caller-file-2.0.5" = {
name = "get-caller-file";
packageName = "get-caller-file";
version = "2.0.5";
src = fetchurl {
url = "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz";
sha512 = "DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==";
};
};
"glob-7.1.6" = {
name = "glob";
packageName = "glob";
version = "7.1.6";
src = fetchurl {
url = "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz";
sha512 = "LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==";
};
};
"has-unicode-2.0.1" = {
name = "has-unicode";
packageName = "has-unicode";
version = "2.0.1";
src = fetchurl {
url = "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz";
sha1 = "e0e6fe6a28cf51138855e086d1691e771de2a8b9";
};
};
"iconv-lite-0.4.24" = {
name = "iconv-lite";
packageName = "iconv-lite";
version = "0.4.24";
src = fetchurl {
url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz";
sha512 = "v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==";
};
};
"ignore-walk-3.0.3" = {
name = "ignore-walk";
packageName = "ignore-walk";
version = "3.0.3";
src = fetchurl {
url = "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz";
sha512 = "m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==";
};
};
"inflight-1.0.6" = {
name = "inflight";
packageName = "inflight";
version = "1.0.6";
src = fetchurl {
url = "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz";
sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9";
};
};
"inherits-2.0.4" = {
name = "inherits";
packageName = "inherits";
version = "2.0.4";
src = fetchurl {
url = "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz";
sha512 = "k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==";
};
};
"ini-1.3.5" = {
name = "ini";
packageName = "ini";
version = "1.3.5";
src = fetchurl {
url = "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz";
sha512 = "RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==";
};
};
"is-fullwidth-code-point-1.0.0" = {
name = "is-fullwidth-code-point";
packageName = "is-fullwidth-code-point";
version = "1.0.0";
src = fetchurl {
url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz";
sha1 = "ef9e31386f031a7f0d643af82fde50c457ef00cb";
};
};
"is-fullwidth-code-point-3.0.0" = {
name = "is-fullwidth-code-point";
packageName = "is-fullwidth-code-point";
version = "3.0.0";
src = fetchurl {
url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz";
sha512 = "zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==";
};
};
"isarray-1.0.0" = {
name = "isarray";
packageName = "isarray";
version = "1.0.0";
src = fetchurl {
url = "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz";
sha1 = "bb935d48582cba168c06834957a54a3e07124f11";
};
};
"json-stringify-pretty-compact-2.0.0" = {
name = "json-stringify-pretty-compact";
packageName = "json-stringify-pretty-compact";
version = "2.0.0";
src = fetchurl {
url = "https://registry.npmjs.org/json-stringify-pretty-compact/-/json-stringify-pretty-compact-2.0.0.tgz";
sha512 = "WRitRfs6BGq4q8gTgOy4ek7iPFXjbra0H3PmDLKm2xnZ+Gh1HUhiKGgCZkSPNULlP7mvfu6FV/mOLhCarspADQ==";
};
};
"locate-path-5.0.0" = {
name = "locate-path";
packageName = "locate-path";
version = "5.0.0";
src = fetchurl {
url = "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz";
sha512 = "t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==";
};
};
"mimic-response-2.1.0" = {
name = "mimic-response";
packageName = "mimic-response";
version = "2.1.0";
src = fetchurl {
url = "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz";
sha512 = "wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==";
};
};
"minimatch-3.0.4" = {
name = "minimatch";
packageName = "minimatch";
version = "3.0.4";
src = fetchurl {
url = "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz";
sha512 = "yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==";
};
};
"minimist-1.2.5" = {
name = "minimist";
packageName = "minimist";
version = "1.2.5";
src = fetchurl {
url = "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz";
sha512 = "FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==";
};
};
"minipass-2.9.0" = {
name = "minipass";
packageName = "minipass";
version = "2.9.0";
src = fetchurl {
url = "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz";
sha512 = "wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==";
};
};
"minizlib-1.3.3" = {
name = "minizlib";
packageName = "minizlib";
version = "1.3.3";
src = fetchurl {
url = "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz";
sha512 = "6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==";
};
};
"mkdirp-0.5.5" = {
name = "mkdirp";
packageName = "mkdirp";
version = "0.5.5";
src = fetchurl {
url = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz";
sha512 = "NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==";
};
};
"ms-2.1.2" = {
name = "ms";
packageName = "ms";
version = "2.1.2";
src = fetchurl {
url = "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz";
sha512 = "sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==";
};
};
"nan-2.14.1" = {
name = "nan";
packageName = "nan";
version = "2.14.1";
src = fetchurl {
url = "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz";
sha512 = "isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==";
};
};
"needle-2.5.2" = {
name = "needle";
packageName = "needle";
version = "2.5.2";
src = fetchurl {
url = "https://registry.npmjs.org/needle/-/needle-2.5.2.tgz";
sha512 = "LbRIwS9BfkPvNwNHlsA41Q29kL2L/6VaOJ0qisM5lLWsTV3nP15abO5ITL6L81zqFhzjRKDAYjpcBcwM0AVvLQ==";
};
};
"node-fetch-2.6.1" = {
name = "node-fetch";
packageName = "node-fetch";
version = "2.6.1";
src = fetchurl {
url = "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz";
sha512 = "V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==";
};
};
"node-pre-gyp-0.11.0" = {
name = "node-pre-gyp";
packageName = "node-pre-gyp";
version = "0.11.0";
src = fetchurl {
url = "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz";
sha512 = "TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q==";
};
};
"nopt-4.0.3" = {
name = "nopt";
packageName = "nopt";
version = "4.0.3";
src = fetchurl {
url = "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz";
sha512 = "CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==";
};
};
"npm-bundled-1.1.1" = {
name = "npm-bundled";
packageName = "npm-bundled";
version = "1.1.1";
src = fetchurl {
url = "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz";
sha512 = "gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==";
};
};
"npm-normalize-package-bin-1.0.1" = {
name = "npm-normalize-package-bin";
packageName = "npm-normalize-package-bin";
version = "1.0.1";
src = fetchurl {
url = "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz";
sha512 = "EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==";
};
};
"npm-packlist-1.4.8" = {
name = "npm-packlist";
packageName = "npm-packlist";
version = "1.4.8";
src = fetchurl {
url = "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz";
sha512 = "5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==";
};
};
"npmlog-4.1.2" = {
name = "npmlog";
packageName = "npmlog";
version = "4.1.2";
src = fetchurl {
url = "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz";
sha512 = "2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==";
};
};
"number-is-nan-1.0.1" = {
name = "number-is-nan";
packageName = "number-is-nan";
version = "1.0.1";
src = fetchurl {
url = "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz";
sha1 = "097b602b53422a522c1afb8790318336941a011d";
};
};
"object-assign-4.1.1" = {
name = "object-assign";
packageName = "object-assign";
version = "4.1.1";
src = fetchurl {
url = "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz";
sha1 = "2109adc7965887cfc05cbbd442cac8bfbb360863";
};
};
"once-1.4.0" = {
name = "once";
packageName = "once";
version = "1.4.0";
src = fetchurl {
url = "https://registry.npmjs.org/once/-/once-1.4.0.tgz";
sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1";
};
};
"os-homedir-1.0.2" = {
name = "os-homedir";
packageName = "os-homedir";
version = "1.0.2";
src = fetchurl {
url = "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz";
sha1 = "ffbc4988336e0e833de0c168c7ef152121aa7fb3";
};
};
"os-tmpdir-1.0.2" = {
name = "os-tmpdir";
packageName = "os-tmpdir";
version = "1.0.2";
src = fetchurl {
url = "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz";
sha1 = "bbe67406c79aa85c5cfec766fe5734555dfa1274";
};
};
"osenv-0.1.5" = {
name = "osenv";
packageName = "osenv";
version = "0.1.5";
src = fetchurl {
url = "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz";
sha512 = "0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==";
};
};
"p-limit-2.3.0" = {
name = "p-limit";
packageName = "p-limit";
version = "2.3.0";
src = fetchurl {
url = "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz";
sha512 = "//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==";
};
};
"p-locate-4.1.0" = {
name = "p-locate";
packageName = "p-locate";
version = "4.1.0";
src = fetchurl {
url = "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz";
sha512 = "R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==";
};
};
"p-try-2.2.0" = {
name = "p-try";
packageName = "p-try";
version = "2.2.0";
src = fetchurl {
url = "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz";
sha512 = "R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==";
};
};
"path-exists-4.0.0" = {
name = "path-exists";
packageName = "path-exists";
version = "4.0.0";
src = fetchurl {
url = "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz";
sha512 = "ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==";
};
};
"path-is-absolute-1.0.1" = {
name = "path-is-absolute";
packageName = "path-is-absolute";
version = "1.0.1";
src = fetchurl {
url = "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz";
sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f";
};
};
"path-parse-1.0.6" = {
name = "path-parse";
packageName = "path-parse";
version = "1.0.6";
src = fetchurl {
url = "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz";
sha512 = "GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==";
};
};
"process-nextick-args-2.0.1" = {
name = "process-nextick-args";
packageName = "process-nextick-args";
version = "2.0.1";
src = fetchurl {
url = "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz";
sha512 = "3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==";
};
};
"rc-1.2.8" = {
name = "rc";
packageName = "rc";
version = "1.2.8";
src = fetchurl {
url = "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz";
sha512 = "y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==";
};
};
"readable-stream-2.3.7" = {
name = "readable-stream";
packageName = "readable-stream";
version = "2.3.7";
src = fetchurl {
url = "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz";
sha512 = "Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==";
};
};
"require-directory-2.1.1" = {
name = "require-directory";
packageName = "require-directory";
version = "2.1.1";
src = fetchurl {
url = "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz";
sha1 = "8c64ad5fd30dab1c976e2344ffe7f792a6a6df42";
};
};
"require-main-filename-2.0.0" = {
name = "require-main-filename";
packageName = "require-main-filename";
version = "2.0.0";
src = fetchurl {
url = "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz";
sha512 = "NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==";
};
};
"resolve-1.17.0" = {
name = "resolve";
packageName = "resolve";
version = "1.17.0";
src = fetchurl {
url = "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz";
sha512 = "ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==";
};
};
"rimraf-2.7.1" = {
name = "rimraf";
packageName = "rimraf";
version = "2.7.1";
src = fetchurl {
url = "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz";
sha512 = "uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==";
};
};
"rw-1.3.3" = {
name = "rw";
packageName = "rw";
version = "1.3.3";
src = fetchurl {
url = "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz";
sha1 = "3f862dfa91ab766b14885ef4d01124bfda074fb4";
};
};
"safe-buffer-5.1.2" = {
name = "safe-buffer";
packageName = "safe-buffer";
version = "5.1.2";
src = fetchurl {
url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz";
sha512 = "Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==";
};
};
"safer-buffer-2.1.2" = {
name = "safer-buffer";
packageName = "safer-buffer";
version = "2.1.2";
src = fetchurl {
url = "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz";
sha512 = "YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==";
};
};
"sax-1.2.4" = {
name = "sax";
packageName = "sax";
version = "1.2.4";
src = fetchurl {
url = "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz";
sha512 = "NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==";
};
};
"semver-5.7.1" = {
name = "semver";
packageName = "semver";
version = "5.7.1";
src = fetchurl {
url = "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz";
sha512 = "sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==";
};
};
"set-blocking-2.0.0" = {
name = "set-blocking";
packageName = "set-blocking";
version = "2.0.0";
src = fetchurl {
url = "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz";
sha1 = "045f9782d011ae9a6803ddd382b24392b3d890f7";
};
};
"signal-exit-3.0.3" = {
name = "signal-exit";
packageName = "signal-exit";
version = "3.0.3";
src = fetchurl {
url = "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz";
sha512 = "VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==";
};
};
"simple-concat-1.0.1" = {
name = "simple-concat";
packageName = "simple-concat";
version = "1.0.1";
src = fetchurl {
url = "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz";
sha512 = "cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==";
};
};
"simple-get-3.1.0" = {
name = "simple-get";
packageName = "simple-get";
version = "3.1.0";
src = fetchurl {
url = "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz";
sha512 = "bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==";
};
};
"string-width-1.0.2" = {
name = "string-width";
packageName = "string-width";
version = "1.0.2";
src = fetchurl {
url = "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz";
sha1 = "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3";
};
};
"string-width-4.2.0" = {
name = "string-width";
packageName = "string-width";
version = "4.2.0";
src = fetchurl {
url = "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz";
sha512 = "zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==";
};
};
"string_decoder-1.1.1" = {
name = "string_decoder";
packageName = "string_decoder";
version = "1.1.1";
src = fetchurl {
url = "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz";
sha512 = "n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==";
};
};
"strip-ansi-3.0.1" = {
name = "strip-ansi";
packageName = "strip-ansi";
version = "3.0.1";
src = fetchurl {
url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz";
sha1 = "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf";
};
};
"strip-ansi-6.0.0" = {
name = "strip-ansi";
packageName = "strip-ansi";
version = "6.0.0";
src = fetchurl {
url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz";
sha512 = "AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==";
};
};
"strip-json-comments-2.0.1" = {
name = "strip-json-comments";
packageName = "strip-json-comments";
version = "2.0.1";
src = fetchurl {
url = "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz";
sha1 = "3c531942e908c2697c0ec344858c286c7ca0a60a";
};
};
"tar-4.4.13" = {
name = "tar";
packageName = "tar";
version = "4.4.13";
src = fetchurl {
url = "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz";
sha512 = "w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==";
};
};
"topojson-client-3.1.0" = {
name = "topojson-client";
packageName = "topojson-client";
version = "3.1.0";
src = fetchurl {
url = "https://registry.npmjs.org/topojson-client/-/topojson-client-3.1.0.tgz";
sha512 = "605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==";
};
};
"tslib-2.0.1" = {
name = "tslib";
packageName = "tslib";
version = "2.0.1";
src = fetchurl {
url = "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz";
sha512 = "SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==";
};
};
"util-deprecate-1.0.2" = {
name = "util-deprecate";
packageName = "util-deprecate";
version = "1.0.2";
src = fetchurl {
url = "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz";
sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf";
};
};
"vega-5.15.0" = {
name = "vega";
packageName = "vega";
version = "5.15.0";
src = fetchurl {
url = "https://registry.npmjs.org/vega/-/vega-5.15.0.tgz";
sha512 = "uygUtkZJm3/HNvNGLQSugZld4qvaiOMtH34tOGuS/MSGj7MaP0CLoFrthlas30lyMPQ42UfzX8tk5X+I91dFKQ==";
};
};
"vega-canvas-1.2.4" = {
name = "vega-canvas";
packageName = "vega-canvas";
version = "1.2.4";
src = fetchurl {
url = "https://registry.npmjs.org/vega-canvas/-/vega-canvas-1.2.4.tgz";
sha512 = "BI44AIAa13xSindGXMQm0FAhI2zx3F3conFmXhey63hqGsfvH/19nv+A0PEvSVa/lK4iPneMTpw583iffDiq3w==";
};
};
"vega-crossfilter-4.0.4" = {
name = "vega-crossfilter";
packageName = "vega-crossfilter";
version = "4.0.4";
src = fetchurl {
url = "https://registry.npmjs.org/vega-crossfilter/-/vega-crossfilter-4.0.4.tgz";
sha512 = "mXKhHxkgxJPwtTrMgK3Uw1bStfD+rmfKXsUvdIh1ZwmpheGOQM2Uflo3tQNh9j9wqu8xHywCcddohKpSRBt8HQ==";
};
};
"vega-dataflow-5.7.2" = {
name = "vega-dataflow";
packageName = "vega-dataflow";
version = "5.7.2";
src = fetchurl {
url = "https://registry.npmjs.org/vega-dataflow/-/vega-dataflow-5.7.2.tgz";
sha512 = "O6CEchGAQtEhDKfI3UHWVUbUcXSMsq5JrefvvB2hldx3XbHkEQioXtgAnK6OosyKpB1dJlVvFRMR40pwdNO1hw==";
};
};
"vega-encode-4.8.2" = {
name = "vega-encode";
packageName = "vega-encode";
version = "4.8.2";
src = fetchurl {
url = "https://registry.npmjs.org/vega-encode/-/vega-encode-4.8.2.tgz";
sha512 = "+PEimVqZysvLEScU/EJrpElBrNMcDHeVGmMhLkswxfVrFix4ialV3/iGB9Wcr5g1pOQcsBdNn7qUy2bjvAvIvA==";
};
};
"vega-event-selector-2.0.5" = {
name = "vega-event-selector";
packageName = "vega-event-selector";
version = "2.0.5";
src = fetchurl {
url = "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-2.0.5.tgz";
sha512 = "bRm02Fnd+YrZDni0yr5y9Co1Z1zrjd7hkwY+gi/Y7zDFOxnESGrbYtpHvWT8fL9AqmYU3wDpsJZGyP4htRUNAQ==";
};
};
"vega-expression-2.7.0" = {
name = "vega-expression";
packageName = "vega-expression";
version = "2.7.0";
src = fetchurl {
url = "https://registry.npmjs.org/vega-expression/-/vega-expression-2.7.0.tgz";
sha512 = "fMnHtcFfVAxuwjsKGh0qqP8OJNVABGIg0aSp33Jxh1D86LwDwaRe+EtwF1fv8YKD2AEiBl4UObC68QMT56MekQ==";
};
};
"vega-force-4.0.6" = {
name = "vega-force";
packageName = "vega-force";
version = "4.0.6";
src = fetchurl {
url = "https://registry.npmjs.org/vega-force/-/vega-force-4.0.6.tgz";
sha512 = "acB5DshAhSbaxKAk/DgzUK4ondTAZbD3tRY4Cy0NmZL+6QqM3RRePM1PQBAFAQMp9kXT9X/fh8tOlMKx/rwQnQ==";
};
};
"vega-format-1.0.3" = {
name = "vega-format";
packageName = "vega-format";
version = "1.0.3";
src = fetchurl {
url = "https://registry.npmjs.org/vega-format/-/vega-format-1.0.3.tgz";
sha512 = "hZpYZM/KRNnd+qmJ5oCGHvOzlxga9d2anqw+ji/jbA41piMzsyAa2f8CAoHpXgzsZNkGp+BL2Oya+251uZOjQw==";
};
};
"vega-functions-5.7.3" = {
name = "vega-functions";
packageName = "vega-functions";
version = "5.7.3";
src = fetchurl {
url = "https://registry.npmjs.org/vega-functions/-/vega-functions-5.7.3.tgz";
sha512 = "9X9bKhKZvglfRaFIDg2yRyBzayabsQHRAyVk0bJBU04mgfj6myKRhO6JF4av+LgNHyJFsOPeJxkiOYZ3x6Z6rg==";
};
};
"vega-geo-4.3.6" = {
name = "vega-geo";
packageName = "vega-geo";
version = "4.3.6";
src = fetchurl {
url = "https://registry.npmjs.org/vega-geo/-/vega-geo-4.3.6.tgz";
sha512 = "miRnxnf3KSgmHMR0H8y3NSg58BnijVtxg508PDrw3T4ARRYxGf5yglcEYFcc06iRYTV3B43pOg0Se5dLowmTEw==";
};
};
"vega-hierarchy-4.0.8" = {
name = "vega-hierarchy";
packageName = "vega-hierarchy";
version = "4.0.8";
src = fetchurl {
url = "https://registry.npmjs.org/vega-hierarchy/-/vega-hierarchy-4.0.8.tgz";
sha512 = "8O2asfoAEaW8Hfu/06m6t5BErrNo0OJzU8XyKon8aeGY2YbQMKT7fiEzUrzDC39Zb2suThuzBOjpcwiu7rh/Hg==";
};
};
"vega-loader-4.3.2" = {
name = "vega-loader";
packageName = "vega-loader";
version = "4.3.2";
src = fetchurl {
url = "https://registry.npmjs.org/vega-loader/-/vega-loader-4.3.2.tgz";
sha512 = "g+hd4xCxGP4zlSdvvprDrHTulUN1xB1k63ooqtCzhps3fji7N8DQ3RWPTJZLyuwYpjxim3BYrp4aJk3OHElcaA==";
};
};
"vega-parser-6.0.4" = {
name = "vega-parser";
packageName = "vega-parser";
version = "6.0.4";
src = fetchurl {
url = "https://registry.npmjs.org/vega-parser/-/vega-parser-6.0.4.tgz";
sha512 = "AxFvM0JgS/hyqlIdcN1B74PRO5cpU9SRRh8wBfirHRkFWPxqfP2EeFmQxisGV5wSqAUVTqqqk0suWQuU3YHPcQ==";
};
};
"vega-projection-1.4.4" = {
name = "vega-projection";
packageName = "vega-projection";
version = "1.4.4";
src = fetchurl {
url = "https://registry.npmjs.org/vega-projection/-/vega-projection-1.4.4.tgz";
sha512 = "v1Tx/8khpOmzpscXkxq2+MGjs7jG3A8yFfQJ8kTh8eIko0f5V+QLujTfEvdllYXw6f3DE6K2fYInb71B0GAjIw==";
};
};
"vega-regression-1.0.8" = {
name = "vega-regression";
packageName = "vega-regression";
version = "1.0.8";
src = fetchurl {
url = "https://registry.npmjs.org/vega-regression/-/vega-regression-1.0.8.tgz";
sha512 = "NdLoDctaxtCKP4udGg2SmplyK8098L8EAFEy/TEECx0wbRcBzPs2e/U4uCShzoPHILFULdOqs+sq/xwhp9X3lA==";
};
};
"vega-runtime-6.1.2" = {
name = "vega-runtime";
packageName = "vega-runtime";
version = "6.1.2";
src = fetchurl {
url = "https://registry.npmjs.org/vega-runtime/-/vega-runtime-6.1.2.tgz";
sha512 = "baaMe8PKynJlJfpcZR4jHDSbTM9TYzU4x/XLphQ/6lZnF9WMH+gGOVlVRWZCLH4K0sgCxBMKC/THOpRFkO6jJA==";
};
};
"vega-scale-7.1.0" = {
name = "vega-scale";
packageName = "vega-scale";
version = "7.1.0";
src = fetchurl {
url = "https://registry.npmjs.org/vega-scale/-/vega-scale-7.1.0.tgz";
sha512 = "8QgHarFLgnX60DL9h91GNSzvXtBVUfCx57+XKUlCROfHti4KASTRMicBgfJ3lwJBACNefpEW+9ut+1iuIHONwQ==";
};
};
"vega-scenegraph-4.9.1" = {
name = "vega-scenegraph";
packageName = "vega-scenegraph";
version = "4.9.1";
src = fetchurl {
url = "https://registry.npmjs.org/vega-scenegraph/-/vega-scenegraph-4.9.1.tgz";
sha512 = "4OyFlMXwecM7C18zrXeBgckzLaFncLdnj1ExcF3dFfsgPLBSRW2x+eCRQZmD12UHoLFGuehB5s3YNfoQtCP5YA==";
};
};
"vega-selections-5.1.3" = {
name = "vega-selections";
packageName = "vega-selections";
version = "5.1.3";
src = fetchurl {
url = "https://registry.npmjs.org/vega-selections/-/vega-selections-5.1.3.tgz";
sha512 = "fy+EBPA3pA3i4IeQ2EUHQI83RZMCS4ZoXu1RI1Oa/CFLu8iXxwraRaD9sUH93GPj4pU22g4ywjbHzsrZ7x4ONg==";
};
};
"vega-statistics-1.7.8" = {
name = "vega-statistics";
packageName = "vega-statistics";
version = "1.7.8";
src = fetchurl {
url = "https://registry.npmjs.org/vega-statistics/-/vega-statistics-1.7.8.tgz";
sha512 = "JkxS7hkFLOMBgEOfITQ1kisLGuWtJ0gAhxQ1OmuIx5Un9yyFY3+hk8HSgeZHwIPktsV+2Bx5aPUHES85YzBD/Q==";
};
};
"vega-time-2.0.3" = {
name = "vega-time";
packageName = "vega-time";
version = "2.0.3";
src = fetchurl {
url = "https://registry.npmjs.org/vega-time/-/vega-time-2.0.3.tgz";
sha512 = "LXsB5Ej56jcDRvoWHp1YegNuZSD+cFWGBEWobRXbigmRNDfa4HGmzUon46G+KBj+VeRRGeu5Zq4LSG2goWmIYw==";
};
};
"vega-transforms-4.9.2" = {
name = "vega-transforms";
packageName = "vega-transforms";
version = "4.9.2";
src = fetchurl {
url = "https://registry.npmjs.org/vega-transforms/-/vega-transforms-4.9.2.tgz";
sha512 = "vDI8jJOlnswSuEf6BekI04jWNttgOLzDRONaWZGTH8X5yI3GgkB4Ts45U0LayRExQSq7gxt95k/02jXGGzOTpA==";
};
};
"vega-typings-0.18.2" = {
name = "vega-typings";
packageName = "vega-typings";
version = "0.18.2";
src = fetchurl {
url = "https://registry.npmjs.org/vega-typings/-/vega-typings-0.18.2.tgz";
sha512 = "t7PAmcqPUmSV44l2NVJOoblhomPlgjO7rxAUs/HXnmyVbGHI+6ulUPjGBWWZU1ebu09T+SYazAwjr6lAd2CHgQ==";
};
};
"vega-util-1.15.1" = {
name = "vega-util";
packageName = "vega-util";
version = "1.15.1";
src = fetchurl {
url = "https://registry.npmjs.org/vega-util/-/vega-util-1.15.1.tgz";
sha512 = "kEbRQiVUP42dyou2LF8I+3TlBtk4TODTlnLzdSoI//uahXvDnz1ulfprWljfcHPbVjziObaFNWkpT56oSMTx+g==";
};
};
"vega-view-5.8.2" = {
name = "vega-view";
packageName = "vega-view";
version = "5.8.2";
src = fetchurl {
url = "https://registry.npmjs.org/vega-view/-/vega-view-5.8.2.tgz";
sha512 = "d+u5FGs3t7LUVRoGimvroHkbO2orrtJMUt2P8UVu4alMdDcgZUSmwOZWc/gMkBGlWD8P9q7832xTWdJ3gSXL4A==";
};
};
"vega-view-transforms-4.5.7" = {
name = "vega-view-transforms";
packageName = "vega-view-transforms";
version = "4.5.7";
src = fetchurl {
url = "https://registry.npmjs.org/vega-view-transforms/-/vega-view-transforms-4.5.7.tgz";
sha512 = "dcrEHJL/+KPAe7Eq4Me7rq5+O13yWL1X/n3Fu6xKGL2TnBSBy4WVla+WFBdD82GRIU0Fi5DFkL/dE3cTeitvag==";
};
};
"vega-voronoi-4.1.4" = {
name = "vega-voronoi";
packageName = "vega-voronoi";
version = "4.1.4";
src = fetchurl {
url = "https://registry.npmjs.org/vega-voronoi/-/vega-voronoi-4.1.4.tgz";
sha512 = "z5aAprA9XbdKZ2oAs1tWR9Cw+W9LQJZCn9kH+x6VmnqiVhCbMZPDoZK9sIgso163RDF9Fdu+0zLXX58l+AjzWA==";
};
};
"vega-wordcloud-4.1.2" = {
name = "vega-wordcloud";
packageName = "vega-wordcloud";
version = "4.1.2";
src = fetchurl {
url = "https://registry.npmjs.org/vega-wordcloud/-/vega-wordcloud-4.1.2.tgz";
sha512 = "LZzqaRuE0bR9x9e9dLax6GYnUO+MtJhGx5fRk4F0Q8+X2f0u/BfOyMG459tnbyZQIy9SP8ZBLBlkp+ujmK8XXQ==";
};
};
"which-module-2.0.0" = {
name = "which-module";
packageName = "which-module";
version = "2.0.0";
src = fetchurl {
url = "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz";
sha1 = "d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a";
};
};
"wide-align-1.1.3" = {
name = "wide-align";
packageName = "wide-align";
version = "1.1.3";
src = fetchurl {
url = "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz";
sha512 = "QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==";
};
};
"wrap-ansi-6.2.0" = {
name = "wrap-ansi";
packageName = "wrap-ansi";
version = "6.2.0";
src = fetchurl {
url = "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz";
sha512 = "r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==";
};
};
"wrappy-1.0.2" = {
name = "wrappy";
packageName = "wrappy";
version = "1.0.2";
src = fetchurl {
url = "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz";
sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f";
};
};
"y18n-4.0.0" = {
name = "y18n";
packageName = "y18n";
version = "4.0.0";
src = fetchurl {
url = "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz";
sha512 = "r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==";
};
};
"yallist-3.1.1" = {
name = "yallist";
packageName = "yallist";
version = "3.1.1";
src = fetchurl {
url = "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz";
sha512 = "a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==";
};
};
"yargs-15.4.1" = {
name = "yargs";
packageName = "yargs";
version = "15.4.1";
src = fetchurl {
url = "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz";
sha512 = "aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==";
};
};
"yargs-parser-18.1.3" = {
name = "yargs-parser";
packageName = "yargs-parser";
version = "18.1.3";
src = fetchurl {
url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz";
sha512 = "o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==";
};
};
};
in
{
vega-cli = nodeEnv.buildNodePackage {
name = "vega-cli";
packageName = "vega-cli";
version = "5.15.0";
src = fetchurl {
url = "https://registry.npmjs.org/vega-cli/-/vega-cli-5.15.0.tgz";
sha512 = "1Mv7+T84L6EIPIsC3fslhywNDfguy135EN4uAcFCWhErQXG3yzel2gNyvlsA0ixTAi5oG7mFL6ftkTB6r2CzIw==";
};
dependencies = [
sources."@types/color-name-1.1.1"
sources."abbrev-1.1.1"
sources."ansi-regex-2.1.1"
sources."ansi-styles-4.2.1"
sources."aproba-1.2.0"
sources."are-we-there-yet-1.1.5"
sources."balanced-match-1.0.0"
sources."brace-expansion-1.1.11"
sources."camelcase-5.3.1"
sources."canvas-2.6.1"
sources."chownr-1.1.4"
(sources."cliui-6.0.0" // {
dependencies = [
sources."ansi-regex-5.0.0"
sources."is-fullwidth-code-point-3.0.0"
sources."string-width-4.2.0"
sources."strip-ansi-6.0.0"
];
})
sources."code-point-at-1.1.0"
sources."color-convert-2.0.1"
sources."color-name-1.1.4"
sources."commander-2.20.3"
sources."concat-map-0.0.1"
sources."console-control-strings-1.1.0"
sources."core-util-is-1.0.2"
sources."d3-array-2.7.1"
sources."d3-color-2.0.0"
sources."d3-delaunay-5.3.0"
sources."d3-dispatch-2.0.0"
sources."d3-dsv-2.0.0"
sources."d3-force-2.1.1"
sources."d3-format-2.0.0"
sources."d3-geo-2.0.1"
sources."d3-geo-projection-3.0.0"
sources."d3-hierarchy-2.0.0"
sources."d3-interpolate-2.0.1"
sources."d3-path-2.0.0"
sources."d3-quadtree-2.0.0"
sources."d3-scale-3.2.2"
sources."d3-shape-2.0.0"
sources."d3-time-2.0.0"
sources."d3-time-format-3.0.0"
sources."d3-timer-2.0.0"
sources."debug-3.2.6"
sources."decamelize-1.2.0"
sources."decompress-response-4.2.1"
sources."deep-extend-0.6.0"
sources."delaunator-4.0.1"
sources."delegates-1.0.0"
sources."detect-libc-1.0.3"
sources."emoji-regex-8.0.0"
sources."find-up-4.1.0"
sources."fs-minipass-1.2.7"
sources."fs.realpath-1.0.0"
sources."gauge-2.7.4"
sources."get-caller-file-2.0.5"
sources."glob-7.1.6"
sources."has-unicode-2.0.1"
sources."iconv-lite-0.4.24"
sources."ignore-walk-3.0.3"
sources."inflight-1.0.6"
sources."inherits-2.0.4"
sources."ini-1.3.5"
sources."is-fullwidth-code-point-1.0.0"
sources."isarray-1.0.0"
sources."locate-path-5.0.0"
sources."mimic-response-2.1.0"
sources."minimatch-3.0.4"
sources."minimist-1.2.5"
sources."minipass-2.9.0"
sources."minizlib-1.3.3"
sources."mkdirp-0.5.5"
sources."ms-2.1.2"
sources."nan-2.14.1"
sources."needle-2.5.2"
sources."node-fetch-2.6.1"
sources."node-pre-gyp-0.11.0"
sources."nopt-4.0.3"
sources."npm-bundled-1.1.1"
sources."npm-normalize-package-bin-1.0.1"
sources."npm-packlist-1.4.8"
sources."npmlog-4.1.2"
sources."number-is-nan-1.0.1"
sources."object-assign-4.1.1"
sources."once-1.4.0"
sources."os-homedir-1.0.2"
sources."os-tmpdir-1.0.2"
sources."osenv-0.1.5"
sources."p-limit-2.3.0"
sources."p-locate-4.1.0"
sources."p-try-2.2.0"
sources."path-exists-4.0.0"
sources."path-is-absolute-1.0.1"
sources."path-parse-1.0.6"
sources."process-nextick-args-2.0.1"
sources."rc-1.2.8"
sources."readable-stream-2.3.7"
sources."require-directory-2.1.1"
sources."require-main-filename-2.0.0"
sources."resolve-1.17.0"
sources."rimraf-2.7.1"
sources."rw-1.3.3"
sources."safe-buffer-5.1.2"
sources."safer-buffer-2.1.2"
sources."sax-1.2.4"
sources."semver-5.7.1"
sources."set-blocking-2.0.0"
sources."signal-exit-3.0.3"
sources."simple-concat-1.0.1"
sources."simple-get-3.1.0"
sources."string-width-1.0.2"
sources."string_decoder-1.1.1"
sources."strip-ansi-3.0.1"
sources."strip-json-comments-2.0.1"
sources."tar-4.4.13"
sources."topojson-client-3.1.0"
sources."util-deprecate-1.0.2"
sources."vega-5.15.0"
sources."vega-canvas-1.2.4"
sources."vega-crossfilter-4.0.4"
sources."vega-dataflow-5.7.2"
sources."vega-encode-4.8.2"
sources."vega-event-selector-2.0.5"
sources."vega-expression-2.7.0"
sources."vega-force-4.0.6"
sources."vega-format-1.0.3"
sources."vega-functions-5.7.3"
sources."vega-geo-4.3.6"
sources."vega-hierarchy-4.0.8"
sources."vega-loader-4.3.2"
sources."vega-parser-6.0.4"
sources."vega-projection-1.4.4"
sources."vega-regression-1.0.8"
sources."vega-runtime-6.1.2"
sources."vega-scale-7.1.0"
sources."vega-scenegraph-4.9.1"
sources."vega-selections-5.1.3"
sources."vega-statistics-1.7.8"
sources."vega-time-2.0.3"
sources."vega-transforms-4.9.2"
sources."vega-typings-0.18.2"
sources."vega-util-1.15.1"
sources."vega-view-5.8.2"
sources."vega-view-transforms-4.5.7"
sources."vega-voronoi-4.1.4"
sources."vega-wordcloud-4.1.2"
sources."which-module-2.0.0"
sources."wide-align-1.1.3"
(sources."wrap-ansi-6.2.0" // {
dependencies = [
sources."ansi-regex-5.0.0"
sources."is-fullwidth-code-point-3.0.0"
sources."string-width-4.2.0"
sources."strip-ansi-6.0.0"
];
})
sources."wrappy-1.0.2"
sources."y18n-4.0.0"
sources."yallist-3.1.1"
(sources."yargs-15.4.1" // {
dependencies = [
sources."ansi-regex-5.0.0"
sources."is-fullwidth-code-point-3.0.0"
sources."string-width-4.2.0"
sources."strip-ansi-6.0.0"
];
})
sources."yargs-parser-18.1.3"
];
buildInputs = globalBuildInputs;
meta = {
description = "Command line utilities for server-side Vega.";
homepage = "https://github.com/vega/vega#readme";
license = "BSD-3-Clause";
};
production = true;
bypassCache = true;
reconstructLock = true;
};
vega-lite = nodeEnv.buildNodePackage {
name = "vega-lite";
packageName = "vega-lite";
version = "4.15.0";
src = fetchurl {
url = "https://registry.npmjs.org/vega-lite/-/vega-lite-4.15.0.tgz";
sha512 = "381Kszxei5Rhg8WkcUE7yPHafLndBbdR8nBSJi4zFsn8iAfCVjn7h7QL9DphNix5V7Ko1nhOadxqNaxGsiD71w==";
};
dependencies = [
sources."@types/clone-2.1.0"
sources."@types/color-name-1.1.1"
sources."@types/fast-json-stable-stringify-2.0.0"
sources."ansi-regex-5.0.0"
sources."ansi-styles-4.2.1"
sources."array-flat-polyfill-1.0.1"
sources."camelcase-5.3.1"
sources."cliui-6.0.0"
sources."clone-2.1.2"
sources."color-convert-2.0.1"
sources."color-name-1.1.4"
sources."decamelize-1.2.0"
sources."emoji-regex-8.0.0"
sources."fast-deep-equal-3.1.3"
sources."fast-json-stable-stringify-2.1.0"
sources."find-up-4.1.0"
sources."get-caller-file-2.0.5"
sources."is-fullwidth-code-point-3.0.0"
sources."json-stringify-pretty-compact-2.0.0"
sources."locate-path-5.0.0"
sources."p-limit-2.3.0"
sources."p-locate-4.1.0"
sources."p-try-2.2.0"
sources."path-exists-4.0.0"
sources."require-directory-2.1.1"
sources."require-main-filename-2.0.0"
sources."set-blocking-2.0.0"
sources."string-width-4.2.0"
sources."strip-ansi-6.0.0"
sources."tslib-2.0.1"
sources."vega-event-selector-2.0.5"
sources."vega-expression-2.7.0"
sources."vega-util-1.15.1"
sources."which-module-2.0.0"
sources."wrap-ansi-6.2.0"
sources."y18n-4.0.0"
sources."yargs-15.4.1"
sources."yargs-parser-18.1.3"
];
buildInputs = globalBuildInputs;
meta = {
description = "Vega-Lite is a concise high-level language for interactive visualization.";
homepage = https://vega.github.io/vega-lite/;
license = "BSD-3-Clause";
};
production = true;
bypassCache = true;
reconstructLock = true;
};
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment