projects/guix·blob python-team · refs

4932 lines · 185.9 KiB

1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2020 Efraim Flashner <[email protected]>
3;;; Copyright © 2020 Giacomo Leidi <[email protected]>
4;;; Copyright © 2021 Noisytoot <[email protected]>
5;;; Copyright © 2021 Charles <[email protected]>
6;;; Copyright © 2021 Philip McGrath <[email protected]>
7;;; Copyright © 2021 Dhruvin Gandhi <[email protected]>
8;;; Copyright © 2022 Nicolas Graves <[email protected]>
9;;; Copyright © 2023 Jelle Licht <[email protected]>
10;;; Copyright © 2024-2026 Daniel Khodabakhsh <[email protected]>
11;;; Copyright © 2026 Sharlatan Hellseher <[email protected]>
12;;;
13;;; This file is part of GNU Guix.
14;;;
15;;; GNU Guix is free software; you can redistribute it and/or modify it
16;;; under the terms of the GNU General Public License as published by
17;;; the Free Software Foundation; either version 3 of the License, or (at
18;;; your option) any later version.
19;;;
20;;; GNU Guix is distributed in the hope that it will be useful, but
21;;; WITHOUT ANY WARRANTY; without even the implied warranty of
22;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23;;; GNU General Public License for more details.
24;;;
25;;; You should have received a copy of the GNU General Public License
26;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
27
28(define-module (gnu packages node-xyz)
29 #:use-module (gnu packages base) ; sed
30 #:use-module (gnu packages sqlite)
31 #:use-module (gnu packages python)
32 #:use-module (gnu packages web) ; node-esbuild
33 #:use-module (guix build-system copy)
34 #:use-module (guix build-system node)
35 #:use-module ((guix build-system pyproject) #:select (pypi-uri))
36 #:use-module (guix download)
37 #:use-module (guix gexp)
38 #:use-module (guix git-download)
39 #:use-module ((guix licenses) #:prefix license:)
40 #:use-module (guix packages)
41 #:use-module (guix utils))
42
43;;;
44;;; Please: Try to add new module packages in alphabetic order.
45;;;
46
47(define-public node-acorn
48 (package
49 (name "node-acorn")
50 (version "8.7.1")
51 (source
52 (origin
53 (method git-fetch)
54 (uri (git-reference
55 (url "https://github.com/acornjs/acorn")
56 (commit version)))
57 (file-name (git-file-name name version))
58 (sha256
59 (base32 "10lpqbq4wvndx13mh7yjqgpcp3ac81b9zmrn4qb1qpzgy462fa92"))))
60 (build-system node-build-system)
61 (arguments
62 '(#:tests? #f
63 #:modules
64 ((guix build node-build-system)
65 (srfi srfi-1)
66 (ice-9 match)
67 (guix build utils))
68 #:phases
69 (modify-phases %standard-phases
70 (add-after 'unpack 'change-directory
71 (lambda _
72 (chdir "acorn")))
73 (add-before 'configure 'avoid-prepare-scripts
74 (lambda _
75 ;; We need to remove the prepare script from "package.json", as
76 ;; it would try to use the build environment and would block the
77 ;; automatic building by other packages making use of node-acorn.
78 (modify-json (delete-fields '(("scripts" "prepare"))))))
79 (replace 'build
80 (lambda* (#:key inputs native-inputs #:allow-other-keys)
81 (let ((esbuild (search-input-file (or native-inputs inputs)
82 "/bin/esbuild")))
83 (invoke esbuild
84 "src/index.js"
85 "--outfile=dist/acorn.js"
86 "--format=cjs"
87 "--bundle"
88 "--platform=node")
89 (invoke esbuild
90 "src/index.js"
91 "--outfile=dist/acorn.mjs"
92 "--format=esm"
93 "--bundle"
94 "--platform=node")
95 (invoke esbuild
96 "src/bin/acorn.js"
97 "--outfile=dist/bin.js"
98 "--format=cjs"
99 "--platform=node")))))))
100 (native-inputs
101 (list esbuild))
102 (home-page "https://github.com/acornjs/acorn/tree/master/acorn")
103 (synopsis "Javascript-based Javascript parser")
104 (description "Acornjs is a Javascript parser with many options and an
105architecture supporting plugins.")
106 (license license:expat)))
107
108(define-public node-addon-api
109 (package
110 (name "node-addon-api")
111 (version "8.5.0")
112 (source
113 (origin
114 (method git-fetch)
115 (uri (git-reference
116 (url "https://github.com/nodejs/node-addon-api")
117 (commit (string-append "v" version))))
118 (file-name (git-file-name name version))
119 (sha256
120 (base32 "18sbs3n69p2qax88dji6704a2jlq1af74k4i61s7pja7xc8gs1vd"))))
121 (inputs
122 (list python node-safe-buffer))
123 (build-system node-build-system)
124 (arguments
125 `(#:modules
126 ((guix build node-build-system)
127 (srfi srfi-1)
128 (ice-9 match)
129 (guix build utils))
130 #:phases
131 (modify-phases %standard-phases
132 (add-after 'patch-dependencies 'delete-dependencies
133 (lambda args
134 (modify-json (delete-dependencies
135 `("benchmark"
136 "bindings"
137 "clang-format"
138 "eslint"
139 "eslint-config-semistandard"
140 "eslint-config-standard"
141 "eslint-plugin-import"
142 "eslint-plugin-node"
143 "eslint-plugin-promise"
144 "fs-extra"
145 "neostandard"
146 "path"
147 "pre-commit"
148 "semver"))
149 ;; We can't run the js-based tests,
150 ;; but we can still do the C++ parts
151 (replace-fields (list (cons
152 "scripts.test" "echo stopping after pretest on Guix")))))))))
153 (home-page "https://github.com/nodejs/node-addon-api")
154 (synopsis "Node.js API (Node-API) header-only C++ wrappers")
155 (description "This module contains header-only C++ wrapper classes which
156simplify the use of the C based Node-API provided by Node.js when using C++.
157It provides a C++ object model and exception handling semantics with low
158overhead.
159
160Node-API is an ABI stable C interface provided by Node.js for building native
161addons. It is intended to insulate native addons from changes in the
162underlying JavaScript engine and allow modules compiled for one version to run
163on later versions of Node.js without recompilation. The @code{node-addon-api}
164module, which is not part of Node.js, preserves the benefits of the Node-API
165as it consists only of inline code that depends only on the stable API
166provided by Node-API.
167
168It is important to remember that @emph{other} Node.js interfaces such as
169@code{libuv} (included in a project via @code{#include <uv.h>}) are not
170ABI-stable across Node.js major versions.")
171 (license license:expat)))
172
173(define-public node-agent-base
174 (package
175 (name "node-agent-base")
176 (version "7.1.3")
177 (source
178 (origin
179 (method git-fetch)
180 (uri (git-reference
181 (url "https://github.com/TooTallNate/proxy-agents")
182 (commit (string-append "agent-base@" version))))
183 (file-name (git-file-name name version))
184 (sha256
185 (base32 "0svw5z3j2icg7lcyv6cnk1a5n11fc8kzig11j2bhiq9wnclv96r0"))))
186 (build-system node-build-system)
187 (arguments
188 (list
189 #:tests? #f
190 #:phases
191 #~(modify-phases %standard-phases
192 (add-after 'unpack 'change-directory
193 (lambda _
194 (chdir "packages/agent-base")))
195 (add-after 'patch-dependencies 'delete-dev-dependencies
196 (lambda _
197 (modify-json (delete-dev-dependencies))))
198 (replace 'build
199 (lambda* (#:key inputs native-inputs #:allow-other-keys)
200 (let ((esbuild (search-input-file (or native-inputs inputs) "/bin/esbuild")))
201 (mkdir-p "dist")
202 (for-each
203 (lambda (ts-file)
204 (let* ((base (basename ts-file ".ts"))
205 (js-file (string-append "dist/" base ".js")))
206 (invoke esbuild ts-file
207 (string-append "--outfile=" js-file)
208 "--format=cjs"
209 "--platform=node"
210 "--target=es2020")))
211 (find-files "src" "\\.ts$"))))))))
212 (native-inputs (list esbuild))
213 (home-page "https://github.com/TooTallNate/proxy-agents")
214 (synopsis "Turn a function into an http.Agent instance")
215 (description "This package provides a base class for creating Node.js
216HTTP.Agent instances from a function.")
217 (license license:expat)))
218
219(define-public node-ansi-styles
220 (package
221 (name "node-ansi-styles")
222 (version "4.3.0")
223 (source
224 (origin
225 (method git-fetch)
226 (uri (git-reference
227 (url "https://github.com/chalk/ansi-styles")
228 (commit (string-append "v" version))))
229 (file-name (git-file-name name version))
230 (sha256
231 (base32 "16w388iv73g09yjxab61h201imkdw2i0aggjrs9b4kf3dyrjyr27"))))
232 (build-system node-build-system)
233 (inputs (list
234 node-color-convert))
235 (arguments (list
236 #:tests? #f ; FIXME: Tests require 'xo', 'ava', and 'tsd'.
237 #:phases #~(modify-phases %standard-phases
238 (add-before 'patch-dependencies 'modify-package (lambda _
239 (modify-json
240 (delete-dev-dependencies)))))))
241 (synopsis "ANSI escape codes for styling strings in the terminal")
242 (description "Library of ANSI escape codes to be used to style strings in terminals.")
243 (home-page (git-reference-url (origin-uri source)))
244 (license license:expat)))
245
246(define-public node-array-back
247 (package
248 (name "node-array-back")
249 (version "4.0.2")
250 (source (origin
251 (method git-fetch)
252 (uri (git-reference
253 (url "https://github.com/75lb/array-back")
254 (commit (string-append "v" version))))
255 (file-name (git-file-name name version))
256 (sha256
257 (base32 "1xfg4yd155zhi0v2a26kvg3jghcim5xgpwsn4lhikisshmrmf93m"))
258 (modules '((guix build utils)))
259 (snippet #~(begin
260 (delete-file-recursively "dist")))))
261 (build-system node-build-system)
262 (native-inputs (list esbuild))
263 (arguments (list
264 #:tests? #f ; FIXME: Tests require 'esm-runner'.
265 #:phases #~(modify-phases %standard-phases
266 (add-before 'patch-dependencies 'modify-package (lambda _
267 (modify-json
268 (delete-dev-dependencies))))
269 (replace 'build (lambda _
270 (invoke
271 "esbuild"
272 "index.mjs"
273 "--format=cjs"
274 "--outfile=dist/index.js"))))))
275 (synopsis "Isomorphic load-anywhere arrayify function")
276 (description "Takes any input and guarantees an array back.")
277 (home-page (git-reference-url (origin-uri source)))
278 (license license:expat)))
279
280(define-public node-balanced-match
281 (package
282 (name "node-balanced-match")
283 (version "1.0.2")
284 (source
285 (origin
286 (method git-fetch)
287 (uri (git-reference
288 (url "https://github.com/juliangruber/balanced-match")
289 (commit (string-append "v" version))))
290 (file-name (git-file-name name version))
291 (sha256
292 (base32 "0977r6hv9fyv6f8wvn31vcncxwhffnn05y0h4hmpkg8p2vs9ip0b"))))
293 (build-system node-build-system)
294 (arguments
295 (list
296 #:tests? #f ;FIXME Tests require 'tape'.
297 #:phases
298 #~(modify-phases %standard-phases
299 (add-before 'patch-dependencies 'modify-package
300 (lambda _
301 (modify-json (delete-dev-dependencies)))))))
302 (synopsis "Match balanced character pairs, like { and }")
303 (description
304 "Match balanced string pairs, like { and } or <b> and </b>. Supports
305regular expressions as well!")
306 (home-page (git-reference-url (origin-uri source)))
307 (license license:expat)))
308
309(define-public node-bindings
310 (package
311 (name "node-bindings")
312 (version "1.5.0")
313 (source
314 (origin
315 (method git-fetch)
316 (uri (git-reference
317 (url "https://github.com/TooTallNate/node-bindings")
318 (commit version)))
319 (file-name (git-file-name name version))
320 (sha256
321 (base32 "100gp6kpjvd4j1dqnp0sbjr1hqx5mz7r61q9qy527jyhk9mj47wk"))))
322 (inputs
323 (list node-file-uri-to-path))
324 (build-system node-build-system)
325 (arguments
326 ;; there are no tests
327 `(#:tests? #f))
328 (home-page "https://github.com/TooTallNate/node-bindings")
329 (synopsis "Locate native addons")
330 (description "This package provides a helper module to locate native
331addons in a wide array of potential locations.")
332 (license license:expat)))
333
334;; This package is a subproject from (python-xyz python-bokeh).
335;; TODO: Build it from typescript source.
336(define-public node-bokehjs
337 (package
338 (name "node-bokehjs")
339 ;; Update according python-bokeh on (gnu packages python-xyz).
340 (version "3.10.0")
341 (source
342 (origin
343 (method url-fetch)
344 (uri (pypi-uri "bokeh" version))
345 (sha256
346 (base32
347 "1kn5az69q0vcy3ql8sfcczv12fjkq98xrcjjdlmwl9brdp0b1w3k"))
348 (modules '((guix build utils)))
349 (snippet
350 #~(begin
351 (define (delete-all-but-recursive preserve)
352 (let ((dir (dirname preserve)))
353 (delete-all-but dir (basename preserve))
354 (unless (string=? dir ".")
355 (delete-all-but-recursive dir))))
356 (delete-all-but-recursive "src/bokeh/server/static")))))
357 (build-system copy-build-system)
358 (arguments
359 (list
360 #:install-plan
361 #~'(("src/bokeh/server/static/js" "bokehjs/static/")
362 ("src/bokeh/server/static/lib" "bokehjs/static/"))))
363 (home-page "https://docs.bokeh.org/en/latest/docs/user_guide/advanced/bokehjs.html")
364 (synopsis "Interactive plots and applications in the browser")
365 (description
366 "BokehJS is a client-side library that lets you create interactive plots
367and applications. It takes care of drawing, rendering, and event handling.
368The Bokeh Python library (and libraries for other languages such as R, Scala,
369and Julia) enables convenient high-level interaction with BokehJS to make
370JavaScript or web development easier.")
371 (license license:bsd-3)))
372
373(define-public node-boolbase
374 (package
375 (name "node-boolbase")
376 (version "2.0.0")
377 (source
378 (origin
379 (method git-fetch)
380 (uri (git-reference
381 (url "https://github.com/fb55/boolbase")
382 (commit (string-append "v" version))))
383 (file-name (git-file-name name version))
384 (sha256
385 (base32 "1g19jwrqv5vwy9vbviw5pkaic3kd1v98b3agwz27r4wlma4afl5y"))))
386 (build-system node-build-system)
387 (arguments
388 (list
389 #:phases
390 #~(modify-phases %standard-phases
391 (add-after 'unpack 'neuter-prepare-script
392 (lambda _
393 (modify-json (delete-fields '("scripts.prepare"))))))))
394 (native-inputs (list node-typescript))
395 (home-page "https://github.com/fb55/boolbase")
396 (synopsis "Two functions: One that returns true, one that returns false")
397 (description "This Node.js module provides two functions: one that returns
398true, one that returns false.")
399 (license license:isc)))
400
401(define-public node-boolbase-1
402 ;; No tag in git.
403 (let ((commit "458ff2476b307fd69ef0097984686c62852b432c")
404 (revision "0"))
405 (package
406 (inherit node-boolbase)
407 (name "node-boolbase")
408 (version (git-version "1.0.0" revision commit))
409 (source
410 (origin
411 (method git-fetch)
412 (uri (git-reference
413 (url "https://github.com/fb55/boolbase")
414 (commit commit)))
415 (file-name (git-file-name name version))
416 (sha256
417 (base32 "1bkh1fljmkrsd4ifk0jnshykqlvmn97c54dj6bcyahpmwx4dmsq4"))))
418 (arguments '()))))
419
420(define-public node-brace-expansion-1
421 (package
422 (name "node-brace-expansion")
423 (version "1.1.11")
424 (source
425 (origin
426 (method git-fetch)
427 (uri (git-reference
428 (url "https://github.com/juliangruber/brace-expansion")
429 (commit version)))
430 (file-name (git-file-name name version))
431 (sha256
432 (base32 "117k5p167k4sz739rr83cjhf7bsq0iidvm8ylvnybbj86varv9q1"))))
433 (build-system node-build-system)
434 (arguments
435 '(#:tests? #f
436 #:phases
437 (modify-phases %standard-phases
438 (add-after 'patch-dependencies 'delete-dev-dependencies
439 (lambda _
440 (modify-json (delete-dev-dependencies)))))))
441 (inputs
442 (list node-balanced-match node-concat-map))
443 (home-page "https://github.com/juliangruber/brace-expansion")
444 (synopsis "Brace expansion for JavaScript")
445 (description "This package provides brace expansion as known from
446sh/bash, for JavaScript.")
447 (license license:expat)))
448
449(define-public node-brace-expansion
450 (package
451 (name "node-brace-expansion")
452 (version "2.0.1")
453 (source (origin
454 (method git-fetch)
455 (uri (git-reference
456 (url "https://github.com/juliangruber/brace-expansion")
457 (commit (string-append "v" version))))
458 (file-name (git-file-name name version))
459 (sha256 (base32 "113banahmr00n1fnyswdsx2jgpfi05f4hn2gc5i8kka7hmj3b5g1"))))
460 (build-system node-build-system)
461 (inputs (list node-balanced-match))
462 (arguments (list
463 #:tests? #f ; FIXME Tests require 'tape'.
464 #:phases #~(modify-phases %standard-phases
465 (add-before 'patch-dependencies 'modify-package
466 (lambda _
467 (modify-json (delete-dev-dependencies)))))))
468 (synopsis "Brace expansion as known from sh/bash, in JavaScript")
469 (description "Return an array of all possible and valid expansions of str. If none\
470 are found, [str] is returned.")
471 (home-page (git-reference-url (origin-uri source)))
472 (license license:expat)))
473
474(define-public node-buffer-crc32
475 (package
476 (name "node-buffer-crc32")
477 (version "0.2.13")
478 (source (origin
479 (method git-fetch)
480 (uri (git-reference
481 (url "https://github.com/brianloveswords/buffer-crc32")
482 (commit (string-append "v" version))))
483 (file-name (git-file-name name version))
484 (sha256
485 (base32
486 "09qx2mnd898190m50mc0rhyvbm7d677sxz9bn09qmqkz6fnsddgf"))))
487 (build-system node-build-system)
488 (arguments
489 '(#:tests? #f
490 #:phases (modify-phases %standard-phases
491 (add-after 'patch-dependencies 'delete-dependencies
492 (lambda _
493 (modify-json (delete-dependencies '("tap"))))))))
494 (home-page "https://github.com/brianloveswords/buffer-crc32")
495 (synopsis "CRC32 implementation in Javascript")
496 (description
497 "This package provides a CRC32 algorithm that works with binary data
498and fancy character sets, signed or unsigned data and has tests, for Node.")
499 (license license:expat)))
500
501(define-public node-buffer-from
502 (package
503 (name "node-buffer-from")
504 (version "1.1.2")
505 (source (origin
506 (method git-fetch)
507 (uri (git-reference
508 (url "https://github.com/LinusU/buffer-from")
509 (commit (string-append "v" version))))
510 (file-name (git-file-name name version))
511 (sha256 (base32 "15x3iix1z2ggfq3gmnjnz809k02g0zbkf391g1if8s7d3q0r0w1b"))))
512 (build-system node-build-system)
513 (arguments (list
514 #:tests? #f ; FIXME: Tests require 'standard'.
515 #:phases #~(modify-phases %standard-phases
516 (add-before 'patch-dependencies 'modify-package (lambda _
517 (modify-json
518 (delete-dev-dependencies)))))))
519 (synopsis "A ponyfill for Buffer.from")
520 (description "A ponyfill for Buffer.from, uses native implementation if available.")
521 (home-page (git-reference-url (origin-uri source)))
522 (license license:expat)))
523
524(define-public node-bufferutil
525 (package
526 (name "node-bufferutil")
527 (version "4.0.9")
528 (source
529 (origin
530 (method git-fetch)
531 (uri (git-reference
532 (url "https://github.com/websockets/bufferutil")
533 (commit (string-append "v" version))))
534 (file-name (git-file-name name version))
535 (sha256
536 (base32 "00d6qsrhzv91m72xv9zx1vmlwfx22avwvmxz4yclwsj37y8imd5s"))))
537 (build-system node-build-system)
538 (arguments
539 (list #:tests? #f
540 #:phases
541 #~(modify-phases %standard-phases
542 (add-after 'patch-dependencies 'delete-dev-dependencies
543 (lambda _
544 (modify-json (delete-dev-dependencies))))
545 (add-before 'install 'set-cc
546 (lambda _
547 (setenv "CC" #$(cc-for-target)))))))
548 (inputs
549 (list node-gyp-build node-addon-api))
550 (native-inputs
551 (list python))
552 (home-page "https://github.com/websockets/bufferutil")
553 (synopsis "WebSocket buffer utilities for Node.js")
554 (description "This package provides an addon for Node.js for operations
555on buffers for use with WebSocket implementations. It provides efficient
556buffer masking and unmasking operations.")
557 (license license:expat)))
558
559(define-public node-chalk
560 (package
561 (name "node-chalk")
562 (version "4.1.2")
563 (source
564 (origin
565 (method git-fetch)
566 (uri (git-reference
567 (url "https://github.com/chalk/chalk")
568 (commit (string-append "v" version))))
569 (file-name (git-file-name name version))
570 (sha256
571 (base32 "18dp8qy796xl8psnpwppas3z39jnpijc3gyln4mbnihdj7zps114"))))
572 (build-system node-build-system)
573 (arguments (list
574 #:tests? #f ; FIXME: Tests reuire 'xo', 'c8', 'ava', and 'tsd'.
575 #:phases #~(modify-phases %standard-phases
576 (add-before 'patch-dependencies 'modify-package (lambda _
577 (modify-json
578 (delete-dev-dependencies)))))))
579 (inputs (list node-ansi-styles
580 node-supports-color))
581 (synopsis "Terminal string styling library")
582 (description "Chalk comes with an easy to use composable API where you just chain and\
583 nest the styles you want.")
584 (home-page (git-reference-url (origin-uri source)))
585 (license license:expat)))
586
587(define-public node-color-convert
588 (package
589 (name "node-color-convert")
590 (version "2.0.1")
591 (source
592 (origin
593 (method git-fetch)
594 (uri (git-reference
595 (url "https://github.com/Qix-/color-convert")
596 (commit version)))
597 (file-name (git-file-name name version))
598 (sha256
599 (base32 "0gr892xvcn24ph2wdxbh7g5vpv644hjiyhhxh7d1jwzr2wj5zxkk"))))
600 (build-system node-build-system)
601 (inputs (list
602 node-color-name))
603 (arguments (list
604 #:tests? #f ; FIXME: Tests require 'xo' and 'tsd'.
605 #:phases #~(modify-phases %standard-phases
606 (add-before 'patch-dependencies 'modify-package (lambda _
607 (modify-json
608 (delete-dev-dependencies)))))))
609 (synopsis "Plain color conversion functions")
610 (description "Color-convert is a color conversion library for JavaScript and node. It\
611 converts all ways between rgb, hsl, hsv, hwb, cmyk, ansi, ansi16, hex strings, and CSS\
612 keywords (will round to closest)")
613 (home-page (git-reference-url (origin-uri source)))
614 (license license:expat)))
615
616(define-public node-color-name
617 (package
618 (name "node-color-name")
619 (version "1.1.4")
620 (source
621 (origin
622 (method git-fetch)
623 (uri (git-reference
624 (url "https://github.com/colorjs/color-name")
625 (commit (string-append "v" version))))
626 (file-name (git-file-name name version))
627 (sha256
628 (base32 "1m9paib6kj7hy49aapv2h0mi8a77r0rqdyj8xnp34lkkwpz7qasi"))))
629 (build-system node-build-system)
630 (home-page "https://github.com/colorjs/color-name")
631 (synopsis "JSON with CSS color names")
632 (description
633 "This package provides a JSON list with color names and their values.")
634 (license license:expat)))
635
636(define-public node-colors
637 (package
638 (name "node-colors")
639 (version "1.4.0")
640 (source
641 (origin
642 (method git-fetch)
643 (uri (git-reference
644 (url "https://github.com/Marak/colors.js")
645 (commit (string-append "v" version))))
646 (file-name (git-file-name name version))
647 (sha256
648 (base32 "1ih98ycxjprlxn72ygqgkgcp9wkpd20apndjd11270qyyifvkr8y"))))
649 (build-system node-build-system)
650 (arguments
651 '(#:tests? #f
652 #:phases
653 (modify-phases %standard-phases
654 (add-after 'patch-dependencies 'delete-dev-dependencies
655 (lambda _
656 (modify-json (delete-dev-dependencies)))))))
657 (home-page "https://github.com/Marak/colors.js")
658 (synopsis "Get colors in your Node.js console")
659 (description "This package provides a library for adding colors to
660Node.js console output.")
661 (license license:expat)))
662
663(define-public node-command-line-usage
664 (package
665 (name "node-command-line-usage")
666 (version "6.1.3")
667 (source (origin
668 (method git-fetch)
669 (uri (git-reference
670 (url "https://github.com/75lb/command-line-usage")
671 (commit (string-append "v" version))))
672 (file-name (git-file-name name version))
673 (sha256
674 (base32 "073blk28qdk1bl1l4jsd4a6fmwvl2jv4fi6kfcjykc8x6hkv84cx"))))
675 (build-system node-build-system)
676 (inputs (list
677 node-chalk
678 node-typical
679 node-array-back
680 node-table-layout))
681 (arguments (list
682 #:tests? #f ; FIXME: Tests require 'test-runner'.
683 #:phases #~(modify-phases %standard-phases
684 (add-before 'patch-dependencies 'modify-package (lambda _
685 (modify-json
686 (delete-dev-dependencies)))))))
687 (synopsis "Generates command-line usage information")
688 (description "A simple, data-driven module for creating a usage guide.")
689 (home-page (git-reference-url (origin-uri source)))
690 (license license:expat)))
691
692(define-public node-commander
693 (package
694 (name "node-commander")
695 (version "8.3.0")
696 (source
697 (origin
698 (method git-fetch)
699 (uri (git-reference
700 (url "https://github.com/tj/commander.js")
701 (commit (string-append "v" version))))
702 (file-name (git-file-name name version))
703 (sha256
704 (base32 "1fwvjcmhj9vqav6s26bvxq7zbzd1v2gjc1n5j2wf4lbz1qqvy138"))))
705 (build-system node-build-system)
706 (arguments
707 '(#:tests? #f
708 #:phases
709 (modify-phases %standard-phases
710 (add-after 'patch-dependencies 'delete-dev-dependencies
711 (lambda _
712 (modify-json (delete-dev-dependencies)))))))
713 (home-page "https://github.com/tj/commander.js")
714 (synopsis "Complete solution for Node.js command-line interfaces")
715 (description "This package provides a way for building command-line
716interfaces in Node.js.")
717 (license license:expat)))
718
719(define-public node-concat-map
720 (package
721 (name "node-concat-map")
722 (version "0.0.1")
723 (source
724 (origin
725 (method git-fetch)
726 (uri (git-reference
727 (url "https://github.com/ljharb/concat-map")
728 (commit (string-append "v" version))))
729 (file-name (git-file-name name version))
730 (sha256
731 (base32 "0l30hn1w9incwahjbvv3kzw6p150vjiiji6dlxxawd3krfn7z3k5"))))
732 (build-system node-build-system)
733 (arguments
734 '(#:tests? #f
735 #:phases
736 (modify-phases %standard-phases
737 (add-after 'patch-dependencies 'delete-dev-dependencies
738 (lambda _
739 (modify-json (delete-dev-dependencies)))))))
740 (home-page "https://github.com/ljharb/concat-map")
741 (synopsis "Concatenative map for JavaScript")
742 (description "This package provides a concatenative map for JavaScript.")
743 (license license:expat)))
744
745(define-public node-crx3
746 (package
747 (name "node-crx3")
748 (version "1.1.3")
749 (source (origin
750 (method git-fetch)
751 (uri (git-reference
752 (url "https://github.com/ahwayakchih/crx3")
753 (commit (string-append "v" version))))
754 (file-name (git-file-name name version))
755 (sha256
756 (base32
757 "1snqyw8c3s9p2clhqh1172z0rs1was36sfxkk6acgpar32c2rwzw"))))
758 (build-system node-build-system)
759 (arguments
760 '(#:tests? #f
761 #:phases (modify-phases %standard-phases
762 (add-after 'unpack 'replace-mri-by-minimist
763 (lambda _
764 (substitute* "package.json"
765 (("\"mri\": \"\\^1\\.1\\.6\",")
766 "\"minimist\": \"^1.2.6\","))
767 (substitute* "lib/configuration.js"
768 (("mri")
769 "minimist"))))
770 (add-after 'patch-dependencies 'delete-dependencies
771 (lambda _
772 (modify-json (delete-dependencies
773 '("c8"
774 "docdash"
775 "eslint"
776 "eslint-plugin-jsdoc"
777 "jsdoc"
778 "tap-diff"
779 "tape"
780 "tape-catch"))))))))
781 (inputs (list node-minimist node-pbf node-yazl))
782 (home-page "https://github.com/ahwayakchih/crx3")
783 (synopsis "Create CRXv3 browser extensions with Javascript")
784 (description
785 "This package creates web extension files (CRXv3) for Chromium versions
78664.0.3242 and above and all other browsers supporting the file format and API.")
787 (license license:bsd-3)))
788
789(define-public node-debug
790 (package
791 (name "node-debug")
792 (version "4.3.4")
793 (source
794 (origin
795 (method git-fetch)
796 (uri (git-reference
797 (url "https://github.com/debug-js/debug")
798 (commit version)))
799 (file-name (git-file-name name version))
800 (sha256
801 (base32 "06hm12vgqxc1bvfxp2rv95yyycr7xjj5482ykq2c4fq4pkjci827"))))
802 (inputs
803 (list node-ms))
804 (build-system node-build-system)
805 (arguments
806 `(#:phases
807 (modify-phases %standard-phases
808 (add-after 'patch-dependencies 'delete-dependencies
809 (lambda args
810 (modify-json (delete-dependencies
811 `("brfs"
812 "browserify"
813 "coveralls"
814 "istanbul"
815 "karma"
816 "karma-browserify"
817 "karma-chrome-launcher"
818 "karma-mocha"
819 "mocha"
820 "mocha-lcov-reporter"
821 "xo"
822 "supports-color"))))))
823 #:tests? #f))
824 (home-page "https://github.com/debug-js/debug")
825 (synopsis "Debugging utility for Node.js")
826 (description "The @code{debug} module exposes a function, which if called
827with a module name as argument provides a function that writes debug output to
828@code{console.error} under that module name. This output can be controlled in
829a more fine-grained manner by binding the @env{DEBUG} variable.")
830 (license license:expat)))
831
832(define-public node-deep-extend
833 (package
834 (name "node-deep-extend")
835 (version "0.6.0")
836 (source (origin
837 (method git-fetch)
838 (uri (git-reference
839 (url "https://github.com/unclechu/node-deep-extend")
840 (commit (string-append "v" version))))
841 (file-name (git-file-name name version))
842 (sha256
843 (base32 "0r2r0wc1c9lq8gplis17pr220c7hk18sq12cipvsa7krb2lb4cpb"))))
844 (build-system node-build-system)
845 (arguments (list
846 #:tests? #f ; FIXME: Tests require 'mocha'.
847 #:phases #~(modify-phases %standard-phases
848 (add-before 'patch-dependencies 'modify-package (lambda _
849 (modify-json
850 (delete-dev-dependencies)))))))
851 (synopsis "Recursive object extending")
852 (description "Library which allows deeply merging two different objects.")
853 (home-page (git-reference-url (origin-uri source)))
854 (license license:expat)))
855
856(define-public node-define-lazy-prop
857 (package
858 (name "node-define-lazy-prop")
859 (version "2.0.0")
860 (source
861 (origin
862 (method git-fetch)
863 (uri (git-reference
864 (url "https://github.com/sindresorhus/define-lazy-prop")
865 (commit (string-append "v" version))))
866 (file-name (git-file-name name version))
867 (sha256
868 (base32 "1lbd1m9n77bpzjrp2m7670hiyd73qd8w9gnc2w5lxjf6gglwz0ay"))))
869 (build-system node-build-system)
870 (arguments
871 '(#:tests? #f
872 #:phases
873 (modify-phases %standard-phases
874 (add-after 'patch-dependencies 'delete-dev-dependencies
875 (lambda _
876 (modify-json (delete-dev-dependencies)))))))
877 (home-page "https://github.com/sindresorhus/define-lazy-prop")
878 (synopsis "Define a lazily evaluated property on an object")
879 (description "This package provides a way to lazily evaluate properties
880on an object.")
881 (license license:expat)))
882
883(define-public node-diff
884 (package
885 (name "node-diff")
886 (version "7.0.0")
887 (source
888 (origin
889 (method git-fetch)
890 (uri (git-reference
891 (url "https://github.com/kpdecker/jsdiff")
892 (commit version))) ; No "v" prefix for this package
893 (file-name (git-file-name name version))
894 (sha256
895 (base32 "1dipv7nsvvzqpiw6i0zlgs82pbdryla01qzjh1wyvxwfjr5lra89"))))
896 (build-system node-build-system)
897 (arguments
898 (list
899 #:tests? #f
900 #:phases
901 #~(modify-phases %standard-phases
902 (add-after 'patch-dependencies 'delete-dev-dependencies
903 (lambda _
904 (modify-json (delete-dev-dependencies))))
905 (replace 'build
906 (lambda* (#:key inputs native-inputs #:allow-other-keys)
907 ;; Compile JavaScript modules with esbuild.
908 (let ((esbuild (search-input-file (or native-inputs inputs) "/bin/esbuild")))
909 (mkdir-p "lib")
910 ;; Build CommonJS version
911 (invoke esbuild "src/index.js"
912 "--bundle"
913 "--outfile=lib/index.js"
914 "--format=cjs"
915 "--platform=node"
916 "--target=es2020")
917 ;; Build ESM version (required by package.json exports)
918 (invoke esbuild "src/index.js"
919 "--bundle"
920 "--outfile=lib/index.mjs"
921 "--format=esm"
922 "--platform=node"
923 "--target=es2020")))))))
924 (native-inputs (list esbuild))
925 (home-page "https://github.com/kpdecker/jsdiff")
926 (synopsis "JavaScript text differencing implementation")
927 (description "This package provides a JavaScript library for computing
928text differences, similar to Unix diff.")
929 (license license:bsd-3)))
930
931(define-public node-domelementtype
932 (package
933 (name "node-domelementtype")
934 (version "3.0.0")
935 (source
936 (origin
937 (method git-fetch)
938 (uri (git-reference
939 (url "https://github.com/fb55/domelementtype")
940 (commit (string-append "v" version))))
941 (file-name (git-file-name name version))
942 (sha256
943 (base32 "0d3dvkrs5ckvbdmw7d8p6kfklggqczhwambrgi9g7wkircszp0hs"))))
944 (build-system node-build-system)
945 (arguments
946 (list
947 #:tests? #f ;avoid test dependencies
948 #:phases
949 #~(modify-phases %standard-phases
950 (add-after 'unpack 'neuter-prepare-script
951 (lambda _
952 (modify-json (delete-fields '("scripts.prepare")))))
953 (add-after 'patch-dependencies 'delete-dev-dependencies
954 (lambda _
955 (modify-json (delete-dev-dependencies)))))))
956 (native-inputs (list node-typescript))
957 (home-page "https://github.com/fb55/domelementtype")
958 (synopsis "Node.js types for htmlparser2's DOM")
959 (description "This package contains the Node.js types for the Document
960Object Type (DOM) of htmlparser2.")
961 (license license:bsd-2)))
962
963(define-public node-dprint-formatter
964 (package
965 (name "node-dprint-formatter")
966 (version "0.4.1")
967 (source (origin
968 (method git-fetch)
969 (uri (git-reference
970 (url "https://github.com/dprint/js-formatter")
971 (commit version)))
972 (file-name (git-file-name name version))
973 (sha256
974 (base32 "0ihdspyz7brx1rny2ind715z6rlzncslsigi3yr553xmk18iswm2"))))
975 (build-system node-build-system)
976 (native-inputs (list esbuild))
977 (arguments (list
978 #:modules '(
979 (guix build node-build-system)
980 (guix build utils)
981 (ice-9 match)
982 (json))
983 #:tests? #f ; FIXME: Tests require 'deno'.
984 #:phases #~(modify-phases %standard-phases
985 (delete 'patch-dependencies)
986 (delete 'configure)
987 (replace 'build (lambda _
988 (define output "output")
989 (mkdir output)
990 (delete-file "mod_test.ts")
991 (substitute* (list "mod.ts" "v3.ts" "v4.ts")
992 (("\\.ts") ""))
993 (install-file "LICENSE" output)
994 (install-file "README.md" output)
995 (chdir output)
996 (call-with-output-file
997 "package.json"
998 (lambda (out)
999 (scm->json
1000 (list
1001 (cons "name" "@dprint/formatter")
1002 (cons "version" #$version)
1003 (cons "main" "./script/mod.js")
1004 (cons "module" "./esm/mod.js"))
1005 out)))
1006 (for-each
1007 (match-lambda ((format outdir)
1008 (invoke
1009 "esbuild"
1010 "../*.ts"
1011 (string-append "--format=" format)
1012 "--platform=node"
1013 (string-append "--outdir=" outdir))))
1014 (list (list "cjs" "script") (list "esm" "esm"))))))))
1015 (synopsis "Wasm formatter for dprint plugins")
1016 (description "A JS formatter which uses WASM plugins for dprint.")
1017 (home-page (git-reference-url (origin-uri source)))
1018 (license license:expat)))
1019
1020(define-public node-dotenv
1021 (package
1022 (name "node-dotenv")
1023 (version "16.4.5")
1024 (source
1025 (origin
1026 (method git-fetch)
1027 (uri (git-reference
1028 (url "https://github.com/motdotla/dotenv")
1029 (commit (string-append "v" version))))
1030 (file-name (git-file-name name version))
1031 (sha256
1032 (base32 "1sbfq4d3p3zjlmf8vvr6dgzgxab0w8fcms6dk6v4n4y5ca7vjv93"))))
1033 (build-system node-build-system)
1034 (arguments
1035 '(#:tests? #f
1036 #:phases
1037 (modify-phases %standard-phases
1038 (add-after 'patch-dependencies 'delete-dev-dependencies
1039 (lambda _
1040 (modify-json (delete-dev-dependencies)))))))
1041 (home-page "https://github.com/motdotla/dotenv")
1042 (synopsis "Loads environment variables from .env files")
1043 (description "This package provides a zero-dependency module that loads
1044environment variables from a @code{.env} file into @code{process.env}.")
1045 (license license:bsd-2)))
1046
1047(define-public node-end-of-stream
1048 (package
1049 (name "node-end-of-stream")
1050 (version "1.4.4")
1051 (source (origin
1052 (method git-fetch)
1053 (uri (git-reference
1054 (url "https://github.com/mafintosh/end-of-stream")
1055 (commit (string-append "v" version))))
1056 (file-name (git-file-name name version))
1057 (sha256
1058 (base32
1059 "0241fxmc30hzxcidyvkd0bylsdcq20nf9yy6v5cgiwp9xq7bpc3a"))))
1060 (build-system node-build-system)
1061 (arguments
1062 '(#:tests? #f
1063 #:phases (modify-phases %standard-phases
1064 (add-after 'patch-dependencies 'delete-dev-dependencies
1065 (lambda _
1066 (modify-json (delete-dev-dependencies)))))))
1067 (inputs (list node-once))
1068 (home-page "https://github.com/mafintosh/end-of-stream")
1069 (synopsis "Call a callback when a stream has finished or errored")
1070 (description "This package provides a way so that a callback is called
1071when a readable/writable/duplex stream has completed or failed.")
1072 (license license:expat)))
1073
1074(define-public node-entities
1075 (package
1076 (name "node-entities")
1077 (version "8.0.0")
1078 (source
1079 (origin
1080 (method git-fetch)
1081 (uri (git-reference
1082 (url "https://github.com/fb55/entities")
1083 (commit (string-append "v" version))))
1084 (file-name (git-file-name name version))
1085 (sha256
1086 (base32 "098nx7pf8v5fmr96ri3winqdszkqyzl3cmpvkx66l6qhb087ipja"))))
1087 (build-system node-build-system)
1088 (arguments
1089 (list
1090 #:tests? #f ;requires vitest
1091 #:phases
1092 #~(modify-phases %standard-phases
1093 (add-after 'patch-dependencies 'delete-dev-dependencies
1094 (lambda _
1095 (modify-json (delete-dev-dependencies)))))))
1096 (native-inputs (list node-typescript))
1097 (home-page "https://github.com/fb55/entities")
1098 (synopsis "Encode and decode XML and HTML entities")
1099 (description "Entities is a Node.js module to encode and decode XML and
1100HTML entities.")
1101 (license license:bsd-2)))
1102
1103(define-public node-env-variable
1104 (package
1105 (name "node-env-variable")
1106 (version "0.0.4")
1107 (source
1108 (origin
1109 (method git-fetch)
1110 (uri (git-reference
1111 (url "https://github.com/bigpipe/env-variable")
1112 (commit version)))
1113 (file-name (git-file-name name version))
1114 (sha256
1115 (base32
1116 "0nnpxjxfhy4na7fixb7p3ww6ard5xgggfm83b78i333867r4gmsq"))))
1117 (build-system node-build-system)
1118 (arguments '(#:tests? #f)) ; No tests.
1119 (home-page "https://github.com/bigpipe/env-variable")
1120 (synopsis "Environment variables for Node with fallbacks")
1121 (description "This package provides environment variables with
1122@code{process.env}, @code{window.name}, @code{location.hash} and
1123@code{localStorage} fallbacks.")
1124 (license license:expat)))
1125
1126(define-public node-escape-string-regexp
1127 (package
1128 (name "node-escape-string-regexp")
1129 (version "1.0.5")
1130 (source (origin
1131 (method git-fetch)
1132 (uri (git-reference
1133 (url "https://github.com/sindresorhus/escape-string-regexp")
1134 (commit (string-append "v" version))))
1135 (file-name (git-file-name name version))
1136 (sha256
1137 (base32 "0iv0zd2r1mr3w966n023wqghcyaw37w3wl07is45hy74rrnq6z0v"))))
1138 (build-system node-build-system)
1139 (arguments (list
1140 #:tests? #f ; FIXME: Tests require 'xo' and 'ava'.
1141 #:phases #~(modify-phases %standard-phases
1142 (add-before 'patch-dependencies 'modify-package (lambda _
1143 (modify-json
1144 (delete-dev-dependencies)))))))
1145 (synopsis "Escape RegExp special characters")
1146 (description "This library takes a string and escapes the regex characters such that\
1147 the string can be inserted into a regex expression without triggering any special\
1148 characters.")
1149 (home-page (git-reference-url (origin-uri source)))
1150 (license license:expat)))
1151
1152(define-public node-escape-string-regexp-4
1153 (package
1154 (name "node-escape-string-regexp")
1155 (version "4.0.0")
1156 (source
1157 (origin
1158 (method git-fetch)
1159 (uri (git-reference
1160 (url "https://github.com/sindresorhus/escape-string-regexp")
1161 (commit (string-append "v" version))))
1162 (file-name (git-file-name name version))
1163 (sha256
1164 (base32 "0axhbb68f9vn87bccy3d49bglalrb52k66hgfixcdpz8l2yi4ms2"))))
1165 (build-system node-build-system)
1166 (arguments
1167 '(#:tests? #f
1168 #:phases
1169 (modify-phases %standard-phases
1170 (add-after 'patch-dependencies 'delete-dev-dependencies
1171 (lambda _
1172 (modify-json (delete-dev-dependencies)))))))
1173 (home-page "https://github.com/sindresorhus/escape-string-regexp")
1174 (synopsis "Escape RegExp special characters")
1175 (description "This package provides a way to escape special characters
1176in a string for use in a regular expression.")
1177 (license license:expat)))
1178
1179(define-public node-extract-zip
1180 (package
1181 (name "node-extract-zip")
1182 (version "2.0.1")
1183 (source (origin
1184 (method git-fetch)
1185 (uri (git-reference
1186 (url "https://github.com/maxogden/extract-zip")
1187 (commit (string-append "v" version))))
1188 (file-name (git-file-name name version))
1189 (sha256
1190 (base32
1191 "1nksca10cn7cv8ykhqxy2mdimpna1kvf6pqs9pdq3p1z4s7xbm27"))))
1192 (build-system node-build-system)
1193 (arguments
1194 '(#:tests? #f
1195 #:phases (modify-phases %standard-phases
1196 (add-after 'patch-dependencies 'delete-dev-dependencies
1197 (lambda _
1198 (modify-json (delete-dev-dependencies)))))))
1199 (inputs (list node-debug node-get-stream node-yauzl))
1200 (home-page "https://github.com/maxogden/extract-zip")
1201 (synopsis "Unzip written in pure JavaScript")
1202 (description "This package provides a cross-platform extraction utility
1203for ZIP files, written entirely in JavaScript for Node.js.")
1204 (license license:bsd-2)))
1205
1206(define-public node-far
1207 (package
1208 (name "node-far")
1209 (version "0.0.7")
1210 (source
1211 (origin
1212 (method git-fetch)
1213 (uri (git-reference
1214 (url "https://github.com/felixge/node-far")
1215 (commit (string-append "v" version))))
1216 (file-name (git-file-name name version))
1217 (sha256
1218 (base32
1219 "083rv1rszjn0i91zcpaghlid0kwhk0angmpj4hiflrlyhd6cmjzw"))))
1220 (build-system node-build-system)
1221 (arguments
1222 '(#:phases
1223 (modify-phases %standard-phases
1224 (replace 'check
1225 (lambda _
1226 ;; We skip the two tests which are supposed to fail.
1227 (invoke "bin/node-far" "-v" "test/" "-e" "test.*fail.js"))))))
1228 (inputs
1229 (list node-oop))
1230 (home-page "https://github.com/felixge/node-far")
1231 (synopsis "Node.js test runner")
1232 (description "This package provides a simple test runner that finds and runs
1233multiple node.js files, while providing useful information about output and exit
1234codes.")
1235 (license license:expat)))
1236
1237(define-public node-fast-xml-parser
1238 (package
1239 (name "node-fast-xml-parser")
1240 (version "4.5.3")
1241 (source (origin
1242 (method git-fetch)
1243 (uri (git-reference
1244 (url "https://github.com/NaturalIntelligence/fast-xml-parser")
1245 (commit "f8d4d427a31a52d4df82260ac1973d94ad73335b")))
1246 (file-name (git-file-name name version))
1247 (sha256 (base32 "1wc5mgihrgync0vj79gk7g367rssqhzmzxl41kdhhcya045bis85"))
1248 (modules '((guix build utils)))
1249 (snippet #~(begin
1250 (delete-file-recursively "lib")))))
1251 (build-system node-build-system)
1252 (inputs (list node-strnum))
1253 (arguments (list
1254 #:tests? #f ; FIXME: Tests require 'nyc'.
1255 #:phases #~(modify-phases %standard-phases
1256 (add-before 'patch-dependencies 'modify-package (lambda _
1257 (modify-json
1258 (delete-dev-dependencies))))
1259 (replace 'build (lambda _
1260 (define output "output")
1261 (mkdir output)
1262 (for-each
1263 (lambda (file) (install-file file output))
1264 (list "CHANGELOG.md" "LICENSE" "package.json" "README.md"))
1265 (copy-recursively "src" (string-append output "/src"))
1266 (chdir output))))))
1267 (synopsis "Validate XML, Parse XML, Build XML without C/C++ based libraries")
1268 (description "Validate XML, Parse XML to JS Object, or Build XML from JS Object\
1269 without C/C++ based libraries and no callback.
1270 * Validate XML data syntactically. Use detailed-xml-validator to verify business rules.
1271 * Parse XML to JS Objectand vice versa
1272 * Common JS, ESM, and browser compatible
1273 * Faster than any other pure JS implementation.
1274It can handle big files (tested up to 100mb). XML Entities, HTML entities, and DOCTYPE\
1275 entites are supported. Unpaired tags (Eg <br> in HTML), stop nodes (Eg <script> in HTML)\
1276 are supported. It can also preserve Order of tags in JS object")
1277 (home-page (git-reference-url (origin-uri source)))
1278 (license license:expat)))
1279
1280(define-public node-fastest-levenshtein
1281 (package
1282 (name "node-fastest-levenshtein")
1283 (version "1.0.16")
1284 (source (origin
1285 (method git-fetch)
1286 (uri (git-reference
1287 (url "https://github.com/ka-weihe/fastest-levenshtein")
1288 (commit "03d621ba324d0f665b3b7f557429ca622560d9a3")))
1289 (file-name (git-file-name name version))
1290 (sha256
1291 (base32 "11hpi4ifix8pwx2a2sfj3s1gcwb5mxdrqgdcdppmkl6krv3sxx02"))))
1292 (build-system node-build-system)
1293 ; Use ESBuild because this package is used to build Typescript.
1294 (native-inputs (list esbuild))
1295 (arguments (list
1296 #:modules '(
1297 (guix build node-build-system)
1298 (guix build utils)
1299 (ice-9 match))
1300 #:tests? #f ; FIXME: Tests require 'jest'.
1301 #:phases #~(modify-phases %standard-phases
1302 (add-before 'patch-dependencies 'modify-package (lambda _
1303 (modify-json
1304 (delete-dev-dependencies)
1305 (delete-fields (list
1306 "scripts.prepare"
1307 "scripts.build")))))
1308 (replace 'build (lambda _
1309 (for-each
1310 (match-lambda ((format outdir parameters)
1311 (apply invoke (append
1312 (list
1313 "esbuild"
1314 "mod.ts"
1315 (string-append "--format=" format)
1316 "--target=es2015"
1317 (string-append "--outdir=" outdir))
1318 parameters))))
1319 (list
1320 (list "esm" "esm" (list "--sourcemap"))
1321 (list "cjs" "." (list "--platform=node")))))))))
1322 (synopsis "Fastest Levenshtein distance implementation in JS")
1323 (description "Fastest JS/TS implemenation of Levenshtein distance.
1324Measure the difference between two strings.")
1325 (home-page (git-reference-url (origin-uri source)))
1326 (license license:expat)))
1327
1328(define-public node-fd-slicer
1329 (package
1330 (name "node-fd-slicer")
1331 (version "1.1.0")
1332 (source (origin
1333 (method git-fetch)
1334 (uri (git-reference
1335 (url "https://github.com/andrewrk/node-fd-slicer")
1336 (commit version)))
1337 (file-name (git-file-name name version))
1338 (sha256
1339 (base32
1340 "1wpazi7a1rjdd8ikp0j4w082jbbh8nv1x9kms2sas74rn8xr0ahi"))))
1341 (build-system node-build-system)
1342 (arguments
1343 '(#:tests? #f
1344 #:phases (modify-phases %standard-phases
1345 (add-after 'patch-dependencies 'delete-dev-dependencies
1346 (lambda _
1347 (modify-json (delete-dev-dependencies)))))))
1348 (inputs (list node-pend))
1349 (home-page "https://github.com/andrewrk/node-fd-slicer")
1350 (synopsis "Create multiple readable/writable streams from a file descriptor")
1351 (description "This package provides a way to create multiple readable/writable streams
1352based on a single file descriptor, maintaining safety from concurrency issues.")
1353 (license license:expat)))
1354
1355(define-public node-file-uri-to-path
1356 (package
1357 (name "node-file-uri-to-path")
1358 (version "2.0.0")
1359 (source
1360 (origin
1361 (method git-fetch)
1362 (uri (git-reference
1363 (url "https://github.com/TooTallNate/file-uri-to-path")
1364 (commit version)))
1365 (file-name (git-file-name name version))
1366 (sha256
1367 (base32 "08l779az44czm12xdhgcrnzpqw34s59hbrlfphs7g9y2k26drqav"))))
1368 (native-inputs
1369 (list esbuild))
1370 (build-system node-build-system)
1371 (arguments
1372 `(#:phases
1373 (modify-phases %standard-phases
1374 (add-after 'patch-dependencies 'delete-dependencies
1375 (lambda args
1376 (modify-json (delete-dependencies
1377 `("@types/mocha"
1378 "@types/node"
1379 "@typescript-eslint/eslint-plugin"
1380 "@typescript-eslint/parser"
1381 "cpy-cli"
1382 "eslint"
1383 "eslint-config-airbnb"
1384 "eslint-config-prettier"
1385 "eslint-import-resolver-typescript"
1386 "eslint-plugin-import"
1387 "eslint-plugin-jsx-a11y"
1388 "eslint-plugin-react"
1389 "mocha"
1390 "rimraf"
1391 "typescript")))))
1392 (replace 'build
1393 (lambda* (#:key inputs native-inputs #:allow-other-keys)
1394 (copy-recursively "src" "dist")
1395 (invoke (search-input-file (or native-inputs inputs)
1396 "/bin/esbuild")
1397 "dist/index.ts"
1398 "--outfile=dist/src/index.js"
1399 "--format=cjs"
1400 "--sourcemap"
1401 "--platform=node"))))
1402 #:tests? #f))
1403 (home-page "https://github.com/TooTallNate/file-uri-to-path")
1404 (synopsis "Convert a @code{file:} URI to a file path")
1405 (description "This package provides a function to convert a @code{file:}
1406URI to a file path. It accepts a @code{file:} URI and returns a file path
1407suitable for use with the @code{fs} module functions.")
1408 (license license:expat)))
1409
1410(define-public node-glob
1411 (package
1412 (name "node-glob")
1413 (version "10.1.0")
1414 (source (origin
1415 (method git-fetch)
1416 (uri (git-reference
1417 (url "https://github.com/isaacs/node-glob")
1418 (commit (string-append "v" version))))
1419 (file-name (git-file-name name version))
1420 (sha256 (base32 "19r0q9mxfbbma6z0iapf1jnccrz0hil69kihzbjjxzy9b7cgzmsd"))))
1421 (build-system node-build-system)
1422 (inputs (list
1423 node-minimatch
1424 node-minipass-5
1425 node-path-scurry))
1426 ; Use ESBuild instead of tshy because this is used to build Typescript.
1427 (native-inputs (list esbuild))
1428 (arguments (list
1429 #:modules '(
1430 (guix build node-build-system)
1431 (guix build utils)
1432 (ice-9 match))
1433 #:tests? #f ; FIXME: Tests require 'c8' and 'tap'.
1434 #:phases #~(modify-phases %standard-phases
1435 (add-before 'patch-dependencies 'modify-package
1436 (lambda _
1437 (modify-json
1438 (delete-dev-dependencies)
1439 (delete-fields (list
1440 "scripts.prepare"))
1441 (delete-dependencies (list
1442 ; Not currently used in other packages, but if there are
1443 ; issues we may need to add this in.
1444 "fs.realpath")))))
1445 (replace 'build
1446 (lambda _
1447 (define output "output")
1448 (for-each
1449 (match-lambda ((format directory)
1450 (invoke
1451 "esbuild"
1452 "src/*.ts"
1453 "--platform=node"
1454 (string-append "--format=" format)
1455 "--target=es2022"
1456 "--sourcemap"
1457 (string-append "--outdir=" output "/dist/" directory))))
1458 (list (list "cjs" "cjs") (list "esm" "mjs")))
1459 (for-each
1460 (lambda (file) (install-file file output))
1461 (list "LICENSE" "README.md" "package.json"))
1462 (chdir output))))))
1463 (synopsis "Match files using the patterns the shell uses")
1464 (description "The most correct and second fastest glob implementation in JavaScript.")
1465 (home-page (git-reference-url (origin-uri source)))
1466 (license license:isc)))
1467
1468(define-public node-get-stream
1469 (package
1470 (name "node-get-stream")
1471 (version "5.2.0")
1472 (source (origin
1473 (method git-fetch)
1474 (uri (git-reference
1475 (url "https://github.com/sindresorhus/get-stream")
1476 (commit (string-append "v" version))))
1477 (file-name (git-file-name name version))
1478 (sha256
1479 (base32
1480 "1mc7fw8qc0b1a4i2h4mz1d4hygla5grxpfh8dk2rabnw46lxm73m"))))
1481 (build-system node-build-system)
1482 (arguments
1483 '(#:tests? #f
1484 #:phases (modify-phases %standard-phases
1485 (add-after 'patch-dependencies 'delete-dev-dependencies
1486 (lambda _
1487 (modify-json (delete-dev-dependencies)))))))
1488 (inputs (list node-pump))
1489 (home-page "https://github.com/sindresorhus/get-stream")
1490 (synopsis "Get a stream as a string, buffer, or array")
1491 (description "This package provides a way to get a stream as a string,
1492buffer, or array. Useful for getting the result of a stream.")
1493 (license license:expat)))
1494
1495(define-public node-graceful-fs
1496 (package
1497 (name "node-graceful-fs")
1498 (version "4.2.10")
1499 (source
1500 (origin
1501 (method git-fetch)
1502 (uri (git-reference
1503 (url "https://github.com/isaacs/node-graceful-fs")
1504 (commit (string-append "v" version))))
1505 (file-name (git-file-name name version))
1506 (sha256
1507 (base32 "18al1wpdmpi92yvifa3q1vga3szndfd84fqlakh9abn8bfsqxkp8"))))
1508 (build-system node-build-system)
1509 (arguments
1510 '(#:tests? #f
1511 #:phases
1512 (modify-phases %standard-phases
1513 (add-after 'patch-dependencies 'delete-dev-dependencies
1514 (lambda _
1515 (modify-json (delete-dev-dependencies)))))))
1516 (home-page "https://github.com/isaacs/node-graceful-fs")
1517 (synopsis "Drop-in replacement for fs with various improvements")
1518 (description "This package provides a drop-in replacement for the fs
1519module that makes various improvements, including queueing operations,
1520retrying EMFILE errors, and working around various platform quirks.")
1521 (license license:isc)))
1522
1523(define-public node-gyp-build
1524 (package
1525 (name "node-gyp-build")
1526 (version "4.8.4")
1527 (source
1528 (origin
1529 (method git-fetch)
1530 (uri (git-reference
1531 (url "https://github.com/prebuild/node-gyp-build")
1532 (commit (string-append "v" version))))
1533 (file-name (git-file-name name version))
1534 (sha256
1535 (base32 "1nb5fx5x5dpz08jjs2d9xphjslcxnvzcjig802y40bvhd8c114gb"))))
1536 (build-system node-build-system)
1537 (arguments
1538 '(#:tests? #f
1539 #:phases
1540 (modify-phases %standard-phases
1541 (add-after 'patch-dependencies 'delete-dev-dependencies
1542 (lambda _
1543 (modify-json (delete-dev-dependencies)))))))
1544 (home-page "https://github.com/prebuild/node-gyp-build")
1545 (synopsis "Build tool for native Node.js addons")
1546 (description "This package provides a build tool that works with prebuild
1547and node-gyp to compile native Node.js addons. It will try to load prebuilt
1548binaries first, falling back to building from source.")
1549 (license license:expat)))
1550
1551(define-public node-global-gradle-clean
1552 (package
1553 (name "node-global-gradle-clean")
1554 (version "1.0.1")
1555 (source (origin
1556 (method git-fetch)
1557 (uri (git-reference
1558 (url "https://github.com/VarunBarad/global-gradle-clean")
1559 (commit version)))
1560 (file-name (git-file-name name version))
1561 (sha256
1562 (base32
1563 "1fhm4jimnf7bl5drgwg39mjh8x4rns15hl0fz3bnxi9ikc6dm02y"))))
1564 (build-system node-build-system)
1565 (arguments
1566 '(#:tests? #f)) ;No tests.
1567 (home-page "https://github.com/VarunBarad/global-gradle-clean")
1568 (synopsis "Global Gradle Clean")
1569 (description
1570 "Global Gradle Clean is a Node.js package used to clean all gradle
1571projects under a given directory. It uses the gradle wrapper to execute the
1572clean task of each project.")
1573 (license license:expat)))
1574
1575(define-public node-has-flag
1576 (package
1577 (name "node-has-flag")
1578 (version "4.0.0")
1579 (source
1580 (origin
1581 (method git-fetch)
1582 (uri (git-reference
1583 (url "https://github.com/sindresorhus/has-flag")
1584 (commit (string-append "v" version))))
1585 (file-name (git-file-name name version))
1586 (sha256
1587 (base32 "14acxip075a6wbgzg91valcsb12z82bi90iinam10015cy545qch"))))
1588 (build-system node-build-system)
1589 (arguments
1590 (list
1591 #:tests? #f ; FIXME: Tests require 'xo' and 'ava'.
1592 #:phases
1593 #~(modify-phases %standard-phases
1594 (add-before 'patch-dependencies 'modify-package
1595 (lambda _
1596 (modify-json
1597 (delete-dev-dependencies)))))))
1598 (synopsis "Check if argv has a specific flag")
1599 (description "Check if argv has a specific flag
1600Correctly stops looking after an -- argument terminator.")
1601 (home-page (git-reference-url (origin-uri source)))
1602 (license license:expat)))
1603
1604(define-public node-hereby
1605 (package
1606 (name "node-hereby")
1607 (version "1.11.0")
1608 (source (origin
1609 (method git-fetch)
1610 (uri (git-reference
1611 (url "https://github.com/jakebailey/hereby")
1612 (commit (string-append "v" version))))
1613 (file-name (git-file-name name version))
1614 (sha256
1615 (base32 "0jdfrfvnz97nc2ly8ws98dwi05hcc6qs1p76xy0hjdf4r5yvirsj"))))
1616 (build-system node-build-system)
1617 (inputs (list
1618 node-command-line-usage
1619 node-fastest-levenshtein
1620 node-minimist
1621 node-picocolors
1622 node-pretty-ms))
1623 ; Use ESBuild because this is used to build Typescript.
1624 (native-inputs (list esbuild))
1625 (arguments (list
1626 #:tests? #f ; FIXME: Tests require 'ava'.
1627 #:phases #~(modify-phases %standard-phases
1628 (add-before 'patch-dependencies 'modify-package (lambda _
1629 (modify-json
1630 (delete-dev-dependencies))))
1631 (replace 'build (lambda _
1632 (delete-file "tsconfig.json")
1633 (delete-file-recursively "src/__tests__")
1634 (invoke
1635 "esbuild"
1636 "src/**/*.ts"
1637 "--platform=node"
1638 "--format=esm"
1639 "--sourcemap"
1640 "--outdir=dist"))))))
1641 (synopsis "Simple task runner")
1642 (description "Tasks are defined in Herebyfile.mjs. Exported tasks are available to\
1643 run at the CLI, with support for export default.")
1644 (home-page (git-reference-url (origin-uri source)))
1645 (license license:expat)))
1646
1647(define-public node-ieee754
1648 (package
1649 (name "node-ieee754")
1650 (version "1.2.1")
1651 (source (origin
1652 (method git-fetch)
1653 (uri (git-reference
1654 (url "https://github.com/feross/ieee754")
1655 (commit (string-append "v" version))))
1656 (file-name (git-file-name name version))
1657 (sha256
1658 (base32
1659 "19rlg59lavnwsvbblhvrqwinz2wzqlxhddqpwrc3cyqkscjgza7i"))))
1660 (build-system node-build-system)
1661 (arguments
1662 '(#:tests? #f
1663 #:phases (modify-phases %standard-phases
1664 (add-after 'patch-dependencies 'delete-dependencies
1665 (lambda _
1666 (modify-json
1667 (delete-dependencies
1668 '("airtap" "standard" "tape"))))))))
1669 (home-page "https://github.com/feross/ieee754")
1670 (synopsis "Read/write IEEE754 floating point numbers in Javascript")
1671 (description "This package can read and write IEEE754 floating point
1672numbers from/to a Buffer or array-like object in Javascript.")
1673 (license license:bsd-3)))
1674
1675(define-public node-inherits
1676 (package
1677 (name "node-inherits")
1678 (version "2.0.4")
1679 (source
1680 (origin
1681 (method git-fetch)
1682 (uri (git-reference
1683 (url "https://github.com/isaacs/inherits")
1684 (commit (string-append "v" version))))
1685 (file-name (git-file-name name version))
1686 (sha256
1687 (base32
1688 "0cpsr5yqwkxpbbbbl0rwk4mcby6zbx841k2zb4c3gb1579i5wq9p"))))
1689 (build-system node-build-system)
1690 (arguments
1691 '(#:phases
1692 (modify-phases %standard-phases
1693 (add-after 'patch-dependencies 'delete-dependencies
1694 (lambda args
1695 (modify-json (delete-dependencies '("tap"))))))
1696 ;; FIXME: Tests depend on node-tap
1697 #:tests? #f))
1698 (home-page "https://github.com/isaacs/inherits")
1699 (synopsis "Browser-friendly object inheritance")
1700 (description "This package provides an alternative implementation of
1701Node's @code{inherits} constructor that can be used in browsers, while
1702defaulting to Node's implementation otherwise.")
1703 (license license:isc)))
1704
1705(define-public node-https-proxy-agent
1706 (package
1707 (name "node-https-proxy-agent")
1708 (version "7.0.6")
1709 (source
1710 (origin
1711 (method git-fetch)
1712 (uri (git-reference
1713 (url "https://github.com/TooTallNate/proxy-agents")
1714 (commit (string-append "https-proxy-agent@" version))))
1715 (file-name (git-file-name name version))
1716 (sha256
1717 (base32 "0c02kcbfp63r1y36hrkhzkmn3gz6ad2s577js94776vza3r7r631"))))
1718 (build-system node-build-system)
1719 (arguments
1720 (list
1721 #:tests? #f
1722 #:phases
1723 #~(modify-phases %standard-phases
1724 (add-after 'unpack 'change-directory
1725 (lambda _
1726 (chdir "packages/https-proxy-agent")))
1727 (add-after 'patch-dependencies 'delete-dev-dependencies
1728 (lambda _
1729 (modify-json (delete-dev-dependencies))))
1730 (replace 'build
1731 (lambda* (#:key inputs native-inputs #:allow-other-keys)
1732 (let ((esbuild (search-input-file (or native-inputs inputs) "/bin/esbuild")))
1733 (mkdir-p "dist")
1734 (for-each
1735 (lambda (ts-file)
1736 (let* ((base (basename ts-file ".ts"))
1737 (js-file (string-append "dist/" base ".js")))
1738 (invoke esbuild ts-file
1739 (string-append "--outfile=" js-file)
1740 "--format=cjs"
1741 "--platform=node"
1742 "--target=es2020")))
1743 (find-files "src" "\\.ts$"))))))))
1744 (native-inputs (list esbuild))
1745 (inputs
1746 (list node-agent-base node-debug))
1747 (home-page "https://github.com/TooTallNate/proxy-agents")
1748 (synopsis "HTTPS proxy HTTP.Agent implementation")
1749 (description "This package provides an @code{HTTP.Agent} implementation
1750that connects to a specified HTTP or HTTPS proxy server, and can be used with
1751the built-in https module.")
1752 (license license:expat)))
1753
1754(define-public node-jpeg-js
1755 (package
1756 (name "node-jpeg-js")
1757 (version "0.4.4")
1758 (source
1759 (origin
1760 (method git-fetch)
1761 (uri (git-reference
1762 (url "https://github.com/eugeneware/jpeg-js")
1763 (commit (string-append "v" version))))
1764 (file-name (git-file-name name version))
1765 (sha256
1766 (base32 "11lw3b6p4g7wm7k7ha3y1fnbmbr58r7fm7hkwjbp6bb5705mgyjg"))))
1767 (build-system node-build-system)
1768 (arguments
1769 '(#:tests? #f
1770 #:phases
1771 (modify-phases %standard-phases
1772 (add-after 'patch-dependencies 'delete-dev-dependencies
1773 (lambda _
1774 (modify-json (delete-dev-dependencies)))))))
1775 (home-page "https://github.com/eugeneware/jpeg-js")
1776 (synopsis "Pure JavaScript JPEG encoder and decoder")
1777 (description "This package provides a pure JavaScript JPEG encoder and
1778decoder for Node.js.")
1779 (license license:bsd-3)))
1780
1781(define-public node-ip-address
1782 (package
1783 (name "node-ip-address")
1784 (version "9.0.5")
1785 (source
1786 (origin
1787 (method git-fetch)
1788 (uri (git-reference
1789 (url "https://github.com/beaugunderson/ip-address")
1790 (commit (string-append "v" version))))
1791 (file-name (git-file-name name version))
1792 (sha256
1793 (base32 "1nb8cyhvpbjlm46y7axhlrgfmr4kw7506fgp7482hl7kaf9ixl14"))))
1794 (build-system node-build-system)
1795 (arguments
1796 (list
1797 #:tests? #f
1798 #:phases
1799 #~(modify-phases %standard-phases
1800 (add-after 'patch-dependencies 'delete-dev-dependencies
1801 (lambda _
1802 (modify-json (delete-dev-dependencies))))
1803 (replace 'build
1804 (lambda* (#:key inputs native-inputs #:allow-other-keys)
1805 (let ((esbuild (search-input-file (or native-inputs inputs)
1806 "/bin/esbuild")))
1807 (mkdir-p "dist")
1808 (for-each
1809 (lambda (ts-file)
1810 (let* ((relative (substring ts-file (string-length "src/")))
1811 (js-file (string-append "dist/"
1812 (string-take relative (string-index relative #\.))
1813 ".js")))
1814 (mkdir-p (dirname js-file))
1815 (invoke esbuild ts-file
1816 (string-append "--outfile=" js-file)
1817 "--format=cjs"
1818 "--platform=node"
1819 "--target=es2020")))
1820 (find-files "src" "\\.ts$"))))))))
1821 (native-inputs (list esbuild))
1822 (inputs
1823 (list node-jsbn node-sprintf-js))
1824 (home-page "https://github.com/beaugunderson/ip-address")
1825 (synopsis "Library for parsing and manipulating IPv6 and IPv4 addresses")
1826 (description "This package provides a library for parsing and
1827manipulating IPv6 and IPv4 addresses in JavaScript.")
1828 (license license:expat)))
1829
1830(define-public node-irc
1831 (package
1832 (name "node-irc")
1833 (version "0.5.2")
1834 (source (origin
1835 (method git-fetch)
1836 (uri (git-reference
1837 (url "https://github.com/martynsmith/node-irc")
1838 (commit (string-append "v" version))))
1839 (file-name (git-file-name name version))
1840 (sha256
1841 (base32
1842 "1ln4qfx20jbwg4cp8lp0vf27m5281z2sz16d15xd6150n26cbi4x"))))
1843 (build-system node-build-system)
1844 (arguments
1845 '(#:phases
1846 (modify-phases %standard-phases
1847 (add-after 'patch-dependencies 'delete-dependencies
1848 (lambda args
1849 (modify-json
1850 (delete-dependencies
1851 `("ansi-color" "faucet" "jscs" "tape"))))))
1852 #:tests? #f))
1853 (inputs
1854 (list node-irc-colors))
1855 (home-page "https://github.com/martynsmith/node-irc")
1856 (synopsis "IRC client library for Node.js")
1857 (description "@code{node-irc} is an IRC client library for Node.js.
1858It has functions for joining, parting, talking, and many other IRC commands.")
1859 (license license:gpl3+)))
1860
1861(define-public node-irc-colors
1862 (package
1863 (name "node-irc-colors")
1864 (version "1.5.0")
1865 (source (origin
1866 (method git-fetch)
1867 (uri (git-reference
1868 (url "https://github.com/fent/irc-colors.js")
1869 (commit (string-append "v" version))))
1870 (file-name (git-file-name name version))
1871 (sha256
1872 (base32
1873 "0q3y34rbnlc55jcakmdxkicwazyvyph9r6gaf6hi8k7wj2nfwfli"))))
1874 (build-system node-build-system)
1875 (arguments
1876 '(#:phases
1877 (modify-phases %standard-phases
1878 (add-after 'patch-dependencies 'delete-dependencies
1879 (lambda args
1880 (modify-json (delete-dependencies `("istanbul" "vows"))))))
1881 #:tests? #f))
1882 (home-page "https://github.com/fent/irc-colors.js")
1883 (synopsis "Node.js module providing color and formatting for IRC")
1884 (description "@code{node-irc-colors} is a Node.js module that
1885allows you to easily use colored output and formatting in IRC bots.
1886It contains functions for colours as well as more complex formatting
1887such as rainbows.")
1888 (license license:expat)))
1889
1890(define-public node-isexe
1891 (package
1892 (name "node-isexe")
1893 (version "2.0.0")
1894 (source (origin
1895 (method git-fetch)
1896 (uri (git-reference
1897 (url "https://github.com/isaacs/isexe")
1898 (commit (string-append "v" version))))
1899 (file-name (git-file-name name version))
1900 (sha256
1901 (base32 "18rh937j0m0jkzdxfdvvjv6nsdbrdqipnq7nvv1ab7b7rjyw5id3"))))
1902 (build-system node-build-system)
1903 (arguments (list
1904 #:tests? #f ; FIXME: Tests require 'tap'.
1905 #:phases #~(modify-phases %standard-phases
1906 (add-before 'patch-dependencies 'modify-package (lambda _
1907 (modify-json
1908 (delete-dev-dependencies)))))))
1909 (synopsis "Minimal module to check if a file is executable.")
1910 (description "Minimal module to check if a file is executable, and a normal file.
1911Uses fs.stat.")
1912 (home-page (git-reference-url (origin-uri source)))
1913 (license license:isc)))
1914
1915(define-public node-jsonc-parser
1916 (package
1917 (name "node-jsonc-parser")
1918 (version "3.3.1")
1919 (source (origin
1920 (method git-fetch)
1921 (uri (git-reference
1922 (url "https://github.com/microsoft/node-jsonc-parser")
1923 (commit (string-append "v" version))))
1924 (file-name (git-file-name name version))
1925 (sha256
1926 (base32 "1pf3kxbx9v4h646hqfjw8r70y8vq9zl3l393nfcqzhm8z1skb3iy"))))
1927 (build-system node-build-system)
1928 (native-inputs (list esbuild))
1929 (arguments (list
1930 #:modules '(
1931 (guix build node-build-system)
1932 (guix build utils)
1933 (ice-9 match))
1934 #:tests? #f ; FIXME: Tests require 'mocha'.
1935 #:phases #~(modify-phases %standard-phases
1936 (add-before 'patch-dependencies 'modify-package (lambda _
1937 (delete-file-recursively "src/test")
1938 (modify-json
1939 (delete-dev-dependencies))))
1940 (replace 'build (lambda _
1941 (define output "output")
1942 (define lib (string-append output "/lib"))
1943 (mkdir-p lib)
1944 (for-each
1945 (match-lambda ((format directory parameters)
1946 (apply invoke (append
1947 (list
1948 "esbuild"
1949 "src/**/*.ts"
1950 "--platform=node"
1951 (string-append "--format=" format)
1952 "--target=es2020"
1953 (string-append "--outdir=" lib "/" directory))
1954 parameters))))
1955 (list
1956 (list "cjs" "umd" (list "--global-name=jsoncParser"))
1957 (list "esm" "esm" (list))))
1958 (for-each
1959 (lambda (file) (install-file file output))
1960 (list
1961 "CHANGELOG.md"
1962 "LICENSE.md"
1963 "package.json"
1964 "README.md"
1965 "SECURITY.md"))
1966 (chdir output))))))
1967 (synopsis "Scanner and parser for JSON with comments")
1968 (description "JSONC is JSON with JavaScript style comments. This node module provides\
1969 a scanner and fault tolerant parser that can process JSONC but is also useful for\
1970 standard JSON.
1971 * the scanner tokenizes the input string into tokens and token offsets
1972 * the visit function implements a 'SAX' style parser with callbacks for the encountered\
1973 properties and values.
1974 * the parseTree function computes a hierarchical DOM with offsets representing the\
1975 encountered properties and values.
1976 * the parse function evaluates the JavaScript object represented by JSON string in a\
1977 fault tolerant fashion.
1978 * the getLocation API returns a location object that describes the property or value\
1979 located at a given offset in a JSON document.
1980 * the findNodeAtLocation API finds the node at a given location path in a JSON DOM.
1981 * the format API computes edits to format a JSON document.
1982 * the modify API computes edits to insert, remove or replace a property or value in a\
1983 JSON document.
1984 * the applyEdits API applies edits to a document.")
1985 (home-page (git-reference-url (origin-uri source)))
1986 (license license:expat)))
1987
1988(define-public node-is-docker
1989 (package
1990 (name "node-is-docker")
1991 (version "2.2.1")
1992 (source
1993 (origin
1994 (method git-fetch)
1995 (uri (git-reference
1996 (url "https://github.com/sindresorhus/is-docker")
1997 (commit (string-append "v" version))))
1998 (file-name (git-file-name name version))
1999 (sha256
2000 (base32 "04cs0zffssdagqrn6sd98vk03ps4hwkd3yvk5gq2xpgdn6n77qzq"))))
2001 (build-system node-build-system)
2002 (arguments
2003 '(#:tests? #f
2004 #:phases
2005 (modify-phases %standard-phases
2006 (add-after 'patch-dependencies 'delete-dev-dependencies
2007 (lambda _
2008 (modify-json (delete-dev-dependencies)))))))
2009 (home-page "https://github.com/sindresorhus/is-docker")
2010 (synopsis "Check if the process is running inside a Docker container")
2011 (description "This package provides a way to check if the process is
2012running inside a Docker container.")
2013 (license license:expat)))
2014
2015(define-public node-is-wsl
2016 (package
2017 (name "node-is-wsl")
2018 (version "2.2.0")
2019 (source
2020 (origin
2021 (method git-fetch)
2022 (uri (git-reference
2023 (url "https://github.com/sindresorhus/is-wsl")
2024 (commit (string-append "v" version))))
2025 (file-name (git-file-name name version))
2026 (sha256
2027 (base32 "0gn5yfg4mwbphfnwqnsxwcfarb2jfgy6ib3hyp5b83wy3dqb04b5"))))
2028 (build-system node-build-system)
2029 (arguments
2030 '(#:tests? #f
2031 #:phases
2032 (modify-phases %standard-phases
2033 (add-after 'patch-dependencies 'delete-dev-dependencies
2034 (lambda _
2035 (modify-json (delete-dev-dependencies)))))))
2036 (inputs
2037 (list node-is-docker))
2038 (home-page "https://github.com/sindresorhus/is-wsl")
2039 (synopsis "Check if the process is running inside Windows Subsystem for Linux")
2040 (description "This package provides a way to check if the process is
2041running inside Windows Subsystem for Linux.")
2042 (license license:expat)))
2043
2044(define-public node-jsbn
2045 (package
2046 (name "node-jsbn")
2047 (version "1.1.0")
2048 (source
2049 (origin
2050 (method git-fetch)
2051 (uri (git-reference
2052 (url "https://github.com/andyperlitch/jsbn")
2053 (commit (string-append "v" version))))
2054 (file-name (git-file-name name version))
2055 (sha256
2056 (base32 "0z875y5i0ck809gqnnw33yw02x5vmc9g42mfr5cjkgwinci1d9lk"))))
2057 (build-system node-build-system)
2058 (arguments '(#:tests? #f))
2059 (home-page "https://github.com/andyperlitch/jsbn")
2060 (synopsis "JavaScript BigNum library")
2061 (description "This package is a port of Tom Wu's Big Integer library to
2062JavaScript.")
2063 (license license:expat)))
2064
2065(define-public node-long-stack-traces
2066 (package
2067 (name "node-long-stack-traces")
2068 (version "0.1.2")
2069 (source
2070 (origin
2071 (method git-fetch)
2072 (uri (git-reference
2073 (url "https://github.com/tlrobinson/long-stack-traces")
2074 (commit (string-append "v" version))))
2075 (file-name (git-file-name name version))
2076 (sha256
2077 (base32
2078 "0famwsyc6xawi30v25zi65d8fhbvlvh976bqydf1dqn5gz200cl3"))))
2079 (build-system node-build-system)
2080 (arguments '(#:tests? #f)) ; No tests.
2081 (home-page "https://github.com/tlrobinson/long-stack-traces")
2082 (synopsis "Long stacktraces implemented in user-land JavaScript")
2083 (description "This package provides long stacktraces for V8 implemented in
2084user-land JavaScript.")
2085 (license license:expat))) ; in README
2086
2087(define-public node-lru-cache
2088 (package
2089 (name "node-lru-cache")
2090 (version "10.4.3")
2091 (source (origin
2092 (method git-fetch)
2093 (uri (git-reference
2094 (url "https://github.com/isaacs/node-lru-cache")
2095 (commit (string-append "v" version))))
2096 (file-name (git-file-name name version))
2097 (sha256 (base32 "1zqpm7d7czbqyymzgs4qadd0hiy6n290y6wwy1gwa46mmd1bxbr3"))))
2098 (build-system node-build-system)
2099 ; Use ESBuild instead of tshy because this is used to build Typescript.
2100 (native-inputs (list esbuild))
2101 (arguments (list
2102 #:modules '(
2103 (guix build node-build-system)
2104 (guix build utils)
2105 (ice-9 match))
2106 #:tests? #f ; FIXME: Tests require 'tap'.
2107 #:phases #~(modify-phases %standard-phases
2108 (add-before 'patch-dependencies 'delete-dependencies
2109 (lambda _
2110 (modify-json
2111 (delete-dev-dependencies)
2112 (delete-fields (list
2113 "scripts.prepare")))))
2114 (replace 'build
2115 (lambda _
2116 (define output "output")
2117 (for-each
2118 (match-lambda ((format directory type)
2119 (define target-output (string-append output "/dist/" directory))
2120 (invoke
2121 "esbuild"
2122 "src/*.ts"
2123 "--platform=node"
2124 "--target=es2022"
2125 (string-append "--format=" format)
2126 "--jsx=transform"
2127 "--sourcemap"
2128 (string-append "--outdir=" target-output))
2129 (with-output-to-file
2130 (string-append target-output "/package.json")
2131 (lambda _
2132 (display (string-append "{\"type\": \"" type "\"}"))))))
2133 (list
2134 (list "cjs" "commonjs" "commonjs")
2135 (list "esm" "esm" "module")))
2136 (for-each
2137 (lambda (file) (install-file file output))
2138 (list "LICENSE" "package.json" "README.md"))
2139 (chdir output))))))
2140 (synopsis "A fast cache that automatically deletes the least recently used items.")
2141 (description "A cache object that deletes the least-recently-used items.
2142Specify a max number of the most recently used items that you want to keep, and
2143this cache will keep that many of the most recently accessed items.")
2144 (home-page (git-reference-url (origin-uri source)))
2145 (license license:isc)))
2146
2147(define-public node-mersenne
2148 (package
2149 (name "node-mersenne")
2150 (version "0.0.4")
2151 (source
2152 (origin
2153 (method git-fetch)
2154 (uri (git-reference
2155 (url "https://github.com/jwatte/node-mersenne")
2156 ;; The actual release lacks a git tag.
2157 (commit "f9fa01694ee49d6ae6ff9d90cfda594bddd3ccef")))
2158 (file-name (git-file-name name version))
2159 (sha256
2160 (base32
2161 "034iaiq2pdqn342p2404cpz364g282d2hkp9375hysnh9i968wbb"))))
2162 (build-system node-build-system)
2163 (arguments '(#:tests? #f)) ; No tests.
2164 (home-page "https://www.enchantedage.com/node-mersenne")
2165 (synopsis "Node.js module for generating Mersenne Twister random numbers")
2166 (description "This package provides a node.js port of the Mersenne Twister
2167random number generator.")
2168 (license license:bsd-3)))
2169
2170(define-public node-mime
2171 (package
2172 (name "node-mime")
2173 (version "3.0.0")
2174 (source
2175 (origin
2176 (method git-fetch)
2177 (uri (git-reference
2178 (url "https://github.com/broofa/mime")
2179 (commit (string-append "v" version))))
2180 (file-name (git-file-name name version))
2181 (sha256
2182 (base32 "1g6k3aj71bv10cjfl6rnjks767vfsj967z8xypc0zn47v0w0k1jb"))))
2183 (build-system node-build-system)
2184 (arguments
2185 '(#:tests? #f
2186 #:phases
2187 (modify-phases %standard-phases
2188 (add-after 'patch-dependencies 'delete-dev-dependencies
2189 (lambda _
2190 (modify-json (delete-dev-dependencies))))
2191 (add-after 'install 'remove-prepare-script
2192 (lambda* (#:key outputs #:allow-other-keys)
2193 ;; The prepare script generates types/standard.js and types/other.js
2194 ;; from mime-db. These files are already generated during the Guix
2195 ;; build. Remove the script to prevent npm from trying to re-run it
2196 ;; when this package is used as a file: dependency.
2197 (modify-json #:file (string-append (assoc-ref outputs "out")
2198 "/lib/node_modules/mime/package.json")
2199 (delete-fields '(("scripts" "prepare")))))))))
2200 (home-page "https://github.com/broofa/mime")
2201 (synopsis "Comprehensive MIME type mapping API")
2202 (description "This package provides a library for MIME type mapping based
2203on mime-db.")
2204 (license license:expat)))
2205
2206(define-public node-minimatch-3
2207 (package
2208 (name "node-minimatch")
2209 (version "3.1.2")
2210 (source
2211 (origin
2212 (method git-fetch)
2213 (uri (git-reference
2214 (url "https://github.com/isaacs/minimatch")
2215 (commit (string-append "v" version))))
2216 (file-name (git-file-name name version))
2217 (sha256
2218 (base32 "1g6w4nn8vx38j4ka5hlphhp505dxyr6dv7g99kfzrjrlnlh7vjbr"))))
2219 (build-system node-build-system)
2220 (arguments
2221 '(#:tests? #f
2222 #:phases
2223 (modify-phases %standard-phases
2224 (add-after 'patch-dependencies 'delete-dev-dependencies
2225 (lambda _
2226 (modify-json (delete-dev-dependencies)))))))
2227 (inputs
2228 (list node-brace-expansion-1))
2229 (home-page "https://github.com/isaacs/minimatch")
2230 (synopsis "Glob matcher for JavaScript")
2231 (description "This package provides a minimal matching utility for
2232JavaScript.")
2233 (license license:isc)))
2234
2235(define-public node-minimatch
2236 (package
2237 (name "node-minimatch")
2238 (version "9.0.5")
2239 (source (origin
2240 (method git-fetch)
2241 (uri (git-reference
2242 (url "https://github.com/isaacs/minimatch")
2243 (commit (string-append "v" version))))
2244 (file-name (git-file-name name version))
2245 (sha256 (base32 "1m9lr4nalzml8l6lz09jmk3nhqm7jf6lkyybvdg0ccqx74si7d44"))))
2246 (build-system node-build-system)
2247 (inputs (list node-brace-expansion))
2248 ; Use ESBuild because this is used to build Typescript.
2249 (native-inputs (list esbuild))
2250 (arguments (list
2251 #:modules '(
2252 (guix build node-build-system)
2253 (guix build utils)
2254 (ice-9 match))
2255 #:tests? #f ; FIXME: Tests require 'tap'.
2256 #:phases #~(modify-phases %standard-phases
2257 (add-before 'patch-dependencies 'modify-package
2258 (lambda _
2259 (modify-json
2260 (delete-dev-dependencies)
2261 (delete-fields (list
2262 "scripts.prepare")))))
2263 (replace 'build
2264 (lambda _
2265 (define output "output")
2266 (for-each
2267 (match-lambda ((format directory type)
2268 (define target-output (string-append output "/dist/" directory))
2269 (invoke
2270 "esbuild"
2271 "src/*.ts"
2272 "--platform=node"
2273 "--target=es2022"
2274 (string-append "--format=" format)
2275 "--jsx=transform"
2276 "--sourcemap"
2277 (string-append "--outdir=" target-output))
2278 (with-output-to-file
2279 (string-append target-output "/package.json")
2280 (lambda _
2281 (display (string-append "{\"type\": \"" type "\"}"))))))
2282 (list
2283 (list "cjs" "commonjs" "commonjs")
2284 (list "esm" "esm" "module")))
2285 (for-each
2286 (lambda (file) (install-file file output))
2287 (list "LICENSE" "package.json" "README.md"))
2288 (chdir output))))))
2289 (synopsis "A glob matcher in javascript.")
2290 (description "A minimal matching utility.
2291This is the matching library used internally by npm.
2292It works by converting glob expressions into JavaScript RegExp objects.")
2293 (home-page (git-reference-url (origin-uri source)))
2294 (license license:isc)))
2295
2296(define-public node-minimist
2297 (package
2298 (name "node-minimist")
2299 (version "1.2.8")
2300 (source (origin
2301 (method git-fetch)
2302 (uri (git-reference
2303 (url "https://github.com/minimistjs/minimist")
2304 (commit (string-append "v" version))))
2305 (file-name (git-file-name name version))
2306 (sha256
2307 (base32 "027nxm7pkam89qxdybf7sd1k3h84njykhhxmzn1l6psmvrkwbqb7"))))
2308 (build-system node-build-system)
2309 (arguments (list
2310 #:tests? #f
2311 #:phases #~(modify-phases %standard-phases
2312 (add-before 'patch-dependencies 'modify-package (lambda _
2313 (modify-json
2314 (delete-dev-dependencies)))))))
2315 (synopsis "Parse CLI arguments in Javascript")
2316 (description "This package can scan for CLI flags and arguments in Javascript.")
2317 (home-page (git-reference-url (origin-uri source)))
2318 (license license:expat)))
2319
2320(define-public node-minipass-5
2321 (package
2322 (name "node-minipass")
2323 (version "5.0.0")
2324 (source (origin
2325 (method git-fetch)
2326 (uri (git-reference
2327 (url "https://github.com/isaacs/minipass")
2328 (commit (string-append "v" version))))
2329 (file-name (git-file-name name version))
2330 (sha256 (base32 "1xwxk9w290d0xsi9flzlrpdr4rwbq8q47d8hrzv27pzr2gf42nsz"))))
2331 (build-system node-build-system)
2332 (arguments (list
2333 #:tests? #f ; FIXME: Tests require 'tap'.
2334 #:phases #~(modify-phases %standard-phases
2335 (add-before 'patch-dependencies 'modify-package
2336 (lambda _
2337 (modify-json
2338 (delete-dev-dependencies)
2339 (delete-fields (list
2340 "scripts.prepare")))))
2341 (replace 'build
2342 (lambda _
2343 (define output "output")
2344 (mkdir output)
2345 (invoke "node" "./scripts/transpile-to-esm.js")
2346 (for-each
2347 (lambda (file) (install-file file output))
2348 (list "index.js" "index.mjs" "LICENSE" "package.json" "README.md"))
2349 (chdir output))))))
2350 (synopsis "Minimal implementation of a PassThrough stream")
2351 (description "A very minimal implementation of a PassThrough stream
2352It's very fast for objects, strings, and buffers.
2353Supports pipe()ing (including multi-pipe() and backpressure transmission), buffering\
2354 data until either a data event handler or pipe() is added (so you don't lose the first\
2355 chunk), and most other cases where PassThrough is a good idea.
2356There is a read() method, but it's much more efficient to consume data from this stream\
2357 via 'data' events or by calling pipe() into some other stream. Calling read() requires\
2358 the buffer to be flattened in some cases, which requires copying memory.
2359If you set objectMode: true in the options, then whatever is written will be emitted.\
2360 Otherwise, it'll do a minimal amount of Buffer copying to ensure proper Streams\
2361 semantics when read(n) is called.
2362objectMode can only be set at instantiation. Attempting to write something other than a\
2363 String or Buffer without having set objectMode in the options will throw an error.
2364This is not a through or through2 stream. It doesn't transform the data, it just passes\
2365 it right through. If you want to transform the data, extend the class, and override the\
2366 write() method. Once you're done transforming the data however you want, call\
2367 super.write() with the transform output.")
2368 (home-page (git-reference-url (origin-uri source)))
2369 (license license:isc)))
2370
2371(define-public node-minipass-7
2372 (package
2373 (inherit node-minipass-5)
2374 (version "7.1.2")
2375 (source (origin
2376 (method git-fetch)
2377 (uri (git-reference
2378 (url (git-reference-url (origin-uri (package-source node-minipass-5))))
2379 (commit (string-append "v" version))))
2380 (file-name (git-file-name (package-name node-minipass-5) version))
2381 (sha256 (base32 "0zqnnw9ibwm660md1pfqsiwbbpbizydiwjp4fr8niyzczxk66k1j"))))
2382 ; Use ESBuild because this is used to build Typescript.
2383 (native-inputs (list esbuild))
2384 (arguments (list
2385 #:modules '(
2386 (guix build node-build-system)
2387 (guix build utils)
2388 (ice-9 match))
2389 #:tests? #f ; FIXME: Tests require 'tap'.
2390 #:phases #~(modify-phases %standard-phases
2391 (add-before 'patch-dependencies 'modify-package
2392 (lambda _
2393 (modify-json
2394 (delete-dev-dependencies)
2395 (delete-fields (list
2396 "scripts.prepare")))))
2397 (replace 'build
2398 (lambda _
2399 (define output "output")
2400 (for-each
2401 (match-lambda ((format directory type)
2402 (define target-output (string-append output "/dist/" directory))
2403 (invoke
2404 "esbuild"
2405 "src/index.ts"
2406 "--platform=node"
2407 "--target=es2022"
2408 (string-append "--format=" format)
2409 "--jsx=transform"
2410 "--sourcemap"
2411 (string-append "--outdir=" target-output))
2412 (with-output-to-file
2413 (string-append target-output "/package.json")
2414 (lambda _ (display (string-append "{\"type\": \"" type "\"}"))))))
2415 (list
2416 (list "cjs" "commonjs" "commonjs")
2417 (list "esm" "esm" "module")))
2418 (for-each
2419 (lambda (file) (install-file file output))
2420 (list "LICENSE" "package.json" "README.md"))
2421 (chdir output))))))))
2422
2423(define-public node-mkdirp
2424 (package
2425 (name "node-mkdirp")
2426 (version "3.0.1")
2427 (source
2428 (origin
2429 (method git-fetch)
2430 (uri (git-reference
2431 (url "https://github.com/isaacs/node-mkdirp")
2432 (commit (string-append "v" version))))
2433 (file-name (git-file-name name version))
2434 (sha256
2435 (base32 "1f3f8prf5zppnsp526bwf72yrq0g2vkz5b9hlkrda9ypg3a6cs85"))))
2436 (build-system node-build-system)
2437 (arguments
2438 (list
2439 #:tests? #f
2440 #:phases
2441 #~(modify-phases %standard-phases
2442 (add-after 'patch-dependencies 'delete-dev-dependencies
2443 (lambda _
2444 (modify-json (delete-dev-dependencies)))))))
2445 (home-page "https://github.com/isaacs/node-mkdirp")
2446 (synopsis "mkdir command implementation in Node.js")
2447 (description "This package provides a recursive @command{mkdir} command
2448implemented in JavaScript.")
2449 (license license:expat)))
2450
2451(define-public node-ms
2452 (package
2453 (name "node-ms")
2454 (version "2.1.3")
2455 (source
2456 (origin
2457 (method git-fetch)
2458 (uri (git-reference
2459 (url "https://github.com/vercel/ms")
2460 (commit version)))
2461 (file-name (git-file-name name version))
2462 (sha256
2463 (base32 "1l74kmmwffmzdz38lli0v5mdb9p9jmsjxpb48ncknqw2n74cgf08"))))
2464 (build-system node-build-system)
2465 (arguments
2466 `(#:phases
2467 (modify-phases %standard-phases
2468 (add-after 'patch-dependencies 'delete-dependencies
2469 (lambda args
2470 (modify-json (delete-dependencies
2471 `("eslint"
2472 "expect.js"
2473 "husky"
2474 "lint-staged"
2475 "mocha"
2476 "prettier"))))))
2477 #:tests? #f))
2478 (home-page "https://github.com/vercel/ms")
2479 (synopsis "Convert time to milliseconds")
2480 (description "Use this package to easily convert various time formats to
2481milliseconds. A number supplied as integer or string is returned as-is, while
2482a string consisting of a number and a time unit is converted to milliseconds.")
2483 (license license:expat)))
2484
2485(define-public node-nan
2486 (package
2487 (name "node-nan")
2488 (version "2.26.2")
2489 (source
2490 (origin
2491 (method git-fetch)
2492 (uri (git-reference
2493 (url "https://github.com/nodejs/nan")
2494 (commit (string-append "v" version))))
2495 (file-name (git-file-name name version))
2496 (sha256
2497 (base32 "18xv0m40jgy3sc4pldw95w6p72ms5a5h0x2sm2mimlwlmxmrjlmb"))))
2498 (build-system node-build-system)
2499 (arguments
2500 `(#:phases
2501 (modify-phases %standard-phases
2502 (add-after 'patch-dependencies 'delete-dependencies
2503 (lambda args
2504 (modify-json (delete-dependencies
2505 '("bindings"
2506 "commander"
2507 "glob"
2508 "request"
2509 "node-gyp" ;; would be needed for tests
2510 "tap"
2511 "xtend"))))))
2512 ;; tests need tap and other dependencies
2513 #:tests? #f))
2514 (inputs
2515 (list node-readable-stream))
2516 (home-page "https://github.com/nodejs/nan")
2517 (synopsis "Native Abstractions for Node.js")
2518 (description "Native Abstractions for Node.js (``NaN'') provides a header
2519file filled with macros and utilities for making add-on development for Node.js
2520easier across versions. The goal is to provide all logic necessary to develop
2521native Node.js addons without having to inspect @code{NODE_MODULE_VERSION}.")
2522 (license license:expat)))
2523
2524(define-public node-normalize-path
2525 (package
2526 (name "node-normalize-path")
2527 (version "3.0.0")
2528 (source
2529 (origin
2530 (method git-fetch)
2531 (uri (git-reference
2532 (url "https://github.com/jonschlinkert/normalize-path")
2533 (commit version)))
2534 (file-name (git-file-name name version))
2535 (sha256
2536 (base32 "1l079szbgw2b9i5zx6zbwvxiivssa55a4pwfy4m7n6rdkcmsxf7f"))))
2537 (build-system node-build-system)
2538 (arguments
2539 '(#:tests? #f
2540 #:phases (modify-phases %standard-phases
2541 (add-after 'patch-dependencies 'delete-dependencies
2542 (lambda _
2543 (modify-json (delete-dependencies
2544 '("gulp-format-md" "mocha"))))))))
2545 (native-inputs (list node-minimist))
2546 (home-page "https://github.com/jonschlinkert/normalize-path")
2547 (synopsis "Normalize slashes in a file path")
2548 (description
2549 "Normalize slashes in a file path to be POSIX/Unix-like forward slashes.
2550Can also condense repeated slashes to a single slash and remove trailing
2551slashes, unless disabled.")
2552 (license license:expat)))
2553
2554(define-public node-once
2555 (package
2556 (name "node-once")
2557 (version "1.4.0")
2558 (source (origin
2559 (method git-fetch)
2560 (uri (git-reference
2561 (url "https://github.com/isaacs/once")
2562 (commit (string-append "v" version))))
2563 (file-name (git-file-name name version))
2564 (sha256
2565 (base32
2566 "1z8dcbf28dqdcp4wb0c53wrs90a07nkrax2c9kk26dsk1dhrnxav"))))
2567 (build-system node-build-system)
2568 (arguments
2569 '(#:phases
2570 (modify-phases %standard-phases
2571 (add-after 'patch-dependencies 'delete-dependencies
2572 (lambda args
2573 (modify-json (delete-dependencies '("tap"))))))
2574 ;; FIXME: Tests depend on node-tap
2575 #:tests? #f))
2576 (inputs
2577 (list node-wrappy))
2578 (home-page "https://github.com/isaacs/once")
2579 (synopsis "Node.js module to call a function only once")
2580 (description
2581 "@code{once} is a Node.js module to call a function exactly one time.
2582Subsequent calls will either return the cached previous value or throw an error
2583if desired.")
2584 (license license:isc)))
2585
2586(define-public node-open
2587 (package
2588 (name "node-open")
2589 (version "8.4.0")
2590 (source
2591 (origin
2592 (method git-fetch)
2593 (uri (git-reference
2594 (url "https://github.com/sindresorhus/open")
2595 (commit (string-append "v" version))))
2596 (file-name (git-file-name name version))
2597 (sha256
2598 (base32 "17h4sv0xr96hckw5z4wjsnszv9ic3kjn03yixg2ihcak535lhkra"))))
2599 (build-system node-build-system)
2600 (arguments
2601 '(#:tests? #f
2602 #:phases
2603 (modify-phases %standard-phases
2604 (add-after 'patch-dependencies 'delete-dev-dependencies
2605 (lambda _
2606 (modify-json (delete-dev-dependencies)))))))
2607 (inputs
2608 (list node-define-lazy-prop node-is-docker node-is-wsl))
2609 (home-page "https://github.com/sindresorhus/open")
2610 (synopsis "Open URLs, files, and executables")
2611 (description "This package provides a way to open stuff like URLs, files,
2612executables.")
2613 (license license:expat)))
2614
2615(define-public node-oop
2616 ;; No releases, last commit was February 2013.
2617 (let ((commit "f9d87cda0958886955c14a0a716e57021ed295dc")
2618 (revision "1"))
2619 (package
2620 (name "node-oop")
2621 (version (git-version "0.0.0" revision commit))
2622 (source
2623 (origin
2624 (method git-fetch)
2625 (uri (git-reference
2626 (url "https://github.com/felixge/node-oop")
2627 (commit commit)))
2628 (file-name (git-file-name name version))
2629 (sha256
2630 (base32
2631 "0mqrcf0xi2jbwffwkk00cljpqfsri1jk8s6kz8jny45apn7zjds1"))))
2632 (build-system node-build-system)
2633 (arguments '(#:tests? #f)) ; Tests run during build phase.
2634 (home-page "https://github.com/felixge/node-oop")
2635 (synopsis "Simple, light-weight oop module for Node")
2636 (description "This library tries to bring basic oop features to JavaScript
2637while being as light-weight and simple as possible.")
2638 (license license:expat))))
2639
2640(define-public node-parse-ms
2641 (package
2642 (name "node-parse-ms")
2643 (version "3.0.0")
2644 (source (origin
2645 (method git-fetch)
2646 (uri (git-reference
2647 (url "https://github.com/sindresorhus/parse-ms")
2648 (commit (string-append "v" version))))
2649 (file-name (git-file-name name version))
2650 (sha256
2651 (base32 "1chq6a4q2ycswkpz16bgm7853g6rh3w1j5dr7061x9h6xip3mphb"))))
2652 (build-system node-build-system)
2653 (arguments (list
2654 #:tests? #f ; FIXME: Tests require 'xo', 'ava', and 'tsd'.
2655 #:phases #~(modify-phases %standard-phases
2656 (add-before 'patch-dependencies 'modify-package (lambda _
2657 (modify-json
2658 (delete-dev-dependencies)))))))
2659 (synopsis "Parse milliseconds into an object")
2660 (description "Usage
2661import parseMilliseconds from 'parse-ms';
2662parseMilliseconds(1337000001);
2663/*
2664{
2665 days: 15,
2666 hours: 11,
2667 minutes: 23,
2668 seconds: 20,
2669 milliseconds: 1,
2670 microseconds: 0,
2671 nanoseconds: 0
2672}
2673*/")
2674 (home-page (git-reference-url (origin-uri source)))
2675 (license license:expat)))
2676
2677(define-public node-path-key
2678 (package
2679 (name "node-path-key")
2680 (version "4.0.0")
2681 (source
2682 (origin
2683 (method git-fetch)
2684 (uri (git-reference
2685 (url "https://github.com/sindresorhus/path-key")
2686 (commit (string-append "v" version))))
2687 (file-name (git-file-name name version))
2688 (sha256
2689 (base32 "09f4rf70qhq234fcc3pw9nrqic8cb75pk2b6wfnpr96v0r1h8d8g"))))
2690 (build-system node-build-system)
2691 (arguments
2692 '(#:tests? #f
2693 #:phases (modify-phases %standard-phases
2694 (add-after 'patch-dependencies 'delete-dependencies
2695 (lambda _
2696 (modify-json
2697 (delete-dependencies
2698 '("@types/node" "ava" "tsd" "xo"))))))))
2699 (home-page "https://github.com/sindresorhus/path-key")
2700 (synopsis "Cross-platform utility to compute the PATH environment variable key")
2701 (description "@code{path-key} provides an implementation to compute the
2702particular cross-platform spellings of the PATH environment variable key.")
2703 (license license:expat)))
2704
2705(define-public node-path-scurry
2706 (package
2707 (name "node-path-scurry")
2708 (version "1.11.1")
2709 (source (origin
2710 (method git-fetch)
2711 (uri (git-reference
2712 (url "https://github.com/isaacs/path-scurry")
2713 (commit (string-append "v" version))))
2714 (file-name (git-file-name name version))
2715 (sha256 (base32 "1vbmzg2pwmm441d9clk69fpij33ns5mblncy0za1x5f7d04jjyi2"))))
2716 (build-system node-build-system)
2717 (inputs (list
2718 node-lru-cache
2719 node-minipass-7))
2720 ; Use ESBuild because this is used to build Typescript.
2721 (native-inputs (list esbuild))
2722 (arguments (list
2723 #:modules '(
2724 (guix build node-build-system)
2725 (guix build utils)
2726 (ice-9 match))
2727 #:tests? #f ; FIXME: Tests require 'tap'.
2728 #:phases #~(modify-phases %standard-phases
2729 (add-before 'patch-dependencies 'delete-dependencies
2730 (lambda _
2731 (modify-json
2732 (delete-dev-dependencies)
2733 (delete-fields (list "scripts.prepare")))))
2734 (replace 'build
2735 (lambda _
2736 (define output "output")
2737 (for-each
2738 (match-lambda ((format directory type)
2739 (define target-output (string-append output "/dist/" directory))
2740 (invoke
2741 "esbuild"
2742 "src/*.ts"
2743 "--platform=node"
2744 "--target=es2022"
2745 (string-append "--format=" format)
2746 "--jsx=transform"
2747 "--sourcemap"
2748 (string-append "--outdir=" target-output))
2749 (with-output-to-file
2750 (string-append target-output "/package.json")
2751 (lambda _ (display (string-append "{\"type\": \"" type "\"}"))))))
2752 (list
2753 (list "cjs" "commonjs" "commonjs")
2754 (list "esm" "esm" "module")))
2755 (for-each
2756 (lambda (file) (install-file file output))
2757 (list "LICENSE.md" "package.json" "README.md"))
2758 (chdir output))))))
2759 (synopsis "Yet another file traversal library.")
2760 (description "Extremely high performant utility for building tools that read\
2761 the file system, minimizing filesystem and path string munging operations to\
2762 the greatest degree possible..")
2763 (home-page (git-reference-url (origin-uri source)))
2764 (license license:expat)))
2765
2766(define-public node-preact
2767 (package
2768 (name "node-preact")
2769 (version "10.27.1")
2770 (source
2771 (origin
2772 (method git-fetch)
2773 (uri (git-reference
2774 (url "https://github.com/preactjs/preact")
2775 (commit version)))
2776 (file-name (git-file-name name version))
2777 (sha256
2778 (base32 "1d5glww3v25yc606aqsjgicwa9mav9fnjii8684ax1bsxy2gfgd2"))))
2779 (build-system node-build-system)
2780 (arguments
2781 (list
2782 #:tests? #f
2783 #:modules '((guix build node-build-system)
2784 (ice-9 match)
2785 (guix build utils))
2786 #:phases
2787 #~(modify-phases %standard-phases
2788 (add-after 'patch-dependencies 'delete-dependencies
2789 (lambda _
2790 (modify-json
2791 (delete-fields '(("scripts" "prepare")
2792 ("scripts" "build")
2793 ("scripts" "postbuild")
2794 ("devDependencies"))
2795 #:strict? #f))))
2796 (replace 'build
2797 (lambda* (#:key inputs native-inputs #:allow-other-keys)
2798 (let ((esbuild (search-input-file inputs "/bin/esbuild")))
2799 (for-each
2800 (match-lambda
2801 ((entry outfile format)
2802 (invoke esbuild entry
2803 (string-append "--outfile=" outfile)
2804 (string-append "--format=" format)
2805 "--bundle" "--platform=browser")))
2806 '(("src/index.js" "dist/preact.js" "cjs")
2807 ("src/index.js" "dist/preact.mjs" "esm")
2808 ("src/index.js" "dist/preact.module.js" "esm")
2809 ("src/index.js" "dist/preact.umd.js" "iife")
2810 ("src/cjs.js" "dist/preact.min.js" "iife")
2811 ("hooks/src/index.js" "hooks/dist/hooks.js" "cjs")
2812 ("hooks/src/index.js" "hooks/dist/hooks.mjs" "esm")
2813 ("hooks/src/index.js" "hooks/dist/hooks.module.js" "esm")
2814 ("hooks/src/index.js" "hooks/dist/hooks.umd.js" "iife")))))))))
2815 (native-inputs
2816 (list esbuild))
2817 (home-page "https://preactjs.com")
2818 (synopsis "Fast 3kb React-compatible virtual DOM library")
2819 (description
2820 "Preact is a fast 3kB alternative to React with the same modern API. It
2821provides the thinnest possible virtual DOM abstraction on top of the DOM,
2822along with the @code{preact/hooks} addon for stateful function components.")
2823 (license license:expat)))
2824
2825(define-public node-pbf
2826 (package
2827 (name "node-pbf")
2828 (version "3.2.1")
2829 (source (origin
2830 (method git-fetch)
2831 (uri (git-reference
2832 (url "https://github.com/mapbox/pbf")
2833 (commit (string-append "v" version))))
2834 (file-name (git-file-name name version))
2835 (sha256
2836 (base32
2837 "1r8xs787ix79yr0vrwrizdml9h7cmxjrzhvnhkj784ac5f8nv5j7"))))
2838 (build-system node-build-system)
2839 (arguments
2840 '(#:tests? #f
2841 #:phases (modify-phases %standard-phases
2842 (add-after 'patch-dependencies 'delete-dependencies
2843 (lambda _
2844 (modify-json (delete-dependencies
2845 '("benchmark"
2846 "browserify"
2847 "eslint"
2848 "eslint-config-mourner"
2849 "mkdirp"
2850 "protobufjs"
2851 "protocol-buffers"
2852 "tap"
2853 "tile-stats-runner"
2854 "uglify-js"))))))))
2855 (inputs (list node-ieee754 node-resolve-protobuf-schema))
2856 (home-page "https://github.com/mapbox/pbf")
2857 (synopsis "Decode and encode protocol buffers in Javascript")
2858 (description
2859 "This package is a low-level, fast and lightweight JavaScript library
2860for decoding and encoding protocol buffers, a compact binary format for
2861structured data serialization. Works both in Node and the browser.
2862It supports lazy decoding and detailed customization of the reading/writing
2863code.")
2864 (license license:bsd-3)))
2865
2866(define-public node-pend
2867 (package
2868 (name "node-pend")
2869 (version "1.2.0")
2870 (source (origin
2871 (method git-fetch)
2872 (uri (git-reference
2873 (url "https://github.com/andrewrk/node-pend")
2874 (commit version)))
2875 (file-name (git-file-name name version))
2876 (sha256
2877 (base32
2878 "0fy6x7safc0hwmfnic0yqqs2ak8ckmr1hk8pl30f03angy0qkwnx"))))
2879 (build-system node-build-system)
2880 (arguments '(#:tests? #f))
2881 (home-page "https://github.com/andrewrk/node-pend")
2882 (synopsis "Dead-simple optimistic async helper")
2883 (description "This package provides an async helper for Node.js that
2884manages pending callbacks and signals completion when all have finished.")
2885 (license license:expat)))
2886
2887(define-public node-picocolors
2888 (package
2889 (name "node-picocolors")
2890 (version "1.1.1")
2891 (source (origin
2892 (method git-fetch)
2893 (uri (git-reference
2894 (url "https://github.com/alexeyraspopov/picocolors")
2895 (commit (string-append "v" version))))
2896 (file-name (git-file-name name version))
2897 (sha256
2898 (base32 "04g0rl3i08fsakadmls21nbyk5srz7qpmic6m8fjxglbf5mvnsq7"))))
2899 (build-system node-build-system)
2900 (arguments (list
2901 #:tests? #f ; Test is broken, possibly by being run in guix build.
2902 #:phases #~(modify-phases %standard-phases
2903 (add-before 'patch-dependencies 'modify-package (lambda _
2904 (modify-json
2905 (delete-dev-dependencies)))))))
2906 (synopsis "Small and fast ANSI colors terminal output formatting library")
2907 (description "The tiniest and the fastest library for terminal output formatting with\
2908 ANSI colors.
2909 * No dependencies.
2910 * 14 times smaller and 2 times faster than chalk.
2911 * Used by popular tools like PostCSS, SVGO, Stylelint, and Browserslist.
2912 * Node.js v6+ & browsers support. Support for both CJS and ESM projects.
2913 * TypeScript type declarations included.
2914 * NO_COLOR friendly.")
2915 (home-page (git-reference-url (origin-uri source)))
2916 (license license:isc)))
2917
2918(define-public node-picomatch
2919 (package
2920 (name "node-picomatch")
2921 (version "4.0.4")
2922 (source
2923 (origin
2924 (method git-fetch)
2925 (uri (git-reference
2926 (url "https://github.com/micromatch/picomatch")
2927 (commit version)))
2928 (file-name (git-file-name name version))
2929 (sha256
2930 (base32 "0nw33ky773d66x74ycsik420bm6j1yh4f8qzm89if4az48kpbsm5"))))
2931 (build-system node-build-system)
2932 (arguments
2933 (list
2934 #:tests? #f ;requires mocha
2935 #:phases
2936 #~(modify-phases %standard-phases
2937 (add-after 'patch-dependencies 'delete-dev-dependencies
2938 (lambda _
2939 (modify-json (delete-dev-dependencies)))))))
2940 (home-page "https://github.com/micromatch/picomatch")
2941 (synopsis "Fast and accurate matcher written in JavaScript")
2942 (description "Picomatch is a very fast and accurate glob matcher written
2943in @code{JavaScript}, with no external dependencies and full support for
2944standard and extended Bash glob features, including braces, extglobs, POSIX
2945brackets, and regular expressions.")
2946 (license license:expat)))
2947
2948(define-public node-pretty-ms
2949 (package
2950 (name "node-pretty-ms")
2951 (version "8.0.0")
2952 (source (origin
2953 (method git-fetch)
2954 (uri (git-reference
2955 (url "https://github.com/sindresorhus/pretty-ms")
2956 (commit (string-append "v" version))))
2957 (file-name (git-file-name name version))
2958 (sha256
2959 (base32 "08pyb3lmkn1bn8icsi2r9jlkh24mzi39yr9k81p2hlgm46b8wiar"))))
2960 (build-system node-build-system)
2961 (inputs (list
2962 node-parse-ms))
2963 (arguments (list
2964 #:tests? #f ; FIXME: Tests require 'xo', 'ava', and 'tsd'.
2965 #:phases #~(modify-phases %standard-phases
2966 (add-before 'patch-dependencies 'modify-package (lambda _
2967 (modify-json
2968 (delete-dev-dependencies)))))))
2969 (synopsis "Milliseconds to humand readable string converter")
2970 (description "Convert milliseconds to a human readable string:\
2971 `1337000000` → `15d 11h 23m 20s`")
2972 (home-page (git-reference-url (origin-uri source)))
2973 (license license:expat)))
2974
2975(define-public node-protocol-buffers-schema
2976 (package
2977 (name "node-protocol-buffers-schema")
2978 (version "3.6.0")
2979 (source (origin
2980 (method git-fetch)
2981 (uri (git-reference
2982 (url "https://github.com/mafintosh/protocol-buffers-schema")
2983 (commit (string-append "v" version))))
2984 (file-name (git-file-name name version))
2985 (sha256
2986 (base32
2987 "0lnckxj14jzsnfxdd5kmlwrac43c214bv8i2g5rdldymlpxzrz1v"))))
2988 (build-system node-build-system)
2989 (arguments
2990 '(#:tests? #f
2991 #:phases (modify-phases %standard-phases
2992 (add-after 'patch-dependencies 'delete-dependencies
2993 (lambda _
2994 (modify-json (delete-dependencies
2995 '("standard" "tape"))))))))
2996 (home-page "https://github.com/mafintosh/protocol-buffers-schema")
2997 (synopsis "Protocol buffers schema parser written in Javascript")
2998 (description "This package provides a protocol buffers schema parser
2999written in Javascript.")
3000 (license license:expat)))
3001
3002(define-public node-pngjs
3003 (package
3004 (name "node-pngjs")
3005 (version "6.0.0")
3006 (source
3007 (origin
3008 (method git-fetch)
3009 (uri (git-reference
3010 (url "https://github.com/pngjs/pngjs")
3011 ;; No git tag for 6.0.0; commit found via:
3012 ;; curl -s 'https://api.github.com/repos/pngjs/pngjs/commits?path=package.json' \
3013 ;; | jq '.[] | select(.commit.message | test("v6.0.0"))'
3014 (commit "b68264b1a85abf6d111a7138ad4f18b117fb5f81")))
3015 (file-name (git-file-name name version))
3016 (sha256
3017 (base32 "0d617apsrgsqkn3lwilvajjx5j49rkdyyz3i4by3qvqsznpzsgxx"))))
3018 (build-system node-build-system)
3019 (arguments
3020 '(#:tests? #f
3021 #:phases
3022 (modify-phases %standard-phases
3023 (add-after 'patch-dependencies 'delete-dev-dependencies
3024 (lambda _
3025 (modify-json (delete-dev-dependencies))))
3026 (delete 'build))))
3027 (home-page "https://github.com/pngjs/pngjs")
3028 (synopsis "PNG encoder/decoder for Node.js in pure JavaScript")
3029 (description "This package provides a simple PNG encoder/decoder for
3030Node.js with no dependencies.")
3031 (license license:expat)))
3032
3033(define-public node-progress
3034 (package
3035 (name "node-progress")
3036 (version "2.0.3")
3037 (source
3038 (origin
3039 (method git-fetch)
3040 (uri (git-reference
3041 (url "https://github.com/visionmedia/node-progress")
3042 ;; No git tag for 2.0.3; commit found via:
3043 ;; curl -s 'https://api.github.com/repos/visionmedia/node-progress/commits?path=package.json' \
3044 ;; | jq '.[] | select(.commit.message == "2.0.3")'
3045 (commit "0790207ef077cbfb7ebde24a1dd9895ebf4643e1")))
3046 (file-name (git-file-name name version))
3047 (sha256
3048 (base32 "125v9cdgrb0pa8ijs6klsckws23lws9p2rcm5mixg6p584yyzfv8"))))
3049 (build-system node-build-system)
3050 (arguments '(#:tests? #f))
3051 (home-page "https://github.com/visionmedia/node-progress")
3052 (synopsis "Flexible ascii progress bar for Node.js")
3053 (description "This package provides a flexible ASCII progress bar for
3054command-line applications.")
3055 (license license:expat)))
3056
3057(define-public node-proper-lockfile
3058 (package
3059 (name "node-proper-lockfile")
3060 (version "4.1.2")
3061 (source
3062 (origin
3063 (method git-fetch)
3064 (uri (git-reference
3065 (url "https://github.com/moxystudio/node-proper-lockfile")
3066 (commit (string-append "v" version))))
3067 (file-name (git-file-name name version))
3068 (sha256
3069 (base32 "1i6ljfzxnzsmdkrpr74vy7qdn6pgllflkdr85a29sdyx55b5gfc2"))))
3070 (build-system node-build-system)
3071 (arguments
3072 '(#:tests? #f
3073 #:phases
3074 (modify-phases %standard-phases
3075 (add-after 'patch-dependencies 'delete-dev-dependencies
3076 (lambda _
3077 (modify-json (delete-dev-dependencies)))))))
3078 (inputs
3079 (list node-graceful-fs
3080 node-retry
3081 node-signal-exit))
3082 (home-page "https://github.com/moxystudio/node-proper-lockfile")
3083 (synopsis "Inter-process and inter-machine lockfile utility")
3084 (description "This package provides an inter-process and inter-machine
3085lockfile utility that works on a local or network file system.")
3086 (license license:expat)))
3087
3088(define-public node-proxy-from-env
3089 (package
3090 (name "node-proxy-from-env")
3091 (version "1.1.0")
3092 (source
3093 (origin
3094 (method git-fetch)
3095 (uri (git-reference
3096 (url "https://github.com/Rob--W/proxy-from-env")
3097 (commit (string-append "v" version))))
3098 (file-name (git-file-name name version))
3099 (sha256
3100 (base32 "0m7rr70lb7011310rj85nyg3vwlkr1w8302nr4s0xmcxi4yv6sln"))))
3101 (build-system node-build-system)
3102 (arguments
3103 '(#:tests? #f
3104 #:phases
3105 (modify-phases %standard-phases
3106 (add-after 'patch-dependencies 'delete-dev-dependencies
3107 (lambda _
3108 (modify-json (delete-dev-dependencies)))))))
3109 (home-page "https://github.com/Rob--W/proxy-from-env")
3110 (synopsis "Proxy URL from environment variables")
3111 (description "This package provides a way to read proxy URLs from
3112environment variables.")
3113 (license license:expat)))
3114
3115(define-public node-pump
3116 (package
3117 (name "node-pump")
3118 (version "3.0.0")
3119 (source (origin
3120 (method git-fetch)
3121 (uri (git-reference
3122 (url "https://github.com/mafintosh/pump")
3123 (commit (string-append "v" version))))
3124 (file-name (git-file-name name version))
3125 (sha256
3126 (base32
3127 "1iyfks1k62dplvajd4xm41b5v3dfp8b22h88z7xrwsbnwsd0vl6f"))))
3128 (build-system node-build-system)
3129 (arguments
3130 '(#:tests? #f
3131 #:phases (modify-phases %standard-phases
3132 (add-after 'patch-dependencies 'delete-dev-dependencies
3133 (lambda _
3134 (modify-json (delete-dev-dependencies)))))))
3135 (inputs (list node-end-of-stream node-once))
3136 (home-page "https://github.com/mafintosh/pump")
3137 (synopsis "Pipe streams together and close all of them if one closes")
3138 (description "This package allows you to pipe streams together and
3139destroy all of them if one of them closes.")
3140 (license license:expat)))
3141
3142(define-public node-readable-stream
3143 (package
3144 (name "node-readable-stream")
3145 (version "3.6.0")
3146 (source
3147 (origin
3148 (method git-fetch)
3149 (uri (git-reference
3150 (url "https://github.com/nodejs/readable-stream")
3151 (commit (string-append "v" version))))
3152 (file-name (git-file-name name version))
3153 (sha256
3154 (base32
3155 "0ybl4cdgsm9c5jq3xq8s01201jk8w0yakh63hlclsfbcdfqhd9ri"))))
3156 (build-system node-build-system)
3157 (arguments
3158 `(#:phases
3159 (modify-phases %standard-phases
3160 (add-after 'patch-dependencies 'delete-dependencies
3161 (lambda args
3162 (modify-json (delete-dependencies
3163 `("@babel/cli"
3164 "@babel/core"
3165 "@babel/polyfill"
3166 "@babel/preset-env"
3167 "airtap"
3168 "assert"
3169 "bl"
3170 "deep-strict-equal"
3171 "events.once"
3172 "glob"
3173 "gunzip-maybe"
3174 "hyperquest"
3175 "lolex"
3176 "nyc"
3177 "pump"
3178 "rimraf"
3179 "tap"
3180 "tape"
3181 "tar-fs"
3182 "util-promisify"))))))
3183 #:tests? #f))
3184 (inputs (list node-util-deprecate node-string-decoder node-inherits))
3185 (home-page "https://github.com/nodejs/readable-stream")
3186 (synopsis "Node.js core streams for userland")
3187 (description
3188 "@code{readable-stream} provides an implementation of Node.js core streams
3189that behaves the same across different versions.")
3190 (license license:expat)))
3191
3192(define-public node-reduce-flatten
3193 (package
3194 (name "node-reduce-flatten")
3195 (version "2.0.0")
3196 (source (origin
3197 (method git-fetch)
3198 (uri (git-reference
3199 (url "https://github.com/75lb/reduce-flatten")
3200 (commit (string-append "v" version))))
3201 (file-name (git-file-name name version))
3202 (sha256
3203 (base32 "0xw23djgi8agv06bbjc3x6wsca1xxnksbv7zd6cgxvmw15xqyb68"))))
3204 (build-system node-build-system)
3205 (arguments (list
3206 #:tests? #f ; FIXME: Tests require 'test-runner'.
3207 #:phases #~(modify-phases %standard-phases
3208 (add-before 'patch-dependencies 'modify-package (lambda _
3209 (modify-json
3210 (delete-dev-dependencies)))))))
3211 (synopsis "Flatten an array into the supplied array")
3212 (description "Isomorphic map-reduce function to flatten an array into the supplied\
3213 array.
3214Example
3215> numbers = [ 1, 2, [ 3, 4 ], 5 ]
3216> numbers.reduce(flatten, [])
3217[ 1, 2, 3, 4, 5 ]")
3218 (home-page (git-reference-url (origin-uri source)))
3219 (license license:expat)))
3220
3221(define-public node-resolve-protobuf-schema
3222 (package
3223 (name "node-resolve-protobuf-schema")
3224 (version "2.1.0")
3225 (source (origin
3226 (method git-fetch)
3227 (uri (git-reference
3228 (url "https://github.com/mafintosh/resolve-protobuf-schema")
3229 (commit (string-append "v" version))))
3230 (file-name (git-file-name name version))
3231 (sha256
3232 (base32
3233 "0zxavr0b2yz9xzp6zlsg5g09i0a6zqb24j12rdvfgph6wd4mzk40"))))
3234 (build-system node-build-system)
3235 (arguments
3236 '(#:tests? #f
3237 #:phases (modify-phases %standard-phases
3238 (add-after 'patch-dependencies 'delete-dependencies
3239 (lambda _
3240 (modify-json (delete-dependencies
3241 '("standard" "tape"))))))))
3242 (inputs (list node-protocol-buffers-schema))
3243 (home-page "https://github.com/mafintosh/resolve-protobuf-schema")
3244 (synopsis "Resolve protobuf imports")
3245 (description
3246 "This package can read a protobuf schema from the disk, parse it and
3247resolve all imports.")
3248 (license license:expat)))
3249
3250(define-public node-retry
3251 (package
3252 (name "node-retry")
3253 (version "0.12.0")
3254 (source
3255 (origin
3256 (method git-fetch)
3257 (uri (git-reference
3258 (url "https://github.com/tim-kos/node-retry")
3259 (commit (string-append "v" version))))
3260 (file-name (git-file-name name version))
3261 (sha256
3262 (base32 "0qkcbmmysm1d4g8xb425c3hcvlkkgfzv4w2jgq9isimximqqm5qg"))))
3263 (build-system node-build-system)
3264 (arguments
3265 '(#:tests? #f
3266 #:phases
3267 (modify-phases %standard-phases
3268 (add-after 'patch-dependencies 'delete-dev-dependencies
3269 (lambda _
3270 (modify-json (delete-dev-dependencies)))))))
3271 (home-page "https://github.com/tim-kos/node-retry")
3272 (synopsis "Retry strategies for failed operations in Node.js")
3273 (description "This package provides retry strategies for retrying failed
3274operations.")
3275 (license license:expat)))
3276
3277(define-public node-safe-buffer
3278 (package
3279 (name "node-safe-buffer")
3280 (version "5.2.1")
3281 (source
3282 (origin
3283 (method git-fetch)
3284 (uri (git-reference
3285 (url "https://github.com/feross/safe-buffer")
3286 (commit (string-append "v" version))))
3287 (file-name (git-file-name name version))
3288 (sha256
3289 (base32
3290 "0r26m0nl41h90ihnl2xf0cqs6z9z7jb87dl5j8yqb7887r9jlbpi"))))
3291 (build-system node-build-system)
3292 (arguments
3293 '(#:phases
3294 (modify-phases %standard-phases
3295 (add-after 'patch-dependencies 'delete-dependencies
3296 (lambda args
3297 (modify-json (delete-dependencies '("tape" "standard"))))))
3298 #:tests? #f))
3299 (home-page "https://github.com/feross/safe-buffer")
3300 (synopsis "Buffer creation with explicit semantics")
3301 (description "This package provides a drop-in replacement for Node.js
3302@code{Buffer} API, which provides newer, explicit constructors (such as
3303@code{Buffer.alloc(SIZE)}) in older versions.")
3304 (license license:expat)))
3305
3306(define-public node-safe-stable-stringify
3307 (package
3308 (name "node-safe-stable-stringify")
3309 (version "2.4.3")
3310 (source
3311 (origin
3312 (method git-fetch)
3313 (uri (git-reference
3314 (url "https://github.com/BridgeAR/safe-stable-stringify")
3315 (commit (string-append "v" version))))
3316 (file-name (git-file-name name version))
3317 (sha256
3318 (base32 "008adig8j13rn2a21ngnp770y4zz6yq176ix5rkskjbb8g2qwapg"))))
3319 (build-system node-build-system)
3320 (arguments
3321 '(#:tests? #f
3322 #:phases (modify-phases %standard-phases
3323 (add-after 'patch-dependencies 'delete-dependencies
3324 (lambda _
3325 (modify-json (delete-dependencies
3326 '("benchmark"
3327 "clone"
3328 "fast-json-stable-stringify"
3329 "fast-safe-stringify"
3330 "fast-stable-stringify"
3331 "faster-stable-stringify"
3332 "fastest-stable-stringify"
3333 "json-stable-stringify"
3334 "json-stringify-deterministic"
3335 "json-stringify-safe"
3336 "standard"
3337 "tap"
3338 "typescript"
3339 "@types/node"
3340 "@types/json-stable-stringify"))))))))
3341 (home-page "https://github.com/BridgeAR/safe-stable-stringify")
3342 (synopsis "Serialization of javascript objects")
3343 (description
3344 "Safe, deterministic and fast serialization alternative to JSON.stringify.
3345Gracefully handles circular structures and bigint instead of throwing.
3346Optional custom circular values, deterministic behavior or strict JSON
3347compatibility check.")
3348 (license license:expat)))
3349
3350(define-public node-segfault-handler
3351 (package
3352 (name "node-segfault-handler")
3353 (version "1.3.0")
3354 (source
3355 (origin
3356 (method git-fetch)
3357 (uri (git-reference
3358 (url "https://github.com/ddopson/node-segfault-handler")
3359 (commit (string-append "v" version))))
3360 (file-name (git-file-name name version))
3361 (sha256
3362 (base32 "07nbw35wvrr18kmh8f388v4k5mpjgyy0260bx0xzjdv795i3xvfv"))))
3363 (native-inputs
3364 (list python))
3365 (inputs
3366 (list node-bindings node-nan))
3367 (build-system node-build-system)
3368 (arguments
3369 ;; there are no tests
3370 `(#:tests? #f))
3371 (home-page "https://github.com/ddopson/node-segfault-handler")
3372 (synopsis "Catches @code{SIGSEGV} and prints diagnostic information")
3373 (description "This package is a tool for debugging Node.js C/C++ native
3374code modules and getting stack traces when things go wrong. If a
3375@code{SIGSEGV} signal is raised, the module will print a native stack trace to
3376both @file{stderr} and to a timestamped file.")
3377 (license license:bsd-3)))
3378
3379(define-public node-semver
3380 (package
3381 (name "node-semver")
3382 (version "7.2.1")
3383 (source (origin
3384 (method git-fetch)
3385 (uri (git-reference
3386 (url "https://github.com/npm/node-semver")
3387 (commit (string-append "v" version))))
3388 (file-name (git-file-name name version))
3389 (sha256
3390 (base32
3391 "06biknqb05r9xsmcflm3ygh50pjvdk84x6r79w43kmck4fn3qn5p"))))
3392 (build-system node-build-system)
3393 (arguments
3394 '(#:phases
3395 (modify-phases %standard-phases
3396 (add-after 'patch-dependencies 'delete-dependencies
3397 (lambda args
3398 (modify-json (delete-dependencies '("tap"))))))
3399 ;; FIXME: Tests depend on node-tap
3400 #:tests? #f))
3401 (home-page "https://github.com/npm/node-semver")
3402 (synopsis "Parses semantic versions strings")
3403 (description
3404 "@code{node-semver} is a JavaScript implementation of the
3405@uref{https://semver.org/, SemVer.org} specification.")
3406 (license license:isc)))
3407
3408(define-public node-signal-exit
3409 (package
3410 (name "node-signal-exit")
3411 (version "3.0.7")
3412 (source
3413 (origin
3414 (method git-fetch)
3415 (uri (git-reference
3416 (url "https://github.com/tapjs/signal-exit")
3417 (commit (string-append "v" version))))
3418 (file-name (git-file-name name version))
3419 (sha256
3420 (base32 "0f2wn0p2d1w2yqd0wz0vppnr6slgk7jzf7w54cqkxdj1j8gwmh4y"))))
3421 (build-system node-build-system)
3422 (arguments
3423 '(#:tests? #f
3424 #:phases
3425 (modify-phases %standard-phases
3426 (add-after 'patch-dependencies 'delete-dev-dependencies
3427 (lambda _
3428 (modify-json (delete-dev-dependencies)))))))
3429 (home-page "https://github.com/tapjs/signal-exit")
3430 (synopsis "Fire an event when a process exits")
3431 (description "This package provides a way to fire an event when a process
3432exits.")
3433 (license license:isc)))
3434
3435(define-public node-smart-buffer
3436 (package
3437 (name "node-smart-buffer")
3438 (version "4.2.0")
3439 (source
3440 (origin
3441 (method git-fetch)
3442 (uri (git-reference
3443 (url "https://github.com/JoshGlazebrook/smart-buffer")
3444 ;; No git tag for 4.2.0; commit found via:
3445 ;; curl -s 'https://api.github.com/repos/JoshGlazebrook/smart-buffer/commits?path=package.json' \
3446 ;; | jq '.[] | select(.commit.message == "4.2.0")'
3447 (commit "2ce01c95312343325997b19e52daa166dc227930")))
3448 (file-name (git-file-name name version))
3449 (sha256
3450 (base32 "064z6b0xlc8mvnlj8fmi0zq2wk8xah96aiabarq9igsc4hijmcgm"))))
3451 (build-system node-build-system)
3452 (arguments
3453 (list
3454 #:tests? #f
3455 #:phases
3456 #~(modify-phases %standard-phases
3457 (add-after 'patch-dependencies 'delete-dev-dependencies
3458 (lambda _
3459 (modify-json (delete-dev-dependencies))))
3460 (replace 'build
3461 (lambda* (#:key inputs native-inputs #:allow-other-keys)
3462 (let ((esbuild (search-input-file (or native-inputs inputs)
3463 "/bin/esbuild")))
3464 (mkdir-p "build")
3465 (for-each
3466 (lambda (ts-file)
3467 (let* ((base (basename ts-file ".ts"))
3468 (js-file (string-append "build/" base ".js")))
3469 (invoke esbuild ts-file
3470 (string-append "--outfile=" js-file)
3471 "--format=cjs"
3472 "--platform=node"
3473 "--target=es2020")))
3474 (find-files "src" "\\.ts$"))))))))
3475 (native-inputs (list esbuild))
3476 (home-page "https://github.com/JoshGlazebrook/smart-buffer")
3477 (synopsis "Buffer wrapper with automatic read/write offset management")
3478 (description "This package provides a smarter Buffer that keeps track of
3479its own read and write offsets.")
3480 (license license:expat)))
3481
3482(define-public node-socks
3483 (package
3484 (name "node-socks")
3485 (version "2.8.3")
3486 (source
3487 (origin
3488 (method git-fetch)
3489 (uri (git-reference
3490 (url "https://github.com/JoshGlazebrook/socks")
3491 (commit version)))
3492 (file-name (git-file-name name version))
3493 (sha256
3494 (base32 "1isqyw7vlf258fmdxs7gq1kgqf4mh51ijnp6vcd445rcqbk7n43f"))))
3495 (build-system node-build-system)
3496 (arguments
3497 (list
3498 #:tests? #f
3499 #:phases
3500 #~(modify-phases %standard-phases
3501 (add-after 'patch-dependencies 'delete-dev-dependencies
3502 (lambda _
3503 (modify-json (delete-dev-dependencies))))
3504 (replace 'build
3505 (lambda* (#:key inputs native-inputs #:allow-other-keys)
3506 (let ((esbuild (search-input-file (or native-inputs inputs)
3507 "/bin/esbuild")))
3508 (mkdir-p "build")
3509 (for-each
3510 (lambda (ts-file)
3511 (let* ((relative (substring ts-file (+ (string-length "src/") 0)))
3512 (js-file (string-append "build/"
3513 (string-drop-right relative 3)
3514 ".js")))
3515 (mkdir-p (dirname js-file))
3516 (invoke esbuild ts-file
3517 (string-append "--outfile=" js-file)
3518 "--format=cjs"
3519 "--platform=node"
3520 "--target=es2020")))
3521 (find-files "src" "\\.ts$"))))))))
3522 (native-inputs (list esbuild))
3523 (inputs
3524 (list node-ip-address node-smart-buffer))
3525 (home-page "https://github.com/JoshGlazebrook/socks")
3526 (synopsis "SOCKS proxy client for Node.js")
3527 (description "This package provides a SOCKS proxy client supporting
3528SOCKS4, SOCKS4a, and SOCKS5 protocols.")
3529 (license license:expat)))
3530
3531(define-public node-socks-proxy-agent
3532 (package
3533 (name "node-socks-proxy-agent")
3534 (version "8.0.5")
3535 (source
3536 (origin
3537 (method git-fetch)
3538 (uri (git-reference
3539 (url "https://github.com/TooTallNate/proxy-agents")
3540 (commit (string-append "socks-proxy-agent@" version))))
3541 (file-name (git-file-name name version))
3542 (sha256
3543 (base32 "0c02kcbfp63r1y36hrkhzkmn3gz6ad2s577js94776vza3r7r631"))))
3544 (build-system node-build-system)
3545 (arguments
3546 (list
3547 #:tests? #f
3548 #:phases
3549 #~(modify-phases %standard-phases
3550 (add-after 'unpack 'change-directory
3551 (lambda _
3552 (chdir "packages/socks-proxy-agent")))
3553 (add-after 'patch-dependencies 'delete-dev-dependencies
3554 (lambda _
3555 (modify-json (delete-dev-dependencies))))
3556 (replace 'build
3557 (lambda* (#:key inputs native-inputs #:allow-other-keys)
3558 (let ((esbuild (search-input-file (or native-inputs inputs)
3559 "/bin/esbuild")))
3560 (mkdir-p "dist")
3561 (invoke esbuild "src/index.ts"
3562 "--outfile=dist/index.js"
3563 "--format=cjs"
3564 "--platform=node"
3565 "--target=es2020")))))))
3566 (native-inputs (list esbuild))
3567 (inputs
3568 (list node-agent-base node-debug node-socks))
3569 (home-page "https://github.com/TooTallNate/proxy-agents")
3570 (synopsis "SOCKS proxy HTTP.Agent implementation")
3571 (description "This package provides a SOCKS proxy @code{http.Agent}
3572implementation for HTTP and HTTPS.")
3573 (license license:expat)))
3574
3575(define-public node-serialport
3576 (package
3577 (name "node-serialport")
3578 (version "9.2.7")
3579 (source
3580 (origin
3581 (method git-fetch)
3582 (uri (git-reference
3583 (url "https://github.com/serialport/node-serialport")
3584 (commit (string-append "v" version))))
3585 (file-name (git-file-name name version))
3586 (sha256
3587 (base32 "0x7zm59a5ff5yygjyw15xs3r5m3rb8av1yfrh4snn44mrwq87yg8"))))
3588 (inputs
3589 (list node-serialport-bindings
3590 node-serialport-parser-delimiter
3591 node-serialport-parser-readline
3592 node-serialport-parser-regex
3593 node-serialport-parser-ready
3594 node-serialport-parser-inter-byte-timeout
3595 node-serialport-parser-cctalk
3596 node-serialport-parser-byte-length
3597 node-serialport-stream
3598 node-debug))
3599 (build-system node-build-system)
3600 (arguments
3601 `(#:phases
3602 (modify-phases %standard-phases
3603 (add-after 'patch-dependencies 'delete-dependencies
3604 (lambda args
3605 (modify-json (delete-dependencies
3606 `("@serialport/binding-mock")))))
3607 (add-after 'unpack 'chdir
3608 (lambda args
3609 (chdir "packages/serialport"))))
3610 #:tests? #f))
3611 (home-page "https://serialport.io")
3612 (synopsis "Node.js package to access serial ports")
3613 (description "Node SerialPort is a modular suite of Node.js packages for
3614accessing serial ports. This package is the recommended entry point for most
3615projects. It combines a high-level Node.js stream interface with a useful
3616default set of parsers and bindings.")
3617 (license license:expat)))
3618
3619(define-public node-serialport-binding-abstract
3620 (package
3621 (inherit node-serialport)
3622 (name "node-serialport-binding-abstract")
3623 (version "9.2.3")
3624 (inputs
3625 (list node-debug))
3626 (arguments
3627 `(#:phases
3628 (modify-phases %standard-phases
3629 (add-after 'unpack 'chdir
3630 (lambda args
3631 (chdir "packages/binding-abstract"))))
3632 #:tests? #f))
3633 (synopsis "Abstract base class for Node SerialPort bindings")
3634 (description "Node SerialPort is a modular suite of Node.js packages for
3635accessing serial ports. The Guix package @code{node-serialport} provides the
3636recommended high-level interface.
3637
3638This package provides the @code{AbstractBinding} class, the base for all Node
3639SerialPort bindings. You wouldn't use this class directly, but instead extend
3640it to make a new binding for a different platform or underling technology.")))
3641
3642(define-public node-serialport-bindings
3643 (package
3644 (inherit node-serialport)
3645 (name "node-serialport-bindings")
3646 (version "9.2.7")
3647 (native-inputs
3648 (list python))
3649 (inputs
3650 (list node-nan node-bindings node-serialport-binding-abstract
3651 node-serialport-parser-readline node-debug))
3652 (arguments
3653 `(#:modules
3654 ((guix build node-build-system)
3655 (srfi srfi-1)
3656 (ice-9 match)
3657 (guix build utils))
3658 #:phases
3659 (modify-phases %standard-phases
3660 (add-after 'unpack 'chdir
3661 (lambda args
3662 (chdir "packages/bindings")))
3663 (add-after 'patch-dependencies 'delete-dependencies
3664 (lambda args
3665 (modify-json (delete-dependencies '("prebuild-install"
3666 ;; devDependencies
3667 "@serialport/binding-mock"
3668 "node-abi")))))
3669 (add-after 'chdir 'avoid-prebuild-install
3670 (lambda args
3671 (modify-json (delete-fields '(("scripts" "install")))
3672 (replace-fields '(("gypfile" . #f)))))))
3673 #:tests? #f))
3674 (synopsis "Abstract base class for Node SerialPort bindings")
3675 (description "Node SerialPort is a modular suite of Node.js packages for
3676accessing serial ports. The Guix package @code{node-serialport} provides the
3677recommended high-level interface.
3678
3679This package provides the @code{Binding} class, which uses a native addon to
3680talk to the underlying system. You never have to use @code{Binding} objects
3681directly. There is also a @code{MockBinding} available (but not yet packaged
3682for Guix) to assist with testing.")))
3683
3684(define-public node-serialport-parser-byte-length
3685 (package
3686 (inherit node-serialport)
3687 (name "node-serialport-parser-byte-length")
3688 (version "9.2.4")
3689 (inputs `())
3690 (arguments
3691 `(#:phases
3692 (modify-phases %standard-phases
3693 (add-after 'unpack 'chdir
3694 (lambda args
3695 (chdir "packages/parser-byte-length"))))
3696 #:tests? #f))
3697 (synopsis "Node SerialPort parser for fixed-length buffers")
3698 (description "Node SerialPort is a modular suite of Node.js packages for
3699accessing serial ports. The Guix package @code{node-serialport} provides the
3700recommended high-level interface.
3701
3702Parsers are used to take raw binary data and transform them into usable
3703messages. This package provides @code{ByteLength}, a parser that emits data
3704as a buffer every time a specified number of bytes are received.")))
3705
3706(define-public node-serialport-parser-cctalk
3707 (package
3708 (inherit node-serialport)
3709 (name "node-serialport-parser-cctalk")
3710 (version "9.2.4")
3711 (inputs `())
3712 (arguments
3713 `(#:phases
3714 (modify-phases %standard-phases
3715 (add-after 'unpack 'chdir
3716 (lambda args
3717 (chdir "packages/parser-cctalk"))))
3718 #:tests? #f))
3719 (synopsis "Node SerialPort parser for the ccTalk protocol")
3720 (description "Node SerialPort is a modular suite of Node.js packages for
3721accessing serial ports. The Guix package @code{node-serialport} provides the
3722recommended high-level interface.
3723
3724Parsers are used to take raw binary data and transform them into usable
3725messages. This package provides @code{CCTalk}, which emits packets for the
3726ccTalk protocol (an open standard for currency detectors) as they are
3727received.")))
3728
3729(define-public node-serialport-parser-delimiter
3730 (package
3731 (inherit node-serialport)
3732 (name "node-serialport-parser-delimiter")
3733 (version "9.2.4")
3734 (inputs `())
3735 (arguments
3736 `(#:phases
3737 (modify-phases %standard-phases
3738 (add-after 'unpack 'chdir
3739 (lambda args
3740 (chdir "packages/parser-delimiter"))))
3741 #:tests? #f))
3742 (synopsis "Node SerialPort parser to split data on a delimiter")
3743 (description "Node SerialPort is a modular suite of Node.js packages for
3744accessing serial ports. The Guix package @code{node-serialport} provides the
3745recommended high-level interface.
3746
3747Parsers are used to take raw binary data and transform them into usable
3748messages. This package provides @code{Delimiter}, a parser that emits data
3749each time a specified byte sequence is received.")))
3750
3751(define-public node-serialport-parser-inter-byte-timeout
3752 (package
3753 (inherit node-serialport)
3754 (name "node-serialport-parser-inter-byte-timeout")
3755 (version "9.2.4")
3756 (inputs `())
3757 (arguments
3758 `(#:phases
3759 (modify-phases %standard-phases
3760 (add-after 'unpack 'chdir
3761 (lambda args
3762 (chdir "packages/parser-inter-byte-timeout"))))
3763 #:tests? #f))
3764 (synopsis "Node SerialPort parser to detect pauses in data")
3765 (description "Node SerialPort is a modular suite of Node.js packages for
3766accessing serial ports. The Guix package @code{node-serialport} provides the
3767recommended high-level interface.
3768
3769Parsers are used to take raw binary data and transform them into usable
3770messages. This package provides @code{InterByteTimeout}, a parser that emits
3771data if there is a pause between packets for the specified amount of time.")))
3772
3773(define-public node-serialport-parser-readline
3774 (package
3775 (inherit node-serialport)
3776 (name "node-serialport-parser-readline")
3777 (version "9.2.4")
3778 (inputs
3779 (list node-serialport-parser-delimiter))
3780 (arguments
3781 `(#:phases
3782 (modify-phases %standard-phases
3783 (add-after 'unpack 'chdir
3784 (lambda args
3785 (chdir "packages/parser-readline"))))
3786 #:tests? #f))
3787 (synopsis "Node SerialPort parser to split data on newlines")
3788 (description "Node SerialPort is a modular suite of Node.js packages for
3789accessing serial ports. The Guix package @code{node-serialport} provides the
3790recommended high-level interface.
3791
3792Parsers are used to take raw binary data and transform them into usable
3793messages. This package provides @code{Readline}, a parser that emits data
3794after a (configurable) newline delimiter is received.")))
3795
3796(define-public node-serialport-parser-ready
3797 (package
3798 (inherit node-serialport)
3799 (name "node-serialport-parser-ready")
3800 (version "9.2.4")
3801 (inputs `())
3802 (arguments
3803 `(#:phases
3804 (modify-phases %standard-phases
3805 (add-after 'unpack 'chdir
3806 (lambda args
3807 (chdir "packages/parser-ready"))))
3808 #:tests? #f))
3809 (synopsis "Node SerialPort parser to wait for specified byte sequence")
3810 (description "Node SerialPort is a modular suite of Node.js packages for
3811accessing serial ports. The Guix package @code{node-serialport} provides the
3812recommended high-level interface.
3813
3814Parsers are used to take raw binary data and transform them into usable
3815messages. This package provides @code{Ready}, a parser that waits for a
3816specified sequence of ``ready'' bytes before emitting a ready event and
3817emitting data events.")))
3818
3819(define-public node-serialport-parser-regex
3820 (package
3821 (inherit node-serialport)
3822 (name "node-serialport-parser-regex")
3823 (version "9.2.4")
3824 (inputs `())
3825 (arguments
3826 `(#:phases
3827 (modify-phases %standard-phases
3828 (add-after 'unpack 'chdir
3829 (lambda args
3830 (chdir "packages/parser-regex"))))
3831 #:tests? #f))
3832 (synopsis "Node SerialPort parser to split data on a regular expression")
3833 (description "Node SerialPort is a modular suite of Node.js packages for
3834accessing serial ports. The Guix package @code{node-serialport} provides the
3835recommended high-level interface.
3836
3837Parsers are used to take raw binary data and transform them into usable
3838messages. This package provides @code{Regex}, a parser that uses a regular
3839expression to split the incoming text.")))
3840
3841(define-public node-serialport-stream
3842 (package
3843 (inherit node-serialport)
3844 (name "node-serialport-stream")
3845 (version "9.2.4")
3846 (inputs
3847 (list node-debug))
3848 (arguments
3849 `(#:phases
3850 (modify-phases %standard-phases
3851 (add-after 'patch-dependencies 'delete-dependencies
3852 (lambda args
3853 (modify-json
3854 (delete-dependencies `("@serialport/binding-mock")))))
3855 (add-after 'unpack 'chdir
3856 (lambda args
3857 (chdir "packages/stream"))))
3858 #:tests? #f))
3859 (synopsis "Node.js stream interface for Node SerialPort")
3860 (description "Node SerialPort is a modular suite of Node.js packages for
3861accessing serial ports. The Guix package @code{node-serialport} provides the
3862recommended high-level interface.
3863
3864This package provides an interface for using Node SerialPort bindings via the
3865Node.js Stream API. The stream is a duplex stream, allowing for reading and
3866writing. It has additional methods for managing the SerialPort
3867connection.")))
3868
3869(define-public node-source-map
3870 (package
3871 (name "node-source-map")
3872 (version "0.6.1")
3873 (source (origin
3874 (method git-fetch)
3875 (uri (git-reference
3876 (url "https://github.com/mozilla/source-map")
3877 (commit version)))
3878 (file-name (git-file-name name version))
3879 (sha256
3880 (base32 "0q8qaddi05387y8f58q0xlj7fjxf4mkymmir7wd9c5imqqs378md"))
3881 (modules '((guix build utils)))
3882 (snippet #~(begin
3883 (delete-file-recursively "dist")))))
3884 (build-system node-build-system)
3885 (native-inputs (list esbuild))
3886 (arguments (list
3887 #:modules '(
3888 (guix build node-build-system)
3889 (guix build utils)
3890 (ice-9 match)
3891 (json))
3892 #:phases #~(modify-phases %standard-phases
3893 (add-before 'patch-dependencies 'modify-package (lambda _
3894 (modify-json
3895 (delete-dev-dependencies)
3896 (replace-fields (list (cons "scripts.test" "node test/run-tests.js"))))))
3897 (replace 'build (lambda _
3898 (for-each
3899 (match-lambda ((name parameters)
3900 (apply invoke (append
3901 (list
3902 "esbuild"
3903 "source-map.js"
3904 "--bundle"
3905 "--format=iife"
3906 "--global-name=sourceMap"
3907 (string-append "--outfile=dist/source-map" name ".js"))
3908 parameters))))
3909 (list
3910 (list "" (list))
3911 (list ".min" (list "--sourcemap" "--minify")))))))))
3912 (synopsis "Generates and consumes source maps")
3913 (description "This is a library to generate and consume the source map format\
3914 @uref{https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k\
3915/edit, described here}.")
3916 (home-page (git-reference-url (origin-uri source)))
3917 (license license:bsd-3)))
3918
3919(define-public node-source-map-support
3920 (package
3921 (name "node-source-map-support")
3922 (version "0.5.21")
3923 (source (origin
3924 (method git-fetch)
3925 (uri (git-reference
3926 (url "https://github.com/evanw/node-source-map-support")
3927 (commit (string-append "v" version))))
3928 (file-name (git-file-name name version))
3929 (sha256
3930 (base32 "1r03whfzy5f76wz4cf51gllxndxv9mk75p4aip6bxffv5p7apax3"))
3931 (modules '((guix build utils)))
3932 (snippet #~(begin
3933 (delete-file "browser-source-map-support.js")))))
3934 (build-system node-build-system)
3935 (inputs (list
3936 node-buffer-from
3937 node-source-map))
3938 (arguments (list
3939 #:tests? #f ; FIXME: Tests require 'mocha'.
3940 #:phases #~(modify-phases %standard-phases
3941 (add-before 'patch-dependencies 'modify-package (lambda _
3942 (modify-json
3943 (delete-dev-dependencies)
3944 ; Build only builds browser-source-map-support.js which we don't currently use
3945 (delete-fields (list "scripts.build"))))))))
3946 (synopsis "Fixes stack traces for files with source maps")
3947 (description "This module provides source map support for stack traces in node via\
3948 the V8 stack trace API. It uses the source-map module to replace the paths and line\
3949 numbers of source-mapped files with their original paths and line numbers. The output\
3950 mimics node's stack trace format with the goal of making every compile-to-JS language\
3951 more of a first-class citizen. Source maps are completely general (not specific to any\
3952 one language) so you can use source maps with multiple compile-to-JS languages in the\
3953 same node process.")
3954 (home-page (git-reference-url (origin-uri source)))
3955 (license license:expat)))
3956
3957(define-public node-sqlite3
3958 (package
3959 (name "node-sqlite3")
3960 (version "5.0.2")
3961 (source
3962 (origin
3963 (method git-fetch)
3964 (uri (git-reference
3965 (url "https://github.com/mapbox/node-sqlite3")
3966 (commit (string-append "v" version))))
3967 (file-name (git-file-name name version))
3968 (sha256
3969 (base32 "0sbbzzli282nxyfha10zx0k5m8hdp0sf3ipl59khjb7wm449j86h"))
3970 (snippet
3971 (with-imported-modules '((guix build utils))
3972 #~(begin
3973 (use-modules (guix build utils))
3974 ;; unbundle sqlite
3975 (for-each delete-file-recursively
3976 (find-files "deps"
3977 (lambda (pth stat)
3978 (gzip-file? pth)))))))))
3979 (inputs
3980 (list node-addon-api python sqlite))
3981 (build-system node-build-system)
3982 (arguments
3983 `(#:modules
3984 ((guix build node-build-system)
3985 (srfi srfi-1)
3986 (ice-9 match)
3987 (guix build utils))
3988 #:tests? #f ; FIXME: tests depend on node-mocha
3989 #:phases
3990 (modify-phases %standard-phases
3991 (add-after 'patch-dependencies 'delete-dependencies
3992 (lambda args
3993 (modify-json
3994 (delete-dependencies
3995 `(;; Normally, this is "built" using @mapbox/node-pre-gyp,
3996 ;; which publishes or downloads pre-built binaries or
3997 ;; falls back to building from source. Here, we patch out
3998 ;; all of that and just build directly. It might be
3999 ;; better to patch a version of @mapbox/node-pre-gyp that
4000 ;; always builds from source, as Debian does, but there
4001 ;; are a number of dependencies that need to be packaged
4002 ;; or removed.
4003 "@mapbox/node-pre-gyp"
4004 "node-pre-gyp" ;; deprecated name still used in some places
4005 "aws-sdk"
4006 "@mapbox/cloudfriend"
4007 ;; Confusingly, this is only a dependency because of
4008 ;; @mapbox/node-pre-gyp: with that removed,
4009 ;; npm will use its own copy:
4010 "node-gyp"
4011 ;; These we'd like, we just don't have them yet:
4012 "eslint"
4013 "mocha")))))
4014 (add-before 'configure 'npm-config-sqlite
4015 ;; We need this step even if we do replace @mapbox/node-pre-gyp
4016 ;; because the package expects to build its bundled sqlite
4017 (lambda* (#:key inputs #:allow-other-keys)
4018 (setenv "npm_config_sqlite" (assoc-ref inputs "sqlite"))))
4019 (add-after 'install 'patch-binding-path
4020 ;; We replace a file that dynamic searches for the addon using
4021 ;; node-pre-gyp (which we don't have) with a version that
4022 ;; simply uses the path to the addon we built directly.
4023 ;; The exact path is supposed to depend on things like the
4024 ;; architecture and napi_build_version, so, to avoid having
4025 ;; hard-code the details accurately, we do this after the addon
4026 ;; has been built so we can just find where it ended up.
4027 (lambda* (#:key outputs #:allow-other-keys)
4028 (with-directory-excursion
4029 (search-input-directory outputs
4030 "lib/node_modules/sqlite3/lib")
4031 (match (find-files "binding" "\\.node$")
4032 ((rel-path)
4033 (with-atomic-file-replacement "sqlite3-binding.js"
4034 (lambda (in out)
4035 (format out "var binding = require('./~a');\n" rel-path)
4036 (display "module.exports = exports = binding;\n"
4037 out))))))))
4038 (add-after 'patch-dependencies 'avoid-node-pre-gyp
4039 (lambda args
4040 ;; We need to patch .npmignore before the 'repack phase
4041 ;; so that the built addon is installed with in the package.
4042 ;; (Upstream assumes node-pre-gyp will download a pre-built
4043 ;; version when this package is installed.)
4044 (substitute* ".npmignore"
4045 (("lib/binding")
4046 "#lib/binding # <- patched for Guix"))
4047 (modify-json
4048 (lambda (pkg-meta-alist)
4049 (let ((binary-alist (assoc-ref pkg-meta-alist "binary")))
4050 ;; When it builds from source, node-pre-gyp supplies
4051 ;; module_name and module_path based on the entries under
4052 ;; "binary" from "package.json", so this package's
4053 ;; "binding.gyp" doesn't define them. Thus, we also need
4054 ;; to supply them. The GYP_DEFINES environment variable
4055 ;; turns out to be the easiest way to make sure they are
4056 ;; propagated from npm to node-gyp to gyp.
4057 (setenv "GYP_DEFINES" (string-append
4058 "module_name="
4059 (assoc-ref binary-alist "module_name")
4060 " module_path="
4061 (assoc-ref binary-alist "module_path"))))
4062 pkg-meta-alist)
4063 ;; We need to remove the install script from "package.json",
4064 ;; as it would try to use node-pre-gyp and would block the
4065 ;; automatic building performed by `npm install`.
4066 (delete-fields `(("scripts" "install")))))))))
4067 (home-page "https://github.com/mapbox/node-sqlite3")
4068 (synopsis "Node.js bindings for SQLite3")
4069 (description
4070 "@code{node-sqlite3} provides a set of a Node.js bindings for interacting
4071with SQLite3 databases.")
4072 (license license:bsd-3)))
4073
4074(define-public node-stack-trace
4075 ;; There have been improvements since the last release.
4076 (let ((commit "4fd379ee78965ce7ce8820b436f1b1b590d5dbcf")
4077 (revision "1"))
4078 (package
4079 (name "node-stack-trace")
4080 (version (git-version "0.0.10" revision commit))
4081 (source
4082 (origin
4083 (method git-fetch)
4084 (uri (git-reference
4085 (url "https://github.com/felixge/node-stack-trace")
4086 (commit commit)))
4087 (file-name (git-file-name name version))
4088 (sha256
4089 (base32
4090 "1pk19wcpy8i95z5jr77fybd57qj7xmzmniap4dy47vjlmpkqia4i"))))
4091 (build-system node-build-system)
4092 (arguments
4093 '(#:phases
4094 (modify-phases %standard-phases
4095 (add-before 'check 'skip-intentionally-failing-test
4096 (lambda _
4097 (substitute* "test/run.js"
4098 (("far.include") "far.exclude(/test-parse.js/)\nfar.include"))
4099 #t)))))
4100 (native-inputs
4101 (list node-far node-long-stack-traces))
4102 (home-page "https://github.com/felixge/node-stack-trace")
4103 (synopsis "Get v8 stack traces as an array of CallSite objects")
4104 (description "Get v8 stack traces as an array of CallSite objects.")
4105 (license license:expat))))
4106
4107(define-public node-stack-utils
4108 (package
4109 (name "node-stack-utils")
4110 (version "2.0.5")
4111 (source
4112 (origin
4113 (method git-fetch)
4114 (uri (git-reference
4115 (url "https://github.com/tapjs/stack-utils")
4116 (commit (string-append "v" version))))
4117 (file-name (git-file-name name version))
4118 (sha256
4119 (base32 "1dgzj3x1c257vv3306xd1kg6kvwv3z41a0irzg1lmp0nl0pg744n"))))
4120 (build-system node-build-system)
4121 (arguments
4122 '(#:tests? #f
4123 #:phases
4124 (modify-phases %standard-phases
4125 (add-after 'patch-dependencies 'delete-dev-dependencies
4126 (lambda _
4127 (modify-json (delete-dev-dependencies)))))))
4128 (inputs
4129 (list node-escape-string-regexp-4))
4130 (home-page "https://github.com/tapjs/stack-utils")
4131 (synopsis "Captures and cleans stack traces")
4132 (description "This package provides a way to capture and clean stack
4133traces for Node.js.")
4134 (license license:expat)))
4135
4136(define-public node-sprintf-js
4137 (package
4138 (name "node-sprintf-js")
4139 (version "1.1.3")
4140 (source
4141 (origin
4142 (method git-fetch)
4143 (uri (git-reference
4144 (url "https://github.com/alexei/sprintf.js")
4145 (commit version)))
4146 (file-name (git-file-name name version))
4147 (sha256
4148 (base32 "106r47h0xhrqwqzdzhd5b93saldj89av0qapl1x50gs3pnkdqh8r"))
4149 (modules '((guix build utils)))
4150 (snippet
4151 '(begin
4152 ;; Remove prebuilt minified JavaScript files.
4153 (delete-file-recursively "dist")
4154 ;; Remove files not needed for the package.
4155 (delete-file-recursively "benchmark")
4156 (delete-file-recursively "demo")
4157 (delete-file-recursively "test")))))
4158 (build-system node-build-system)
4159 (arguments
4160 '(#:tests? #f
4161 #:phases
4162 (modify-phases %standard-phases
4163 (add-after 'patch-dependencies 'delete-dev-dependencies
4164 (lambda _
4165 (modify-json (delete-dev-dependencies)))))))
4166 (home-page "https://github.com/alexei/sprintf.js")
4167 (synopsis "JavaScript sprintf implementation")
4168 (description "This package provides a JavaScript sprintf implementation.")
4169 (license license:bsd-3)))
4170
4171(define-public node-statsd-parser
4172 (package
4173 (name "node-statsd-parser")
4174 (version "0.0.4")
4175 (source
4176 (origin
4177 (method git-fetch)
4178 (uri (git-reference
4179 (url "https://github.com/dscape/statsd-parser")
4180 (commit version)))
4181 (file-name (git-file-name name version))
4182 (sha256
4183 (base32
4184 "049rnczsd6pv6bk282q4w72bhqc5cs562djgr7yncy7lk0wzq5j3"))))
4185 (build-system node-build-system)
4186 (arguments '(#:tests? #f)) ; No tests.
4187 (home-page "https://github.com/dscape/statsd-parser")
4188 (synopsis "Streaming parser for the statsd protocol")
4189 (description "This package provides a streaming parser for the statsd
4190protocol used in @code{node-lynx}.")
4191 (license license:asl2.0)))
4192
4193(define-public node-string-decoder
4194 (package
4195 (name "node-string-decoder")
4196 (version "1.3.0")
4197 (source
4198 (origin
4199 (method git-fetch)
4200 (uri (git-reference
4201 (url "https://github.com/nodejs/string_decoder")
4202 (commit (string-append "v" version))))
4203 (file-name (git-file-name name version))
4204 (sha256
4205 (base32
4206 "0xxvyya9fl9rlkqwmxzqzbz4rdr3jgw4vf37hff7cgscxkhg266k"))))
4207 (build-system node-build-system)
4208 (arguments
4209 '(#:phases
4210 (modify-phases %standard-phases
4211 (add-after 'patch-dependencies 'delete-dependencies
4212 (lambda args
4213 (modify-json
4214 (delete-dependencies
4215 '("tap" "core-util-is" "babel-polyfill"))))))
4216 ;; FIXME: Tests depend on node-tap
4217 #:tests? #f))
4218 (inputs (list node-safe-buffer node-inherits))
4219 (home-page "https://github.com/nodejs/string_decoder")
4220 (synopsis "Decode buffers while preserving multi-byte sequences")
4221 (description "This package provides a user-land implementation of
4222Node-core's @code{string_decoder}, which serves to decode buffers to
4223strings so that the decoded string does not contain incomplete multibyte
4224sequences.")
4225 (license license:expat)))
4226
4227; Beware of this package. Version 1.x is for CJS and 2.x for ESM, but they've
4228; been publishing the 1.x version by hand, it's not checked into the repo.
4229; Currently switching from ESM to CJS in this package definition.
4230(define-public node-strnum
4231 (package
4232 (name "node-strnum")
4233 (version "1.1.2")
4234 (source (origin
4235 (method git-fetch)
4236 (uri (git-reference
4237 (url "https://github.com/NaturalIntelligence/strnum")
4238 (commit "6ed1b2fc39f169c35c2fc06ec89e7b7fd17fa0ce")))
4239 (file-name (git-file-name name version))
4240 (sha256
4241 (base32 "0ghi1j76fh6d572jwvh1zw8m9h8g480dj5snkpl7b0di30s8qbyi"))))
4242 (build-system node-build-system)
4243 (arguments (list
4244 #:tests? #f ; FIXME: Tests require 'jasmine'.
4245 #:phases #~(modify-phases %standard-phases
4246 (add-before 'patch-dependencies 'modify-package (lambda _
4247 (modify-json
4248 (delete-dev-dependencies)
4249 (delete-fields (list "type"))
4250 (replace-fields (list (cons "version" #$version))))))
4251 (replace 'build (lambda _
4252 (define problem-file "strnum.js")
4253 (substitute* problem-file (("^export default ") ""))
4254 (let ((problem-file-port (open-file problem-file "a")))
4255 (display "\nmodule.exports = toNumber;" problem-file-port)
4256 (close-port problem-file-port)))))))
4257 (synopsis "Parse String to Number based on configuration")
4258 (description "Javascript library that parses a string into a number.")
4259 (home-page (git-reference-url (origin-uri source)))
4260 (license license:expat)))
4261
4262(define-public node-supports-color
4263 (package
4264 (name "node-supports-color")
4265 (version "5.5.0")
4266 (source (origin
4267 (method git-fetch)
4268 (uri (git-reference
4269 (url "https://github.com/chalk/supports-color")
4270 (commit (string-append "v" version))))
4271 (file-name (git-file-name name version))
4272 (sha256
4273 (base32 "1wfwzxjh4q7wv8p8wjrhlcdljdydjpcydgdysy9y161xy6r99db9"))))
4274 (build-system node-build-system)
4275 (inputs (list
4276 node-has-flag))
4277 (arguments (list
4278 #:tests? #f ; FIXME: Tests require 'xo' and 'ava'.
4279 #:phases #~(modify-phases %standard-phases
4280 (add-before 'patch-dependencies 'modify-package (lambda _
4281 (modify-json
4282 (delete-dev-dependencies)))))))
4283 (synopsis "Detect whether a terminal supports color")
4284 (description "Returns an Object with a stdout and stderr property for testing either\
4285 streams. Each property is an Object, or false if color is not supported.
4286
4287The stdout/stderr objects specifies a level of support for color through a .level\
4288 property and a corresponding flag:
4289
4290 * .level = 1 and .hasBasic = true: Basic color support (16 colors)
4291 * .level = 2 and .has256 = true: 256 color support
4292 * .level = 3 and .has16m = true: Truecolor support (16 million colors)")
4293 (home-page (git-reference-url (origin-uri source)))
4294 (license license:expat)))
4295
4296(define-public node-table-layout
4297 (package
4298 (name "node-table-layout")
4299 (version "1.0.2")
4300 (source (origin
4301 (method git-fetch)
4302 (uri (git-reference
4303 (url "https://github.com/75lb/table-layout")
4304 (commit (string-append "v" version))))
4305 (file-name (git-file-name name version))
4306 (sha256
4307 (base32 "1k21p0ia995ax1biknalivq444jw9xy31bp52a5sq3rwlnzp0vbx"))))
4308 (build-system node-build-system)
4309 (inputs (list
4310 node-typical
4311 node-array-back
4312 node-wordwrapjs
4313 node-deep-extend))
4314 (arguments (list
4315 #:tests? #f ; FIXME: Tests require 'test-runner'.
4316 #:phases #~(modify-phases %standard-phases
4317 (add-before 'patch-dependencies 'modify-package (lambda _
4318 (modify-json
4319 (delete-dev-dependencies)))))))
4320 (synopsis "Stylable text tables for handling ansi colour")
4321 (description "Generates plain-text tables from JSON recordset input (array of\
4322 objects). Useful for presenting text in column layout or data in table layout in\
4323 text-based user interfaces.")
4324 (home-page (git-reference-url (origin-uri source)))
4325 (license license:expat)))
4326
4327(define-public node-tiddlywiki
4328 (package
4329 (name "node-tiddlywiki")
4330 (version "5.3.6")
4331 (source
4332 (origin
4333 (method git-fetch)
4334 (uri (git-reference
4335 (url "https://github.com/TiddlyWiki/TiddlyWiki5")
4336 (commit (string-append "v" version))))
4337 (file-name (git-file-name name version))
4338 (sha256
4339 (base32 "1x5rr1phzvymys8rwkxl1xv377j8c5dvl89yjf702adr2yfhq848"))))
4340 (build-system node-build-system)
4341 (arguments
4342 (list
4343 #:phases #~(modify-phases %standard-phases
4344 (delete 'build)
4345 (add-after 'patch-dependencies 'delete-dev-dependencies
4346 (lambda _
4347 (modify-json
4348 (delete-dependencies '("eslint" "@eslint/js"))))))))
4349 (home-page "https://github.com/TiddlyWiki/TiddlyWiki5#readme")
4350 (synopsis "Non-linear personal web notebook")
4351 (description "TiddlyWiki is a unique non-linear notebook for capturing,
4352organising and sharing complex information. Running TiddlyWiki on Node.js brings
4353several important benefits over and above the single file version:
4354@enumerate
4355@item Individual tiddlers are stored in separate files, which you can organise as you
4356wish.
4357@item The ability to build multiple wikis that blend different combinations of shared
4358and unique content.
4359@item You can edit your content on any modern browser, including smartphones and
4360tablets.
4361@end enumerate")
4362 (license license:bsd-3)))
4363
4364(define* (node-types type #:key
4365 ;; Note: Keep the default version/commit in sync with
4366 ;; that of our `node' package.
4367 (version "22.14.0")
4368 (commit "1f6ca6ff73af20b951f5ea6ecbea6668eff1750f")
4369 (inputs (delay '())))
4370 (package
4371 (name (string-append "node-types-" type))
4372 (version version)
4373 (source
4374 (origin
4375 (method git-fetch)
4376 (uri (git-reference
4377 (url "https://github.com/DefinitelyTyped/DefinitelyTyped")
4378 (commit commit)))
4379 ;; Keep same name to avoid multiplying checkouts in store.
4380 (file-name (git-file-name "node-definitelytyped" version))
4381 (sha256
4382 (base32 "05q0cj2b35z27fv1b00kr8ja5hj2dzl4shx1mwk0jg44z1cwkp0j"))))
4383 (build-system node-build-system)
4384 (inputs (force inputs))
4385 (arguments
4386 (list
4387 #:tests? #f ; Static files, no tests.
4388 #:phases
4389 #~(modify-phases %standard-phases
4390 (add-after 'unpack 'setup
4391 (lambda _
4392 (chdir (string-append "types/" #$type))
4393 (modify-json
4394 (delete-dev-dependencies)
4395 (replace-fields (list
4396 (cons "version" #$version)))))))))
4397 (synopsis (string-append "TypeScript definitions for " type))
4398 (description (string-append "Typescript definition files (*.d.ts) for '"
4399 type "'."))
4400 (home-page (string-append
4401 (git-reference-url (origin-uri source))
4402 "/tree/master/types/" type))
4403 (license license:expat)))
4404
4405(define-public node-types-boolbase
4406 (node-types "boolbase"))
4407
4408(define-public node-types-combine-source-map
4409 (node-types "combine-source-map"))
4410
4411(define-public node-types-convert-source-map
4412 (node-types "convert-source-map"))
4413
4414(define-public node-types-css
4415 (node-types "css"))
4416
4417(define-public node-types-estree
4418 (node-types "estree"))
4419
4420(define-public node-types-he
4421 (node-types "he"))
4422
4423(define-public node-types-less
4424 (node-types "less"))
4425
4426(define-public node-types-node
4427 (node-types "node"
4428 #:inputs (delay (list node-undici-types))))
4429
4430(define-public node-types-json-schema
4431 (node-types "json-schema"))
4432
4433(define-public node-types-source-map-support
4434 (node-types "source-map-support"
4435 #:inputs (delay (list node-source-map))))
4436
4437(define-public node-types-yargs
4438 (node-types "yargs"
4439 #:inputs (delay (list node-types-yargs-parser))))
4440
4441(define-public node-types-yargs-parser
4442 (node-types "yargs-parser"))
4443
4444(define-public node-typescript
4445 (package
4446 (name "node-typescript")
4447 (version "6.0.3")
4448 (source (origin
4449 (method git-fetch)
4450 (uri (git-reference
4451 (url "https://github.com/microsoft/TypeScript")
4452 (commit (string-append "v" version))))
4453 (file-name (git-file-name name version))
4454 (sha256
4455 (base32 "05w6rmlc0d2xicmp7dkjvbgz95cjkp0525qq8dfqpq5xcdy3xws6"))))
4456 (build-system node-build-system)
4457 (native-inputs (list
4458 node-dprint-formatter ; 0.x
4459 node-esbuild ; 0.x
4460 node-fast-xml-parser ; 4.x
4461 node-glob ; 10.x
4462 node-hereby ; 1.x
4463 node-jsonc-parser
4464 node-minimist ; 1.x
4465 node-picocolors ; 1.x
4466 node-source-map-support ; 0.x
4467 node-types-node ; Match the version of node
4468 node-types-source-map-support
4469 node-which ; 3.x
4470 sed))
4471 (arguments (list
4472 #:tests? #f ; FIXME: Tests require 'chai', 'mocha', and 'eslint'.
4473 #:phases #~(modify-phases %standard-phases
4474 (add-before 'patch-dependencies 'modify-package (lambda _
4475 (modify-json
4476 (delete-dependencies (list
4477 ; TODO @dprint/typescript needs a rust build but it's only required to
4478 ; format the .d.ts files, however they're already somewhat formatted.
4479 "@dprint/typescript"
4480 "@esfx/canceltoken"
4481 "@eslint/js"
4482 "@octokit/rest"
4483 "@types/chai"
4484 "@types/diff"
4485 "@types/minimist"
4486 "@types/mocha"
4487 "@types/ms"
4488 "@types/which"
4489 "@typescript-eslint/rule-tester"
4490 "@typescript-eslint/type-utils"
4491 "@typescript-eslint/utils"
4492 "azure-devops-node-api"
4493 "c8"
4494 "chai"
4495 "chokidar"
4496 "chalk"
4497 "diff"
4498 "dprint"
4499 "eslint"
4500 "eslint-formatter-autolinkable-stylish"
4501 "eslint-plugin-regexp"
4502 "globals"
4503 "knip"
4504 "mocha"
4505 "mocha-fivemat-progress-reporter"
4506 "monocart-coverage-reports"
4507 "ms"
4508 "playwright"
4509 "tslib"
4510 "typescript"
4511 "typescript-eslint")))
4512
4513 ; Remove imports of dependencies that are not used in building.
4514 (substitute*
4515 (list
4516 "Herebyfile.mjs"
4517 "scripts/build/tests.mjs"
4518 "scripts/build/utils.mjs")
4519 (("^import .* from \"(@esfx/canceltoken|chokidar|glob)\".*") ""))
4520
4521 ; Replace @esfx/canceltoken CancelError
4522 (substitute* "scripts/build/utils.mjs"
4523 (("CancelError\\(\\)")
4524 "(function() {const error = new Error(\"Operation was canceled\");\
4525error.name=\"CancelError\";return error})()"))
4526
4527 ; TODO: Once @dprint/typescript is added, remove these modifications
4528 ; to format typescript.d.ts.
4529 (define dtsBundler "scripts/dtsBundler.mjs")
4530 (substitute* dtsBundler
4531 (("^import .* from \"@dprint/typescript\".*") "")
4532 (("^import .* from \"typescript\";")
4533 "import * as ts from \"../built/local/typescript.js\";")
4534 (("^const buffer =.*") "")
4535 (("^const formatter =.*") ""))
4536 (invoke "sed" "-i" "/^formatter/,/;/d" dtsBundler)
4537 (invoke "sed" "-i"
4538 "/^function dprint(/,/^}/c\\function dprint(contents) {return contents;}"
4539 dtsBundler)))
4540 (replace 'build (lambda _
4541 ; First build tsc so it can be used in the rest of the build.
4542 (invoke "hereby" "tsc" "--bundle" "--no-typecheck")
4543 (invoke "hereby" "lkg" "--bundle" "--no-typecheck" "--built")))
4544 (add-after 'check 'prepare-package (lambda _
4545 (define output "output")
4546 (mkdir output)
4547 (for-each
4548 (lambda (file) (install-file file output))
4549 (list
4550 "LICENSE.txt"
4551 "package.json"
4552 "README.md"
4553 "SECURITY.md"
4554 "ThirdPartyNoticeText.txt"))
4555 (for-each
4556 (lambda (dir) (copy-recursively dir (string-append output "/" dir)))
4557 (list "bin" "lib"))
4558 (chdir output))))))
4559 (synopsis "TypeScript language for application scale JavaScript development")
4560 (description "TypeScript is a language for application-scale JavaScript. TypeScript\
4561 adds optional types to JavaScript that support tools for large-scale JavaScript\
4562 applications for any browser, for any host, on any OS. TypeScript compiles to readable,\
4563 standards-based JavaScript.")
4564 (home-page "https://www.typescriptlang.org/")
4565 (license license:expat)))
4566
4567(define-public node-typical
4568 (package
4569 (name "node-typical")
4570 (version "5.2.0")
4571 (source (origin
4572 (method git-fetch)
4573 (uri (git-reference
4574 (url "https://github.com/75lb/typical")
4575 (commit (string-append "v" version))))
4576 (file-name (git-file-name name version))
4577 (sha256
4578 (base32 "072fqdw7qrgh1cnri19z3rf702hh8p6agh3npkzwrywjmlnndfdm"))))
4579 (build-system node-build-system)
4580 (arguments (list
4581 #:tests? #f ; FIXME: Tests require 'test-runner'.
4582 #:phases #~(modify-phases %standard-phases
4583 (add-before 'patch-dependencies 'modify-package (lambda _
4584 (modify-json
4585 (delete-dev-dependencies)))))))
4586 (synopsis "Type-checking library for Javascript")
4587 (description "Isomorphic, functional type-checking for Javascript.")
4588 (home-page (git-reference-url (origin-uri source)))
4589 (license license:expat)))
4590
4591(define-public node-undici-types
4592 (package
4593 (name "node-undici-types")
4594 (version "7.8.0")
4595 (source (origin
4596 (method git-fetch)
4597 (uri (git-reference
4598 (url "https://github.com/nodejs/undici")
4599 (commit (string-append "v" version))))
4600 (file-name (git-file-name "node-undici" version))
4601 (sha256
4602 (base32 "044qy77m15m2pbk83pyyr6ql9imgmj4p8kdkn0v9qh9dnh5w6vdg"))))
4603 (build-system node-build-system)
4604 (arguments (list
4605 #:tests? #f ; No tests.
4606 #:phases #~(modify-phases %standard-phases
4607 (add-after 'unpack 'setup (lambda _
4608 (invoke "node" "scripts/generate-undici-types-package-json.js")
4609 (chdir "types"))))))
4610 (synopsis "Stand-alone types package for Undici")
4611 (description "Typescript definition (d.ts) files for Undici.")
4612 (home-page "https://undici.nodejs.org")
4613 (license license:expat)))
4614
4615(define-public node-utf-8-validate
4616 (package
4617 (name "node-utf-8-validate")
4618 (version "6.0.5")
4619 (source
4620 (origin
4621 (method git-fetch)
4622 (uri (git-reference
4623 (url "https://github.com/websockets/utf-8-validate")
4624 (commit (string-append "v" version))))
4625 (file-name (git-file-name name version))
4626 (sha256
4627 (base32 "0nca4zynp7rpjlxcwyv7fhz5zhdhhdhwwl7lqxkv2rz00rc86i22"))))
4628 (build-system node-build-system)
4629 (arguments
4630 '(#:tests? #f
4631 #:phases
4632 (modify-phases %standard-phases
4633 (add-after 'patch-dependencies 'delete-dev-dependencies
4634 (lambda _
4635 (modify-json (delete-dev-dependencies)))))))
4636 (inputs
4637 (list node-gyp-build node-addon-api))
4638 (native-inputs
4639 (list python))
4640 (home-page "https://github.com/websockets/utf-8-validate")
4641 (synopsis "UTF-8 validation for Node.js")
4642 (description "This package provides efficient UTF-8 data validation for
4643use with WebSocket implementations.")
4644 (license license:expat)))
4645
4646(define-public node-util-deprecate
4647 (package
4648 (name "node-util-deprecate")
4649 (version "1.0.2")
4650 (source
4651 (origin
4652 (method git-fetch)
4653 (uri (git-reference
4654 (url "https://github.com/TooTallNate/util-deprecate")
4655 (commit version)))
4656 (file-name (git-file-name name version))
4657 (sha256
4658 (base32
4659 "1rk94nl3qc7znsk8400bnga30v0m7j2mmvz9ldwjinxv1d3n11xc"))))
4660 (build-system node-build-system)
4661 (arguments '(#:tests? #f)) ; No test suite.
4662 (home-page "https://github.com/TooTallNate/util-deprecate")
4663 (synopsis "Node.js `util.deprecate()` function with browser support")
4664 (description "This package provides the Node.js @code{util.deprecate()}
4665function with browser support.")
4666 (license license:expat)))
4667
4668(define-public node-vscode-l10n
4669 (package
4670 (name "node-vscode-l10n")
4671 (version "0.0.18")
4672 (source
4673 (origin
4674 (method git-fetch)
4675 (uri (git-reference
4676 (url "https://github.com/microsoft/vscode-l10n")
4677 (commit (string-append "l10n/v" version))))
4678 (file-name (git-file-name name version))
4679 (sha256
4680 (base32
4681 "1jya3ifid52vbq4xw10jjkym3rcxc9xivzas3m42i31sh9wma1xc"))))
4682 (build-system node-build-system)
4683 (arguments
4684 (list
4685 #:tests? #f ;requires jest
4686 #:phases
4687 #~(modify-phases %standard-phases
4688 (add-after 'patch-dependencies 'delete-dev-dependencies
4689 (lambda _
4690 (modify-json (delete-dev-dependencies)
4691 (replace-fields
4692 '(("scripts.install:l10n-dev" . "true")))))))))
4693 (home-page "https://github.com/Microsoft/vscode-l10n")
4694 (synopsis "Helper library to assist in localizing VS Code subprocesses")
4695 (description"This package provides a helper library to assist in
4696localizing sub-processes spawned by VS Code extensions.")
4697 (license license:expat)))
4698
4699(define-public node-which
4700 (package
4701 (name "node-which")
4702 (version "3.0.1")
4703 (source (origin
4704 (method git-fetch)
4705 (uri (git-reference
4706 (url "https://github.com/npm/node-which")
4707 (commit (string-append "v" version))))
4708 (file-name (git-file-name name version))
4709 (sha256
4710 (base32 "1ra5y2l02difjpvgh6la6g7jz782misn0n7d06miqlmvd26mldvk"))))
4711 (build-system node-build-system)
4712 (inputs (list
4713 node-isexe))
4714 (arguments (list
4715 #:tests? #f ; FIXME: Tests require 'tap'.
4716 #:phases #~(modify-phases %standard-phases
4717 (add-before 'patch-dependencies 'modify-package (lambda _
4718 (modify-json
4719 (delete-dev-dependencies)))))))
4720 (synopsis "Find the first instance of an executable in PATH")
4721 (description "Like which(1) unix command. Find the first instance of an executable\
4722 in the PATH.")
4723 (home-page (git-reference-url (origin-uri source)))
4724 (license license:isc)))
4725
4726(define-public node-wordwrapjs
4727 (package
4728 (name "node-wordwrapjs")
4729 (version "4.0.1")
4730 (source (origin
4731 (method git-fetch)
4732 (uri (git-reference
4733 (url "https://github.com/75lb/wordwrapjs")
4734 (commit (string-append "v" version))))
4735 (file-name (git-file-name name version))
4736 (sha256
4737 (base32 "126rsbhn2dkxq4dy2p2ylwcjdipgk9mkqp47y5n4l5pjkhyv7lwr"))))
4738 (build-system node-build-system)
4739 (inputs (list
4740 node-reduce-flatten
4741 node-typical))
4742 (arguments (list
4743 #:tests? #f ; FIXME: Tests require 'test-runner'.
4744 #:phases #~(modify-phases %standard-phases
4745 (add-before 'patch-dependencies 'modify-package (lambda _
4746 (modify-json
4747 (delete-dev-dependencies)))))))
4748 (synopsis "Word-wrapping library for javascript")
4749 (description "Word wrapping, with a few features.
4750 * force-break option
4751 * wraps hypenated words
4752 * multilingual - wraps any language that uses whitespace for word separation.")
4753 (home-page (git-reference-url (origin-uri source)))
4754 (license license:expat)))
4755
4756(define-public node-wrappy
4757 (package
4758 (name "node-wrappy")
4759 (version "1.0.2")
4760 (source (origin
4761 (method git-fetch)
4762 (uri (git-reference
4763 (url "https://github.com/npm/wrappy")
4764 (commit (string-append "v" version))))
4765 (file-name (git-file-name name version))
4766 (sha256
4767 (base32
4768 "1ymlc61cja6v5438vwb04gq8wg2b784lj39zf0g4i36fvgcw9783"))))
4769 (build-system node-build-system)
4770 (arguments
4771 '(#:tests? #f ; FIXME: Tests depend on node-tap
4772 #:phases
4773 (modify-phases %standard-phases
4774 (add-after 'patch-dependencies 'delete-dependencies
4775 (lambda args
4776 (modify-json (delete-dependencies '("tap"))))))))
4777 (home-page "https://github.com/npm/wrappy")
4778 (synopsis "Callback wrapping utility")
4779 (description "@code{wrappy} is a utility for Node.js to wrap callbacks.")
4780 (license license:isc)))
4781
4782(define-public node-ws
4783 (package
4784 (name "node-ws")
4785 (version "8.17.1")
4786 (source
4787 (origin
4788 (method git-fetch)
4789 (uri (git-reference
4790 (url "https://github.com/websockets/ws")
4791 (commit version)))
4792 (file-name (git-file-name name version))
4793 (sha256
4794 (base32 "03ynm4n25yjza1qjgaz8ci2rjc3ryl710q9gr99p77r6ymcxkf34"))))
4795 (build-system node-build-system)
4796 (arguments
4797 (list #:tests? #f
4798 #:phases
4799 #~(modify-phases %standard-phases
4800 (add-after 'patch-dependencies 'delete-dev-dependencies
4801 (lambda _
4802 (modify-json (delete-dev-dependencies))))
4803 (add-before 'install 'set-cc
4804 (lambda _
4805 (setenv "CC" #$(cc-for-target)))))))
4806 (inputs
4807 (list node-bufferutil node-utf-8-validate))
4808 (native-inputs
4809 (list python))
4810 (home-page "https://github.com/websockets/ws")
4811 (synopsis "Simple WebSocket implementation for Node.js")
4812 (description "This package provides a WebSocket client and server
4813implementation.")
4814 (license license:expat)))
4815
4816(define-public node-yaml
4817 (package
4818 (name "node-yaml")
4819 (version "2.6.0")
4820 (source
4821 (origin
4822 (method git-fetch)
4823 (uri (git-reference
4824 (url "https://github.com/eemeli/yaml")
4825 (commit (string-append "v" version))))
4826 (file-name (git-file-name name version))
4827 (sha256
4828 (base32 "1w9qajkjshp2imrxmps96phg4iqgxr7pfzqx9518fymzwzpjkdvr"))))
4829 (build-system node-build-system)
4830 (arguments
4831 (list
4832 #:tests? #f
4833 #:phases
4834 #~(modify-phases %standard-phases
4835 (add-after 'patch-dependencies 'delete-dev-dependencies
4836 (lambda _
4837 (modify-json (delete-dev-dependencies))))
4838 (replace 'build
4839 (lambda* (#:key inputs native-inputs #:allow-other-keys)
4840 (let ((esbuild (search-input-file (or native-inputs inputs)
4841 "/bin/esbuild")))
4842 ;; Compile TypeScript to JavaScript using esbuild
4843 ;; Output to dist/ directory to match package.json exports
4844 (mkdir-p "dist")
4845 (for-each
4846 (lambda (ts-file)
4847 (let* ((relative (substring ts-file (string-length "src/")))
4848 (js-file (string-append "dist/"
4849 (string-drop-right relative 3)
4850 ".js")))
4851 (mkdir-p (dirname js-file))
4852 (invoke esbuild ts-file
4853 (string-append "--outfile=" js-file)
4854 "--format=cjs"
4855 "--platform=node"
4856 "--target=es2020")))
4857 (find-files "src" "\\.ts$"))))))))
4858 (native-inputs (list esbuild))
4859 (home-page "https://eemeli.org/yaml/")
4860 (synopsis "JavaScript YAML parser and stringifier")
4861 (description "This package provides a library for YAML. Supports both
4862YAML 1.1 and YAML 1.2.")
4863 (license license:isc)))
4864
4865(define-public node-yauzl
4866 (package
4867 (name "node-yauzl")
4868 (version "2.10.0")
4869 (source (origin
4870 (method git-fetch)
4871 (uri (git-reference
4872 (url "https://github.com/thejoshwolfe/yauzl")
4873 (commit version)))
4874 (file-name (git-file-name name version))
4875 (sha256
4876 (base32
4877 "02f7zknlmjizi9l4d5z0vx659wl9xi7kgzn24kqj5wfkp3b83cij"))))
4878 (build-system node-build-system)
4879 (arguments
4880 '(#:tests? #f
4881 #:phases (modify-phases %standard-phases
4882 (add-after 'patch-dependencies 'delete-dev-dependencies
4883 (lambda _
4884 (modify-json (delete-dev-dependencies)))))))
4885 (inputs (list node-buffer-crc32 node-fd-slicer node-pend))
4886 (home-page "https://github.com/thejoshwolfe/yauzl")
4887 (synopsis "Yet another unzip library for node")
4888 (description "This package provides an unzip library for Node.js that
4889handles ZIP file reading with streaming support and proper handling of
4890ZIP64 extensions.")
4891 (license license:expat)))
4892
4893(define-public node-yazl
4894 (package
4895 (name "node-yazl")
4896 (version "2.5.1")
4897 (source (origin
4898 (method git-fetch)
4899 (uri (git-reference
4900 (url "https://github.com/thejoshwolfe/yazl")
4901 (commit version)))
4902 (file-name (git-file-name name version))
4903 (sha256
4904 (base32
4905 "1lhwqqnvazpi4xw81ldpx0ky0h1j5rcx3br480q2bnzj21cm109n"))))
4906 (build-system node-build-system)
4907 (arguments
4908 '(#:tests? #f
4909 #:phases (modify-phases %standard-phases
4910 (add-after 'patch-dependencies 'delete-dependencies
4911 (lambda _
4912 (modify-json
4913 (delete-dependencies
4914 '("airtap" "bl" "istanbul" "yauzl"))))))))
4915 (inputs (list node-buffer-crc32))
4916 (home-page "https://github.com/thejoshwolfe/yazl")
4917 (synopsis "Yet another zip library for node")
4918 (description
4919 "This package provides a zip library for Node. It follows the
4920following principles:
4921@enumerate
4922@item Don't block the JavaScript thread. Use and provide async APIs.
4923@item Keep memory usage under control. Don't attempt to buffer entire
4924files in RAM at once.
4925@item Prefer to open input files one at a time than all at once.
4926@end enumerate")
4927 (license license:expat)))
4928
4929;;;
4930;;; Avoid adding new packages to the end of this file. To reduce the chances
4931;;; of a merge conflict, place them above in alphabetic order.
4932;;;