@@ -1793,3 +1793,61 @@ (define-public node-copy-anything
face of complications like special objects, symbols, and non-enumerable
properties.")
(license license:expat)))
+
+(define-public node-vlq
+ (package
+ (name "node-vlq")
+ (version "0.2.3") ; last version accepted by flow-remove-types ("^0.2.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Rich-Harris/vlq")
+ (commit (string-append "v" version))))
+ (sha256
+ (base32 "1vdrarssrwxpcngyfx050ba0gnfinzi5jn3xs4w9rnjvxngx6m8f"))
+ (snippet
+ #~(delete-file "dist/vlq.js"))
+ (file-name (git-file-name name version))))
+ (build-system node-build-system)
+ (native-inputs (list esbuild))
+ (arguments
+ (list
+ #:modules
+ `((guix build node-build-system)
+ (ice-9 match)
+ (guix build utils))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'patch-dependencies 'delete-dependencies
+ (lambda args
+ (delete-dependencies
+ '("eslint"
+ "rollup"))))
+ (add-after 'delete-dependencies 'patch-build-script
+ (lambda args
+ (define new-build-script
+ "esbuild --bundle --platform=node --outdir=dist src/vlq.js")
+ (with-atomic-json-file-replacement "package.json"
+ (lambda (js)
+ (match js
+ (('@ . alist)
+ (cons '@
+ (map (match-lambda
+ (("scripts" @ . alist)
+ `("scripts" @ ,@(map (match-lambda
+ (("build" . _)
+ (cons "build"
+ new-build-script))
+ (other
+ other))
+ alist)))
+ (other
+ other))
+ alist)))))))))))
+ (home-page "https://github.com/Rich-Harris/vlq")
+ (synopsis "JavaScript library for @acronym{VLQ} encoding and decoding")
+ (description "This package provides a JavaScript library for converting
+integers to and from Base64-encoded @acronym{VLQ, variable-length quantity}
+strings.")
+ (license license:expat)))