From 8394619baceb118df92e355377fd543bb1aa501a Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 13 Dec 2021 17:18:24 +0100 Subject: gnu: Simplify package inputs. This commit was obtained by running: ./pre-inst-env guix style without any additional argument. --- gnu/packages/node-xyz.scm | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'gnu/packages/node-xyz.scm') diff --git a/gnu/packages/node-xyz.scm b/gnu/packages/node-xyz.scm index 98c611f227..9a0be96852 100644 --- a/gnu/packages/node-xyz.scm +++ b/gnu/packages/node-xyz.scm @@ -118,7 +118,7 @@ (define-public node-far ;; We skip the two tests which are supposed to fail. (invoke "bin/node-far" "-v" "test/" "-e" "test.*fail.js")))))) (inputs - `(("node-oop" ,node-oop))) + (list node-oop)) (home-page "https://github.com/felixge/node-far") (synopsis "Node.js test runner") (description "This package provides a simple test runner that finds and runs @@ -223,8 +223,7 @@ (define-public node-stack-trace (("far.include") "far.exclude(/test-parse.js/)\nfar.include")) #t))))) (native-inputs - `(("node-far" ,node-far) - ("node-long-stack-traces" ,node-long-stack-traces))) + (list node-far node-long-stack-traces)) (home-page "https://github.com/felixge/node-stack-trace") (synopsis "Get v8 stack traces as an array of CallSite objects") (description "Get v8 stack traces as an array of CallSite objects.") @@ -349,7 +348,7 @@ (define-public node-once ;; still works as a dependency of node-glob and node-inflight. (delete 'configure)))) (inputs - `(("node-wrappy" ,node-wrappy))) + (list node-wrappy)) (home-page "https://github.com/isaacs/once") (synopsis "Node.js module to call a function only once") (description @@ -409,7 +408,7 @@ (define-public node-irc ;; being missing, as we don't have them packaged yet. (delete 'configure)))) (inputs - `(("node-irc-colors" ,node-irc-colors))) + (list node-irc-colors)) (home-page "https://github.com/martynsmith/node-irc") (synopsis "IRC client library for Node.js") (description "@code{node-irc} is an IRC client library for Node.js. -- cgit v1.2.3 From cdc47fb3ef80ddefdf959979f98e665e2c95b0ed Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Sat, 8 Jan 2022 03:42:01 -0500 Subject: gnu: node-semver: Use 'delete-dependencies'. gnu/packages/node-xyz.scm (node-semver)[arguments]: Use 'delete-dependencies'. Stop deleting the 'configure' phase. Signed-off-by: Liliana Marie Prikler --- gnu/packages/node-xyz.scm | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'gnu/packages/node-xyz.scm') diff --git a/gnu/packages/node-xyz.scm b/gnu/packages/node-xyz.scm index 9a0be96852..e99cd27a14 100644 --- a/gnu/packages/node-xyz.scm +++ b/gnu/packages/node-xyz.scm @@ -288,11 +288,13 @@ (define-public node-semver "06biknqb05r9xsmcflm3ygh50pjvdk84x6r79w43kmck4fn3qn5p")))) (build-system node-build-system) (arguments - '(#:tests? #f ; FIXME: Tests depend on node-tap - #:phases + '(#:phases (modify-phases %standard-phases - ;; The only dependency to check for is tap, which we don't have. - (delete 'configure)))) + (add-after 'patch-dependencies 'delete-dependencies + (lambda args + (delete-dependencies '("tap"))))) + ;; FIXME: Tests depend on node-tap + #:tests? #f)) (home-page "https://github.com/npm/node-semver") (synopsis "Parses semantic versions strings") (description -- cgit v1.2.3 From 8c83a9c7ea321654e6a9d48b7087243e898569ba Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Sat, 8 Jan 2022 03:42:02 -0500 Subject: gnu: node-wrappy: Use 'delete-dependencies'. gnu/packages/node-xyz.scm (node-wrappy)[arguments]: Use 'delete-dependencies'. Stop deleting the 'configure' phase. Signed-off-by: Liliana Marie Prikler --- gnu/packages/node-xyz.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'gnu/packages/node-xyz.scm') diff --git a/gnu/packages/node-xyz.scm b/gnu/packages/node-xyz.scm index e99cd27a14..e1ffdf978c 100644 --- a/gnu/packages/node-xyz.scm +++ b/gnu/packages/node-xyz.scm @@ -320,8 +320,9 @@ (define-public node-wrappy '(#:tests? #f ; FIXME: Tests depend on node-tap #:phases (modify-phases %standard-phases - ;; The only dependency to check for is tap, which we don't have. - (delete 'configure)))) + (add-after 'patch-dependencies 'delete-dependencies + (lambda args + (delete-dependencies '("tap"))))))) (home-page "https://github.com/npm/wrappy") (synopsis "Callback wrapping utility") (description "@code{wrappy} is a utility for Node.js to wrap callbacks.") -- cgit v1.2.3 From 37110c16505d330c276bf6dedd1ab00adee5369e Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Sat, 8 Jan 2022 03:42:03 -0500 Subject: gnu: node-once: Use 'delete-dependencies'. gnu/packages/node-xyz.scm (node-once)[arguments]: Use 'delete-dependencies'. Stop deleting the 'configure' phase. Signed-off-by: Liliana Marie Prikler --- gnu/packages/node-xyz.scm | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'gnu/packages/node-xyz.scm') diff --git a/gnu/packages/node-xyz.scm b/gnu/packages/node-xyz.scm index e1ffdf978c..607877d677 100644 --- a/gnu/packages/node-xyz.scm +++ b/gnu/packages/node-xyz.scm @@ -343,13 +343,13 @@ (define-public node-once "1z8dcbf28dqdcp4wb0c53wrs90a07nkrax2c9kk26dsk1dhrnxav")))) (build-system node-build-system) (arguments - '(#:tests? #f ; FIXME: tests depend on node-tap - #:phases + '(#:phases (modify-phases %standard-phases - ;; The default configure phase fails due to tap being missing, as we do - ;; not have tap packaged yet. It is used only for tests. This package - ;; still works as a dependency of node-glob and node-inflight. - (delete 'configure)))) + (add-after 'patch-dependencies 'delete-dependencies + (lambda args + (delete-dependencies '("tap"))))) + ;; FIXME: Tests depend on node-tap + #:tests? #f)) (inputs (list node-wrappy)) (home-page "https://github.com/isaacs/once") -- cgit v1.2.3 From b542d09ed3a6f5570abfd32eddfb6d4dcb7d3f45 Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Sat, 8 Jan 2022 03:42:04 -0500 Subject: gnu: node-irc-colors: Use 'delete-dependencies'. gnu/packages/node-xyz.scm (node-irc-colors)[arguments]: Use 'delete-dependencies'. Stop deleting the 'configure' phase. Signed-off-by: Liliana Marie Prikler --- gnu/packages/node-xyz.scm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'gnu/packages/node-xyz.scm') diff --git a/gnu/packages/node-xyz.scm b/gnu/packages/node-xyz.scm index 607877d677..4da4166465 100644 --- a/gnu/packages/node-xyz.scm +++ b/gnu/packages/node-xyz.scm @@ -375,12 +375,12 @@ (define-public node-irc-colors "0q3y34rbnlc55jcakmdxkicwazyvyph9r6gaf6hi8k7wj2nfwfli")))) (build-system node-build-system) (arguments - '(#:tests? #f ; FIXME: tests depend on node-istanbul - #:phases + '(#:phases (modify-phases %standard-phases - ;; The default configure phase fails due to various packages - ;; being missing, as we don't have them packaged yet. - (delete 'configure)))) + (add-after 'patch-dependencies 'delete-dependencies + (lambda args + (delete-dependencies `("istanbul" "vows"))))) + #:tests? #f)) (home-page "https://github.com/fent/irc-colors.js") (synopsis "Node.js module providing color and formatting for IRC") (description "@code{node-irc-colors} is a Node.js module that -- cgit v1.2.3 From 534f9e495f7a378c3854036e0213cf2391d507cf Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Sat, 8 Jan 2022 03:42:05 -0500 Subject: gnu: node-irc: Use 'delete-dependencies'. gnu/packages/node-xyz.scm (node-irc)[arguments]: Use 'delete-dependencies'. Stop deleting the 'configure' phase. Signed-off-by: Liliana Marie Prikler --- gnu/packages/node-xyz.scm | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'gnu/packages/node-xyz.scm') diff --git a/gnu/packages/node-xyz.scm b/gnu/packages/node-xyz.scm index 4da4166465..80495cacf4 100644 --- a/gnu/packages/node-xyz.scm +++ b/gnu/packages/node-xyz.scm @@ -404,12 +404,13 @@ (define-public node-irc "1ln4qfx20jbwg4cp8lp0vf27m5281z2sz16d15xd6150n26cbi4x")))) (build-system node-build-system) (arguments - '(#:tests? #f ; FIXME: tests depend on node-faucet - #:phases + '(#:phases (modify-phases %standard-phases - ;; The default configure phase fails due to various packages - ;; being missing, as we don't have them packaged yet. - (delete 'configure)))) + (add-after 'patch-dependencies 'delete-dependencies + (lambda args + (delete-dependencies + `("ansi-color" "faucet" "jscs" "tape"))))) + #:tests? #f)) (inputs (list node-irc-colors)) (home-page "https://github.com/martynsmith/node-irc") -- cgit v1.2.3 From 3bd092c0bf8dd4d315fc596a60e3ad5976b1e769 Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Sat, 8 Jan 2022 03:42:06 -0500 Subject: gnu: Add node-inherits. * gnu/packages/node-xyz.scm (node-inherits): New variable. Signed-off-by: Liliana Marie Prikler --- gnu/packages/node-xyz.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'gnu/packages/node-xyz.scm') diff --git a/gnu/packages/node-xyz.scm b/gnu/packages/node-xyz.scm index 80495cacf4..0e33f64dc9 100644 --- a/gnu/packages/node-xyz.scm +++ b/gnu/packages/node-xyz.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2020 Giacomo Leidi ;;; Copyright © 2021 Noisytoot ;;; Copyright © 2021 Charles +;;; Copyright © 2021 Philip McGrath ;;; ;;; This file is part of GNU Guix. ;;; @@ -360,6 +361,36 @@ (define-public node-once if desired.") (license license:isc))) +(define-public node-inherits + (package + (name "node-inherits") + (version "2.0.4") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/isaacs/inherits") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0cpsr5yqwkxpbbbbl0rwk4mcby6zbx841k2zb4c3gb1579i5wq9p")))) + (build-system node-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'patch-dependencies 'delete-dependencies + (lambda args + (delete-dependencies '("tap"))))) + ;; FIXME: Tests depend on node-tap + #:tests? #f)) + (home-page "https://github.com/isaacs/inherits") + (synopsis "Browser-friendly object inheritance") + (description "This package provides an alternative implementation of +Node's @code{inherits} constructer that can be used in browsers, while +defaulting to Node's implementation otherwise.") + (license license:isc))) + (define-public node-irc-colors (package (name "node-irc-colors") -- cgit v1.2.3 From 5524733bb2653f3a3875812e41ae3566050666c5 Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Sat, 8 Jan 2022 03:42:07 -0500 Subject: gnu: Add node-safe-buffer. * gnu/packages/node-xyz.scm (node-safe-buffer): New variable. Signed-off-by: Liliana Marie Prikler --- gnu/packages/node-xyz.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'gnu/packages/node-xyz.scm') diff --git a/gnu/packages/node-xyz.scm b/gnu/packages/node-xyz.scm index 0e33f64dc9..f4af03eb87 100644 --- a/gnu/packages/node-xyz.scm +++ b/gnu/packages/node-xyz.scm @@ -391,6 +391,35 @@ (define-public node-inherits defaulting to Node's implementation otherwise.") (license license:isc))) +(define-public node-safe-buffer + (package + (name "node-safe-buffer") + (version "5.2.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/feross/safe-buffer") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0r26m0nl41h90ihnl2xf0cqs6z9z7jb87dl5j8yqb7887r9jlbpi")))) + (build-system node-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'patch-dependencies 'delete-dependencies + (lambda args + (delete-dependencies '("tape" "standard"))))) + #:tests? #f)) + (home-page "https://github.com/feross/safe-buffer") + (synopsis "Buffer creation with explicit semantics") + (description "This package provides a drop-in replacement for Node.js +@code{Buffer} API, which provides newer, explicit constructors (such as +@code{Buffer.alloc(SIZE)}) in older versions.") + (license license:expat))) + (define-public node-irc-colors (package (name "node-irc-colors") -- cgit v1.2.3 From 6dec34e25bcd190d6698aa19869b0fb56ceb503a Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Sat, 8 Jan 2022 03:42:08 -0500 Subject: gnu: Add node-string-decoder. * gnu/packages/node-xyz.scm (node-string-decoder): New variable. Signed-off-by: Liliana Marie Prikler --- gnu/packages/node-xyz.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'gnu/packages/node-xyz.scm') diff --git a/gnu/packages/node-xyz.scm b/gnu/packages/node-xyz.scm index f4af03eb87..e8932aeebc 100644 --- a/gnu/packages/node-xyz.scm +++ b/gnu/packages/node-xyz.scm @@ -420,6 +420,39 @@ (define-public node-safe-buffer @code{Buffer.alloc(SIZE)}) in older versions.") (license license:expat))) +(define-public node-string-decoder + (package + (name "node-string-decoder") + (version "1.3.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/nodejs/string_decoder") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0xxvyya9fl9rlkqwmxzqzbz4rdr3jgw4vf37hff7cgscxkhg266k")))) + (build-system node-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'patch-dependencies 'delete-dependencies + (lambda args + (delete-dependencies + '("tap" "core-util-is" "babel-polyfill"))))) + ;; FIXME: Tests depend on node-tap + #:tests? #f)) + (inputs (list node-safe-buffer node-inherits)) + (home-page "https://github.com/nodejs/string_decoder") + (synopsis "Decode buffers while preserving multi-byte sequences ") + (description "This package provides a user-land implementation of +Node-core's @code{string_decoder}, which serves to decode buffers to +strings so that the decoded string does not contain incomplete multibyte +sequences.") + (license license:expat))) + (define-public node-irc-colors (package (name "node-irc-colors") -- cgit v1.2.3 From 4e5c1d4f0af2a2bb3cfa3a232e02239203918c4e Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Sat, 8 Jan 2022 03:42:09 -0500 Subject: gnu: Add node-readable-stream. * gnu/packages/node-xyz.scm (node-readable-stream): New variable. Signed-off-by: Liliana Marie Prikler --- gnu/packages/node-xyz.scm | 49 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) (limited to 'gnu/packages/node-xyz.scm') diff --git a/gnu/packages/node-xyz.scm b/gnu/packages/node-xyz.scm index e8932aeebc..58fdc1dc33 100644 --- a/gnu/packages/node-xyz.scm +++ b/gnu/packages/node-xyz.scm @@ -453,6 +453,55 @@ (define-public node-string-decoder sequences.") (license license:expat))) +(define-public node-readable-stream + (package + (name "node-readable-stream") + (version "3.6.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/nodejs/readable-stream") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0ybl4cdgsm9c5jq3xq8s01201jk8w0yakh63hlclsfbcdfqhd9ri")))) + (build-system node-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'patch-dependencies 'delete-dependencies + (lambda args + (delete-dependencies `("@babel/cli" + "@babel/core" + "@babel/polyfill" + "@babel/preset-env" + "airtap" + "assert" + "bl" + "deep-strict-equal" + "events.once" + "glob" + "gunzip-maybe" + "hyperquest" + "lolex" + "nyc" + "pump" + "rimraf" + "tap" + "tape" + "tar-fs" + "util-promisify"))))) + #:tests? #f)) + (inputs (list node-util-deprecate node-string-decoder node-inherits)) + (home-page "https://github.com/nodejs/readable-stream") + (synopsis "Node.js core streams for userland") + (description + "@code{readable-stream} provides an implementation of Node.js core streams +that behaves the same across different versions.") + (license license:expat))) + (define-public node-irc-colors (package (name "node-irc-colors") -- cgit v1.2.3 From fa802f39dc23db483a1395dc5319a243d9b82d39 Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Sat, 8 Jan 2022 03:42:10 -0500 Subject: gnu: Add node-nan. * gnu/packages/node-xyz.scm (node-nan): New variable. Signed-off-by: Liliana Marie Prikler --- gnu/packages/node-xyz.scm | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) (limited to 'gnu/packages/node-xyz.scm') diff --git a/gnu/packages/node-xyz.scm b/gnu/packages/node-xyz.scm index 58fdc1dc33..6de0138b72 100644 --- a/gnu/packages/node-xyz.scm +++ b/gnu/packages/node-xyz.scm @@ -560,3 +560,42 @@ (define-public node-irc (description "@code{node-irc} is an IRC client library for Node.js. It has functions for joining, parting, talking, and many other IRC commands.") (license license:gpl3+))) + +(define-public node-nan + (package + (name "node-nan") + (version "2.15.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/nodejs/nan") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "18xslh9va5ld872scrp5y4251ax9s3c6qh0lnl1200lpzbsxy7yd")))) + (build-system node-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'patch-dependencies 'delete-dependencies + (lambda args + (delete-dependencies + '("bindings" + "commander" + "glob" + "request" + "node-gyp" ;; would be needed for tests + "tap" + "xtend"))))) + ;; tests need tap and other dependencies + #:tests? #f)) + (inputs + (list node-readable-stream)) + (home-page "https://github.com/nodejs/nan") + (synopsis "Native Abstractions for Node.js") + (description "Native Abstractions for Node.js (``NaN'') provides a header +file filled with macros and utilities for making add-on development for Node.js +easier across versions. The goal is to provide all logic necessary to develop +native Node.js addons without having to inspect @code{NODE_MODULE_VERSION}.") + (license license:expat))) -- cgit v1.2.3 From 03cd921d86a43c00ed909151479f35fd092b3918 Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Sat, 8 Jan 2022 03:42:12 -0500 Subject: gnu: Add node-addon-api. * gnu/packages/node-xyz.scm (node-addon-api): New variable. Signed-off-by: Liliana Marie Prikler --- gnu/packages/node-xyz.scm | 85 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) (limited to 'gnu/packages/node-xyz.scm') diff --git a/gnu/packages/node-xyz.scm b/gnu/packages/node-xyz.scm index 6de0138b72..4c9f424563 100644 --- a/gnu/packages/node-xyz.scm +++ b/gnu/packages/node-xyz.scm @@ -22,6 +22,9 @@ (define-module (gnu packages node-xyz) #:use-module ((guix licenses) #:prefix license:) + #:use-module (gnu packages sqlite) + #:use-module (gnu packages python) + #:use-module (guix gexp) #:use-module (guix packages) #:use-module (guix git-download) #:use-module (guix build-system node)) @@ -599,3 +602,85 @@ (define-public node-nan easier across versions. The goal is to provide all logic necessary to develop native Node.js addons without having to inspect @code{NODE_MODULE_VERSION}.") (license license:expat))) + +(define-public node-addon-api + (package + (name "node-addon-api") + (version "4.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/nodejs/node-addon-api") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1bhvfi2m9nxfz418s619914vmidcnrzbjv6l9nid476c3zlpazch")))) + (inputs + (list python node-safe-buffer)) + (build-system node-build-system) + (arguments + `(#:modules + ((guix build node-build-system) + (srfi srfi-1) + (ice-9 match) + (guix build utils)) + #:phases + (modify-phases %standard-phases + (add-after 'patch-dependencies 'delete-dependencies + (lambda args + (delete-dependencies + `("benchmark" + "bindings" + "clang-format" + "eslint" + "eslint-config-semistandard" + "eslint-config-standard" + "eslint-plugin-import" + "eslint-plugin-node" + "eslint-plugin-promise" + "fs-extra" + "path" + "pre-commit")))) + (add-after 'unpack 'skip-js-tests + ;; We can't run the js-based tests, + ;; but we can still do the C++ parts + (lambda args + (define new-test-script + "echo stopping after pretest on Guix") + (with-atomic-json-file-replacement "package.json" + (match-lambda + (('@ . pkg-meta-alist) + (cons + '@ + (map (match-lambda + (("scripts" '@ . scripts-alist) + `("scripts" @ ,@(map (match-lambda + (("test" . _) + (cons "test" + new-test-script)) + (other + other)) + scripts-alist))) + (other + other)) + pkg-meta-alist)))))))))) + (home-page "https://github.com/nodejs/node-addon-api") + (synopsis "Node.js API (Node-API) header-only C++ wrappers") + (description "This module contains header-only C++ wrapper classes which +simplify the use of the C based Node-API provided by Node.js when using C++. +It provides a C++ object model and exception handling semantics with low +overhead. + +Node-API is an ABI stable C interface provided by Node.js for building native +addons. It is intended to insulate native addons from changes in the +underlying JavaScript engine and allow modules compiled for one version to run +on later versions of Node.js without recompilation. The @code{node-addon-api} +module, which is not part of Node.js, preserves the benefits of the Node-API +as it consists only of inline code that depends only on the stable API +provided by Node-API. + +It is important to remember that @emph{other} Node.js interfaces such as +@code{libuv} (included in a project via @code{#include }) are not +ABI-stable across Node.js major versions.") + (license license:expat))) -- cgit v1.2.3 From 1730209a68468077099059d1ebb9ce5ed4cd4408 Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Sat, 8 Jan 2022 03:42:13 -0500 Subject: gnu: Add node-sqlite3. * gnu/packages/node-xyz.scm (node-sqlite3): New variable. Signed-off-by: Liliana Marie Prikler --- gnu/packages/node-xyz.scm | 129 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 129 insertions(+) (limited to 'gnu/packages/node-xyz.scm') diff --git a/gnu/packages/node-xyz.scm b/gnu/packages/node-xyz.scm index 4c9f424563..c2e74ad685 100644 --- a/gnu/packages/node-xyz.scm +++ b/gnu/packages/node-xyz.scm @@ -684,3 +684,132 @@ (define new-test-script @code{libuv} (included in a project via @code{#include }) are not ABI-stable across Node.js major versions.") (license license:expat))) + +(define-public node-sqlite3 + (package + (name "node-sqlite3") + (version "5.0.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mapbox/node-sqlite3") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0sbbzzli282nxyfha10zx0k5m8hdp0sf3ipl59khjb7wm449j86h")) + (snippet + (with-imported-modules '((guix build utils)) + #~(begin + (use-modules (guix build utils)) + ;; unbundle sqlite + (for-each delete-file-recursively + (find-files "deps" + (lambda (pth stat) + (gzip-file? pth))))))))) + (inputs + (list node-addon-api python sqlite)) + (build-system node-build-system) + (arguments + `(#:modules + ((guix build node-build-system) + (srfi srfi-1) + (ice-9 match) + (guix build utils)) + #:tests? #f ; FIXME: tests depend on node-mocha + #:phases + (modify-phases %standard-phases + (add-after 'patch-dependencies 'delete-dependencies + (lambda args + (delete-dependencies + `(;; Normally, this is "built" using @mapbox/node-pre-gyp, + ;; which publishes or downloads pre-built binaries or + ;; falls back to building from source. Here, we patch out + ;; all of that and just build directly. It might be + ;; better to patch a version of @mapbox/node-pre-gyp that + ;; always builds from source, as Debian does, but there + ;; are a number of dependencies that need to be packaged + ;; or removed. + "@mapbox/node-pre-gyp" + "node-pre-gyp" ;; deprecated name still used in some places + "aws-sdk" + "@mapbox/cloudfriend" + ;; Confusingly, this is only a dependency because of + ;; @mapbox/node-pre-gyp: with that removed, + ;; npm will use its own copy: + "node-gyp" + ;; These we'd like, we just don't have them yet: + "eslint" + "mocha")))) + (add-before 'configure 'npm-config-sqlite + ;; We need this step even if we do replace @mapbox/node-pre-gyp + ;; because the package expects to build its bundled sqlite + (lambda* (#:key inputs #:allow-other-keys) + (setenv "npm_config_sqlite" (assoc-ref inputs "sqlite")))) + (add-after 'install 'patch-binding-path + ;; We replace a file that dynamic searches for the addon using + ;; node-pre-gyp (which we don't have) with a version that + ;; simply uses the path to the addon we built directly. + ;; The exact path is supposed to depend on things like the + ;; architecture and napi_build_version, so, to avoid having + ;; hard-code the details accurately, we do this after the addon + ;; has been built so we can just find where it ended up. + (lambda* (#:key outputs #:allow-other-keys) + (with-directory-excursion + (search-input-directory outputs + "lib/node_modules/sqlite3/lib") + (match (find-files "binding" "\\.node$") + ((rel-path) + (with-atomic-file-replacement "sqlite3-binding.js" + (lambda (in out) + (format out "var binding = require('./~a');\n" rel-path) + (display "module.exports = exports = binding;\n" + out)))))))) + (add-after 'patch-dependencies 'avoid-node-pre-gyp + (lambda args + ;; We need to patch .npmignore before the 'repack phase + ;; so that the built addon is installed with in the package. + ;; (Upstream assumes node-pre-gyp will download a pre-built + ;; version when this package is installed.) + (substitute* ".npmignore" + (("lib/binding") + "#lib/binding # <- patched for Guix")) + (with-atomic-json-file-replacement "package.json" + (match-lambda + (('@ . pkg-meta-alist) + (match (assoc-ref pkg-meta-alist "binary") + (('@ . binary-alist) + ;; When it builds from source, node-pre-gyp supplies + ;; module_name and module_path based on the entries under + ;; "binary" from "package.json", so this package's + ;; "binding.gyp" doesn't define them. Thus, we also need + ;; to supply them. The GYP_DEFINES environment variable + ;; turns out to be the easiest way to make sure they are + ;; propagated from npm to node-gyp to gyp. + (setenv "GYP_DEFINES" + (string-append + "module_name=" + (assoc-ref binary-alist "module_name") + " " + "module_path=" + (assoc-ref binary-alist "module_path"))))) + ;; We need to remove the install script from "package.json", + ;; as it would try to use node-pre-gyp and would block the + ;; automatic building performed by `npm install`. + (cons '@ (map (match-lambda + (("scripts" @ . scripts-alist) + `("scripts" @ ,@(filter (match-lambda + (("install" . _) + #f) + (_ + #t)) + scripts-alist))) + (other + other)) + pkg-meta-alist)))))))))) + (home-page "https://github.com/mapbox/node-sqlite3") + (synopsis "Node.js bindings for SQLite3") + (description + "@code{node-sqlite3} provides a set of a Node.js bindings for interacting +with SQLite3 databases.") + (license license:bsd-3))) -- cgit v1.2.3 From e6ef40bef28b4439246b863f7d4b4c6bab780a34 Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Sat, 8 Jan 2022 03:42:14 -0500 Subject: gnu: Add node-file-uri-to-path. * gnu/packages/node-xyz.scm (node-file-uri-to-path): New variable. Signed-off-by: Liliana Marie Prikler --- gnu/packages/node-xyz.scm | 55 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) (limited to 'gnu/packages/node-xyz.scm') diff --git a/gnu/packages/node-xyz.scm b/gnu/packages/node-xyz.scm index c2e74ad685..f9a14c9d68 100644 --- a/gnu/packages/node-xyz.scm +++ b/gnu/packages/node-xyz.scm @@ -24,6 +24,7 @@ (define-module (gnu packages node-xyz) #:use-module ((guix licenses) #:prefix license:) #:use-module (gnu packages sqlite) #:use-module (gnu packages python) + #:use-module (gnu packages web) #:use-module (guix gexp) #:use-module (guix packages) #:use-module (guix git-download) @@ -813,3 +814,57 @@ (define-public node-sqlite3 "@code{node-sqlite3} provides a set of a Node.js bindings for interacting with SQLite3 databases.") (license license:bsd-3))) + +(define-public node-file-uri-to-path + (package + (name "node-file-uri-to-path") + (version "2.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/TooTallNate/file-uri-to-path") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "08l779az44czm12xdhgcrnzpqw34s59hbrlfphs7g9y2k26drqav")))) + (native-inputs + (list esbuild)) + (build-system node-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'patch-dependencies 'delete-dependencies + (lambda args + (delete-dependencies `("@types/mocha" + "@types/node" + "@typescript-eslint/eslint-plugin" + "@typescript-eslint/parser" + "cpy-cli" + "eslint" + "eslint-config-airbnb" + "eslint-config-prettier" + "eslint-import-resolver-typescript" + "eslint-plugin-import" + "eslint-plugin-jsx-a11y" + "eslint-plugin-react" + "mocha" + "rimraf" + "typescript")))) + (replace 'build + (lambda* (#:key inputs native-inputs #:allow-other-keys) + (copy-recursively "src" "dist") + (invoke (search-input-file (or native-inputs inputs) + "/bin/esbuild") + "dist/index.ts" + "--outfile=dist/src/index.js" + "--format=cjs" + "--sourcemap" + "--platform=node")))) + #:tests? #f)) + (home-page "https://github.com/TooTallNate/file-uri-to-path") + (synopsis "Convert a @code{file:} URI to a file path") + (description "This package provides a function to convert a @code{file:} +URI to a file path. It accepts a @code{file:} URI and returns a file path +suitable for use with the @code{fs} module functions.") + (license license:expat))) -- cgit v1.2.3 From 12e05563695044649154ba51eef8acddc72797fe Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Sat, 8 Jan 2022 03:42:15 -0500 Subject: gnu: Add node-bindings. * gnu/packages/node-xyz.scm (node-bindings): New variable. Signed-off-by: Liliana Marie Prikler --- gnu/packages/node-xyz.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'gnu/packages/node-xyz.scm') diff --git a/gnu/packages/node-xyz.scm b/gnu/packages/node-xyz.scm index f9a14c9d68..0e621a2e52 100644 --- a/gnu/packages/node-xyz.scm +++ b/gnu/packages/node-xyz.scm @@ -868,3 +868,28 @@ (define-public node-file-uri-to-path URI to a file path. It accepts a @code{file:} URI and returns a file path suitable for use with the @code{fs} module functions.") (license license:expat))) + +(define-public node-bindings + (package + (name "node-bindings") + (version "1.5.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/TooTallNate/node-bindings") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "100gp6kpjvd4j1dqnp0sbjr1hqx5mz7r61q9qy527jyhk9mj47wk")))) + (inputs + (list node-file-uri-to-path)) + (build-system node-build-system) + (arguments + ;; there are no tests + `(#:tests? #f)) + (home-page "https://github.com/TooTallNate/node-bindings") + (synopsis "Locate native addons") + (description "This package provides a helper module to locate native +addons in a wide array of potential locations.") + (license license:expat))) -- cgit v1.2.3 From db82f64cf785474276283298ecb803a280b41091 Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Sat, 8 Jan 2022 03:42:16 -0500 Subject: gnu: Add node-segfault-handler. * gnu/packages/node-xyz.scm (node-segfault-handler): New variable. Signed-off-by: Liliana Marie Prikler --- gnu/packages/node-xyz.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'gnu/packages/node-xyz.scm') diff --git a/gnu/packages/node-xyz.scm b/gnu/packages/node-xyz.scm index 0e621a2e52..c4c88e8df2 100644 --- a/gnu/packages/node-xyz.scm +++ b/gnu/packages/node-xyz.scm @@ -893,3 +893,32 @@ (define-public node-bindings (description "This package provides a helper module to locate native addons in a wide array of potential locations.") (license license:expat))) + +(define-public node-segfault-handler + (package + (name "node-segfault-handler") + (version "1.3.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ddopson/node-segfault-handler") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "07nbw35wvrr18kmh8f388v4k5mpjgyy0260bx0xzjdv795i3xvfv")))) + (native-inputs + (list python)) + (inputs + (list node-bindings node-nan)) + (build-system node-build-system) + (arguments + ;; there are no tests + `(#:tests? #f)) + (home-page "https://github.com/ddopson/node-segfault-handler") + (synopsis "Catches @code{SIGSEGV} and prints diagnostic information") + (description "This package is a tool for debugging Node.js C/C++ native +code modules and getting stack traces when things go wrong. If a +@code{SIGSEGV} signal is raised, the module will print a native stack trace to +both @file{stderr} and to a timestamped file.") + (license license:bsd-3))) -- cgit v1.2.3 From 517c988bcaca73a498c206d28e7b6b65f19cd54d Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Sat, 8 Jan 2022 03:42:17 -0500 Subject: gnu: Add node-ms. * gnu/packages/node-xyz.scm (node-ms): New variable. Signed-off-by: Liliana Marie Prikler --- gnu/packages/node-xyz.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'gnu/packages/node-xyz.scm') diff --git a/gnu/packages/node-xyz.scm b/gnu/packages/node-xyz.scm index c4c88e8df2..b07e17d54c 100644 --- a/gnu/packages/node-xyz.scm +++ b/gnu/packages/node-xyz.scm @@ -922,3 +922,36 @@ (define-public node-segfault-handler @code{SIGSEGV} signal is raised, the module will print a native stack trace to both @file{stderr} and to a timestamped file.") (license license:bsd-3))) + +(define-public node-ms + (package + (name "node-ms") + (version "2.1.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/vercel/ms") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1l74kmmwffmzdz38lli0v5mdb9p9jmsjxpb48ncknqw2n74cgf08")))) + (build-system node-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'patch-dependencies 'delete-dependencies + (lambda args + (delete-dependencies `("eslint" + "expect.js" + "husky" + "lint-staged" + "mocha" + "prettier"))))) + #:tests? #f)) + (home-page "https://github.com/vercel/ms") + (synopsis "Convert time to milliseconds") + (description "Use this package to easily convert various time formats to +milliseconds. A number supplied as integer or string is returned as-is, while +a string consisting of a number and a time unit is converted to milliseconds.") + (license license:expat))) -- cgit v1.2.3 From 161f2b1522cb5f16ed7d6574771d5edf1f12cc07 Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Sat, 8 Jan 2022 03:42:18 -0500 Subject: gnu: Add node-debug. * gnu/packages/node-xyz.scm (node-debug): New variable. Signed-off-by: Liliana Marie Prikler --- gnu/packages/node-xyz.scm | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) (limited to 'gnu/packages/node-xyz.scm') diff --git a/gnu/packages/node-xyz.scm b/gnu/packages/node-xyz.scm index b07e17d54c..f949aaa581 100644 --- a/gnu/packages/node-xyz.scm +++ b/gnu/packages/node-xyz.scm @@ -955,3 +955,45 @@ (define-public node-ms milliseconds. A number supplied as integer or string is returned as-is, while a string consisting of a number and a time unit is converted to milliseconds.") (license license:expat))) + +(define-public node-debug + (package + (name "node-debug") + (version "4.3.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/debug-js/debug") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0ji0dmdl2xkgxqxvd6xjy7k3mmknmhvqjgc40vyly9ka1mpf20vb")))) + (inputs + (list node-ms)) + (build-system node-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'patch-dependencies 'delete-dependencies + (lambda args + (delete-dependencies `("brfs" + "browserify" + "coveralls" + "istanbul" + "karma" + "karma-browserify" + "karma-chrome-launcher" + "karma-mocha" + "mocha" + "mocha-lcov-reporter" + "xo" + "supports-color"))))) + #:tests? #f)) + (home-page "https://github.com/debug-js/debug") + (synopsis "Debugging utility for Node.js") + (description "The @code{debug} module exposes a function, which if called +with a module name as argument provides a function that writes debug output to +@code{console.error} under that module name. This output can be controlled in +a more fine-grained manner by binding the @env{DEBUG} variable.") + (license license:expat))) -- cgit v1.2.3 From fa9bc626c8ade896421aa137964c1ff987ed34af Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Sat, 8 Jan 2022 03:42:19 -0500 Subject: gnu: Add node-serialport-binding-abstract. * gnu/packages/node-xyz.scm (node-serialport-binding-abstract): New variable. Signed-off-by: Liliana Marie Prikler --- gnu/packages/node-xyz.scm | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) (limited to 'gnu/packages/node-xyz.scm') diff --git a/gnu/packages/node-xyz.scm b/gnu/packages/node-xyz.scm index f949aaa581..090468ab40 100644 --- a/gnu/packages/node-xyz.scm +++ b/gnu/packages/node-xyz.scm @@ -997,3 +997,37 @@ (define-public node-debug @code{console.error} under that module name. This output can be controlled in a more fine-grained manner by binding the @env{DEBUG} variable.") (license license:expat))) + +(define-public node-serialport-binding-abstract + (package + (name "node-serialport-binding-abstract") + (version "9.2.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/serialport/node-serialport") + (commit "v9.2.7"))) + (file-name (git-file-name "serialport-monorepo" version)) + (sha256 + (base32 "0x7zm59a5ff5yygjyw15xs3r5m3rb8av1yfrh4snn44mrwq87yg8")))) + (inputs + (list node-debug)) + (build-system node-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda args + (chdir "packages/binding-abstract")))) + #:tests? #f)) + (home-page "https://serialport.io") + (synopsis "Abstract base class for Node SerialPort bindings") + (description "Node SerialPort is a modular suite of Node.js packages for +accessing serial ports. The Guix package @code{node-serialport} provides the +recommended high-level interface. + +This package provides the @code{AbstractBinding} class, the base for all Node +SerialPort bindings. You wouldn't use this class directly, but instead extend +it to make a new binding for a different platform or underling technology.") + (license license:expat))) -- cgit v1.2.3 From e2dee179efe4d401191cff8e9eb541445c59120e Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Sat, 8 Jan 2022 03:42:20 -0500 Subject: gnu: Add node-serialport-parser-delimiter. * gnu/packages/node-xyz.scm (node-serialport-parser-delimiter): New variable. Signed-off-by: Liliana Marie Prikler --- gnu/packages/node-xyz.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'gnu/packages/node-xyz.scm') diff --git a/gnu/packages/node-xyz.scm b/gnu/packages/node-xyz.scm index 090468ab40..dbc2a40794 100644 --- a/gnu/packages/node-xyz.scm +++ b/gnu/packages/node-xyz.scm @@ -1031,3 +1031,25 @@ (define-public node-serialport-binding-abstract SerialPort bindings. You wouldn't use this class directly, but instead extend it to make a new binding for a different platform or underling technology.") (license license:expat))) + +(define-public node-serialport-parser-delimiter + (package + (inherit node-serialport-binding-abstract) + (name "node-serialport-parser-delimiter") + (version "9.2.4") + (inputs `()) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda args + (chdir "packages/parser-delimiter")))) + #:tests? #f)) + (synopsis "Node SerialPort parser to split data on a delimiter") + (description "Node SerialPort is a modular suite of Node.js packages for +accessing serial ports. The Guix package @code{node-serialport} provides the +recommended high-level interface. + +Parsers are used to take raw binary data and transform them into usable +messages. This package provides @code{Delimiter}, a parser that emits data +each time a specified byte sequence is received."))) -- cgit v1.2.3 From b5ffff233a2a73758f0febe0ff5d51f360b74f14 Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Sat, 8 Jan 2022 03:42:21 -0500 Subject: gnu: Add node-serialport-parser-readline. * gnu/packages/node-xyz.scm (node-serialport-parser-readline): New variable. Signed-off-by: Liliana Marie Prikler --- gnu/packages/node-xyz.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'gnu/packages/node-xyz.scm') diff --git a/gnu/packages/node-xyz.scm b/gnu/packages/node-xyz.scm index dbc2a40794..206f163bfc 100644 --- a/gnu/packages/node-xyz.scm +++ b/gnu/packages/node-xyz.scm @@ -1053,3 +1053,26 @@ (define-public node-serialport-parser-delimiter Parsers are used to take raw binary data and transform them into usable messages. This package provides @code{Delimiter}, a parser that emits data each time a specified byte sequence is received."))) + +(define-public node-serialport-parser-readline + (package + (inherit node-serialport-binding-abstract) + (name "node-serialport-parser-readline") + (version "9.2.4") + (inputs + (list node-serialport-parser-delimiter)) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda args + (chdir "packages/parser-readline")))) + #:tests? #f)) + (synopsis "Node SerialPort parser to split data on newlines") + (description "Node SerialPort is a modular suite of Node.js packages for +accessing serial ports. The Guix package @code{node-serialport} provides the +recommended high-level interface. + +Parsers are used to take raw binary data and transform them into usable +messages. This package provides @code{Readline}, a parser that emits data +after a (configurable) newline delimiter is received."))) -- cgit v1.2.3 From d85b3b59a692a21b60f94691a5af985aaf71ec74 Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Sat, 8 Jan 2022 03:42:22 -0500 Subject: gnu: Add node-serialport-bindings. * gnu/packages/node-xyz.scm (node-serialport-bindings): New variable. Signed-off-by: Liliana Marie Prikler --- gnu/packages/node-xyz.scm | 54 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) (limited to 'gnu/packages/node-xyz.scm') diff --git a/gnu/packages/node-xyz.scm b/gnu/packages/node-xyz.scm index 206f163bfc..b66aab7c0c 100644 --- a/gnu/packages/node-xyz.scm +++ b/gnu/packages/node-xyz.scm @@ -1076,3 +1076,57 @@ (define-public node-serialport-parser-readline Parsers are used to take raw binary data and transform them into usable messages. This package provides @code{Readline}, a parser that emits data after a (configurable) newline delimiter is received."))) + +(define-public node-serialport-bindings + (package + (inherit node-serialport-binding-abstract) + (name "node-serialport-bindings") + (version "9.2.7") + (native-inputs + (list python)) + (inputs + (list node-nan node-bindings node-serialport-binding-abstract + node-serialport-parser-readline node-debug)) + (arguments + `(#:modules + ((guix build node-build-system) + (srfi srfi-1) + (ice-9 match) + (guix build utils)) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda args + (chdir "packages/bindings"))) + (add-after 'patch-dependencies 'delete-dependencies + (lambda args + (delete-dependencies `("prebuild-install" + ;; devDependencies + "@serialport/binding-mock" + "node-abi")))) + (add-after 'chdir 'avoid-prebuild-install + (lambda args + (with-atomic-json-file-replacement "package.json" + (match-lambda + (('@ . pkg-meta-alist) + (cons '@ (map (match-lambda + (("scripts" @ . scripts-alist) + `("scripts" @ ,@(filter (match-lambda + (("install" . _) + #f) + (_ + #t)) + scripts-alist))) + (other + other)) + pkg-meta-alist)))))))) + #:tests? #f)) + (synopsis "Abstract base class for Node SerialPort bindings") + (description "Node SerialPort is a modular suite of Node.js packages for +accessing serial ports. The Guix package @code{node-serialport} provides the +recommended high-level interface. + +This package provides the @code{Binding} class, which uses a native addon to +talk to the underlying system. You never have to use @code{Binding} objects +directly. There is also a @code{MockBinding} available (but not yet packaged +for Guix) to assist with testing."))) -- cgit v1.2.3 From e680c56d106f791e212dc3c456829683a289cbeb Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Sat, 8 Jan 2022 03:42:23 -0500 Subject: gnu: Add node-serialport-parser-regex. * gnu/packages/node-xyz.scm (node-serialport-parser-regex): New variable. Signed-off-by: Liliana Marie Prikler --- gnu/packages/node-xyz.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'gnu/packages/node-xyz.scm') diff --git a/gnu/packages/node-xyz.scm b/gnu/packages/node-xyz.scm index b66aab7c0c..7ce9476555 100644 --- a/gnu/packages/node-xyz.scm +++ b/gnu/packages/node-xyz.scm @@ -1130,3 +1130,25 @@ (define-public node-serialport-bindings talk to the underlying system. You never have to use @code{Binding} objects directly. There is also a @code{MockBinding} available (but not yet packaged for Guix) to assist with testing."))) + +(define-public node-serialport-parser-regex + (package + (inherit node-serialport-binding-abstract) + (name "node-serialport-parser-regex") + (version "9.2.4") + (inputs `()) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda args + (chdir "packages/parser-regex")))) + #:tests? #f)) + (synopsis "Node SerialPort parser to split data on a regular expression") + (description "Node SerialPort is a modular suite of Node.js packages for +accessing serial ports. The Guix package @code{node-serialport} provides the +recommended high-level interface. + +Parsers are used to take raw binary data and transform them into usable +messages. This package provides @code{Regex}, a parser that uses a regular +expression to split the incoming text."))) -- cgit v1.2.3 From 9604015267db5ed791a84ef62ddbfa6b76ded7b6 Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Sat, 8 Jan 2022 03:42:24 -0500 Subject: gnu: Add node-serialport-parser-ready. * gnu/packages/node-xyz.scm (node-serialport-parser-ready): New variable. Signed-off-by: Liliana Marie Prikler --- gnu/packages/node-xyz.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'gnu/packages/node-xyz.scm') diff --git a/gnu/packages/node-xyz.scm b/gnu/packages/node-xyz.scm index 7ce9476555..45791487af 100644 --- a/gnu/packages/node-xyz.scm +++ b/gnu/packages/node-xyz.scm @@ -1152,3 +1152,26 @@ (define-public node-serialport-parser-regex Parsers are used to take raw binary data and transform them into usable messages. This package provides @code{Regex}, a parser that uses a regular expression to split the incoming text."))) + +(define-public node-serialport-parser-ready + (package + (inherit node-serialport-binding-abstract) + (name "node-serialport-parser-ready") + (version "9.2.4") + (inputs `()) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda args + (chdir "packages/parser-ready")))) + #:tests? #f)) + (synopsis "Node SerialPort parser to wait for specified byte sequence") + (description "Node SerialPort is a modular suite of Node.js packages for +accessing serial ports. The Guix package @code{node-serialport} provides the +recommended high-level interface. + +Parsers are used to take raw binary data and transform them into usable +messages. This package provides @code{Ready}, a parser that waits for a +specified sequence of ``ready'' bytes before emitting a ready event and +emitting data events."))) -- cgit v1.2.3 From b27a772827325f038ff32912d523efe583e4f00e Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Sat, 8 Jan 2022 03:42:25 -0500 Subject: gnu: Add node-serialport-parser-inter-byte-timeout. * gnu/packages/node-xyz.scm (node-serialport-parser-inter-byte-timeout): New variable. Signed-off-by: Liliana Marie Prikler --- gnu/packages/node-xyz.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'gnu/packages/node-xyz.scm') diff --git a/gnu/packages/node-xyz.scm b/gnu/packages/node-xyz.scm index 45791487af..76874b12d0 100644 --- a/gnu/packages/node-xyz.scm +++ b/gnu/packages/node-xyz.scm @@ -1175,3 +1175,25 @@ (define-public node-serialport-parser-ready messages. This package provides @code{Ready}, a parser that waits for a specified sequence of ``ready'' bytes before emitting a ready event and emitting data events."))) + +(define-public node-serialport-parser-inter-byte-timeout + (package + (inherit node-serialport-binding-abstract) + (name "node-serialport-parser-inter-byte-timeout") + (version "9.2.4") + (inputs `()) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda args + (chdir "packages/parser-inter-byte-timeout")))) + #:tests? #f)) + (synopsis "Node SerialPort parser to detect pauses in data") + (description "Node SerialPort is a modular suite of Node.js packages for +accessing serial ports. The Guix package @code{node-serialport} provides the +recommended high-level interface. + +Parsers are used to take raw binary data and transform them into usable +messages. This package provides @code{InterByteTimeout}, a parser that emits +data if there is a pause between packets for the specified amount of time."))) -- cgit v1.2.3 From 5a621e83d854494630b61f9720e28a4aebf9c1df Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Sat, 8 Jan 2022 03:42:26 -0500 Subject: gnu: Add node-serialport-parser-cctalk. * gnu/packages/node-xyz.scm (node-serialport-parser-cctalk): New variable. Signed-off-by: Liliana Marie Prikler --- gnu/packages/node-xyz.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'gnu/packages/node-xyz.scm') diff --git a/gnu/packages/node-xyz.scm b/gnu/packages/node-xyz.scm index 76874b12d0..1f2934432b 100644 --- a/gnu/packages/node-xyz.scm +++ b/gnu/packages/node-xyz.scm @@ -1197,3 +1197,26 @@ (define-public node-serialport-parser-inter-byte-timeout Parsers are used to take raw binary data and transform them into usable messages. This package provides @code{InterByteTimeout}, a parser that emits data if there is a pause between packets for the specified amount of time."))) + +(define-public node-serialport-parser-cctalk + (package + (inherit node-serialport-binding-abstract) + (name "node-serialport-parser-cctalk") + (version "9.2.4") + (inputs `()) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda args + (chdir "packages/parser-cctalk")))) + #:tests? #f)) + (synopsis "Node SerialPort parser for the ccTalk protocol") + (description "Node SerialPort is a modular suite of Node.js packages for +accessing serial ports. The Guix package @code{node-serialport} provides the +recommended high-level interface. + +Parsers are used to take raw binary data and transform them into usable +messages. This package provides @code{CCTalk}, which emits packets for the +ccTalk protocol (an open standard for currency detectors) as they are +received."))) -- cgit v1.2.3 From 8ff1e9adc22bc126814014947d286208b57ba29c Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Sat, 8 Jan 2022 03:42:27 -0500 Subject: gnu: Add node-serialport-parser-byte-length. * gnu/packages/node-xyz.scm (node-serialport-parser-byte-length): New variable. Signed-off-by: Liliana Marie Prikler --- gnu/packages/node-xyz.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'gnu/packages/node-xyz.scm') diff --git a/gnu/packages/node-xyz.scm b/gnu/packages/node-xyz.scm index 1f2934432b..d5b2ed3a44 100644 --- a/gnu/packages/node-xyz.scm +++ b/gnu/packages/node-xyz.scm @@ -1220,3 +1220,25 @@ (define-public node-serialport-parser-cctalk messages. This package provides @code{CCTalk}, which emits packets for the ccTalk protocol (an open standard for currency detectors) as they are received."))) + +(define-public node-serialport-parser-byte-length + (package + (inherit node-serialport-binding-abstract) + (name "node-serialport-parser-byte-length") + (version "9.2.4") + (inputs `()) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda args + (chdir "packages/parser-byte-length")))) + #:tests? #f)) + (synopsis "Node SerialPort parser for fixed-length buffers") + (description "Node SerialPort is a modular suite of Node.js packages for +accessing serial ports. The Guix package @code{node-serialport} provides the +recommended high-level interface. + +Parsers are used to take raw binary data and transform them into usable +messages. This package provides @code{ByteLength}, a parser that emits data +as a buffer every time a specified number of bytes are received."))) -- cgit v1.2.3 From 84e811ca0fb395179c9e0ba07708d99d957c73cd Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Sat, 8 Jan 2022 03:42:28 -0500 Subject: gnu: Add node-serialport-stream. * gnu/packages/node-xyz.scm (node-serialport-stream): New variable. Signed-off-by: Liliana Marie Prikler --- gnu/packages/node-xyz.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'gnu/packages/node-xyz.scm') diff --git a/gnu/packages/node-xyz.scm b/gnu/packages/node-xyz.scm index d5b2ed3a44..f863f5fdeb 100644 --- a/gnu/packages/node-xyz.scm +++ b/gnu/packages/node-xyz.scm @@ -1242,3 +1242,31 @@ (define-public node-serialport-parser-byte-length Parsers are used to take raw binary data and transform them into usable messages. This package provides @code{ByteLength}, a parser that emits data as a buffer every time a specified number of bytes are received."))) + +(define-public node-serialport-stream + (package + (inherit node-serialport-binding-abstract) + (name "node-serialport-stream") + (version "9.2.4") + (inputs + (list node-debug)) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'patch-dependencies 'delete-dependencies + (lambda args + (delete-dependencies `(;; devDependencies + "@serialport/binding-mock")))) + (add-after 'unpack 'chdir + (lambda args + (chdir "packages/stream")))) + #:tests? #f)) + (synopsis "Node.js stream interface for Node SerialPort") + (description "Node SerialPort is a modular suite of Node.js packages for +accessing serial ports. The Guix package @code{node-serialport} provides the +recommended high-level interface. + +This package provides an interface for using Node SerialPort bindings via the +Node.js Stream API. The stream is a duplex stream, allowing for reading and +writing. It has additional methods for managing the SerialPort +connection."))) -- cgit v1.2.3 From d94608bc136cc42ea70d676122fa363ae866bcd8 Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Sat, 8 Jan 2022 03:42:29 -0500 Subject: gnu: Add node-serialport. * gnu/packages/node-xyz.scm (node-serialport): New variable. Signed-off-by: Liliana Marie Prikler --- gnu/packages/node-xyz.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'gnu/packages/node-xyz.scm') diff --git a/gnu/packages/node-xyz.scm b/gnu/packages/node-xyz.scm index f863f5fdeb..6db073a164 100644 --- a/gnu/packages/node-xyz.scm +++ b/gnu/packages/node-xyz.scm @@ -1270,3 +1270,36 @@ (define-public node-serialport-stream Node.js Stream API. The stream is a duplex stream, allowing for reading and writing. It has additional methods for managing the SerialPort connection."))) + +(define-public node-serialport + (package + (inherit node-serialport-binding-abstract) + (name "node-serialport") + (version "9.2.7") + (inputs + (list node-serialport-bindings + node-serialport-parser-delimiter + node-serialport-parser-readline + node-serialport-parser-regex + node-serialport-parser-ready + node-serialport-parser-inter-byte-timeout + node-serialport-parser-cctalk + node-serialport-parser-byte-length + node-serialport-stream + node-debug)) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'patch-dependencies 'delete-dependencies + (lambda args + (delete-dependencies `("@serialport/binding-mock")) + )) + (add-after 'unpack 'chdir + (lambda args + (chdir "packages/serialport")))) + #:tests? #f)) + (synopsis "Node.js package to access serial ports") + (description "Node SerialPort is a modular suite of Node.js packages for +accessing serial ports. This package is the recommended entry point for most +projects. It combines a high-level Node.js stream interface with a useful +default set of parsers and bindings."))) -- cgit v1.2.3 From 9d613c36de1ea52e745d30bad841b6cdeaca65f4 Mon Sep 17 00:00:00 2001 From: Liliana Marie Prikler Date: Sat, 8 Jan 2022 20:59:28 +0100 Subject: gnu: node-mersenne: Fix typo in description. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/node-xyz.scm (node-mersenne)[description]: Use “this” rather than “thix”. --- gnu/packages/node-xyz.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'gnu/packages/node-xyz.scm') diff --git a/gnu/packages/node-xyz.scm b/gnu/packages/node-xyz.scm index 6db073a164..87892410f9 100644 --- a/gnu/packages/node-xyz.scm +++ b/gnu/packages/node-xyz.scm @@ -172,7 +172,7 @@ (define-public node-mersenne (arguments '(#:tests? #f)) ; No tests. (home-page "http://www.enchantedage.com/node-mersenne") (synopsis "Node.js module for generating Mersenne Twister random numbers") - (description "Thix package provides a node.js port of the Mersenne Twister + (description "This package provides a node.js port of the Mersenne Twister random number generator.") (license license:bsd-3))) -- cgit v1.2.3