packaging: updated JS dependencies with new node2nix and nodejs12

This commit is contained in:
Marcin Kuzminski 2020-05-12 11:49:52 +02:00
parent e47479eb95
commit 847c8b496f
4 changed files with 259 additions and 200 deletions

View file

@ -61,7 +61,7 @@ pip-packages:
generate-js-pkgs:
rm -rf node_modules && \
nix-shell pkgs/shell-generate.nix --command "node2nix --input package.json -o pkgs/node-packages.nix -e pkgs/node-env.nix -c pkgs/node-default.nix -d --flatten --nodejs-8" && \
nix-shell pkgs/shell-generate.nix --command "node2nix --input package.json -o pkgs/node-packages.nix -e pkgs/node-env.nix -c pkgs/node-default.nix -d --flatten --nodejs-12" && \
sed -i -e 's/http:\/\//https:\/\//g' pkgs/node-packages.nix
generate-license-meta:

View file

@ -11,7 +11,7 @@ let
cat > $out/bin/tar <<EOF
#! ${stdenv.shell} -e
$(type -p tar) "\$@" --warning=no-unknown-keyword
$(type -p tar) "\$@" --warning=no-unknown-keyword --delay-directory-restore
EOF
chmod +x $out/bin/tar
@ -57,7 +57,7 @@ let
# Recursively composes the dependencies of a package
composePackage = { name, packageName, src, dependencies ? [], ... }@args:
''
builtins.addErrorContext "while evaluating node package '${packageName}'" ''
DIR=$(pwd)
cd $TMPDIR
@ -72,7 +72,7 @@ let
packageDir="$(find . -maxdepth 1 -type d | tail -1)"
# Restore write permissions to make building work
find "$packageDir" -type d -print0 | xargs -0 chmod u+x
find "$packageDir" -type d -exec chmod u+x {} \;
chmod -R u+w "$packageDir"
# Move the extracted tarball into the output folder
@ -219,7 +219,16 @@ let
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));
}
@ -308,50 +317,11 @@ let
'';
};
# Builds and composes an NPM package including all its dependencies
buildNodePackage =
{ name
, packageName
, version
, dependencies ? []
, buildInputs ? []
, production ? true
, npmFlags ? ""
, dontNpmInstall ? false
, bypassCache ? false
, preRebuild ? ""
, dontStrip ? true
, unpackPhase ? "true"
, buildPhase ? "true"
, ... }@args:
prepareAndInvokeNPM = {packageName, bypassCache, reconstructLock, npmFlags, production}:
let
forceOfflineFlag = if bypassCache then "--offline" else "--registry http://www.example.com";
extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" "dontStrip" "dontNpmInstall" "preRebuild" "unpackPhase" "buildPhase" ];
in
stdenv.mkDerivation ({
name = "node-${name}-${version}";
buildInputs = [ tarWrapper python nodejs ]
++ stdenv.lib.optional (stdenv.isLinux) utillinux
++ stdenv.lib.optional (stdenv.isDarwin) libtool
++ buildInputs;
inherit dontStrip; # Stripping may fail a build for some package deployments
inherit dontNpmInstall preRebuild unpackPhase buildPhase;
compositionScript = composePackage args;
pinpointDependenciesScript = pinpointDependenciesOfPackage args;
passAsFile = [ "compositionScript" "pinpointDependenciesScript" ];
installPhase = ''
# Create and enter a root node_modules/ folder
mkdir -p $out/lib/node_modules
cd $out/lib/node_modules
# Compose the package and all its dependencies
source $compositionScriptPath
''
# Pinpoint the versions of all dependencies to the ones that are actually being used
echo "pinpointing versions of dependencies..."
source $pinpointDependenciesScriptPath
@ -375,24 +345,80 @@ let
runHook preRebuild
${stdenv.lib.optionalString bypassCache ''
if [ ! -f package-lock.json ]
${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..."
node ${reconstructPackageLock}
fi
node ${reconstructPackageLock}
''}
node ${addIntegrityFieldsScript}
''}
npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${stdenv.lib.optionalString production "--production"} rebuild
if [ "$dontNpmInstall" != "1" ]
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" ]
@ -431,14 +457,13 @@ let
, npmFlags ? ""
, dontNpmInstall ? false
, bypassCache ? false
, reconstructLock ? false
, dontStrip ? true
, unpackPhase ? "true"
, buildPhase ? "true"
, ... }@args:
let
forceOfflineFlag = if bypassCache then "--offline" else "--registry http://www.example.com";
extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" ];
nodeDependencies = stdenv.mkDerivation ({
@ -473,39 +498,13 @@ let
fi
''}
# Pinpoint the versions of all dependencies to the ones that are actually being used
echo "pinpointing versions of dependencies..."
# Go to the parent folder to make sure that all packages are pinpointed
cd ..
${stdenv.lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
source $pinpointDependenciesScriptPath
cd ${packageName}
# Patch the shebangs of the bundled modules to prevent them from
# calling executables outside the Nix store as much as possible
patchShebangs .
export HOME=$PWD
${stdenv.lib.optionalString bypassCache ''
if [ ! -f package-lock.json ]
then
echo "No package-lock.json file found, reconstructing..."
node ${reconstructPackageLock}
fi
node ${addIntegrityFieldsScript}
''}
npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${stdenv.lib.optionalString production "--production"} rebuild
${stdenv.lib.optionalString (!dontNpmInstall) ''
# NPM tries to download packages even when they already exist if npm-shrinkwrap is used.
rm -f npm-shrinkwrap.json
npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${stdenv.lib.optionalString production "--production"} install
''}
${prepareAndInvokeNPM { inherit packageName bypassCache reconstructLock npmFlags production; }}
# Expose the executables that were installed
cd ..
${stdenv.lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
@ -531,7 +530,8 @@ let
# 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 NODE_PATH=${nodeDependencies}/lib/node_modules
export PATH="${nodeDependencies}/bin:$PATH"
'';
};
in

View file

@ -1,4 +1,4 @@
# This file has been generated by node2nix 1.6.0. Do not edit!
# This file has been generated by node2nix 1.8.0. Do not edit!
{nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}:
@ -211,13 +211,13 @@ let
sha512 = "yiUk09opTEnE1lK+tb501ENb+yQBi4p++Ep0eGJAHesVYKVMPNgPphVKkIizkDaU+n0SE+zXfTsRbYyOMDYXSg==";
};
};
"@polymer/polymer-3.3.1" = {
"@polymer/polymer-3.4.1" = {
name = "_at_polymer_slash_polymer";
packageName = "@polymer/polymer";
version = "3.3.1";
version = "3.4.1";
src = fetchurl {
url = "https://registry.npmjs.org/@polymer/polymer/-/polymer-3.3.1.tgz";
sha512 = "8KaB48tzyMjdsHdxo5KvCAaqmTe7rYDzQAoj/pyEfq9Fp4YfUaS+/xqwYj0GbiDAUNzwkmEQ7dw9cgnRNdKO8A==";
url = "https://registry.npmjs.org/@polymer/polymer/-/polymer-3.4.1.tgz";
sha512 = "KPWnhDZibtqKrUz7enIPOiO4ZQoJNOuLwqrhV2MXzIt3VVnUVJVG5ORz4Z2sgO+UZ+/UZnPD0jqY+jmw/+a9mQ==";
};
};
"@types/clone-0.1.30" = {
@ -499,13 +499,13 @@ let
sha1 = "82ffb02b29e662ae53bdc20af15947706739c536";
};
};
"ajv-6.12.0" = {
"ajv-6.12.2" = {
name = "ajv";
packageName = "ajv";
version = "6.12.0";
version = "6.12.2";
src = fetchurl {
url = "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz";
sha512 = "D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==";
url = "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz";
sha512 = "k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==";
};
};
"ajv-keywords-3.4.1" = {
@ -1472,6 +1472,15 @@ let
sha512 = "ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==";
};
};
"bn.js-5.1.1" = {
name = "bn.js";
packageName = "bn.js";
version = "5.1.1";
src = fetchurl {
url = "https://registry.npmjs.org/bn.js/-/bn.js-5.1.1.tgz";
sha512 = "IUTD/REb78Z2eodka1QZyyEk66pciRcP6Sroka0aI3tG/iwIdYLrBD62RsubR7vqdt3WyX8p4jxeatzmRSphtA==";
};
};
"boolbase-1.0.0" = {
name = "boolbase";
packageName = "boolbase";
@ -1553,13 +1562,13 @@ let
sha1 = "21e0abfaf6f2029cf2fafb133567a701d4135524";
};
};
"browserify-sign-4.0.4" = {
"browserify-sign-4.1.0" = {
name = "browserify-sign";
packageName = "browserify-sign";
version = "4.0.4";
version = "4.1.0";
src = fetchurl {
url = "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz";
sha1 = "aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298";
url = "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.1.0.tgz";
sha512 = "VYxo7cDCeYUoBZ0ZCy4UyEUCP3smyBd4DRQM5nrFS1jJjPJjX7rP3oLRpPoWfkhQfyJ0I9ZbHbKafrFD/SGlrg==";
};
};
"browserify-zlib-0.2.0" = {
@ -1679,22 +1688,22 @@ let
sha1 = "b534e7c734c4f81ec5fbe8aca2ad24354b962c6c";
};
};
"caniuse-db-1.0.30001042" = {
"caniuse-db-1.0.30001055" = {
name = "caniuse-db";
packageName = "caniuse-db";
version = "1.0.30001042";
version = "1.0.30001055";
src = fetchurl {
url = "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30001042.tgz";
sha512 = "2RKrB2hkLCW/8Uj32oaXj0O+N9ROo0/BF0EueWHwgs6AeeSiL+rCSsbICR3ayBJOZavgcFx65ZCw7QiafsoUFQ==";
url = "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30001055.tgz";
sha512 = "WgyNA+lEteIfAQlUfSRb0zvY8EKJnOZ4GcFzKveNb2+4UaFuMk3RiY1mdKA2MQYhVxfLdFdbNxLs6Iym94An7Q==";
};
};
"caniuse-lite-1.0.30001042" = {
"caniuse-lite-1.0.30001055" = {
name = "caniuse-lite";
packageName = "caniuse-lite";
version = "1.0.30001042";
version = "1.0.30001055";
src = fetchurl {
url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001042.tgz";
sha512 = "igMQ4dlqnf4tWv0xjaaE02op9AJ2oQzXKjWf4EuAHFN694Uo9/EfPVIPJcmn2WkU9RqozCxx5e2KPcVClHDbDw==";
url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001055.tgz";
sha512 = "MbwsBmKrBSKIWldfdIagO5OJWZclpJtS4h0Jrk/4HFrXJxTdVdH23Fd+xCiHriVGvYcWyW8mR/CPsYajlH8Iuw==";
};
};
"caseless-0.12.0" = {
@ -2552,13 +2561,13 @@ let
sha1 = "3a83a904e54353287874c564b7549386849a98c9";
};
};
"electron-to-chromium-1.3.412" = {
"electron-to-chromium-1.3.433" = {
name = "electron-to-chromium";
packageName = "electron-to-chromium";
version = "1.3.412";
version = "1.3.433";
src = fetchurl {
url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.412.tgz";
sha512 = "4bVdSeJScR8fT7ERveLWbxemY5uXEHVseqMRyORosiKcTUSGtVwBkV8uLjXCqoFLeImA57Z9hbz3TOid01U4Hw==";
url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.433.tgz";
sha512 = "C0gcgwB8RpPAq2Ia6teihNOHOfNzGy4jJXgjIXSmKdt6O2xrJM8CPjA8jTFyo97KozVrZ8oH2FUCixC6Hnuk2g==";
};
};
"elliptic-6.5.2" = {
@ -2624,13 +2633,13 @@ let
sha1 = "b2987aa3821347fcde642b24fdfc9e4fb712bf26";
};
};
"entities-2.0.0" = {
"entities-2.0.2" = {
name = "entities";
packageName = "entities";
version = "2.0.0";
version = "2.0.2";
src = fetchurl {
url = "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz";
sha512 = "D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==";
url = "https://registry.npmjs.org/entities/-/entities-2.0.2.tgz";
sha512 = "dmD3AvJQBUjKpcNkoqr+x+IF0SdRtPz9Vk0uTy4yWqga9ibB6s4v++QFWNohjiUGoMlF552ZvNyXDxz5iW0qmw==";
};
};
"errno-0.1.7" = {
@ -3101,13 +3110,13 @@ let
sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f";
};
};
"fsevents-1.2.12" = {
"fsevents-1.2.13" = {
name = "fsevents";
packageName = "fsevents";
version = "1.2.12";
version = "1.2.13";
src = fetchurl {
url = "https://registry.npmjs.org/fsevents/-/fsevents-1.2.12.tgz";
sha512 = "Ggd/Ktt7E7I8pxZRbGIs7vwqAPscSESMrCSkx2FtWeqmheJgCo2R74fTsZFCifr0VTPwqRpPv17+6b8Zp7th0Q==";
url = "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz";
sha512 = "oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==";
};
};
"function-bind-1.1.1" = {
@ -3281,13 +3290,13 @@ let
sha1 = "15a4806a57547cb2d2dbf27f42e89a8c3451b364";
};
};
"graceful-fs-4.2.3" = {
"graceful-fs-4.2.4" = {
name = "graceful-fs";
packageName = "graceful-fs";
version = "4.2.3";
version = "4.2.4";
src = fetchurl {
url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz";
sha512 = "a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==";
url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz";
sha512 = "WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==";
};
};
"grunt-0.4.5" = {
@ -3524,13 +3533,13 @@ let
sha1 = "95b0b63fec2146619a6fe57fe75628d5a39efe4f";
};
};
"hash-base-3.0.4" = {
"hash-base-3.1.0" = {
name = "hash-base";
packageName = "hash-base";
version = "3.0.4";
version = "3.1.0";
src = fetchurl {
url = "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz";
sha1 = "5fc8686847ecd73499403319a6b0a3f3f6ae4918";
url = "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz";
sha512 = "1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==";
};
};
"hash.js-1.1.7" = {
@ -4730,22 +4739,22 @@ let
sha512 = "x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==";
};
};
"mime-db-1.43.0" = {
"mime-db-1.44.0" = {
name = "mime-db";
packageName = "mime-db";
version = "1.43.0";
version = "1.44.0";
src = fetchurl {
url = "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz";
sha512 = "+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==";
url = "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz";
sha512 = "/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==";
};
};
"mime-types-2.1.26" = {
"mime-types-2.1.27" = {
name = "mime-types";
packageName = "mime-types";
version = "2.1.26";
version = "2.1.27";
src = fetchurl {
url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz";
sha512 = "01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==";
url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz";
sha512 = "JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==";
};
};
"mimic-fn-2.1.0" = {
@ -4838,13 +4847,13 @@ let
sha512 = "NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==";
};
};
"moment-2.24.0" = {
"moment-2.25.3" = {
name = "moment";
packageName = "moment";
version = "2.24.0";
version = "2.25.3";
src = fetchurl {
url = "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz";
sha512 = "bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==";
url = "https://registry.npmjs.org/moment/-/moment-2.25.3.tgz";
sha512 = "PuYv0PHxZvzc15Sp8ybUCoQ+xpyPWvjOuK72a5ovzp2LI32rJXOiIfyoFoYvG3s6EwwrdkMyWuRiEHSZRLJNdg==";
};
};
"mousetrap-1.6.5" = {
@ -4874,13 +4883,13 @@ let
sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8";
};
};
"nan-2.14.0" = {
"nan-2.14.1" = {
name = "nan";
packageName = "nan";
version = "2.14.0";
version = "2.14.1";
src = fetchurl {
url = "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz";
sha512 = "INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==";
url = "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz";
sha512 = "isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==";
};
};
"nanomatch-1.2.13" = {
@ -6071,6 +6080,15 @@ let
sha512 = "Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==";
};
};
"readable-stream-3.6.0" = {
name = "readable-stream";
packageName = "readable-stream";
version = "3.6.0";
src = fetchurl {
url = "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz";
sha512 = "BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==";
};
};
"readdirp-2.2.1" = {
name = "readdirp";
packageName = "readdirp";
@ -6296,13 +6314,13 @@ let
sha1 = "97f717b69d48784f5f526a6c5aa8ffdda055a4d1";
};
};
"resolve-1.16.0" = {
"resolve-1.17.0" = {
name = "resolve";
packageName = "resolve";
version = "1.16.0";
version = "1.17.0";
src = fetchurl {
url = "https://registry.npmjs.org/resolve/-/resolve-1.16.0.tgz";
sha512 = "LarL/PIKJvc09k1jaeT4kQb/8/7P+qV4qSnN2K80AES+OHdfZELAKVOBjxsvtToT/uLOfFbvYvKfZmV8cee7nA==";
url = "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz";
sha512 = "ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==";
};
};
"resolve-cwd-2.0.0" = {
@ -6404,13 +6422,13 @@ let
sha512 = "Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==";
};
};
"safe-buffer-5.2.0" = {
"safe-buffer-5.2.1" = {
name = "safe-buffer";
packageName = "safe-buffer";
version = "5.2.0";
version = "5.2.1";
src = fetchurl {
url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz";
sha512 = "fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==";
url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz";
sha512 = "rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==";
};
};
"safe-regex-1.1.0" = {
@ -6980,13 +6998,13 @@ let
sha1 = "9f5772413952135c6fefbf40afe6a4faa88b4bb5";
};
};
"sweetalert2-9.10.12" = {
"sweetalert2-9.10.13" = {
name = "sweetalert2";
packageName = "sweetalert2";
version = "9.10.12";
version = "9.10.13";
src = fetchurl {
url = "https://registry.npmjs.org/sweetalert2/-/sweetalert2-9.10.12.tgz";
sha512 = "RnarmbDGTPmwecJbaVdq5LvlzbVReIOtPk0huPnXOE19G00xMxGcTY0wjt9AjwsexUnLivLXc3b6nD6+D6NlGg==";
url = "https://registry.npmjs.org/sweetalert2/-/sweetalert2-9.10.13.tgz";
sha512 = "JiZtO9SQdnS/Uvlqw5MlWpGpYVqH/eBQi7u61+Oxba7ZA4vfX0tSdyzQsiMk56HTUw8Nk8IvNPvfbt3WR3FOsQ==";
};
};
"tapable-0.2.9" = {
@ -7133,13 +7151,13 @@ let
sha1 = "30c6203e1e66b841a88701ed8858f1725d94b026";
};
};
"tslib-1.11.1" = {
"tslib-1.11.2" = {
name = "tslib";
packageName = "tslib";
version = "1.11.1";
version = "1.11.2";
src = fetchurl {
url = "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz";
sha512 = "aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==";
url = "https://registry.npmjs.org/tslib/-/tslib-1.11.2.tgz";
sha512 = "tTSkux6IGPnUGUd1XAZHcpu85MOkIl5zX49pO+jfsie3eP0B6pyhOlLXm3cAC6T7s+euSDDUUV+Acop5WmtkVg==";
};
};
"tty-browserify-0.0.0" = {
@ -7205,13 +7223,13 @@ let
sha512 = "Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==";
};
};
"uglify-js-3.9.1" = {
"uglify-js-3.9.2" = {
name = "uglify-js";
packageName = "uglify-js";
version = "3.9.1";
version = "3.9.2";
src = fetchurl {
url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.9.1.tgz";
sha512 = "JUPoL1jHsc9fOjVFHdQIhqEEJsQvfKDjlubcCilu8U26uZ73qOg8VsN8O1jbuei44ZPlwL7kmbAdM4tzaUvqnA==";
url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.9.2.tgz";
sha512 = "zGVwKslUAD/EeqOrD1nQaBmXIHl1Vw371we8cvS8I6mYK9rmgX5tv8AAeJdfsQ3Kk5mGax2SVV/AizxdNGhl7Q==";
};
};
"uglify-to-browserify-1.0.2" = {
@ -7731,7 +7749,7 @@ let
args = {
name = "rhodecode-enterprise";
packageName = "rhodecode-enterprise";
version = "2.0.0";
version = "3.0.0";
src = ./..;
dependencies = [
sources."@polymer/font-roboto-3.0.2"
@ -7757,7 +7775,7 @@ let
sources."@polymer/paper-toast-3.0.1"
sources."@polymer/paper-toggle-button-3.0.1"
sources."@polymer/paper-tooltip-3.0.1"
sources."@polymer/polymer-3.3.1"
sources."@polymer/polymer-3.4.1"
sources."@types/clone-0.1.30"
sources."@types/node-6.14.10"
sources."@types/parse5-2.2.34"
@ -7824,7 +7842,11 @@ let
sources."array-unique-0.3.2"
sources."asap-2.0.6"
sources."asn1-0.2.4"
sources."asn1.js-4.10.1"
(sources."asn1.js-4.10.1" // {
dependencies = [
sources."bn.js-4.11.8"
];
})
(sources."assert-1.5.0" // {
dependencies = [
sources."inherits-2.0.1"
@ -7960,7 +7982,7 @@ let
sources."binary-extensions-1.13.1"
sources."bindings-1.5.0"
sources."bluebird-3.7.2"
sources."bn.js-4.11.8"
sources."bn.js-5.1.1"
sources."boolbase-1.0.0"
sources."boom-2.10.1"
sources."brace-expansion-1.1.11"
@ -7973,8 +7995,17 @@ let
sources."browserify-aes-1.2.0"
sources."browserify-cipher-1.0.1"
sources."browserify-des-1.0.2"
sources."browserify-rsa-4.0.1"
sources."browserify-sign-4.0.4"
(sources."browserify-rsa-4.0.1" // {
dependencies = [
sources."bn.js-4.11.8"
];
})
(sources."browserify-sign-4.1.0" // {
dependencies = [
sources."readable-stream-3.6.0"
sources."string_decoder-1.3.0"
];
})
sources."browserify-zlib-0.2.0"
sources."browserslist-3.2.8"
sources."buffer-4.9.2"
@ -7984,7 +8015,7 @@ let
(sources."cacache-10.0.4" // {
dependencies = [
sources."glob-7.1.6"
sources."graceful-fs-4.2.3"
sources."graceful-fs-4.2.4"
sources."lru-cache-4.1.5"
sources."minimatch-3.0.4"
sources."rimraf-2.7.1"
@ -7998,8 +8029,8 @@ let
sources."browserslist-1.7.7"
];
})
sources."caniuse-db-1.0.30001042"
sources."caniuse-lite-1.0.30001042"
sources."caniuse-db-1.0.30001055"
sources."caniuse-lite-1.0.30001055"
sources."caseless-0.12.0"
sources."center-align-0.1.3"
sources."chalk-0.5.1"
@ -8103,7 +8134,11 @@ let
})
sources."core-js-2.6.11"
sources."core-util-is-1.0.2"
sources."create-ecdh-4.0.3"
(sources."create-ecdh-4.0.3" // {
dependencies = [
sources."bn.js-4.11.8"
];
})
sources."create-hash-1.2.0"
sources."create-hmac-1.1.7"
(sources."cross-spawn-6.0.5" // {
@ -8148,13 +8183,17 @@ let
sources."des.js-1.0.1"
sources."detect-file-1.0.0"
sources."detect-indent-4.0.0"
sources."diffie-hellman-5.0.3"
(sources."diffie-hellman-5.0.3" // {
dependencies = [
sources."bn.js-4.11.8"
];
})
sources."dir-glob-2.2.2"
sources."dom-converter-0.2.0"
(sources."dom-serializer-0.2.2" // {
dependencies = [
sources."domelementtype-2.0.1"
sources."entities-2.0.0"
sources."entities-2.0.2"
];
})
(sources."dom5-2.3.0" // {
@ -8177,13 +8216,17 @@ let
];
})
sources."ecc-jsbn-0.1.2"
sources."electron-to-chromium-1.3.412"
sources."elliptic-6.5.2"
sources."electron-to-chromium-1.3.433"
(sources."elliptic-6.5.2" // {
dependencies = [
sources."bn.js-4.11.8"
];
})
sources."emojis-list-3.0.0"
sources."end-of-stream-1.4.4"
(sources."enhanced-resolve-4.1.1" // {
dependencies = [
sources."graceful-fs-4.2.3"
sources."graceful-fs-4.2.4"
sources."memory-fs-0.5.0"
sources."readable-stream-2.3.7"
sources."safe-buffer-5.1.2"
@ -8286,11 +8329,11 @@ let
})
(sources."fs-write-stream-atomic-1.0.10" // {
dependencies = [
sources."graceful-fs-4.2.3"
sources."graceful-fs-4.2.4"
];
})
sources."fs.realpath-1.0.0"
sources."fsevents-1.2.12"
sources."fsevents-1.2.13"
sources."function-bind-1.1.1"
sources."gaze-0.5.2"
sources."get-caller-file-1.0.3"
@ -8418,7 +8461,12 @@ let
sources."kind-of-4.0.0"
];
})
sources."hash-base-3.0.4"
(sources."hash-base-3.1.0" // {
dependencies = [
sources."readable-stream-3.6.0"
sources."string_decoder-1.3.0"
];
})
sources."hash.js-1.1.7"
sources."hawk-3.1.3"
sources."he-1.2.0"
@ -8548,7 +8596,7 @@ let
sources."lcid-2.0.0"
(sources."less-2.7.3" // {
dependencies = [
sources."graceful-fs-4.2.3"
sources."graceful-fs-4.2.4"
];
})
(sources."liftoff-2.5.0" // {
@ -8595,10 +8643,14 @@ let
];
})
sources."micromatch-3.1.10"
sources."miller-rabin-4.0.1"
(sources."miller-rabin-4.0.1" // {
dependencies = [
sources."bn.js-4.11.8"
];
})
sources."mime-1.6.0"
sources."mime-db-1.43.0"
sources."mime-types-2.1.26"
sources."mime-db-1.44.0"
sources."mime-types-2.1.27"
sources."mimic-fn-2.1.0"
sources."minimalistic-assert-1.0.1"
sources."minimalistic-crypto-utils-1.0.1"
@ -8611,7 +8663,7 @@ let
];
})
sources."mkdirp-0.5.5"
sources."moment-2.24.0"
sources."moment-2.25.3"
sources."mousetrap-1.6.5"
(sources."move-concurrently-1.0.1" // {
dependencies = [
@ -8621,7 +8673,7 @@ let
];
})
sources."ms-2.0.0"
sources."nan-2.14.0"
sources."nan-2.14.1"
sources."nanomatch-1.2.13"
sources."neo-async-2.6.1"
sources."nice-try-1.0.5"
@ -8636,7 +8688,7 @@ let
sources."safe-buffer-5.1.2"
(sources."string_decoder-1.3.0" // {
dependencies = [
sources."safe-buffer-5.2.0"
sources."safe-buffer-5.2.1"
];
})
];
@ -8828,7 +8880,11 @@ let
sources."promise-inflight-1.0.1"
sources."prr-1.0.1"
sources."pseudomap-1.0.2"
sources."public-encrypt-4.0.3"
(sources."public-encrypt-4.0.3" // {
dependencies = [
sources."bn.js-4.11.8"
];
})
sources."pump-2.0.1"
sources."pumpify-1.5.1"
sources."punycode-1.4.1"
@ -8848,7 +8904,7 @@ let
})
(sources."readdirp-2.2.1" // {
dependencies = [
sources."graceful-fs-4.2.3"
sources."graceful-fs-4.2.4"
sources."readable-stream-2.3.7"
sources."safe-buffer-5.1.2"
sources."string_decoder-1.1.1"
@ -8892,7 +8948,7 @@ let
sources."request-2.81.0"
sources."require-directory-2.1.1"
sources."require-main-filename-1.0.1"
sources."resolve-1.16.0"
sources."resolve-1.17.0"
sources."resolve-cwd-2.0.0"
sources."resolve-dir-1.0.1"
sources."resolve-from-3.0.0"
@ -8902,13 +8958,13 @@ let
sources."rimraf-2.2.8"
sources."ripemd160-2.0.2"
sources."run-queue-1.0.3"
sources."safe-buffer-5.2.0"
sources."safe-buffer-5.2.1"
sources."safe-regex-1.1.0"
sources."safer-buffer-2.1.2"
sources."sax-1.2.4"
(sources."schema-utils-0.4.7" // {
dependencies = [
sources."ajv-6.12.0"
sources."ajv-6.12.2"
];
})
sources."select-1.1.2"
@ -9032,7 +9088,7 @@ let
sources."js-yaml-3.7.0"
];
})
sources."sweetalert2-9.10.12"
sources."sweetalert2-9.10.13"
sources."tapable-1.1.3"
sources."through-2.3.8"
(sources."through2-2.0.5" // {
@ -9068,13 +9124,13 @@ let
sources."colors-1.4.0"
sources."emojis-list-2.1.0"
sources."enhanced-resolve-3.4.1"
sources."graceful-fs-4.2.3"
sources."graceful-fs-4.2.4"
sources."json5-0.5.1"
sources."loader-utils-0.2.17"
sources."tapable-0.2.9"
];
})
sources."tslib-1.11.1"
sources."tslib-1.11.2"
sources."tty-browserify-0.0.0"
sources."tunnel-agent-0.6.0"
sources."tweetnacl-0.14.5"
@ -9085,7 +9141,7 @@ let
sources."source-map-0.6.1"
];
})
sources."uglify-js-3.9.1"
sources."uglify-js-3.9.2"
sources."uglify-to-browserify-1.0.2"
(sources."uglifyjs-webpack-plugin-1.3.0" // {
dependencies = [
@ -9149,13 +9205,13 @@ let
sources."vm-browserify-1.1.2"
(sources."watchpack-1.6.1" // {
dependencies = [
sources."graceful-fs-4.2.3"
sources."graceful-fs-4.2.4"
];
})
sources."waypoints-4.0.1"
(sources."webpack-4.23.1" // {
dependencies = [
sources."ajv-6.12.0"
sources."ajv-6.12.2"
];
})
(sources."webpack-cli-3.1.2" // {
@ -9225,9 +9281,12 @@ let
};
production = false;
bypassCache = true;
reconstructLock = true;
};
in
{
args = args;
sources = sources;
tarball = nodeEnv.buildNodeSourceDist args;
package = nodeEnv.buildNodePackage args;
shell = nodeEnv.buildNodeShell args;

View file

@ -20,7 +20,7 @@ let babelRCOptions = {
}]
],
"plugins": ["transform-object-rest-spread"]
}
};
module.exports = {
// Tell Webpack which file kicks off our app.
@ -33,6 +33,7 @@ module.exports = {
},
// Tell Webpack which directories to look in to resolve import statements.
// Normally Webpack will look in node_modules by default but since were overriding
// the property well need to tell it to look there.
resolve: {
modules: [
path.resolve(__dirname, 'node_modules'),
@ -55,8 +56,7 @@ module.exports = {
// polymer-webpack-loader, and hand the output to
// babel-loader. This let's us transpile JS in our `<script>` elements.
use: [
{loader: 'babel-loader',
options: babelRCOptions},
{loader: 'babel-loader', options: babelRCOptions},
{loader: 'polymer-webpack-loader',
options: {
processStyleLinks: true,