From 574a3b9cf74275c99abfb59f676ea17f65df0404 Mon Sep 17 00:00:00 2001 From: Alan Pearce Date: Mon, 3 Oct 2022 00:00:31 +0200 Subject: javascript: update to nodejs 18 --- user/packages/node2nix/Makefile | 2 +- user/packages/node2nix/default.nix | 2 +- user/packages/node2nix/node-env.nix | 106 ++++++++- user/packages/node2nix/node-packages.json | 2 +- user/packages/node2nix/node-packages.nix | 359 ++++++++++++++++-------------- user/settings/development/javascript.nix | 4 +- 6 files changed, 295 insertions(+), 180 deletions(-) (limited to 'user') diff --git a/user/packages/node2nix/Makefile b/user/packages/node2nix/Makefile index ae9b07e2..3fc533ec 100644 --- a/user/packages/node2nix/Makefile +++ b/user/packages/node2nix/Makefile @@ -1,5 +1,5 @@ default.nix: node-packages.json - nix-shell -p nodePackages.node2nix --run "node2nix --nodejs-14 --input $<" + nix-shell -p nodePackages.node2nix --run "node2nix --nodejs-18 --input $<" install: default.nix nix-env -f default.nix -i diff --git a/user/packages/node2nix/default.nix b/user/packages/node2nix/default.nix index 08f947ea..6bbc4310 100644 --- a/user/packages/node2nix/default.nix +++ b/user/packages/node2nix/default.nix @@ -2,7 +2,7 @@ {pkgs ? import { inherit system; - }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-14_x"}: + }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-18_x"}: let nodeEnv = import ./node-env.nix { diff --git a/user/packages/node2nix/node-env.nix b/user/packages/node2nix/node-env.nix index 2590dd26..5dad9ec6 100644 --- a/user/packages/node2nix/node-env.nix +++ b/user/packages/node2nix/node-env.nix @@ -165,7 +165,11 @@ let if(process.argv[2] == "development") { replaceDependencies(packageObj.devDependencies); } + else { + packageObj.devDependencies = {}; + } replaceDependencies(packageObj.optionalDependencies); + replaceDependencies(packageObj.peerDependencies); /* Write the fixed package.json file */ fs.writeFileSync("package.json", JSON.stringify(packageObj, null, 2)); @@ -270,7 +274,7 @@ let # Reconstructs a package-lock file from the node_modules/ folder structure and package.json files with dummy sha1 hashes reconstructPackageLock = writeTextFile { - name = "addintegrityfields.js"; + name = "reconstructpackagelock.js"; text = '' var fs = require('fs'); var path = require('path'); @@ -280,25 +284,43 @@ let var lockObj = { name: packageObj.name, version: packageObj.version, - lockfileVersion: 1, + lockfileVersion: 2, requires: true, + packages: { + "": { + name: packageObj.name, + version: packageObj.version, + license: packageObj.license, + bin: packageObj.bin, + dependencies: packageObj.dependencies, + engines: packageObj.engines, + optionalDependencies: packageObj.optionalDependencies + } + }, dependencies: {} }; - function augmentPackageJSON(filePath, dependencies) { + function augmentPackageJSON(filePath, packages, dependencies) { var packageJSON = path.join(filePath, "package.json"); if(fs.existsSync(packageJSON)) { var packageObj = JSON.parse(fs.readFileSync(packageJSON)); + packages[filePath] = { + version: packageObj.version, + integrity: "sha1-000000000000000000000000000=", + dependencies: packageObj.dependencies, + engines: packageObj.engines, + optionalDependencies: packageObj.optionalDependencies + }; dependencies[packageObj.name] = { version: packageObj.version, integrity: "sha1-000000000000000000000000000=", dependencies: {} }; - processDependencies(path.join(filePath, "node_modules"), dependencies[packageObj.name].dependencies); + processDependencies(path.join(filePath, "node_modules"), packages, dependencies[packageObj.name].dependencies); } } - function processDependencies(dir, dependencies) { + function processDependencies(dir, packages, dependencies) { if(fs.existsSync(dir)) { var files = fs.readdirSync(dir); @@ -314,23 +336,84 @@ let pkgFiles.forEach(function(entry) { if(stats.isDirectory()) { var pkgFilePath = path.join(filePath, entry); - augmentPackageJSON(pkgFilePath, dependencies); + augmentPackageJSON(pkgFilePath, packages, dependencies); } }); } else { - augmentPackageJSON(filePath, dependencies); + augmentPackageJSON(filePath, packages, dependencies); } } }); } } - processDependencies("node_modules", lockObj.dependencies); + processDependencies("node_modules", lockObj.packages, lockObj.dependencies); fs.writeFileSync("package-lock.json", JSON.stringify(lockObj, null, 2)); ''; }; + # Script that links bins defined in package.json to the node_modules bin directory + # NPM does not do this for top-level packages itself anymore as of v7 + linkBinsScript = writeTextFile { + name = "linkbins.js"; + text = '' + var fs = require('fs'); + var path = require('path'); + + var packageObj = JSON.parse(fs.readFileSync("package.json")); + + var nodeModules = Array(packageObj.name.split("/").length).fill("..").join(path.sep); + + if(packageObj.bin !== undefined) { + fs.mkdirSync(path.join(nodeModules, ".bin")) + + if(typeof packageObj.bin == "object") { + Object.keys(packageObj.bin).forEach(function(exe) { + if(fs.existsSync(packageObj.bin[exe])) { + console.log("linking bin '" + exe + "'"); + fs.symlinkSync( + path.join("..", packageObj.name, packageObj.bin[exe]), + path.join(nodeModules, ".bin", exe) + ); + } + else { + console.log("skipping non-existent bin '" + exe + "'"); + } + }) + } + else { + if(fs.existsSync(packageObj.bin)) { + console.log("linking bin '" + packageObj.bin + "'"); + fs.symlinkSync( + path.join("..", packageObj.name, packageObj.bin), + path.join(nodeModules, ".bin", packageObj.name.split("/").pop()) + ); + } + else { + console.log("skipping non-existent bin '" + packageObj.bin + "'"); + } + } + } + else if(packageObj.directories !== undefined && packageObj.directories.bin !== undefined) { + fs.mkdirSync(path.join(nodeModules, ".bin")) + + fs.readdirSync(packageObj.directories.bin).forEach(function(exe) { + if(fs.existsSync(path.join(packageObj.directories.bin, exe))) { + console.log("linking bin '" + exe + "'"); + fs.symlinkSync( + path.join("..", packageObj.name, packageObj.directories.bin, exe), + path.join(nodeModules, ".bin", exe) + ); + } + else { + console.log("skipping non-existent bin '" + exe + "'"); + } + }) + } + ''; + }; + prepareAndInvokeNPM = {packageName, bypassCache, reconstructLock, npmFlags, production}: let forceOfflineFlag = if bypassCache then "--offline" else "--registry http://www.example.com"; @@ -377,13 +460,18 @@ let npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${lib.optionalString production "--production"} rebuild + runHook postRebuild + 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} ${lib.optionalString production "--production"} install + npm ${forceOfflineFlag} --nodedir=${nodeSources} --no-bin-links --ignore-scripts ${npmFlags} ${lib.optionalString production "--production"} install fi + + # Link executables defined in package.json + node ${linkBinsScript} ''; # Builds and composes an NPM package including all its dependencies diff --git a/user/packages/node2nix/node-packages.json b/user/packages/node2nix/node-packages.json index 072c0d68..29885292 100644 --- a/user/packages/node2nix/node-packages.json +++ b/user/packages/node2nix/node-packages.json @@ -1,5 +1,5 @@ [ - { "pnpm": "5.18" }, + { "pnpm": "7.12" }, "pino-pretty", "npm-merge-driver", "node-cljfmt", diff --git a/user/packages/node2nix/node-packages.nix b/user/packages/node2nix/node-packages.nix index 1df0dba0..0d449525 100644 --- a/user/packages/node2nix/node-packages.nix +++ b/user/packages/node2nix/node-packages.nix @@ -4,22 +4,13 @@ let sources = { - "ansi-styles-3.2.1" = { - name = "ansi-styles"; - packageName = "ansi-styles"; - version = "3.2.1"; - src = fetchurl { - url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz"; - sha512 = "VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA=="; - }; - }; - "args-5.0.1" = { - name = "args"; - packageName = "args"; - version = "5.0.1"; + "abort-controller-3.0.0" = { + name = "abort-controller"; + packageName = "abort-controller"; + version = "3.0.0"; src = fetchurl { - url = "https://registry.npmjs.org/args/-/args-5.0.1.tgz"; - sha512 = "1kqmFCFsPffavQFGt8OxJdIcETti99kySRUPMpOhaGjL6mRJn8HFU1OxKY5bMqfZKUwTQc1mZkAjmGYaVOHFtQ=="; + url = "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz"; + sha512 = "h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg=="; }; }; "asn1.js-5.4.1" = { @@ -49,6 +40,15 @@ let sha512 = "kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ=="; }; }; + "balanced-match-1.0.2" = { + name = "balanced-match"; + packageName = "balanced-match"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz"; + sha512 = "3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="; + }; + }; "base64-js-1.5.1" = { name = "base64-js"; packageName = "base64-js"; @@ -76,6 +76,15 @@ let sha512 = "eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ=="; }; }; + "brace-expansion-2.0.1" = { + name = "brace-expansion"; + packageName = "brace-expansion"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz"; + sha512 = "XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA=="; + }; + }; "brorand-1.1.0" = { name = "brorand"; packageName = "brorand"; @@ -148,6 +157,15 @@ let sha512 = "xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg=="; }; }; + "buffer-6.0.3" = { + name = "buffer"; + packageName = "buffer"; + version = "6.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz"; + sha512 = "FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA=="; + }; + }; "buffer-xor-1.0.3" = { name = "buffer-xor"; packageName = "buffer-xor"; @@ -157,6 +175,15 @@ let sha512 = "571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ=="; }; }; + "bufferutil-4.0.6" = { + name = "bufferutil"; + packageName = "bufferutil"; + version = "4.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.6.tgz"; + sha512 = "jduaYOYtnio4aIAyc6UbvPCVcgq7nYpVnucyxr6eCYg/Woad9Hf/oxxBRDnGGjPfjUm6j5O/uBWhIu4iLebFaw=="; + }; + }; "builtin-status-codes-3.0.0" = { name = "builtin-status-codes"; packageName = "builtin-status-codes"; @@ -166,24 +193,6 @@ let sha512 = "HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ=="; }; }; - "camelcase-5.0.0" = { - name = "camelcase"; - packageName = "camelcase"; - version = "5.0.0"; - src = fetchurl { - url = "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz"; - sha512 = "faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA=="; - }; - }; - "chalk-2.4.2" = { - name = "chalk"; - packageName = "chalk"; - version = "2.4.2"; - src = fetchurl { - url = "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz"; - sha512 = "Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ=="; - }; - }; "cipher-base-1.0.4" = { name = "cipher-base"; packageName = "cipher-base"; @@ -193,31 +202,13 @@ let sha512 = "Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q=="; }; }; - "color-convert-1.9.3" = { - name = "color-convert"; - packageName = "color-convert"; - version = "1.9.3"; - src = fetchurl { - url = "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz"; - sha512 = "QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg=="; - }; - }; - "color-name-1.1.3" = { - name = "color-name"; - packageName = "color-name"; - version = "1.1.3"; - src = fetchurl { - url = "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz"; - sha512 = "72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="; - }; - }; - "colorette-2.0.17" = { + "colorette-2.0.19" = { name = "colorette"; packageName = "colorette"; - version = "2.0.17"; + version = "2.0.19"; src = fetchurl { - url = "https://registry.npmjs.org/colorette/-/colorette-2.0.17.tgz"; - sha512 = "hJo+3Bkn0NCHybn9Tu35fIeoOKGOk5OCC32y4Hz2It+qlCO2Q3DeQ1hRn/tDDMQKRYUEzqsl7jbF6dYKjlE60g=="; + url = "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz"; + sha512 = "3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ=="; }; }; "console-browserify-1.2.0" = { @@ -319,15 +310,6 @@ let sha512 = "jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA=="; }; }; - "duplexify-4.1.2" = { - name = "duplexify"; - packageName = "duplexify"; - version = "4.1.2"; - src = fetchurl { - url = "https://registry.npmjs.org/duplexify/-/duplexify-4.1.2.tgz"; - sha512 = "fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw=="; - }; - }; "elliptic-6.5.4" = { name = "elliptic"; packageName = "elliptic"; @@ -346,13 +328,13 @@ let sha512 = "+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q=="; }; }; - "escape-string-regexp-1.0.5" = { - name = "escape-string-regexp"; - packageName = "escape-string-regexp"; - version = "1.0.5"; + "event-target-shim-5.0.1" = { + name = "event-target-shim"; + packageName = "event-target-shim"; + version = "5.0.1"; src = fetchurl { - url = "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz"; - sha512 = "vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg=="; + url = "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz"; + sha512 = "i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ=="; }; }; "events-3.3.0" = { @@ -373,13 +355,13 @@ let sha512 = "/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA=="; }; }; - "fast-copy-2.1.3" = { + "fast-copy-2.1.7" = { name = "fast-copy"; packageName = "fast-copy"; - version = "2.1.3"; + version = "2.1.7"; src = fetchurl { - url = "https://registry.npmjs.org/fast-copy/-/fast-copy-2.1.3.tgz"; - sha512 = "LDzYKNTHhD+XOp8wGMuCkY4eTxFZOOycmpwLBiuF3r3OjOmZnURRD8t2dUAbmKuXGbo/MGggwbSjcBdp8QT0+g=="; + url = "https://registry.npmjs.org/fast-copy/-/fast-copy-2.1.7.tgz"; + sha512 = "ozrGwyuCTAy7YgFCua8rmqmytECYk/JYAMXcswOcm0qvGoE3tPb7ivBeIHTOK2DiapBhDZgacIhzhQIKU5TCfA=="; }; }; "fast-safe-stringify-2.1.1" = { @@ -391,13 +373,22 @@ let sha512 = "W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA=="; }; }; - "has-flag-3.0.0" = { - name = "has-flag"; - packageName = "has-flag"; - version = "3.0.0"; + "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"; + sha512 = "OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="; + }; + }; + "glob-8.0.3" = { + name = "glob"; + packageName = "glob"; + version = "8.0.3"; src = fetchurl { - url = "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz"; - sha512 = "sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw=="; + url = "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz"; + sha512 = "ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ=="; }; }; "hash-base-3.1.0" = { @@ -418,6 +409,15 @@ let sha512 = "taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA=="; }; }; + "help-me-4.1.0" = { + name = "help-me"; + packageName = "help-me"; + version = "4.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/help-me/-/help-me-4.1.0.tgz"; + sha512 = "5HMrkOks2j8Fpu2j5nTLhrBhT7VwHwELpqnSnx802ckofys5MO2SkLpgSz3dgNFHV7IYFX2igm5CM75SmuYidw=="; + }; + }; "hmac-drbg-1.0.1" = { name = "hmac-drbg"; packageName = "hmac-drbg"; @@ -445,6 +445,15 @@ let sha512 = "dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="; }; }; + "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"; + sha512 = "k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA=="; + }; + }; "inherits-2.0.1" = { name = "inherits"; packageName = "inherits"; @@ -499,15 +508,6 @@ let sha512 = "34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw=="; }; }; - "leven-2.1.0" = { - name = "leven"; - packageName = "leven"; - version = "2.1.0"; - src = fetchurl { - url = "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz"; - sha512 = "nvVPLpIHUxCUoRLrFqTgSxXJ614d8AgQoWl7zPe/2VadE8+1dpU3LBhowRuBAcuwruWtOdD8oYC9jDNJjXDPyA=="; - }; - }; "md5.js-1.3.5" = { name = "md5.js"; packageName = "md5.js"; @@ -544,13 +544,31 @@ let sha512 = "JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg=="; }; }; - "mri-1.1.4" = { - name = "mri"; - packageName = "mri"; - version = "1.1.4"; + "minimatch-5.1.0" = { + name = "minimatch"; + packageName = "minimatch"; + version = "5.1.0"; src = fetchurl { - url = "https://registry.npmjs.org/mri/-/mri-1.1.4.tgz"; - sha512 = "6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w=="; + url = "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz"; + sha512 = "9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg=="; + }; + }; + "minimist-1.2.6" = { + name = "minimist"; + packageName = "minimist"; + version = "1.2.6"; + src = fetchurl { + url = "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz"; + sha512 = "Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q=="; + }; + }; + "node-gyp-build-4.5.0" = { + name = "node-gyp-build"; + packageName = "node-gyp-build"; + version = "4.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.5.0.tgz"; + sha512 = "2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg=="; }; }; "node-libs-browser-2.2.1" = { @@ -571,13 +589,13 @@ let sha512 = "rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="; }; }; - "on-exit-leak-free-0.2.0" = { + "on-exit-leak-free-2.1.0" = { name = "on-exit-leak-free"; packageName = "on-exit-leak-free"; - version = "0.2.0"; + version = "2.1.0"; src = fetchurl { - url = "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-0.2.0.tgz"; - sha512 = "dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg=="; + url = "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.0.tgz"; + sha512 = "VuCaZZAjReZ3vUwgOB8LxAosIurDiAW0s13rI1YwmaP++jvcxP77AWoQvenZebpCA2m8WC1/EosPYPMjnRAp/w=="; }; }; "once-1.4.0" = { @@ -634,13 +652,13 @@ let sha512 = "iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA=="; }; }; - "pino-abstract-transport-0.5.0" = { + "pino-abstract-transport-1.0.0" = { name = "pino-abstract-transport"; packageName = "pino-abstract-transport"; - version = "0.5.0"; + version = "1.0.0"; src = fetchurl { - url = "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-0.5.0.tgz"; - sha512 = "+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ=="; + url = "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.0.0.tgz"; + sha512 = "c7vo5OpW4wIS42hUVcT5REsL8ZljsUfBjqV/e2sFxmFEFZiq1XLUp5EYLtuDH6PEHq9W1egWqRbnLUP5FuZmOA=="; }; }; "process-0.11.10" = { @@ -751,6 +769,15 @@ let sha512 = "BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA=="; }; }; + "readable-stream-4.2.0" = { + name = "readable-stream"; + packageName = "readable-stream"; + version = "4.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/readable-stream/-/readable-stream-4.2.0.tgz"; + sha512 = "gJrBHsaI3lgBoGMW/jHZsQ/o/TIWiu5ENCJG1BB7fuCKzpFM8GaS2UoBVt9NO+oI+3FcrBNbUkl3ilDe09aY4A=="; + }; + }; "readline-sync-1.4.10" = { name = "readline-sync"; packageName = "readline-sync"; @@ -796,13 +823,13 @@ let sha512 = "YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="; }; }; - "secure-json-parse-2.4.0" = { + "secure-json-parse-2.5.0" = { name = "secure-json-parse"; packageName = "secure-json-parse"; - version = "2.4.0"; + version = "2.5.0"; src = fetchurl { - url = "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.4.0.tgz"; - sha512 = "Q5Z/97nbON5t/L/sH6mY2EacfjVGwrCcSi5D3btRO2GZ8pf1K1UN7Z9H5J57hjVU2Qzxr1xO+FmBhOvEkzCMmg=="; + url = "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.5.0.tgz"; + sha512 = "ZQruFgZnIWH+WyO9t5rWt4ZEGqCKPwhiw+YbzTwpmT9elgLrLcfuyUiSnwwjUiVy9r4VM3urtbNF1xmEh9IL2w=="; }; }; "setimmediate-1.0.5" = { @@ -832,13 +859,13 @@ let sha512 = "XmeffAZHv8z7451kzeq9oKh8fh278Ak+UIOGGrapyqrFBB773xN8vMQ3O7J7TYLnb9BUwcqadKkmgaq7q6fhZg=="; }; }; - "sonic-boom-2.8.0" = { + "sonic-boom-3.2.0" = { name = "sonic-boom"; packageName = "sonic-boom"; - version = "2.8.0"; + version = "3.2.0"; src = fetchurl { - url = "https://registry.npmjs.org/sonic-boom/-/sonic-boom-2.8.0.tgz"; - sha512 = "kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg=="; + url = "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.2.0.tgz"; + sha512 = "SbbZ+Kqj/XIunvIAgUZRlqd6CGQYq71tRRbXR92Za8J/R3Yh4Av+TWENiSiEgnlwckYLyP0YZQWVfyNC0dzLaA=="; }; }; "source-map-0.5.7" = { @@ -886,15 +913,6 @@ let sha512 = "+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw=="; }; }; - "stream-shift-1.0.1" = { - name = "stream-shift"; - packageName = "stream-shift"; - version = "1.0.1"; - src = fetchurl { - url = "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz"; - sha512 = "AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ=="; - }; - }; "string_decoder-1.1.1" = { name = "string_decoder"; packageName = "string_decoder"; @@ -922,15 +940,6 @@ let sha512 = "6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="; }; }; - "supports-color-5.5.0" = { - name = "supports-color"; - packageName = "supports-color"; - version = "5.5.0"; - src = fetchurl { - url = "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz"; - sha512 = "QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow=="; - }; - }; "timers-browserify-2.0.12" = { name = "timers-browserify"; packageName = "timers-browserify"; @@ -967,6 +976,15 @@ let sha512 = "kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ=="; }; }; + "utf-8-validate-5.0.9" = { + name = "utf-8-validate"; + packageName = "utf-8-validate"; + version = "5.0.9"; + src = fetchurl { + url = "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.9.tgz"; + sha512 = "Yek7dAy0v3Kl0orwMlvi7TPtiCNrdfHNd7Gcc/pLq4BLXqfAmd0J7OWMizUQnTTJsyjKn02mU7anqwfmUP4J8Q=="; + }; + }; "util-0.10.3" = { name = "util"; packageName = "util"; @@ -1018,16 +1036,16 @@ let version = "1.0.2"; src = fetchurl { url = "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"; - sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"; + sha512 = "l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="; }; }; - "ws-7.5.8" = { + "ws-7.5.9" = { name = "ws"; packageName = "ws"; - version = "7.5.8"; + version = "7.5.9"; src = fetchurl { - url = "https://registry.npmjs.org/ws/-/ws-7.5.8.tgz"; - sha512 = "ri1Id1WinAX5Jqn9HejiGb8crfRio0Qgu8+MtL36rlTA6RLsMdWt1Az/19A2Qij6uSHUMphEFaTKa4WG+UNHNw=="; + url = "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz"; + sha512 = "F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q=="; }; }; "xtend-4.0.2" = { @@ -1042,18 +1060,18 @@ let }; in { - "pnpm-5.18" = nodeEnv.buildNodePackage { + "pnpm-7.12" = nodeEnv.buildNodePackage { name = "pnpm"; packageName = "pnpm"; - version = "5.18.11"; + version = "7.12.2"; src = fetchurl { - url = "https://registry.npmjs.org/pnpm/-/pnpm-5.18.11.tgz"; - sha512 = "vcj/C6PRLJNRv7G+L8lGHnUcbFEoNNWPy8JxHBBVS/jA1defNQJ3FpyJ6JL/+9xqWLjJGL24J1kWsXzRLM8CNw=="; + url = "https://registry.npmjs.org/pnpm/-/pnpm-7.12.2.tgz"; + sha512 = "8QvnKANKN+YZXDmVYGI7zRJysdKldZI+w3AYnxu9IwtnLv1x6WuzrJr0nxMcTeuUAT908RjDqK+/6KJB9wNqxA=="; }; buildInputs = globalBuildInputs; meta = { description = "Fast, disk space efficient package manager"; - homepage = "https://pnpm.js.org"; + homepage = "https://pnpm.io"; license = "MIT"; }; production = true; @@ -1063,44 +1081,50 @@ in pino-pretty = nodeEnv.buildNodePackage { name = "pino-pretty"; packageName = "pino-pretty"; - version = "8.0.0"; + version = "9.1.0"; src = fetchurl { - url = "https://registry.npmjs.org/pino-pretty/-/pino-pretty-8.0.0.tgz"; - sha512 = "6Zn+2HBc8ZXEJb1XYZfY0Kh0jVBeKxmu077BzE0wzJZzQwNffmdQbIH7bNe0WPLjLApnVTx8TvvR8UNUcgE4nA=="; + url = "https://registry.npmjs.org/pino-pretty/-/pino-pretty-9.1.0.tgz"; + sha512 = "IM6NY9LLo/dVgY7/prJhCh4rAJukafdt0ibxeNOWc2fxKMyTk90SOB9Ao2HfbtShT9QPeP0ePpJktksMhSQMYA=="; }; dependencies = [ - sources."ansi-styles-3.2.1" - sources."args-5.0.1" + sources."abort-controller-3.0.0" sources."atomic-sleep-1.0.0" - sources."camelcase-5.0.0" - sources."chalk-2.4.2" - sources."color-convert-1.9.3" - sources."color-name-1.1.3" - sources."colorette-2.0.17" + sources."balanced-match-1.0.2" + sources."base64-js-1.5.1" + sources."brace-expansion-2.0.1" + sources."buffer-6.0.3" + sources."colorette-2.0.19" sources."dateformat-4.6.3" - sources."duplexify-4.1.2" sources."end-of-stream-1.4.4" - sources."escape-string-regexp-1.0.5" - sources."fast-copy-2.1.3" + sources."event-target-shim-5.0.1" + sources."events-3.3.0" + sources."fast-copy-2.1.7" sources."fast-safe-stringify-2.1.1" - sources."has-flag-3.0.0" + sources."fs.realpath-1.0.0" + sources."glob-8.0.3" + (sources."help-me-4.1.0" // { + dependencies = [ + sources."readable-stream-3.6.0" + ]; + }) + sources."ieee754-1.2.1" + sources."inflight-1.0.6" sources."inherits-2.0.4" sources."joycon-3.1.1" - sources."leven-2.1.0" - sources."mri-1.1.4" - sources."on-exit-leak-free-0.2.0" + sources."minimatch-5.1.0" + sources."minimist-1.2.6" + sources."on-exit-leak-free-2.1.0" sources."once-1.4.0" - sources."pino-abstract-transport-0.5.0" + sources."pino-abstract-transport-1.0.0" + sources."process-0.11.10" sources."pump-3.0.0" - sources."readable-stream-3.6.0" + sources."readable-stream-4.2.0" sources."safe-buffer-5.2.1" - sources."secure-json-parse-2.4.0" - sources."sonic-boom-2.8.0" + sources."secure-json-parse-2.5.0" + sources."sonic-boom-3.2.0" sources."split2-4.1.0" - sources."stream-shift-1.0.1" sources."string_decoder-1.3.0" sources."strip-json-comments-3.1.1" - sources."supports-color-5.5.0" sources."util-deprecate-1.0.2" sources."wrappy-1.0.2" ]; @@ -1153,10 +1177,10 @@ in shadow-cljs = nodeEnv.buildNodePackage { name = "shadow-cljs"; packageName = "shadow-cljs"; - version = "2.19.2"; + version = "2.20.2"; src = fetchurl { - url = "https://registry.npmjs.org/shadow-cljs/-/shadow-cljs-2.19.2.tgz"; - sha512 = "5JFger305+x6QKIuzab8FAaRLav7NaOszo6E60oFuQiI2+Q6nhy4UioPSCIeUqWOC1I8jIyhZ9U1nVa7czMAuQ=="; + url = "https://registry.npmjs.org/shadow-cljs/-/shadow-cljs-2.20.2.tgz"; + sha512 = "2kzWnV1QM6KBetziCAkCf8BJdnDX2CwiAr4yhvOsiQpaNJcMzwMsJTX/gTHz58yQg0dV5uwPsIyBlvyIfl30rg=="; }; dependencies = [ (sources."asn1.js-5.4.1" // { @@ -1185,6 +1209,7 @@ in sources."browserify-zlib-0.2.0" sources."buffer-4.9.2" sources."buffer-xor-1.0.3" + sources."bufferutil-4.0.6" sources."builtin-status-codes-3.0.0" sources."cipher-base-1.0.4" sources."console-browserify-1.2.0" @@ -1238,6 +1263,7 @@ in }) sources."minimalistic-assert-1.0.1" sources."minimalistic-crypto-utils-1.0.1" + sources."node-gyp-build-4.5.0" sources."node-libs-browser-2.2.1" sources."object-assign-4.1.1" sources."os-browserify-0.3.0" @@ -1284,6 +1310,7 @@ in sources."punycode-1.3.2" ]; }) + sources."utf-8-validate-5.0.9" (sources."util-0.11.1" // { dependencies = [ sources."inherits-2.0.3" @@ -1292,7 +1319,7 @@ in sources."util-deprecate-1.0.2" sources."vm-browserify-1.1.2" sources."which-1.3.1" - sources."ws-7.5.8" + sources."ws-7.5.9" sources."xtend-4.0.2" ]; buildInputs = globalBuildInputs; diff --git a/user/settings/development/javascript.nix b/user/settings/development/javascript.nix index 682513ca..b07c134a 100644 --- a/user/settings/development/javascript.nix +++ b/user/settings/development/javascript.nix @@ -1,7 +1,7 @@ { config, pkgs, ... }: let - nodejs = pkgs.nodejs-14_x; + nodejs = pkgs.nodejs-18_x; in { nixpkgs.overlays = [ @@ -38,7 +38,7 @@ in node-gyp-build node-pre-gyp ]) ++ (with pkgs.node2nixPackages; [ - pkgs.node2nixPackages."pnpm-5.18" + pkgs.node2nixPackages."pnpm-7.12" pino-pretty ]); -- cgit 1.4.1