From e41a6efc4982aa0b46e869a064427f4588ee12f1 Mon Sep 17 00:00:00 2001 From: Sander van der Burg Date: Mon, 27 Mar 2017 22:22:44 +0200 Subject: [PATCH] Some refactorings + update tests --- lib/generator/collection.js | 8 +++- lib/generator/composition.js | 35 ++++---------- lib/generator/package.js | 5 +- lib/node2nix.js | 2 +- lib/packageset.js | 24 +++------- node-packages.nix | 21 +++++---- package.json | 5 +- tests/grunt/node-packages.nix | 20 ++++---- tests/grunt/supplement.nix | 16 +++---- tests/node-packages-v4.nix | 86 +++++++++++++++++------------------ tests/node-packages-v6.nix | 74 +++++++++++++++--------------- 11 files changed, 137 insertions(+), 159 deletions(-) diff --git a/lib/generator/collection.js b/lib/generator/collection.js index 4396d9e..44d2a16 100644 --- a/lib/generator/collection.js +++ b/lib/generator/collection.js @@ -46,7 +46,13 @@ function generateCollectionExpr(packageSet, dependencies, baseDir, production, i slasp.sequence([ function(callback) { /* Resolve the dependencies of each package */ - packageSet.resolveDependencies(resolvedDependencies, null, dependency, flatten, callback); + var metadata = { + parent: null, + baseDir: "./.", + boundDependencies: null // Dependencies cannot be bound on this level + }; + + packageSet.resolveDependencies(resolvedDependencies, metadata, dependency, flatten, callback); }, function(callback) { diff --git a/lib/generator/composition.js b/lib/generator/composition.js index 1be91c9..5224f57 100644 --- a/lib/generator/composition.js +++ b/lib/generator/composition.js @@ -1,11 +1,15 @@ var path = require('path'); var nijs = require('nijs'); -function mustPrefix(target) { +/* + * Prefixes a relative path with ./ if needed so that it can be converted to a + * value belonging to Nix's file type + */ +function prefixRelativePath(target) { if(path.isAbsolute(target) || target.substring(0, 2) == "./" || target.substring(0, 3) == "../") - return false; + return target; else - return true; + return "./" + target; } /** @@ -21,31 +25,12 @@ function mustPrefix(target) { */ function generateCompositionExpr(nodeEnvNix, nodePackage, packagesNix, supplementNix, generateSupplement) { - /* Prefix relative paths if needed */ - var nodeEnvNixPath; - var packagesNixPath; var globalBuildInputs; - - if(mustPrefix(nodeEnvNix)) { - nodeEnvNixPath = "./" + nodeEnvNix; - } else { - nodeEnvNixPath = nodeEnvNix; - } - - if(mustPrefix(packagesNix)) { - packagesNixPath = "./" + packagesNix; - } else { - packagesNixPath = packagesNix; - } + var nodeEnvNixPath = prefixRelativePath(nodeEnvNix); + var packagesNixPath = prefixRelativePath(packagesNix); if(generateSupplement) { - var supplementNixPath; - - if(mustPrefix(supplementNix)) { - supplementNixPath = "./" + supplementNix; - } else { - supplementNixPath = supplementNix; - } + var supplementNixPath = prefixRelativePath(supplementNix); globalBuildInputs = new nijs.NixFunInvocation({ funExpr: new nijs.NixExpression("pkgs.lib.attrValues"), diff --git a/lib/generator/package.js b/lib/generator/package.js index 038dc6f..36fd9ec 100644 --- a/lib/generator/package.js +++ b/lib/generator/package.js @@ -9,7 +9,6 @@ var nijs = require('nijs'); * @param {PackageSet} packageSet Maintains a set of packages and their dependencies * @param {Object} packageObj A package.json configuration file of a package * @param {String} baseDir Directory in which the referrer's package.json configuration resides - * @param {Object} src Directory in which the package.json file resides * @param {Boolean} production Indicates whether to deploy the package in production mode * @param {Boolean} includePeerDependencies Indicates whether to include peer dependencies with the package * @param {Boolean} flatten Indicates whether to create a flat dependency structure in which dependencies are as high as possible in the graph @@ -17,12 +16,12 @@ var nijs = require('nijs'); * If an error occurs, the error parameter is set to contain the error * If the operation succeeds, it returns an object containing the abstract syntax of a Nix expression */ -function generatePackageExpr(packageSet, packageObj, baseDir, src, production, includePeerDependencies, flatten, callback) { +function generatePackageExpr(packageSet, packageObj, baseDir, production, includePeerDependencies, flatten, callback) { /* Construct metadata object for the package that we want to deploy */ var metadata = { packageObj: packageObj, parent: null, - src: src, + src: new nijs.NixFile({ value: "./." }), baseDir: baseDir }; diff --git a/lib/node2nix.js b/lib/node2nix.js index c84b69f..5ab711c 100644 --- a/lib/node2nix.js +++ b/lib/node2nix.js @@ -74,7 +74,7 @@ function npmToNix(inputJSON, outputNix, compositionNix, nodeEnvNix, supplementJS if(Array.isArray(obj)) { collectionGenerator.generateCollectionExpr(packageSet, obj, baseDir, production, includePeerDependencies, flatten, callback); } else { - packageGenerator.generatePackageExpr(packageSet, obj, baseDir, new nijs.NixFile({ value: "./." }), production, includePeerDependencies, flatten, callback); + packageGenerator.generatePackageExpr(packageSet, obj, baseDir, production, includePeerDependencies, flatten, callback); } } else { callback("The provided JSON file must consist of an object or an array"); diff --git a/lib/packageset.js b/lib/packageset.js index 15c5837..874fa22 100644 --- a/lib/packageset.js +++ b/lib/packageset.js @@ -121,9 +121,10 @@ PackageSet.prototype.findConformantParent = function(metadata, dependencyName, v /** * Checks whether the dependency conflicts when it binds to a package. * - * @param {String} property Which property to check: resolvedDependencies or boundDependenices + * @param {String} property Which property to check: either resolvedDependencies or boundDependenices * @param {Object} metadata Metadata of the package to bind a dependency to * @param {Object} dependencyMetadata Metadata data of a dependency package + * @return {Boolean} true if the package conflicts, else false */ PackageSet.prototype.hasConflict = function(property, metadata, dependencyMetadata) { if(metadata.parent === null || metadata.parent === undefined) { @@ -151,7 +152,7 @@ PackageSet.prototype.hasConflict = function(property, metadata, dependencyMetada * @param {Boolean} flatten Whether to bind to dependency as high as possible in the directory structure */ PackageSet.prototype.bindDependency = function(metadata, dependencyMetadata, flatten) { - if(metadata !== null) { + if(metadata.boundDependencies !== null) { // Bind the package to the given dependency if(metadata.boundDependencies === undefined) { metadata.boundDependencies = {}; @@ -222,22 +223,13 @@ PackageSet.prototype.resolveDependencies = function(resolvedDependencies, metada if(isBundledDependency(metadata, dependencyName)) { // Only include dependencies that are not bundled callback(); } else { - var parentDependency; - var baseDir; - - if(metadata === null) { - parentDependency = null; - baseDir = "./."; - } else { - parentDependency = self.findConformantParent(metadata.parent, dependencyName, versionSpec); - baseDir = metadata.baseDir; - } + var parentDependency = self.findConformantParent(metadata.parent, dependencyName, versionSpec); if(parentDependency === null) { // Only include a dependency, if none of the parents can provide the package that matches the version specifier slasp.sequence([ function(callback) { // Fetch package meta data from an external source - self.fetchMetaData(baseDir, dependencyName, versionSpec, callback); + self.fetchMetaData(metadata.baseDir, dependencyName, versionSpec, callback); }, function(callback, dependencyMetadata) { @@ -418,7 +410,7 @@ PackageSet.prototype.generatePackageArgsExpr = function(metadata, production, in homepage = new nijs.NixURL(metadata.packageObj.homepage); } - var expr = { + callback(null, { name: metadata.packageObj.name.replace("@", "_at_").replace("/", "_slash_"), // Escape characters from scoped package names that aren't allowed packageName: metadata.packageObj.name, version: metadata.packageObj.version, @@ -431,9 +423,7 @@ PackageSet.prototype.generatePackageArgsExpr = function(metadata, production, in license: metadata.packageObj.license }, production: production - }; - - callback(null, expr); + }); } ], callback); }; diff --git a/node-packages.nix b/node-packages.nix index 2fae7d4..e471995 100644 --- a/node-packages.nix +++ b/node-packages.nix @@ -481,13 +481,13 @@ let sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"; }; }; - "mime-types-2.1.14" = { + "mime-types-2.1.15" = { name = "mime-types"; packageName = "mime-types"; - version = "2.1.14"; + version = "2.1.15"; src = fetchurl { - url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.14.tgz"; - sha1 = "f7ef7d97583fcaf3b7d282b6f8b5679dab1e94ee"; + url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz"; + sha1 = "a4ebf5064094569237b8cf70046776d09fc92aed"; }; }; "oauth-sign-0.8.2" = { @@ -796,13 +796,13 @@ let sha1 = "63bc5dcb61331b92bc05fd528953c33462a06f8d"; }; }; - "mime-db-1.26.0" = { + "mime-db-1.27.0" = { name = "mime-db"; packageName = "mime-db"; - version = "1.26.0"; + version = "1.27.0"; src = fetchurl { - url = "https://registry.npmjs.org/mime-db/-/mime-db-1.26.0.tgz"; - sha1 = "eaffcd0e4fc6935cf8134da246e2e6c35305adff"; + url = "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz"; + sha1 = "820f572296bbd20ec25ed55e5b5de869e5436eb1"; }; }; "punycode-1.4.1" = { @@ -1361,9 +1361,9 @@ let sources."is-typedarray-1.0.0" sources."isstream-0.1.2" sources."json-stringify-safe-5.0.1" - (sources."mime-types-2.1.14" // { + (sources."mime-types-2.1.15" // { dependencies = [ - sources."mime-db-1.26.0" + sources."mime-db-1.27.0" ]; }) sources."oauth-sign-0.8.2" @@ -1572,6 +1572,7 @@ let meta = { description = "Generate Nix expressions to build NPM packages"; homepage = https://github.com/svanderburg/node2nix; + license = "MIT"; }; production = true; }; diff --git a/package.json b/package.json index c7ba365..25c51c6 100644 --- a/package.json +++ b/package.json @@ -27,8 +27,5 @@ "type": "git", "url": "https://github.com/svanderburg/node2nix" }, - "licenses": [ { - "type": "MIT", - "url": "https://github.com/svanderburg/node2nix/blob/master/LICENSE" - } ] + "license": "MIT" } diff --git a/tests/grunt/node-packages.nix b/tests/grunt/node-packages.nix index 18f4785..d533fa6 100644 --- a/tests/grunt/node-packages.nix +++ b/tests/grunt/node-packages.nix @@ -1237,22 +1237,22 @@ let sha1 = "8710d7af0aa626f8fffa1ce00168545263255748"; }; }; - "mime-types-2.1.14" = { + "mime-types-2.1.15" = { name = "mime-types"; packageName = "mime-types"; - version = "2.1.14"; + version = "2.1.15"; src = fetchurl { - url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.14.tgz"; - sha1 = "f7ef7d97583fcaf3b7d282b6f8b5679dab1e94ee"; + url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz"; + sha1 = "a4ebf5064094569237b8cf70046776d09fc92aed"; }; }; - "mime-db-1.26.0" = { + "mime-db-1.27.0" = { name = "mime-db"; packageName = "mime-db"; - version = "1.26.0"; + version = "1.27.0"; src = fetchurl { - url = "https://registry.npmjs.org/mime-db/-/mime-db-1.26.0.tgz"; - sha1 = "eaffcd0e4fc6935cf8134da246e2e6c35305adff"; + url = "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz"; + sha1 = "820f572296bbd20ec25ed55e5b5de869e5436eb1"; }; }; "ms-0.7.1" = { @@ -1691,9 +1691,9 @@ let (sources."type-is-1.6.14" // { dependencies = [ sources."media-typer-0.3.0" - (sources."mime-types-2.1.14" // { + (sources."mime-types-2.1.15" // { dependencies = [ - sources."mime-db-1.26.0" + sources."mime-db-1.27.0" ]; }) ]; diff --git a/tests/grunt/supplement.nix b/tests/grunt/supplement.nix index 13e2a03..eeee72a 100644 --- a/tests/grunt/supplement.nix +++ b/tests/grunt/supplement.nix @@ -1237,22 +1237,22 @@ let sha1 = "8710d7af0aa626f8fffa1ce00168545263255748"; }; }; - "mime-types-2.1.14" = { + "mime-types-2.1.15" = { name = "mime-types"; packageName = "mime-types"; - version = "2.1.14"; + version = "2.1.15"; src = fetchurl { - url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.14.tgz"; - sha1 = "f7ef7d97583fcaf3b7d282b6f8b5679dab1e94ee"; + url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz"; + sha1 = "a4ebf5064094569237b8cf70046776d09fc92aed"; }; }; - "mime-db-1.26.0" = { + "mime-db-1.27.0" = { name = "mime-db"; packageName = "mime-db"; - version = "1.26.0"; + version = "1.27.0"; src = fetchurl { - url = "https://registry.npmjs.org/mime-db/-/mime-db-1.26.0.tgz"; - sha1 = "eaffcd0e4fc6935cf8134da246e2e6c35305adff"; + url = "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz"; + sha1 = "820f572296bbd20ec25ed55e5b5de869e5436eb1"; }; }; "ms-0.7.1" = { diff --git a/tests/node-packages-v4.nix b/tests/node-packages-v4.nix index 50abba9..ecb82e7 100644 --- a/tests/node-packages-v4.nix +++ b/tests/node-packages-v4.nix @@ -202,13 +202,13 @@ let sha1 = "df604178005f522f15eb4490e7247a1bfaa67f8c"; }; }; - "proxy-addr-1.1.3" = { + "proxy-addr-1.1.4" = { name = "proxy-addr"; packageName = "proxy-addr"; - version = "1.1.3"; + version = "1.1.4"; src = fetchurl { - url = "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.1.3.tgz"; - sha1 = "dc97502f5722e888467b3fa2297a7b1ff47df074"; + url = "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.1.4.tgz"; + sha1 = "27e545f6960a44a627d9b44467e35c1b6b4ce2f3"; }; }; "qs-6.4.0" = { @@ -292,13 +292,13 @@ let sha1 = "67535ebb694c1d52257457984665323f587e8d37"; }; }; - "mime-types-2.1.14" = { + "mime-types-2.1.15" = { name = "mime-types"; packageName = "mime-types"; - version = "2.1.14"; + version = "2.1.15"; src = fetchurl { - url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.14.tgz"; - sha1 = "f7ef7d97583fcaf3b7d282b6f8b5679dab1e94ee"; + url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz"; + sha1 = "a4ebf5064094569237b8cf70046776d09fc92aed"; }; }; "negotiator-0.6.1" = { @@ -310,13 +310,13 @@ let sha1 = "2b327184e8992101177b28563fb5e7102acd0ca9"; }; }; - "mime-db-1.26.0" = { + "mime-db-1.27.0" = { name = "mime-db"; packageName = "mime-db"; - version = "1.26.0"; + version = "1.27.0"; src = fetchurl { - url = "https://registry.npmjs.org/mime-db/-/mime-db-1.26.0.tgz"; - sha1 = "eaffcd0e4fc6935cf8134da246e2e6c35305adff"; + url = "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz"; + sha1 = "820f572296bbd20ec25ed55e5b5de869e5436eb1"; }; }; "ms-0.7.2" = { @@ -355,13 +355,13 @@ let sha1 = "19ef9874c4ae1c297bcf078fde63a09b66a84363"; }; }; - "ipaddr.js-1.2.0" = { + "ipaddr.js-1.3.0" = { name = "ipaddr.js"; packageName = "ipaddr.js"; - version = "1.2.0"; + version = "1.3.0"; src = fetchurl { - url = "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.2.0.tgz"; - sha1 = "8aba49c9192799585bdd643e0ccb50e8ae777ba4"; + url = "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.3.0.tgz"; + sha1 = "1e03a52fdad83a8bbb2b25cbf4998b4cffcd3dec"; }; }; "debug-2.6.1" = { @@ -1843,10 +1843,10 @@ in async = nodeEnv.buildNodePackage { name = "async"; packageName = "async"; - version = "2.1.5"; + version = "2.2.0"; src = fetchurl { - url = "https://registry.npmjs.org/async/-/async-2.1.5.tgz"; - sha1 = "e587c68580994ac67fc56ff86d3ac56bdbe810bc"; + url = "https://registry.npmjs.org/async/-/async-2.2.0.tgz"; + sha1 = "c324eba010a237e4fbd55a12dee86367d5c0ef32"; }; dependencies = [ sources."lodash-4.17.4" @@ -1936,15 +1936,15 @@ in version = "4.15.2"; src = fetchgit { url = "https://github.com/strongloop/express.git"; - rev = "3763d73a1f6663460b32e600b8fc892075e069c5"; - sha256 = "a8ce9e426be06ddd0d3f612512373625c0416d3e61252c1ca40157fc419832bd"; + rev = "aabf7802a979f44cf75ffac2978724935d064fec"; + sha256 = "899062cf4926cc153f93c62f1abf215039386084a40d777a5ccdebbe8084c349"; }; dependencies = [ (sources."accepts-1.3.3" // { dependencies = [ - (sources."mime-types-2.1.14" // { + (sources."mime-types-2.1.15" // { dependencies = [ - sources."mime-db-1.26.0" + sources."mime-db-1.27.0" ]; }) sources."negotiator-0.6.1" @@ -1979,10 +1979,10 @@ in }) sources."parseurl-1.3.1" sources."path-to-regexp-0.1.7" - (sources."proxy-addr-1.1.3" // { + (sources."proxy-addr-1.1.4" // { dependencies = [ sources."forwarded-0.1.0" - sources."ipaddr.js-1.2.0" + sources."ipaddr.js-1.3.0" ]; }) sources."qs-6.4.0" @@ -2006,9 +2006,9 @@ in (sources."type-is-1.6.14" // { dependencies = [ sources."media-typer-0.3.0" - (sources."mime-types-2.1.14" // { + (sources."mime-types-2.1.15" // { dependencies = [ - sources."mime-db-1.26.0" + sources."mime-db-1.27.0" ]; }) ]; @@ -2036,9 +2036,9 @@ in dependencies = [ (sources."accepts-1.2.13" // { dependencies = [ - (sources."mime-types-2.1.14" // { + (sources."mime-types-2.1.15" // { dependencies = [ - sources."mime-db-1.26.0" + sources."mime-db-1.27.0" ]; }) sources."negotiator-0.5.3" @@ -2115,9 +2115,9 @@ in (sources."type-is-1.6.14" // { dependencies = [ sources."media-typer-0.3.0" - (sources."mime-types-2.1.14" // { + (sources."mime-types-2.1.15" // { dependencies = [ - sources."mime-db-1.26.0" + sources."mime-db-1.27.0" ]; }) ]; @@ -2139,15 +2139,15 @@ in version = "4.15.2"; src = fetchgit { url = "https://github.com/strongloop/express.git"; - rev = "3763d73a1f6663460b32e600b8fc892075e069c5"; - sha256 = "a8ce9e426be06ddd0d3f612512373625c0416d3e61252c1ca40157fc419832bd"; + rev = "aabf7802a979f44cf75ffac2978724935d064fec"; + sha256 = "899062cf4926cc153f93c62f1abf215039386084a40d777a5ccdebbe8084c349"; }; dependencies = [ (sources."accepts-1.3.3" // { dependencies = [ - (sources."mime-types-2.1.14" // { + (sources."mime-types-2.1.15" // { dependencies = [ - sources."mime-db-1.26.0" + sources."mime-db-1.27.0" ]; }) sources."negotiator-0.6.1" @@ -2182,10 +2182,10 @@ in }) sources."parseurl-1.3.1" sources."path-to-regexp-0.1.7" - (sources."proxy-addr-1.1.3" // { + (sources."proxy-addr-1.1.4" // { dependencies = [ sources."forwarded-0.1.0" - sources."ipaddr.js-1.2.0" + sources."ipaddr.js-1.3.0" ]; }) sources."qs-6.4.0" @@ -2209,9 +2209,9 @@ in (sources."type-is-1.6.14" // { dependencies = [ sources."media-typer-0.3.0" - (sources."mime-types-2.1.14" // { + (sources."mime-types-2.1.15" // { dependencies = [ - sources."mime-db-1.26.0" + sources."mime-db-1.27.0" ]; }) ]; @@ -2253,8 +2253,8 @@ in version = "4.17.4"; src = fetchgit { url = "git://github.com/lodash/lodash"; - rev = "8db488b943e4e979e9e7a57c99086a7648b57d23"; - sha256 = "cd05369223d19ec1866606723a8b945d0dec2fc21c139a6b854ec171c6274aa0"; + rev = "d7bdf0ae25f9ab6ffd7b9133c3dc42a93310448c"; + sha256 = "4e5f5c47bd88087180324ce88d94f3e38793185b964b2ed74b5bb4f0a564080b"; }; buildInputs = globalBuildInputs; meta = { @@ -2500,9 +2500,9 @@ in sources."is-typedarray-1.0.0" sources."isstream-0.1.2" sources."json-stringify-safe-5.0.1" - (sources."mime-types-2.1.14" // { + (sources."mime-types-2.1.15" // { dependencies = [ - sources."mime-db-1.26.0" + sources."mime-db-1.27.0" ]; }) sources."oauth-sign-0.8.2" diff --git a/tests/node-packages-v6.nix b/tests/node-packages-v6.nix index 507bbe5..9523ae2 100644 --- a/tests/node-packages-v6.nix +++ b/tests/node-packages-v6.nix @@ -202,13 +202,13 @@ let sha1 = "df604178005f522f15eb4490e7247a1bfaa67f8c"; }; }; - "proxy-addr-1.1.3" = { + "proxy-addr-1.1.4" = { name = "proxy-addr"; packageName = "proxy-addr"; - version = "1.1.3"; + version = "1.1.4"; src = fetchurl { - url = "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.1.3.tgz"; - sha1 = "dc97502f5722e888467b3fa2297a7b1ff47df074"; + url = "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.1.4.tgz"; + sha1 = "27e545f6960a44a627d9b44467e35c1b6b4ce2f3"; }; }; "qs-6.4.0" = { @@ -292,13 +292,13 @@ let sha1 = "67535ebb694c1d52257457984665323f587e8d37"; }; }; - "mime-types-2.1.14" = { + "mime-types-2.1.15" = { name = "mime-types"; packageName = "mime-types"; - version = "2.1.14"; + version = "2.1.15"; src = fetchurl { - url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.14.tgz"; - sha1 = "f7ef7d97583fcaf3b7d282b6f8b5679dab1e94ee"; + url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz"; + sha1 = "a4ebf5064094569237b8cf70046776d09fc92aed"; }; }; "negotiator-0.6.1" = { @@ -310,13 +310,13 @@ let sha1 = "2b327184e8992101177b28563fb5e7102acd0ca9"; }; }; - "mime-db-1.26.0" = { + "mime-db-1.27.0" = { name = "mime-db"; packageName = "mime-db"; - version = "1.26.0"; + version = "1.27.0"; src = fetchurl { - url = "https://registry.npmjs.org/mime-db/-/mime-db-1.26.0.tgz"; - sha1 = "eaffcd0e4fc6935cf8134da246e2e6c35305adff"; + url = "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz"; + sha1 = "820f572296bbd20ec25ed55e5b5de869e5436eb1"; }; }; "ms-0.7.2" = { @@ -355,13 +355,13 @@ let sha1 = "19ef9874c4ae1c297bcf078fde63a09b66a84363"; }; }; - "ipaddr.js-1.2.0" = { + "ipaddr.js-1.3.0" = { name = "ipaddr.js"; packageName = "ipaddr.js"; - version = "1.2.0"; + version = "1.3.0"; src = fetchurl { - url = "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.2.0.tgz"; - sha1 = "8aba49c9192799585bdd643e0ccb50e8ae777ba4"; + url = "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.3.0.tgz"; + sha1 = "1e03a52fdad83a8bbb2b25cbf4998b4cffcd3dec"; }; }; "debug-2.6.1" = { @@ -1834,10 +1834,10 @@ in async = nodeEnv.buildNodePackage { name = "async"; packageName = "async"; - version = "2.1.5"; + version = "2.2.0"; src = fetchurl { - url = "https://registry.npmjs.org/async/-/async-2.1.5.tgz"; - sha1 = "e587c68580994ac67fc56ff86d3ac56bdbe810bc"; + url = "https://registry.npmjs.org/async/-/async-2.2.0.tgz"; + sha1 = "c324eba010a237e4fbd55a12dee86367d5c0ef32"; }; dependencies = [ sources."lodash-4.17.4" @@ -1927,8 +1927,8 @@ in version = "4.15.2"; src = fetchgit { url = "https://github.com/strongloop/express.git"; - rev = "3763d73a1f6663460b32e600b8fc892075e069c5"; - sha256 = "a8ce9e426be06ddd0d3f612512373625c0416d3e61252c1ca40157fc419832bd"; + rev = "aabf7802a979f44cf75ffac2978724935d064fec"; + sha256 = "899062cf4926cc153f93c62f1abf215039386084a40d777a5ccdebbe8084c349"; }; dependencies = [ sources."accepts-1.3.3" @@ -1949,7 +1949,7 @@ in sources."on-finished-2.3.0" sources."parseurl-1.3.1" sources."path-to-regexp-0.1.7" - sources."proxy-addr-1.1.3" + sources."proxy-addr-1.1.4" sources."qs-6.4.0" sources."range-parser-1.2.0" (sources."send-0.15.1" // { @@ -1963,14 +1963,14 @@ in sources."type-is-1.6.14" sources."utils-merge-1.0.0" sources."vary-1.1.1" - sources."mime-types-2.1.14" + sources."mime-types-2.1.15" sources."negotiator-0.6.1" - sources."mime-db-1.26.0" + sources."mime-db-1.27.0" sources."ms-0.7.2" sources."unpipe-1.0.0" sources."ee-first-1.1.1" sources."forwarded-0.1.0" - sources."ipaddr.js-1.2.0" + sources."ipaddr.js-1.3.0" sources."destroy-1.0.4" sources."http-errors-1.6.1" sources."mime-1.3.4" @@ -2027,9 +2027,9 @@ in sources."type-is-1.6.14" sources."utils-merge-1.0.0" sources."vary-1.0.1" - sources."mime-types-2.1.14" + sources."mime-types-2.1.15" sources."negotiator-0.5.3" - sources."mime-db-1.26.0" + sources."mime-db-1.27.0" sources."ms-0.7.1" sources."unpipe-1.0.0" sources."ee-first-1.1.1" @@ -2056,8 +2056,8 @@ in version = "4.15.2"; src = fetchgit { url = "https://github.com/strongloop/express.git"; - rev = "3763d73a1f6663460b32e600b8fc892075e069c5"; - sha256 = "a8ce9e426be06ddd0d3f612512373625c0416d3e61252c1ca40157fc419832bd"; + rev = "aabf7802a979f44cf75ffac2978724935d064fec"; + sha256 = "899062cf4926cc153f93c62f1abf215039386084a40d777a5ccdebbe8084c349"; }; dependencies = [ sources."accepts-1.3.3" @@ -2078,7 +2078,7 @@ in sources."on-finished-2.3.0" sources."parseurl-1.3.1" sources."path-to-regexp-0.1.7" - sources."proxy-addr-1.1.3" + sources."proxy-addr-1.1.4" sources."qs-6.4.0" sources."range-parser-1.2.0" (sources."send-0.15.1" // { @@ -2092,14 +2092,14 @@ in sources."type-is-1.6.14" sources."utils-merge-1.0.0" sources."vary-1.1.1" - sources."mime-types-2.1.14" + sources."mime-types-2.1.15" sources."negotiator-0.6.1" - sources."mime-db-1.26.0" + sources."mime-db-1.27.0" sources."ms-0.7.2" sources."unpipe-1.0.0" sources."ee-first-1.1.1" sources."forwarded-0.1.0" - sources."ipaddr.js-1.2.0" + sources."ipaddr.js-1.3.0" sources."destroy-1.0.4" sources."http-errors-1.6.1" sources."mime-1.3.4" @@ -2140,8 +2140,8 @@ in version = "4.17.4"; src = fetchgit { url = "git://github.com/lodash/lodash"; - rev = "8db488b943e4e979e9e7a57c99086a7648b57d23"; - sha256 = "cd05369223d19ec1866606723a8b945d0dec2fc21c139a6b854ec171c6274aa0"; + rev = "d7bdf0ae25f9ab6ffd7b9133c3dc42a93310448c"; + sha256 = "4e5f5c47bd88087180324ce88d94f3e38793185b964b2ed74b5bb4f0a564080b"; }; buildInputs = globalBuildInputs; meta = { @@ -2288,7 +2288,7 @@ in sources."is-typedarray-1.0.0" sources."isstream-0.1.2" sources."json-stringify-safe-5.0.1" - sources."mime-types-2.1.14" + sources."mime-types-2.1.15" sources."oauth-sign-0.8.2" sources."performance-now-0.2.0" sources."qs-6.4.0" @@ -2338,7 +2338,7 @@ in sources."jodid25519-1.0.2" sources."ecc-jsbn-0.1.1" sources."bcrypt-pbkdf-1.0.1" - sources."mime-db-1.26.0" + sources."mime-db-1.27.0" sources."punycode-1.4.1" sources."nan-2.5.1" sources."node-pre-gyp-0.6.34"