Add commitgpt package

This commit is contained in:
Erwin Boskma 2022-12-05 11:02:12 +01:00
parent e17c31bd77
commit 543dba91de
Signed by: erwin
SSH key fingerprint: SHA256:CyeNoWXd3kjX2Nwu6pDxxdS7OqmPVOy0NavA/KU/ntU
6 changed files with 1414 additions and 1 deletions

View file

@ -1,4 +1,4 @@
_final: prev: rec {
_final: prev: {
rofi-wayland = prev.pkgs.callPackage ../pkgs/rofi-wayland { };
nix-plugins = prev.pkgs.callPackage ../pkgs/nix-plugins { };
lunarvim = prev.pkgs.callPackage ../pkgs/lunarvim { };
@ -22,4 +22,6 @@ _final: prev: rec {
buildInputs = prevAttrs.buildInputs ++ [ prev.wayland-protocols prev.libappindicator-gtk3 prev.libinput prev.jack2 ];
mesonFlags = prevAttrs.mesonFlags ++ [ "-Dexperimental=true" ];
});
commitgpt = prev.pkgs.callPackage ../pkgs/commitgpt { };
}

View file

@ -0,0 +1,65 @@
{ lib, pkgs, ... }:
let
nodeEnv = import ./node-env.nix {
inherit (pkgs) stdenv lib python2 runCommand writeTextFile writeShellScript nodejs;
inherit pkgs;
libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
};
nodePkg = import ./node-packages.nix {
inherit (pkgs) fetchurl nix-gitignore stdenv lib fetchgit;
inherit nodeEnv;
};
inherit (nodePkg) nodeDependencies;
pname = "commitgpt";
version = "1.0.1";
in
pkgs.stdenv.mkDerivation {
inherit pname version;
src = pkgs.fetchFromGitHub {
owner = "RomanHotsiy";
repo = "commitgpt";
rev = "f6e524342f35e34faea83ce7046f15d022ff2da8";
sha256 = "Vt5q8/wtbPgaYnjwFdrdgCibgA+RcN6c3/nQpqxwjSA=";
};
buildInputs = [ pkgs.nodejs ];
nativeBuildInputs = [ pkgs.makeWrapper ];
buildPhase = ''
runHook preBuild
ln -s ${nodeDependencies}/lib/node_modules ./node_modules
export PATH="${nodeDependencies}/bin:$PATH"
npm run build
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p $out/bin $out/lib
cp package.json $out/package.json
cp -r dist $out/dist
chmod +x $out/dist/index.js
ln -s ${nodeDependencies}/lib/node_modules $out/node_modules
ln -s $out/dist/index.js $out/bin/commitgpt
runHook postInstall
'';
meta = with lib; {
description = "";
homepage = "";
license = licenses.mit;
platforms = [ "x86_64-linux" ];
maintainers = [ ];
};
}

680
pkgs/commitgpt/node-env.nix Normal file
View file

@ -0,0 +1,680 @@
# This file originates from node2nix
{ lib, stdenv, nodejs, python2, pkgs, libtool, runCommand, writeTextFile, writeShellScript }:
let
# Workaround to cope with utillinux in Nixpkgs 20.09 and util-linux in Nixpkgs master
utillinux = pkgs.utillinux or pkgs.util-linux;
python = nodejs.python or 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
'';
};
# Common shell logic
installPackage = writeShellScript "install-package" ''
installPackage() {
local packageName=$1 src=$2
local strippedName
local 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
# Change to the package directory to install dependencies
cd "$DIR/$packageName"
}
'';
# Bundle the dependencies of the package
#
# Only include dependencies if they don't exist. They may also be bundled in the package.
includeDependencies = { dependencies }:
lib.optionalString (dependencies != [ ]) (
''
mkdir -p node_modules
cd node_modules
''
+ (lib.concatMapStrings
(dependency:
''
if [ ! -e "${dependency.packageName}" ]; then
${composePackage dependency}
fi
''
)
dependencies)
+ ''
cd ..
''
);
# Recursively composes the dependencies of a package
composePackage = { packageName, src, dependencies ? [ ], ... }:
builtins.addErrorContext "while evaluating node package '${packageName}'" ''
installPackage "${packageName}" "${src}"
${includeDependencies { inherit dependencies; }}
cd ..
${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);
}
else {
packageObj.devDependencies = {};
}
replaceDependencies(packageObj.optionalDependencies);
replaceDependencies(packageObj.peerDependencies);
/* Write the fixed package.json file */
fs.writeFileSync("package.json", JSON.stringify(packageObj, null, 2));
'';
};
in
''
node ${pinpointDependenciesFromPackageJSON} ${if production then "production" else "development"}
${lib.optionalString (dependencies != [])
''
if [ -d node_modules ]
then
cd node_modules
${lib.concatMapStrings pinpointDependenciesOfPackage 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, ... }:
''
if [ -d "${packageName}" ]
then
cd "${packageName}"
${pinpointDependencies { inherit dependencies production; }}
cd ..
${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(![1, 2].includes(packageLock.lockfileVersion)) {
process.stderr.write("Sorry, I only understand lock file versions 1 and 2!\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 = "reconstructpackagelock.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: 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, 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"), packages, dependencies[packageObj.name].dependencies);
}
}
function processDependencies(dir, packages, 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, packages, dependencies);
}
});
} else {
augmentPackageJSON(filePath, packages, 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";
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
${lib.optionalString bypassCache ''
${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} ${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} --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
buildNodePackage =
{ name
, packageName
, version ? null
, buildInputs ? [ ]
, production ? true
, npmFlags ? ""
, dontNpmInstall ? false
, bypassCache ? false
, reconstructLock ? false
, preRebuild ? ""
, dontStrip ? true
, unpackPhase ? "true"
, buildPhase ? "true"
, meta ? { }
, ...
}@args:
let
extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" "dontStrip" "dontNpmInstall" "preRebuild" "unpackPhase" "buildPhase" "meta" ];
in
stdenv.mkDerivation ({
name = "${name}${if version == null then "" else "-${version}"}";
buildInputs = [ tarWrapper python nodejs ]
++ lib.optional stdenv.isLinux utillinux
++ 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 = ''
source ${installPackage}
# 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
# Patch the shebang lines of all the executables
ls $out/bin/* | while read i
do
file="$(readlink -f "$i")"
chmod u+rwx "$file"
patchShebangs "$file"
done
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
'';
meta = {
# default to Node.js' platforms
platforms = nodejs.meta.platforms;
} // meta;
} // extraArgs);
# Builds a node environment (a node_modules folder and a set of binaries)
buildNodeDependencies =
{ name
, packageName
, version ? null
, 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" ];
in
stdenv.mkDerivation ({
name = "node-dependencies-${name}${if version == null then "" else "-${version}"}";
buildInputs = [ tarWrapper python nodejs ]
++ lib.optional stdenv.isLinux utillinux
++ 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 = ''
source ${installPackage}
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
${lib.optionalString bypassCache ''
if [ -f ${src}/package-lock.json ]
then
cp ${src}/package-lock.json .
chmod 644 package-lock.json
fi
''}
# Go to the parent folder to make sure that all packages are pinpointed
cd ..
${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
${prepareAndInvokeNPM { inherit packageName bypassCache reconstructLock npmFlags production; }}
# Expose the executables that were installed
cd ..
${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
mv ${packageName} lib
ln -s $out/lib/node_modules/.bin $out/bin
'';
} // extraArgs);
# Builds a development shell
buildNodeShell =
{ name
, version ? null
, dependencies ? [ ]
, buildInputs ? [ ]
, ...
}@args:
let
nodeDependencies = buildNodeDependencies args;
extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" "dontStrip" "dontNpmInstall" "unpackPhase" "buildPhase" ];
in
stdenv.mkDerivation ({
name = "node-shell-${name}${if version == null then "" else "-${version}"}";
buildInputs = [ python nodejs ] ++ 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 = lib.optionalString (dependencies != [ ]) ''
export NODE_PATH=${nodeDependencies}/lib/node_modules
export PATH="${nodeDependencies}/bin:$PATH"
'';
} // extraArgs);
in
{
buildNodeSourceDist = lib.makeOverridable buildNodeSourceDist;
buildNodePackage = lib.makeOverridable buildNodePackage;
buildNodeDependencies = lib.makeOverridable buildNodeDependencies;
buildNodeShell = lib.makeOverridable buildNodeShell;
}

View file

@ -0,0 +1,629 @@
# This file has been generated by node2nix 1.11.1. Do not edit!
{ nodeEnv, fetchurl, fetchgit, nix-gitignore, stdenv, lib, globalBuildInputs ? [ ] }:
let
sources = {
"@cspotcode/source-map-support-0.8.1" = {
name = "_at_cspotcode_slash_source-map-support";
packageName = "@cspotcode/source-map-support";
version = "0.8.1";
src = fetchurl {
url = "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz";
sha512 = "IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==";
};
};
"@jridgewell/resolve-uri-3.1.0" = {
name = "_at_jridgewell_slash_resolve-uri";
packageName = "@jridgewell/resolve-uri";
version = "3.1.0";
src = fetchurl {
url = "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz";
sha512 = "F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==";
};
};
"@jridgewell/sourcemap-codec-1.4.14" = {
name = "_at_jridgewell_slash_sourcemap-codec";
packageName = "@jridgewell/sourcemap-codec";
version = "1.4.14";
src = fetchurl {
url = "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz";
sha512 = "XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==";
};
};
"@jridgewell/trace-mapping-0.3.9" = {
name = "_at_jridgewell_slash_trace-mapping";
packageName = "@jridgewell/trace-mapping";
version = "0.3.9";
src = fetchurl {
url = "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz";
sha512 = "3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==";
};
};
"@tsconfig/node10-1.0.9" = {
name = "_at_tsconfig_slash_node10";
packageName = "@tsconfig/node10";
version = "1.0.9";
src = fetchurl {
url = "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz";
sha512 = "jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==";
};
};
"@tsconfig/node12-1.0.11" = {
name = "_at_tsconfig_slash_node12";
packageName = "@tsconfig/node12";
version = "1.0.11";
src = fetchurl {
url = "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz";
sha512 = "cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==";
};
};
"@tsconfig/node14-1.0.3" = {
name = "_at_tsconfig_slash_node14";
packageName = "@tsconfig/node14";
version = "1.0.3";
src = fetchurl {
url = "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz";
sha512 = "ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==";
};
};
"@tsconfig/node16-1.0.3" = {
name = "_at_tsconfig_slash_node16";
packageName = "@tsconfig/node16";
version = "1.0.3";
src = fetchurl {
url = "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz";
sha512 = "yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==";
};
};
"@types/node-18.11.10" = {
name = "_at_types_slash_node";
packageName = "@types/node";
version = "18.11.10";
src = fetchurl {
url = "https://registry.npmjs.org/@types/node/-/node-18.11.10.tgz";
sha512 = "juG3RWMBOqcOuXC643OAdSA525V44cVgGV6dUDuiFtss+8Fk5x1hI93Rsld43VeJVIeqlP9I7Fn9/qaVqoEAuQ==";
};
};
"acorn-8.8.1" = {
name = "acorn";
packageName = "acorn";
version = "8.8.1";
src = fetchurl {
url = "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz";
sha512 = "7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==";
};
};
"acorn-walk-8.2.0" = {
name = "acorn-walk";
packageName = "acorn-walk";
version = "8.2.0";
src = fetchurl {
url = "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz";
sha512 = "k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==";
};
};
"ansi-colors-4.1.3" = {
name = "ansi-colors";
packageName = "ansi-colors";
version = "4.1.3";
src = fetchurl {
url = "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz";
sha512 = "/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==";
};
};
"ansi-regex-6.0.1" = {
name = "ansi-regex";
packageName = "ansi-regex";
version = "6.0.1";
src = fetchurl {
url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz";
sha512 = "n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==";
};
};
"arg-4.1.3" = {
name = "arg";
packageName = "arg";
version = "4.1.3";
src = fetchurl {
url = "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz";
sha512 = "58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==";
};
};
"base64-js-1.5.1" = {
name = "base64-js";
packageName = "base64-js";
version = "1.5.1";
src = fetchurl {
url = "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz";
sha512 = "AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==";
};
};
"bl-5.1.0" = {
name = "bl";
packageName = "bl";
version = "5.1.0";
src = fetchurl {
url = "https://registry.npmjs.org/bl/-/bl-5.1.0.tgz";
sha512 = "tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==";
};
};
"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==";
};
};
"chalk-5.1.2" = {
name = "chalk";
packageName = "chalk";
version = "5.1.2";
src = fetchurl {
url = "https://registry.npmjs.org/chalk/-/chalk-5.1.2.tgz";
sha512 = "E5CkT4jWURs1Vy5qGJye+XwCkNj7Od3Af7CP6SujMetSMkLs8Do2RWJK5yx1wamHV/op8Rz+9rltjaTQWDnEFQ==";
};
};
"cli-cursor-4.0.0" = {
name = "cli-cursor";
packageName = "cli-cursor";
version = "4.0.0";
src = fetchurl {
url = "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz";
sha512 = "VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==";
};
};
"cli-spinners-2.7.0" = {
name = "cli-spinners";
packageName = "cli-spinners";
version = "2.7.0";
src = fetchurl {
url = "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.7.0.tgz";
sha512 = "qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==";
};
};
"clone-1.0.4" = {
name = "clone";
packageName = "clone";
version = "1.0.4";
src = fetchurl {
url = "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz";
sha512 = "JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==";
};
};
"create-require-1.1.1" = {
name = "create-require";
packageName = "create-require";
version = "1.1.1";
src = fetchurl {
url = "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz";
sha512 = "dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==";
};
};
"data-uri-to-buffer-4.0.0" = {
name = "data-uri-to-buffer";
packageName = "data-uri-to-buffer";
version = "4.0.0";
src = fetchurl {
url = "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz";
sha512 = "Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==";
};
};
"defaults-1.0.4" = {
name = "defaults";
packageName = "defaults";
version = "1.0.4";
src = fetchurl {
url = "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz";
sha512 = "eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==";
};
};
"diff-4.0.2" = {
name = "diff";
packageName = "diff";
version = "4.0.2";
src = fetchurl {
url = "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz";
sha512 = "58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==";
};
};
"enquirer-2.3.6" = {
name = "enquirer";
packageName = "enquirer";
version = "2.3.6";
src = fetchurl {
url = "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz";
sha512 = "yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==";
};
};
"eventsource-parser-0.0.5" = {
name = "eventsource-parser";
packageName = "eventsource-parser";
version = "0.0.5";
src = fetchurl {
url = "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-0.0.5.tgz";
sha512 = "BAq82bC3ZW9fPYYZlofXBOAfbpmDzXIOsj+GOehQwgTUYsQZ6HtHs6zuRtge7Ph8OhS6lNH1kJF8q9dj17RcmA==";
};
};
"expiry-map-2.0.0" = {
name = "expiry-map";
packageName = "expiry-map";
version = "2.0.0";
src = fetchurl {
url = "https://registry.npmjs.org/expiry-map/-/expiry-map-2.0.0.tgz";
sha512 = "K1I5wJe2fiqjyUZf/xhxwTpaopw3F+19DsO7Oggl20+3SVTXDIevVRJav0aBMfposQdkl2E4+gnuOKd3j2X0sA==";
};
};
"fetch-blob-3.2.0" = {
name = "fetch-blob";
packageName = "fetch-blob";
version = "3.2.0";
src = fetchurl {
url = "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz";
sha512 = "7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==";
};
};
"formdata-polyfill-4.0.10" = {
name = "formdata-polyfill";
packageName = "formdata-polyfill";
version = "4.0.10";
src = fetchurl {
url = "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz";
sha512 = "buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==";
};
};
"ieee754-1.2.1" = {
name = "ieee754";
packageName = "ieee754";
version = "1.2.1";
src = fetchurl {
url = "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz";
sha512 = "dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==";
};
};
"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==";
};
};
"is-interactive-2.0.0" = {
name = "is-interactive";
packageName = "is-interactive";
version = "2.0.0";
src = fetchurl {
url = "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz";
sha512 = "qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==";
};
};
"is-unicode-supported-1.3.0" = {
name = "is-unicode-supported";
packageName = "is-unicode-supported";
version = "1.3.0";
src = fetchurl {
url = "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz";
sha512 = "43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==";
};
};
"log-symbols-5.1.0" = {
name = "log-symbols";
packageName = "log-symbols";
version = "5.1.0";
src = fetchurl {
url = "https://registry.npmjs.org/log-symbols/-/log-symbols-5.1.0.tgz";
sha512 = "l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==";
};
};
"make-error-1.3.6" = {
name = "make-error";
packageName = "make-error";
version = "1.3.6";
src = fetchurl {
url = "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz";
sha512 = "s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==";
};
};
"map-age-cleaner-0.2.0" = {
name = "map-age-cleaner";
packageName = "map-age-cleaner";
version = "0.2.0";
src = fetchurl {
url = "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.2.0.tgz";
sha512 = "AvxTC6id0fzSf6OyNBTp1syyCuKO7nOJvHgYlhT0Qkkjvk40zZo+av3ayVgXlxnF/DxEzEfY9mMdd7FHsd+wKQ==";
};
};
"mimic-fn-2.1.0" = {
name = "mimic-fn";
packageName = "mimic-fn";
version = "2.1.0";
src = fetchurl {
url = "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz";
sha512 = "OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==";
};
};
"node-domexception-1.0.0" = {
name = "node-domexception";
packageName = "node-domexception";
version = "1.0.0";
src = fetchurl {
url = "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz";
sha512 = "/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==";
};
};
"node-fetch-3.3.0" = {
name = "node-fetch";
packageName = "node-fetch";
version = "3.3.0";
src = fetchurl {
url = "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.0.tgz";
sha512 = "BKwRP/O0UvoMKp7GNdwPlObhYGB5DQqwhEDQlNKuoqwVYSxkSZCSbHjnFFmUEtwSKRPU4kNK8PbDYYitwaE3QA==";
};
};
"onetime-5.1.2" = {
name = "onetime";
packageName = "onetime";
version = "5.1.2";
src = fetchurl {
url = "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz";
sha512 = "kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==";
};
};
"ora-6.1.2" = {
name = "ora";
packageName = "ora";
version = "6.1.2";
src = fetchurl {
url = "https://registry.npmjs.org/ora/-/ora-6.1.2.tgz";
sha512 = "EJQ3NiP5Xo94wJXIzAyOtSb0QEIAUu7m8t6UZ9krbz0vAJqr92JpcK/lEXg91q6B9pEGqrykkd2EQplnifDSBw==";
};
};
"p-defer-1.0.0" = {
name = "p-defer";
packageName = "p-defer";
version = "1.0.0";
src = fetchurl {
url = "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz";
sha512 = "wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==";
};
};
"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==";
};
};
"restore-cursor-4.0.0" = {
name = "restore-cursor";
packageName = "restore-cursor";
version = "4.0.0";
src = fetchurl {
url = "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz";
sha512 = "I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==";
};
};
"safe-buffer-5.2.1" = {
name = "safe-buffer";
packageName = "safe-buffer";
version = "5.2.1";
src = fetchurl {
url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz";
sha512 = "rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==";
};
};
"signal-exit-3.0.7" = {
name = "signal-exit";
packageName = "signal-exit";
version = "3.0.7";
src = fetchurl {
url = "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz";
sha512 = "wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==";
};
};
"string_decoder-1.3.0" = {
name = "string_decoder";
packageName = "string_decoder";
version = "1.3.0";
src = fetchurl {
url = "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz";
sha512 = "hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==";
};
};
"strip-ansi-7.0.1" = {
name = "strip-ansi";
packageName = "strip-ansi";
version = "7.0.1";
src = fetchurl {
url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz";
sha512 = "cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==";
};
};
"ts-node-10.9.1" = {
name = "ts-node";
packageName = "ts-node";
version = "10.9.1";
src = fetchurl {
url = "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz";
sha512 = "NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==";
};
};
"typescript-4.9.3" = {
name = "typescript";
packageName = "typescript";
version = "4.9.3";
src = fetchurl {
url = "https://registry.npmjs.org/typescript/-/typescript-4.9.3.tgz";
sha512 = "CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==";
};
};
"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";
sha512 = "EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==";
};
};
"uuid-9.0.0" = {
name = "uuid";
packageName = "uuid";
version = "9.0.0";
src = fetchurl {
url = "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz";
sha512 = "MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==";
};
};
"v8-compile-cache-lib-3.0.1" = {
name = "v8-compile-cache-lib";
packageName = "v8-compile-cache-lib";
version = "3.0.1";
src = fetchurl {
url = "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz";
sha512 = "wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==";
};
};
"wcwidth-1.0.1" = {
name = "wcwidth";
packageName = "wcwidth";
version = "1.0.1";
src = fetchurl {
url = "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz";
sha512 = "XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==";
};
};
"web-streams-polyfill-3.2.1" = {
name = "web-streams-polyfill";
packageName = "web-streams-polyfill";
version = "3.2.1";
src = fetchurl {
url = "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz";
sha512 = "e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==";
};
};
"yargs-parser-21.1.1" = {
name = "yargs-parser";
packageName = "yargs-parser";
version = "21.1.1";
src = fetchurl {
url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz";
sha512 = "tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==";
};
};
"yn-3.1.1" = {
name = "yn";
packageName = "yn";
version = "3.1.1";
src = fetchurl {
url = "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz";
sha512 = "Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==";
};
};
};
args = {
name = "commitgpt";
packageName = "commitgpt";
version = "1.0.1";
src = fetchgit {
url = "https://github.com/RomanHotsiy/commitgpt.git";
rev = "f6e524342f35e34faea83ce7046f15d022ff2da8";
sha256 = "Vt5q8/wtbPgaYnjwFdrdgCibgA+RcN6c3/nQpqxwjSA=";
};
dependencies = [
sources."@cspotcode/source-map-support-0.8.1"
sources."@jridgewell/resolve-uri-3.1.0"
sources."@jridgewell/sourcemap-codec-1.4.14"
sources."@jridgewell/trace-mapping-0.3.9"
sources."@tsconfig/node10-1.0.9"
sources."@tsconfig/node12-1.0.11"
sources."@tsconfig/node14-1.0.3"
sources."@tsconfig/node16-1.0.3"
sources."@types/node-18.11.10"
sources."acorn-8.8.1"
sources."acorn-walk-8.2.0"
sources."ansi-colors-4.1.3"
sources."ansi-regex-6.0.1"
sources."arg-4.1.3"
sources."base64-js-1.5.1"
sources."bl-5.1.0"
sources."buffer-6.0.3"
sources."chalk-5.1.2"
sources."cli-cursor-4.0.0"
sources."cli-spinners-2.7.0"
sources."clone-1.0.4"
sources."create-require-1.1.1"
sources."data-uri-to-buffer-4.0.0"
sources."defaults-1.0.4"
sources."diff-4.0.2"
sources."enquirer-2.3.6"
sources."eventsource-parser-0.0.5"
sources."expiry-map-2.0.0"
sources."fetch-blob-3.2.0"
sources."formdata-polyfill-4.0.10"
sources."ieee754-1.2.1"
sources."inherits-2.0.4"
sources."is-interactive-2.0.0"
sources."is-unicode-supported-1.3.0"
sources."log-symbols-5.1.0"
sources."make-error-1.3.6"
sources."map-age-cleaner-0.2.0"
sources."mimic-fn-2.1.0"
sources."node-domexception-1.0.0"
sources."node-fetch-3.3.0"
sources."onetime-5.1.2"
sources."ora-6.1.2"
sources."p-defer-1.0.0"
sources."readable-stream-3.6.0"
sources."restore-cursor-4.0.0"
sources."safe-buffer-5.2.1"
sources."signal-exit-3.0.7"
sources."string_decoder-1.3.0"
sources."strip-ansi-7.0.1"
sources."ts-node-10.9.1"
sources."typescript-4.9.3"
sources."util-deprecate-1.0.2"
sources."uuid-9.0.0"
sources."v8-compile-cache-lib-3.0.1"
sources."wcwidth-1.0.1"
sources."web-streams-polyfill-3.2.1"
sources."yargs-parser-21.1.1"
sources."yn-3.1.1"
];
buildInputs = globalBuildInputs;
meta = {
description = "";
homepage = "https://github.com/RomanHotsiy/commitgpt#readme";
license = "MIT";
};
production = false;
bypassCache = true;
reconstructLock = false;
};
in
{
inherit args;
inherit sources;
tarball = nodeEnv.buildNodeSourceDist args;
package = nodeEnv.buildNodePackage args;
shell = nodeEnv.buildNodeShell args;
nodeDependencies = nodeEnv.buildNodeDependencies (lib.overrideExisting args {
src = stdenv.mkDerivation {
name = args.name + "-package-json";
src = nix-gitignore.gitignoreSourcePure [
"*"
"!package.json"
"!package-lock.json"
]
args.src;
dontBuild = true;
installPhase = "mkdir -p $out; cp -r ./* $out;";
};
});
}

View file

@ -0,0 +1,36 @@
{
"name": "commitgpt",
"version": "1.0.1",
"description": "",
"main": "index.js",
"type": "module",
"bin": "dist/index.js",
"scripts": {
"build": "tsc",
"start": "ts-node --esm index.ts",
"prepublishOnly": "npm run build"
},
"repository": {
"type": "git",
"url": "git+https://github.com/RomanHotsiy/commitgpt.git"
},
"keywords": [],
"author": "",
"license": "MIT",
"bugs": {
"url": "https://github.com/RomanHotsiy/commitgpt/issues"
},
"homepage": "https://github.com/RomanHotsiy/commitgpt#readme",
"dependencies": {
"enquirer": "^2.3.6",
"eventsource-parser": "^0.0.5",
"expiry-map": "^2.0.0",
"node-fetch": "^3.3.0",
"ora": "^6.1.2",
"uuid": "^9.0.0",
"yargs-parser": "^21.1.1"
},
"devDependencies": {
"ts-node": "^10.9.1"
}
}

View file

@ -118,6 +118,7 @@ in
bitwarden
blink1-tool
bottom
commitgpt
fd
ffmpeg_5-full
git