git: ce3b327a77f7 - main - www/deno-dom: New port: Deno: Browser DOM & HTML parser plugin

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Fri, 16 Aug 2024 18:37:33 UTC
The branch main has been updated by yuri:

URL: https://cgit.FreeBSD.org/ports/commit/?id=ce3b327a77f7f677139b04a5f9b873a2a5b9a11d

commit ce3b327a77f7f677139b04a5f9b873a2a5b9a11d
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2024-08-16 18:19:54 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2024-08-16 18:37:31 +0000

    www/deno-dom: New port: Deno: Browser DOM & HTML parser plugin
---
 www/Makefile           |   1 +
 www/deno-dom/Makefile  |  94 ++++++++++++++++++++++++++++++++++
 www/deno-dom/distinfo  | 135 +++++++++++++++++++++++++++++++++++++++++++++++++
 www/deno-dom/pkg-descr |  11 ++++
 4 files changed, 241 insertions(+)

diff --git a/www/Makefile b/www/Makefile
index 40d3321570d9..06b9c69c555d 100644
--- a/www/Makefile
+++ b/www/Makefile
@@ -131,6 +131,7 @@
     SUBDIR += ddgr
     SUBDIR += deforaos-surfer
     SUBDIR += deno
+    SUBDIR += deno-dom
     SUBDIR += devd
     SUBDIR += dezoomify-rs
     SUBDIR += dillo2
diff --git a/www/deno-dom/Makefile b/www/deno-dom/Makefile
new file mode 100644
index 000000000000..67aafcef24cd
--- /dev/null
+++ b/www/deno-dom/Makefile
@@ -0,0 +1,94 @@
+PORTNAME=	deno-dom
+DISTVERSIONPREFIX=	v
+DISTVERSION=	0.1.47
+CATEGORIES=	www
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	Deno: Browser DOM & HTML parser plugin
+WWW=		https://jsr.io/@b-fuze/deno-dom
+
+LICENSE=	MIT
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+USES=		cargo
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	b-fuze
+
+CARGO_CRATES=	autocfg-1.3.0 \
+		bitflags-2.6.0 \
+		byteorder-1.5.0 \
+		cfg-if-1.0.0 \
+		futf-0.1.5 \
+		getrandom-0.1.16 \
+		getrandom-0.2.15 \
+		html5ever-0.25.2 \
+		itoa-1.0.11 \
+		libc-0.2.155 \
+		lock_api-0.4.12 \
+		log-0.4.22 \
+		mac-0.1.1 \
+		markup5ever-0.10.1 \
+		memchr-2.7.4 \
+		new_debug_unreachable-1.0.6 \
+		once_cell-1.19.0 \
+		parking_lot-0.12.3 \
+		parking_lot_core-0.9.10 \
+		phf-0.8.0 \
+		phf_codegen-0.8.0 \
+		phf_generator-0.8.0 \
+		phf_generator-0.10.0 \
+		phf_shared-0.8.0 \
+		phf_shared-0.10.0 \
+		ppv-lite86-0.2.20 \
+		precomputed-hash-0.1.1 \
+		proc-macro2-1.0.86 \
+		quote-1.0.36 \
+		rand-0.7.3 \
+		rand-0.8.5 \
+		rand_chacha-0.2.2 \
+		rand_chacha-0.3.1 \
+		rand_core-0.5.1 \
+		rand_core-0.6.4 \
+		rand_hc-0.2.0 \
+		rand_pcg-0.2.1 \
+		redox_syscall-0.5.3 \
+		ryu-1.0.18 \
+		scopeguard-1.2.0 \
+		serde-1.0.207 \
+		serde_derive-1.0.207 \
+		serde_json-1.0.124 \
+		siphasher-0.3.11 \
+		smallvec-1.13.2 \
+		static_vcruntime-2.0.0 \
+		string_cache-0.8.7 \
+		string_cache_codegen-0.5.2 \
+		syn-1.0.109 \
+		syn-2.0.74 \
+		tendril-0.4.3 \
+		unicode-ident-1.0.12 \
+		utf-8-0.7.6 \
+		wasi-0.9.0+wasi-snapshot-preview1 \
+		wasi-0.11.0+wasi-snapshot-preview1 \
+		windows-targets-0.52.6 \
+		windows_aarch64_gnullvm-0.52.6 \
+		windows_aarch64_msvc-0.52.6 \
+		windows_i686_gnu-0.52.6 \
+		windows_i686_gnullvm-0.52.6 \
+		windows_i686_msvc-0.52.6 \
+		windows_x86_64_gnu-0.52.6 \
+		windows_x86_64_gnullvm-0.52.6 \
+		windows_x86_64_msvc-0.52.6 \
+		zerocopy-0.7.35 \
+		zerocopy-derive-0.7.35
+
+PLIST_FILES=	lib/deno-plugins/deno_dom.so
+
+do-install:
+	# binaries (workaround for error: found a virtual manifest at `xx` instead of a package manifest)
+	${MKDIR} ${STAGEDIR}${PREFIX}/lib/deno-plugins
+	${INSTALL_LIB} \
+		${WRKDIR}/target/*/release/libplugin.so \
+		${STAGEDIR}${PREFIX}/lib/deno-plugins/deno_dom.so
+
+.include <bsd.port.mk>
diff --git a/www/deno-dom/distinfo b/www/deno-dom/distinfo
new file mode 100644
index 000000000000..351960db20d5
--- /dev/null
+++ b/www/deno-dom/distinfo
@@ -0,0 +1,135 @@
+TIMESTAMP = 1723611007
+SHA256 (rust/crates/autocfg-1.3.0.crate) = 0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0
+SIZE (rust/crates/autocfg-1.3.0.crate) = 16524
+SHA256 (rust/crates/bitflags-2.6.0.crate) = b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de
+SIZE (rust/crates/bitflags-2.6.0.crate) = 45357
+SHA256 (rust/crates/byteorder-1.5.0.crate) = 1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b
+SIZE (rust/crates/byteorder-1.5.0.crate) = 23288
+SHA256 (rust/crates/cfg-if-1.0.0.crate) = baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd
+SIZE (rust/crates/cfg-if-1.0.0.crate) = 7934
+SHA256 (rust/crates/futf-0.1.5.crate) = df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843
+SIZE (rust/crates/futf-0.1.5.crate) = 11344
+SHA256 (rust/crates/getrandom-0.1.16.crate) = 8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce
+SIZE (rust/crates/getrandom-0.1.16.crate) = 25077
+SHA256 (rust/crates/getrandom-0.2.15.crate) = c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7
+SIZE (rust/crates/getrandom-0.2.15.crate) = 37163
+SHA256 (rust/crates/html5ever-0.25.2.crate) = e5c13fb08e5d4dfc151ee5e88bae63f7773d61852f3bdc73c9f4b9e1bde03148
+SIZE (rust/crates/html5ever-0.25.2.crate) = 72780
+SHA256 (rust/crates/itoa-1.0.11.crate) = 49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b
+SIZE (rust/crates/itoa-1.0.11.crate) = 10563
+SHA256 (rust/crates/libc-0.2.155.crate) = 97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c
+SIZE (rust/crates/libc-0.2.155.crate) = 743539
+SHA256 (rust/crates/lock_api-0.4.12.crate) = 07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17
+SIZE (rust/crates/lock_api-0.4.12.crate) = 27591
+SHA256 (rust/crates/log-0.4.22.crate) = a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24
+SIZE (rust/crates/log-0.4.22.crate) = 44027
+SHA256 (rust/crates/mac-0.1.1.crate) = c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4
+SIZE (rust/crates/mac-0.1.1.crate) = 4838
+SHA256 (rust/crates/markup5ever-0.10.1.crate) = a24f40fb03852d1cdd84330cddcaf98e9ec08a7b7768e952fad3b4cf048ec8fd
+SIZE (rust/crates/markup5ever-0.10.1.crate) = 34668
+SHA256 (rust/crates/memchr-2.7.4.crate) = 78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3
+SIZE (rust/crates/memchr-2.7.4.crate) = 96670
+SHA256 (rust/crates/new_debug_unreachable-1.0.6.crate) = 650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086
+SIZE (rust/crates/new_debug_unreachable-1.0.6.crate) = 2582
+SHA256 (rust/crates/once_cell-1.19.0.crate) = 3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92
+SIZE (rust/crates/once_cell-1.19.0.crate) = 33046
+SHA256 (rust/crates/parking_lot-0.12.3.crate) = f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27
+SIZE (rust/crates/parking_lot-0.12.3.crate) = 41860
+SHA256 (rust/crates/parking_lot_core-0.9.10.crate) = 1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8
+SIZE (rust/crates/parking_lot_core-0.9.10.crate) = 32406
+SHA256 (rust/crates/phf-0.8.0.crate) = 3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12
+SIZE (rust/crates/phf-0.8.0.crate) = 3902
+SHA256 (rust/crates/phf_codegen-0.8.0.crate) = cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815
+SIZE (rust/crates/phf_codegen-0.8.0.crate) = 3192
+SHA256 (rust/crates/phf_generator-0.8.0.crate) = 17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526
+SIZE (rust/crates/phf_generator-0.8.0.crate) = 7604
+SHA256 (rust/crates/phf_generator-0.10.0.crate) = 5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6
+SIZE (rust/crates/phf_generator-0.10.0.crate) = 7525
+SHA256 (rust/crates/phf_shared-0.8.0.crate) = c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7
+SIZE (rust/crates/phf_shared-0.8.0.crate) = 2860
+SHA256 (rust/crates/phf_shared-0.10.0.crate) = b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096
+SIZE (rust/crates/phf_shared-0.10.0.crate) = 4095
+SHA256 (rust/crates/ppv-lite86-0.2.20.crate) = 77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04
+SIZE (rust/crates/ppv-lite86-0.2.20.crate) = 22478
+SHA256 (rust/crates/precomputed-hash-0.1.1.crate) = 925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c
+SIZE (rust/crates/precomputed-hash-0.1.1.crate) = 1640
+SHA256 (rust/crates/proc-macro2-1.0.86.crate) = 5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77
+SIZE (rust/crates/proc-macro2-1.0.86.crate) = 48958
+SHA256 (rust/crates/quote-1.0.36.crate) = 0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7
+SIZE (rust/crates/quote-1.0.36.crate) = 28507
+SHA256 (rust/crates/rand-0.7.3.crate) = 6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03
+SIZE (rust/crates/rand-0.7.3.crate) = 112246
+SHA256 (rust/crates/rand-0.8.5.crate) = 34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404
+SIZE (rust/crates/rand-0.8.5.crate) = 87113
+SHA256 (rust/crates/rand_chacha-0.2.2.crate) = f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402
+SIZE (rust/crates/rand_chacha-0.2.2.crate) = 13267
+SHA256 (rust/crates/rand_chacha-0.3.1.crate) = e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88
+SIZE (rust/crates/rand_chacha-0.3.1.crate) = 15251
+SHA256 (rust/crates/rand_core-0.5.1.crate) = 90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19
+SIZE (rust/crates/rand_core-0.5.1.crate) = 21116
+SHA256 (rust/crates/rand_core-0.6.4.crate) = ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c
+SIZE (rust/crates/rand_core-0.6.4.crate) = 22666
+SHA256 (rust/crates/rand_hc-0.2.0.crate) = ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c
+SIZE (rust/crates/rand_hc-0.2.0.crate) = 11670
+SHA256 (rust/crates/rand_pcg-0.2.1.crate) = 16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429
+SIZE (rust/crates/rand_pcg-0.2.1.crate) = 11291
+SHA256 (rust/crates/redox_syscall-0.5.3.crate) = 2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4
+SIZE (rust/crates/redox_syscall-0.5.3.crate) = 23830
+SHA256 (rust/crates/ryu-1.0.18.crate) = f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f
+SIZE (rust/crates/ryu-1.0.18.crate) = 47713
+SHA256 (rust/crates/scopeguard-1.2.0.crate) = 94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49
+SIZE (rust/crates/scopeguard-1.2.0.crate) = 11619
+SHA256 (rust/crates/serde-1.0.207.crate) = 5665e14a49a4ea1b91029ba7d3bca9f299e1f7cfa194388ccc20f14743e784f2
+SIZE (rust/crates/serde-1.0.207.crate) = 78247
+SHA256 (rust/crates/serde_derive-1.0.207.crate) = 6aea2634c86b0e8ef2cfdc0c340baede54ec27b1e46febd7f80dffb2aa44a00e
+SIZE (rust/crates/serde_derive-1.0.207.crate) = 56016
+SHA256 (rust/crates/serde_json-1.0.124.crate) = 66ad62847a56b3dba58cc891acd13884b9c61138d330c0d7b6181713d4fce38d
+SIZE (rust/crates/serde_json-1.0.124.crate) = 148160
+SHA256 (rust/crates/siphasher-0.3.11.crate) = 38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d
+SIZE (rust/crates/siphasher-0.3.11.crate) = 10442
+SHA256 (rust/crates/smallvec-1.13.2.crate) = 3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67
+SIZE (rust/crates/smallvec-1.13.2.crate) = 35216
+SHA256 (rust/crates/static_vcruntime-2.0.0.crate) = 954e3e877803def9dc46075bf4060147c55cd70db97873077232eae0269dc89b
+SIZE (rust/crates/static_vcruntime-2.0.0.crate) = 7040
+SHA256 (rust/crates/string_cache-0.8.7.crate) = f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b
+SIZE (rust/crates/string_cache-0.8.7.crate) = 16655
+SHA256 (rust/crates/string_cache_codegen-0.5.2.crate) = 6bb30289b722be4ff74a408c3cc27edeaad656e06cb1fe8fa9231fa59c728988
+SIZE (rust/crates/string_cache_codegen-0.5.2.crate) = 8156
+SHA256 (rust/crates/syn-1.0.109.crate) = 72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237
+SIZE (rust/crates/syn-1.0.109.crate) = 237611
+SHA256 (rust/crates/syn-2.0.74.crate) = 1fceb41e3d546d0bd83421d3409b1460cc7444cd389341a4c880fe7a042cb3d7
+SIZE (rust/crates/syn-2.0.74.crate) = 267998
+SHA256 (rust/crates/tendril-0.4.3.crate) = d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0
+SIZE (rust/crates/tendril-0.4.3.crate) = 37210
+SHA256 (rust/crates/unicode-ident-1.0.12.crate) = 3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b
+SIZE (rust/crates/unicode-ident-1.0.12.crate) = 42168
+SHA256 (rust/crates/utf-8-0.7.6.crate) = 09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9
+SIZE (rust/crates/utf-8-0.7.6.crate) = 10422
+SHA256 (rust/crates/wasi-0.9.0+wasi-snapshot-preview1.crate) = cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519
+SIZE (rust/crates/wasi-0.9.0+wasi-snapshot-preview1.crate) = 31521
+SHA256 (rust/crates/wasi-0.11.0+wasi-snapshot-preview1.crate) = 9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423
+SIZE (rust/crates/wasi-0.11.0+wasi-snapshot-preview1.crate) = 28131
+SHA256 (rust/crates/windows-targets-0.52.6.crate) = 9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973
+SIZE (rust/crates/windows-targets-0.52.6.crate) = 6403
+SHA256 (rust/crates/windows_aarch64_gnullvm-0.52.6.crate) = 32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3
+SIZE (rust/crates/windows_aarch64_gnullvm-0.52.6.crate) = 435718
+SHA256 (rust/crates/windows_aarch64_msvc-0.52.6.crate) = 09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469
+SIZE (rust/crates/windows_aarch64_msvc-0.52.6.crate) = 832615
+SHA256 (rust/crates/windows_i686_gnu-0.52.6.crate) = 8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b
+SIZE (rust/crates/windows_i686_gnu-0.52.6.crate) = 880402
+SHA256 (rust/crates/windows_i686_gnullvm-0.52.6.crate) = 0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66
+SIZE (rust/crates/windows_i686_gnullvm-0.52.6.crate) = 475940
+SHA256 (rust/crates/windows_i686_msvc-0.52.6.crate) = 240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66
+SIZE (rust/crates/windows_i686_msvc-0.52.6.crate) = 901163
+SHA256 (rust/crates/windows_x86_64_gnu-0.52.6.crate) = 147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78
+SIZE (rust/crates/windows_x86_64_gnu-0.52.6.crate) = 836363
+SHA256 (rust/crates/windows_x86_64_gnullvm-0.52.6.crate) = 24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d
+SIZE (rust/crates/windows_x86_64_gnullvm-0.52.6.crate) = 435707
+SHA256 (rust/crates/windows_x86_64_msvc-0.52.6.crate) = 589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec
+SIZE (rust/crates/windows_x86_64_msvc-0.52.6.crate) = 832564
+SHA256 (rust/crates/zerocopy-0.7.35.crate) = 1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0
+SIZE (rust/crates/zerocopy-0.7.35.crate) = 152645
+SHA256 (rust/crates/zerocopy-derive-0.7.35.crate) = fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e
+SIZE (rust/crates/zerocopy-derive-0.7.35.crate) = 37829
+SHA256 (b-fuze-deno-dom-v0.1.47_GH0.tar.gz) = 040e2bf00b9b4bac07b1d85b6a2338b6af8d38e416cec7666a5ad871927a7afa
+SIZE (b-fuze-deno-dom-v0.1.47_GH0.tar.gz) = 799624
diff --git a/www/deno-dom/pkg-descr b/www/deno-dom/pkg-descr
new file mode 100644
index 000000000000..604a54d0c045
--- /dev/null
+++ b/www/deno-dom/pkg-descr
@@ -0,0 +1,11 @@
+deno-dom is an implementation of the browser DOM-primarily for SSR-in Deno.
+Implemented with Rust, WASM, and obviously, Deno/TypeScript.
+
+Deno DOM has two backends, WASM and native using Deno native plugins. Both
+APIs are **identical**, the difference being only in performance. The WASM
+backend works with all Deno restrictions, but the native backend requires the
+`--unstable-ffi --allow-ffi --allow-env --allow-read --allow-net=deno.land`
+flags. A shorter version could be `--unstable-ffi -A`, but that allows all
+permissions so you'd have to assess your risk and requirements. You can switch
+between them by importing either `jsr:@b-fuze/deno-dom` for WASM or
+`jsr:@b-fuze/deno-dom/native` for the native binary.