git: 4784e7e75bd2 - main - www/remark42: upgrade to 1.15.0

From: Xin LI <delphij_at_FreeBSD.org>
Date: Sun, 04 Jan 2026 05:14:36 UTC
The branch main has been updated by delphij:

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

commit 4784e7e75bd24d9536b3c4c5b7ae7497842fa93d
Author:     Xin LI <delphij@FreeBSD.org>
AuthorDate: 2026-01-03 23:31:01 +0000
Commit:     Xin LI <delphij@FreeBSD.org>
CommitDate: 2026-01-04 05:14:24 +0000

    www/remark42: upgrade to 1.15.0
---
 www/remark42/Makefile        |  87 ++++++++++++-----------
 www/remark42/distinfo        | 160 +++++++++++++++++++++----------------------
 www/remark42/files/remark.in |  21 +++++-
 3 files changed, 140 insertions(+), 128 deletions(-)

diff --git a/www/remark42/Makefile b/www/remark42/Makefile
index 51ce47d80b22..3a501ed6a516 100644
--- a/www/remark42/Makefile
+++ b/www/remark42/Makefile
@@ -1,7 +1,6 @@
 PORTNAME=	remark42
 DISTVERSIONPREFIX=	v
-DISTVERSION=	1.14.0
-PORTREVISION=	12
+DISTVERSION=	1.15.0
 CATEGORIES=	www
 MASTER_SITES=	LOCAL/delphij:npmcache
 DISTFILES=	${PORTNAME}-npm-cache-${DISTVERSION}${EXTRACT_SUFX}:npmcache
@@ -13,9 +12,9 @@ WWW=		https://remark42.com/
 LICENSE=	MIT
 LICENSE_FILE=	${WRKSRC}/LICENSE
 
-BUILD_DEPENDS+=	npm-node20>0:www/npm-node20
+BUILD_DEPENDS+=	npm-node22>0:www/npm-node22
 
-USES=		cpe go:modules tar:xz
+USES=		cpe go:1.25,modules tar:xz
 
 GO_BUILDFLAGS=	-ldflags "-s -w -X main.revision=${DISTVERSION}"
 GO_TARGET=	app:${PREFIX}/libexec/${PORTNAME}
@@ -33,45 +32,44 @@ PLIST_FILES=	libexec/${PORTNAME}
 
 GH_TUPLE=	\
 		Depado:bfchroma:v2.0.0:depado_bfchroma_v2/vendor/github.com/Depado/bfchroma/v2 \
-		PuerkitoBio:goquery:v1.9.2:puerkitobio_goquery/vendor/github.com/PuerkitoBio/goquery \
-		ajg:form:v1.5.1:ajg_form/vendor/github.com/ajg/form \
-		alecthomas:chroma:v2.13.0:alecthomas_chroma_v2/vendor/github.com/alecthomas/chroma/v2 \
-		andybalholm:cascadia:v1.3.2:andybalholm_cascadia/vendor/github.com/andybalholm/cascadia \
+		PuerkitoBio:goquery:v1.11.0:puerkitobio_goquery/vendor/github.com/PuerkitoBio/goquery \
+		alecthomas:chroma:v2.21.1:alecthomas_chroma_v2/vendor/github.com/alecthomas/chroma/v2 \
+		andybalholm:cascadia:v1.3.3:andybalholm_cascadia/vendor/github.com/andybalholm/cascadia \
 		aymerick:douceur:v0.2.0:aymerick_douceur/vendor/github.com/aymerick/douceur \
-		cespare:xxhash:v2.2.0:cespare_xxhash_v2/vendor/github.com/cespare/xxhash/v2 \
+		cespare:xxhash:v2.3.0:cespare_xxhash_v2/vendor/github.com/cespare/xxhash/v2 \
 		davecgh:go-spew:v1.1.1:davecgh_go_spew/vendor/github.com/davecgh/go-spew \
 		dghubble:oauth1:v0.7.3:dghubble_oauth1/vendor/github.com/dghubble/oauth1 \
 		dgryski:go-rendezvous:9f7001d12a5f:dgryski_go_rendezvous/vendor/github.com/dgryski/go-rendezvous \
-		didip:tollbooth:v7.0.2:didip_tollbooth_v7/vendor/github.com/didip/tollbooth/v7 \
-		didip:tollbooth_chi:d662a7f6928f:didip_tollbooth_chi/vendor/github.com/didip/tollbooth_chi \
-		dlclark:regexp2:v1.11.0:dlclark_regexp2/vendor/github.com/dlclark/regexp2 \
-		etcd-io:bbolt:v1.3.10:etcd_io_bbolt/vendor/go.etcd.io/bbolt \
-		go-chi:chi:v5.1.0:go_chi_chi_v5/vendor/github.com/go-chi/chi/v5 \
-		go-chi:cors:v1.2.1:go_chi_cors/vendor/github.com/go-chi/cors \
-		go-chi:render:v1.0.3:go_chi_render/vendor/github.com/go-chi/render \
-		go-oauth2:oauth2:v4.5.2:go_oauth2_oauth2_v4/vendor/github.com/go-oauth2/oauth2/v4 \
-		go-pkgz:auth:v1.24.2:go_pkgz_auth/vendor/github.com/go-pkgz/auth \
-		go-pkgz:email:v0.5.0:go_pkgz_email/vendor/github.com/go-pkgz/email \
-		go-pkgz:expirable-cache:v3.0.0:go_pkgz_expirable_cache_v3/vendor/github.com/go-pkgz/expirable-cache \
-		go-pkgz:jrpc:v0.3.0:go_pkgz_jrpc/vendor/github.com/go-pkgz/jrpc \
+		didip:tollbooth:v8.0.1:didip_tollbooth_v8/vendor/github.com/didip/tollbooth/v8 \
+		dlclark:regexp2:v1.11.5:dlclark_regexp2/vendor/github.com/dlclark/regexp2 \
+		etcd-io:bbolt:v1.4.3:etcd_io_bbolt/vendor/go.etcd.io/bbolt \
+		go-chi:chi:v5.2.3:go_chi_chi_v5/vendor/github.com/go-chi/chi/v5 \
+		go-chi:cors:v1.2.2:go_chi_cors/vendor/github.com/go-chi/cors \
+		go-oauth2:oauth2:v4.5.4:go_oauth2_oauth2_v4/vendor/github.com/go-oauth2/oauth2/v4 \
+		go-pkgz:auth:v2.1.1:go_pkgz_auth_v2/vendor/github.com/go-pkgz/auth \
+		go-pkgz:email:v0.6.0:go_pkgz_email/vendor/github.com/go-pkgz/email \
+		go-pkgz:expirable-cache:v3.1.0:go_pkgz_expirable_cache_v3/vendor/github.com/go-pkgz/expirable-cache \
+		go-pkgz:jrpc:v0.4.0:go_pkgz_jrpc/vendor/github.com/go-pkgz/jrpc \
 		go-pkgz:lcw:v2.0.0:go_pkgz_lcw_v2/vendor/github.com/go-pkgz/lcw \
-		go-pkgz:lgr:v0.11.1:go_pkgz_lgr/vendor/github.com/go-pkgz/lgr \
-		go-pkgz:notify:v1.1.1:go_pkgz_notify/vendor/github.com/go-pkgz/notify \
-		go-pkgz:repeater:v1.1.3:go_pkgz_repeater/vendor/github.com/go-pkgz/repeater \
-		go-pkgz:rest:v1.19.0:go_pkgz_rest/vendor/github.com/go-pkgz/rest \
+		go-pkgz:lgr:v0.12.1:go_pkgz_lgr/vendor/github.com/go-pkgz/lgr \
+		go-pkgz:notify:v1.3.0:go_pkgz_notify/vendor/github.com/go-pkgz/notify \
+		go-pkgz:repeater:v1.2.0:go_pkgz_repeater/vendor/github.com/go-pkgz/repeater \
+		go-pkgz:repeater:v2.2.0:go_pkgz_repeater_v2/vendor/github.com/go-pkgz/repeater/v2 \
+		go-pkgz:rest:v1.20.6:go_pkgz_rest/vendor/github.com/go-pkgz/rest \
+		go-pkgz:routegroup:v1.6.0:go_pkgz_routegroup/vendor/github.com/go-pkgz/routegroup \
 		go-pkgz:syncs:v1.3.2:go_pkgz_syncs/vendor/github.com/go-pkgz/syncs \
 		go-yaml:yaml:v3.0.1:go_yaml_yaml/vendor/gopkg.in/yaml.v3 \
-		golang-jwt:jwt:v3.2.2:golang_jwt_jwt/vendor/github.com/golang-jwt/jwt \
-		golang:crypto:v0.25.0:golang_crypto/vendor/golang.org/x/crypto \
-		golang:image:v0.18.0:golang_image/vendor/golang.org/x/image \
-		golang:net:v0.27.0:golang_net/vendor/golang.org/x/net \
-		golang:oauth2:v0.21.0:golang_oauth2/vendor/golang.org/x/oauth2 \
-		golang:snappy:v0.0.4:golang_snappy/vendor/github.com/golang/snappy \
-		golang:sync:v0.7.0:golang_sync/vendor/golang.org/x/sync \
-		golang:sys:v0.22.0:golang_sys/vendor/golang.org/x/sys \
-		golang:text:v0.16.0:golang_text/vendor/golang.org/x/text \
+		golang-jwt:jwt:v5.3.0:golang_jwt_jwt_v5/vendor/github.com/golang-jwt/jwt/v5 \
+		golang:crypto:v0.46.0:golang_crypto/vendor/golang.org/x/crypto \
+		golang:image:v0.34.0:golang_image/vendor/golang.org/x/image \
+		golang:net:v0.48.0:golang_net/vendor/golang.org/x/net \
+		golang:oauth2:v0.34.0:golang_oauth2/vendor/golang.org/x/oauth2 \
+		golang:snappy:v1.0.0:golang_snappy/vendor/github.com/golang/snappy \
+		golang:sync:v0.19.0:golang_sync/vendor/golang.org/x/sync \
+		golang:sys:v0.39.0:golang_sys/vendor/golang.org/x/sys \
+		golang:text:v0.32.0:golang_text/vendor/golang.org/x/text \
 		google:uuid:v1.6.0:google_uuid/vendor/github.com/google/uuid \
-		googleapis:google-cloud-go:v0.5.0:googleapis_google_cloud_go/vendor/cloud.google.com/go/compute/metadata \
+		googleapis:google-cloud-go:v0.9.0:googleapis_google_cloud_go/vendor/cloud.google.com/go/compute/metadata \
 		gorilla:css:v1.0.1:gorilla_css/vendor/github.com/gorilla/css \
 		gorilla:feeds:v1.2.0:gorilla_feeds/vendor/github.com/gorilla/feeds \
 		gorilla:websocket:v1.5.3:gorilla_websocket/vendor/github.com/gorilla/websocket \
@@ -79,22 +77,22 @@ GH_TUPLE=	\
 		hashicorp:go-multierror:v1.1.1:hashicorp_go_multierror/vendor/github.com/hashicorp/go-multierror \
 		hashicorp:golang-lru:v2.0.7:hashicorp_golang_lru_v2/vendor/github.com/hashicorp/golang-lru/v2 \
 		jessevdk:go-flags:v1.6.1:jessevdk_go_flags/vendor/github.com/jessevdk/go-flags \
-		klauspost:compress:v1.17.9:klauspost_compress/vendor/github.com/klauspost/compress \
+		klauspost:compress:v1.18.2:klauspost_compress/vendor/github.com/klauspost/compress \
 		kyokomi:emoji:v2.2.13:kyokomi_emoji_v2/vendor/github.com/kyokomi/emoji/v2 \
 		microcosm-cc:bluemonday:v1.0.27:microcosm_cc_bluemonday/vendor/github.com/microcosm-cc/bluemonday \
-		mongodb:mongo-go-driver:v1.16.0:mongodb_mongo_go_driver/vendor/go.mongodb.org/mongo-driver \
+		mongodb:mongo-go-driver:v1.17.6:mongodb_mongo_go_driver/vendor/go.mongodb.org/mongo-driver \
 		montanaflynn:stats:v0.7.1:montanaflynn_stats/vendor/github.com/montanaflynn/stats \
 		pmezard:go-difflib:v1.0.0:pmezard_go_difflib/vendor/github.com/pmezard/go-difflib \
-		redis:go-redis:v9.4.0:redis_go_redis_v9/vendor/github.com/redis/go-redis/v9 \
+		redis:go-redis:v9.17.2:redis_go_redis_v9/vendor/github.com/redis/go-redis/v9 \
 		rrivera:identicon:d5ba35832c0d:rrivera_identicon/vendor/github.com/rrivera/identicon \
-		rs:xid:v1.5.0:rs_xid/vendor/github.com/rs/xid \
+		rs:xid:v1.6.0:rs_xid/vendor/github.com/rs/xid \
 		russross:blackfriday:v2.1.0:russross_blackfriday_v2/vendor/github.com/russross/blackfriday/v2 \
 		skip2:go-qrcode:da1b6568686e:skip2_go_qrcode/vendor/github.com/skip2/go-qrcode \
-		slack-go:slack:v0.12.5:slack_go_slack/vendor/github.com/slack-go/slack \
-		stretchr:testify:v1.9.0:stretchr_testify/vendor/github.com/stretchr/testify \
+		slack-go:slack:v0.17.3:slack_go_slack/vendor/github.com/slack-go/slack \
+		stretchr:testify:v1.11.1:stretchr_testify/vendor/github.com/stretchr/testify \
 		uber-go:goleak:v1.3.0:uber_go_goleak/vendor/go.uber.org/goleak \
 		xdg-go:pbkdf2:v1.0.0:xdg_go_pbkdf2/vendor/github.com/xdg-go/pbkdf2 \
-		xdg-go:scram:v1.1.2:xdg_go_scram/vendor/github.com/xdg-go/scram \
+		xdg-go:scram:v1.2.0:xdg_go_scram/vendor/github.com/xdg-go/scram \
 		xdg-go:stringprep:v1.0.4:xdg_go_stringprep/vendor/github.com/xdg-go/stringprep \
 		youmark:pkcs8:a2c0da244d78:youmark_pkcs8/vendor/github.com/youmark/pkcs8
 
@@ -116,8 +114,9 @@ make-npm-cache: extract
 	@cd ${WRKSRC}/frontend/apps/${PORTNAME} \
 		&& ${SETENV} HOME=${WRKDIR} npm install --force
 	@cd ${WRKDIR} \
-		&& ${TAR} -cJf ${PORTNAME}-npm-cache-${DISTVERSION}${EXTRACT_SUFX} .npm \
-			${PORTNAME}-${DISTVERSION}/frontend/apps/remark42/package-lock.json \
+		&& ${TAR} -cf - --mtime='1970-01-01 00:00Z' --owner=0 --group=0 --numeric-owner ${PORTNAME}-npm-cache-${DISTVERSION}${EXTRACT_SUFX} .npm \
+			${PORTNAME}-${DISTVERSION}/frontend/apps/remark42/package-lock.json | \
+			${XZ_CMD} -v9e > ${PORTNAME}-npm-cache-${DISTVERSION}${EXTRACT_SUFX} \
 		&& ${ECHO} "Please upload the file ${WRKDIR}/${PORTNAME}-npm-cache-${DISTVERSION}${EXTRACT_SUFX}"
 
 pre-build:
diff --git a/www/remark42/distinfo b/www/remark42/distinfo
index f225c0e8ae4d..bb950cf86893 100644
--- a/www/remark42/distinfo
+++ b/www/remark42/distinfo
@@ -1,88 +1,86 @@
-TIMESTAMP = 1730278238
-SHA256 (remark42-npm-cache-1.14.0.tar.xz) = 095ddb71b2c222bb4dcc0118fcb28e499a1c988dae6d8dd8b7c7d243da8a806b
-SIZE (remark42-npm-cache-1.14.0.tar.xz) = 126622856
-SHA256 (umputun-remark42-v1.14.0_GH0.tar.gz) = 4bee8267bdc1999055b7ac5e97e71c8c1b1b7a5a7f7529a7c75d560625cbad6b
-SIZE (umputun-remark42-v1.14.0_GH0.tar.gz) = 6209776
+TIMESTAMP = 1767480304
+SHA256 (remark42-npm-cache-1.15.0.tar.xz) = 2c80a9961ec4e78758117798051e20a42e5bbaf0ec61beecec4d2e119c174e0e
+SIZE (remark42-npm-cache-1.15.0.tar.xz) = 129090496
+SHA256 (umputun-remark42-v1.15.0_GH0.tar.gz) = fa14a5f98907fecb84b5754e8cf6f3a34a7415d4b171f043cf5c033e205fec50
+SIZE (umputun-remark42-v1.15.0_GH0.tar.gz) = 6626366
 SHA256 (Depado-bfchroma-v2.0.0_GH0.tar.gz) = d999d4cf56554c15fe8d1651e4b5e87dbd5b399a0d4c7af7bc7b682e93da4f18
 SIZE (Depado-bfchroma-v2.0.0_GH0.tar.gz) = 7451
-SHA256 (PuerkitoBio-goquery-v1.9.2_GH0.tar.gz) = cac2d8e3e35ef9f8d2c747c6d06bf989e80806f28f03abc1e4c3bff16bca94bf
-SIZE (PuerkitoBio-goquery-v1.9.2_GH0.tar.gz) = 107482
-SHA256 (ajg-form-v1.5.1_GH0.tar.gz) = 085e8e98cf63d39241c6ba815b9a71d38808c3fadb6b522feb7fab6d123c44c7
-SIZE (ajg-form-v1.5.1_GH0.tar.gz) = 14946
-SHA256 (alecthomas-chroma-v2.13.0_GH0.tar.gz) = f3538d9db5df0d0325f3eaab7e3d465a6ec9ad6067051863ac52241f070824a0
-SIZE (alecthomas-chroma-v2.13.0_GH0.tar.gz) = 1032348
-SHA256 (andybalholm-cascadia-v1.3.2_GH0.tar.gz) = f30ebb75a9f43a30478c870dd6e372ac7ef64549f621eceb3b13fd91bfde80cb
-SIZE (andybalholm-cascadia-v1.3.2_GH0.tar.gz) = 35370
+SHA256 (PuerkitoBio-goquery-v1.11.0_GH0.tar.gz) = cf2219c56621e30c251b30340b6c401d20f7cb6fbf15db61dc74614b79463008
+SIZE (PuerkitoBio-goquery-v1.11.0_GH0.tar.gz) = 108983
+SHA256 (alecthomas-chroma-v2.21.1_GH0.tar.gz) = 8f7ae430fe212bc33bc2c786e278777ce54a6300d92fe33de93f5d1efba148f6
+SIZE (alecthomas-chroma-v2.21.1_GH0.tar.gz) = 1291281
+SHA256 (andybalholm-cascadia-v1.3.3_GH0.tar.gz) = a72cb392a9b6f161d200992fd7f080702ebd408f389cdf58e64be6b12ef46374
+SIZE (andybalholm-cascadia-v1.3.3_GH0.tar.gz) = 36630
 SHA256 (aymerick-douceur-v0.2.0_GH0.tar.gz) = ceed015cddc99b600ccbbd6aa0ebe39063554049f70153887d3df7c21fefedbb
 SIZE (aymerick-douceur-v0.2.0_GH0.tar.gz) = 20914
-SHA256 (cespare-xxhash-v2.2.0_GH0.tar.gz) = b8c684b9e5e136510913727e6a845b28f8176e55db827b11f17769fba970fe13
-SIZE (cespare-xxhash-v2.2.0_GH0.tar.gz) = 12334
+SHA256 (cespare-xxhash-v2.3.0_GH0.tar.gz) = 0e3dda07b03a5f3733506218860ecb2d50c0f01f16299b5d60902ef5158cbde5
+SIZE (cespare-xxhash-v2.3.0_GH0.tar.gz) = 12696
 SHA256 (davecgh-go-spew-v1.1.1_GH0.tar.gz) = 7d82b9bb7291adbe7498fe946920ab3e7fc9e6cbfc3b2294693fad00bf0dd17e
 SIZE (davecgh-go-spew-v1.1.1_GH0.tar.gz) = 42152
 SHA256 (dghubble-oauth1-v0.7.3_GH0.tar.gz) = 98480ffc97cf5ca3a80875263ceee0afdacf279b7148e91aec96a52a751efd99
 SIZE (dghubble-oauth1-v0.7.3_GH0.tar.gz) = 22410
 SHA256 (dgryski-go-rendezvous-9f7001d12a5f_GH0.tar.gz) = 29584550745fd4b8fce2e2f3def7b9d9ffe2b86cf9b6596b53a660c9bbfe27b6
 SIZE (dgryski-go-rendezvous-9f7001d12a5f_GH0.tar.gz) = 1699
-SHA256 (didip-tollbooth-v7.0.2_GH0.tar.gz) = 626b630bd30fd6837136eba59054a067f391ef4a41a40462cbd305cabde34c79
-SIZE (didip-tollbooth-v7.0.2_GH0.tar.gz) = 26112
-SHA256 (didip-tollbooth_chi-d662a7f6928f_GH0.tar.gz) = a64242f72a7c7274ce3ba6416fe3028c9c9c13edbfd633a0c2748f8641cbf60a
-SIZE (didip-tollbooth_chi-d662a7f6928f_GH0.tar.gz) = 1830
-SHA256 (dlclark-regexp2-v1.11.0_GH0.tar.gz) = c380209bd67b67859014f9bfd155aec4bfc4beb65f4a6aec37683b80186b18f7
-SIZE (dlclark-regexp2-v1.11.0_GH0.tar.gz) = 212532
-SHA256 (etcd-io-bbolt-v1.3.10_GH0.tar.gz) = 4991a0f2cfb4fd4530c450e3b913cf38fc8566d115c514ecbcef5946a7391400
-SIZE (etcd-io-bbolt-v1.3.10_GH0.tar.gz) = 125701
-SHA256 (go-chi-chi-v5.1.0_GH0.tar.gz) = dd18db378ff111bf8054c762b14890472fd6425bddff5265c2c180605faf382a
-SIZE (go-chi-chi-v5.1.0_GH0.tar.gz) = 85550
-SHA256 (go-chi-cors-v1.2.1_GH0.tar.gz) = d3fa42948b4b365db19c9a6639090c6869b968fa8c5ecb9635dce1a9bf4cf8d8
-SIZE (go-chi-cors-v1.2.1_GH0.tar.gz) = 8827
-SHA256 (go-chi-render-v1.0.3_GH0.tar.gz) = 4458232c0a5b600bd64d2b48bc90a8469fcd520e070bd390bbe5e43431999495
-SIZE (go-chi-render-v1.0.3_GH0.tar.gz) = 6165
-SHA256 (go-oauth2-oauth2-v4.5.2_GH0.tar.gz) = 199234a61701d288d379a37d12af32a9bfb9470a8f5f6c714b258405177f06de
-SIZE (go-oauth2-oauth2-v4.5.2_GH0.tar.gz) = 579318
-SHA256 (go-pkgz-auth-v1.24.2_GH0.tar.gz) = 06eb67cae46062005d48c91ff870898bbbd541c5028f4dd619ee413198104831
-SIZE (go-pkgz-auth-v1.24.2_GH0.tar.gz) = 273251
-SHA256 (go-pkgz-email-v0.5.0_GH0.tar.gz) = 916e50fa63c87226b6387e849f13bf63e67946ab6c704085798d9fbdcf565b73
-SIZE (go-pkgz-email-v0.5.0_GH0.tar.gz) = 100993
-SHA256 (go-pkgz-expirable-cache-v3.0.0_GH0.tar.gz) = 3d2b660047454e540b469b9469ae48b419374ef9731f68a290bd8147ad919d15
-SIZE (go-pkgz-expirable-cache-v3.0.0_GH0.tar.gz) = 9996
-SHA256 (go-pkgz-jrpc-v0.3.0_GH0.tar.gz) = 158ec6a2c711cee4608f5c55ecc0692c3e38b0c6c4f2af01aea008a64822d988
-SIZE (go-pkgz-jrpc-v0.3.0_GH0.tar.gz) = 15188
+SHA256 (didip-tollbooth-v8.0.1_GH0.tar.gz) = f7ed3df68963234b8df894a12a7488b8a817f2c2055905a580c36425c37ca10a
+SIZE (didip-tollbooth-v8.0.1_GH0.tar.gz) = 27443
+SHA256 (dlclark-regexp2-v1.11.5_GH0.tar.gz) = a43238d4a5e6a21fb5a4a8af2565a1843a175686be9c359f3e14ef9995a80ebe
+SIZE (dlclark-regexp2-v1.11.5_GH0.tar.gz) = 213678
+SHA256 (etcd-io-bbolt-v1.4.3_GH0.tar.gz) = 369a3daf16ad59d0b25e6a60f94d2ffb027d13e7e63af00626879276dda2f8be
+SIZE (etcd-io-bbolt-v1.4.3_GH0.tar.gz) = 170765
+SHA256 (go-chi-chi-v5.2.3_GH0.tar.gz) = 7099aa43243f3ed21dd5cde7a63c2a6b094035336b238bf31501fbc041a95cab
+SIZE (go-chi-chi-v5.2.3_GH0.tar.gz) = 87936
+SHA256 (go-chi-cors-v1.2.2_GH0.tar.gz) = ff07d782d7d56f31e53eb1a9c9cc50c3df92f3028d841b2d46a98c2a6a2ab861
+SIZE (go-chi-cors-v1.2.2_GH0.tar.gz) = 8908
+SHA256 (go-oauth2-oauth2-v4.5.4_GH0.tar.gz) = 36585e4e407d3e3d7ab9947802b5894cb52527e786e350beeda5e5dbef9966ca
+SIZE (go-oauth2-oauth2-v4.5.4_GH0.tar.gz) = 580365
+SHA256 (go-pkgz-auth-v2.1.1_GH0.tar.gz) = 9a4efe3fefab4afd98c8275de33ef84639bb7412ec577126cdad1fea16e7fd91
+SIZE (go-pkgz-auth-v2.1.1_GH0.tar.gz) = 270598
+SHA256 (go-pkgz-email-v0.6.0_GH0.tar.gz) = ad94d1a2e44bd371408155542267d783af49d245be81d1c67751108ef63dd495
+SIZE (go-pkgz-email-v0.6.0_GH0.tar.gz) = 101250
+SHA256 (go-pkgz-expirable-cache-v3.1.0_GH0.tar.gz) = 0ca5073124d2494132965cdefdca73add8f7115b0b23492760dd4c6411538c9f
+SIZE (go-pkgz-expirable-cache-v3.1.0_GH0.tar.gz) = 16417
+SHA256 (go-pkgz-jrpc-v0.4.0_GH0.tar.gz) = 12cf7647ec2d9637bfcc2191d9a3e6139eae49cd434eaebf42a7d07490d4ee5a
+SIZE (go-pkgz-jrpc-v0.4.0_GH0.tar.gz) = 14812
 SHA256 (go-pkgz-lcw-v2.0.0_GH0.tar.gz) = aa974c65f1dfdd69040238d0f6e4438d63b20083cc899c444f0083aee25f42e3
 SIZE (go-pkgz-lcw-v2.0.0_GH0.tar.gz) = 41497
-SHA256 (go-pkgz-lgr-v0.11.1_GH0.tar.gz) = 20af8601ac0bb4d75d45a67897e92f340e2a401548a2ff677004a8027871ce06
-SIZE (go-pkgz-lgr-v0.11.1_GH0.tar.gz) = 15100
-SHA256 (go-pkgz-notify-v1.1.1_GH0.tar.gz) = 606a4522151d4972585fe290cdf2b6bdce5d4f337c29968e573ebc18ea7ceedc
-SIZE (go-pkgz-notify-v1.1.1_GH0.tar.gz) = 18546
-SHA256 (go-pkgz-repeater-v1.1.3_GH0.tar.gz) = d3c6bdece4cd305e33efc64369aaab9ebf0452dffb7bd841b9e5a8e861607f43
-SIZE (go-pkgz-repeater-v1.1.3_GH0.tar.gz) = 6059
-SHA256 (go-pkgz-rest-v1.19.0_GH0.tar.gz) = 867491d3b07c03455c4534ed43c48d2e4c70ecd449e73d1094349b7e3d637bf2
-SIZE (go-pkgz-rest-v1.19.0_GH0.tar.gz) = 31725
+SHA256 (go-pkgz-lgr-v0.12.1_GH0.tar.gz) = 380744c93b53ae8d4c640e48bf3d3e89cba1cecae86b7c7961ade970f452a0cd
+SIZE (go-pkgz-lgr-v0.12.1_GH0.tar.gz) = 24332
+SHA256 (go-pkgz-notify-v1.3.0_GH0.tar.gz) = 9bb2daebbc20d4f9fa486ad551565acb95784eee31ba350b0b398c1d22e79525
+SIZE (go-pkgz-notify-v1.3.0_GH0.tar.gz) = 19077
+SHA256 (go-pkgz-repeater-v1.2.0_GH0.tar.gz) = 3df4ab3b1a682949ada5616a8bbe600587ac73ccacf94532a2a5c02562ed8009
+SIZE (go-pkgz-repeater-v1.2.0_GH0.tar.gz) = 7010
+SHA256 (go-pkgz-repeater-v2.2.0_GH0.tar.gz) = fb108701aed594998de6ebdd45cf4c97384319ce8fd7aebc12184e285e772dbd
+SIZE (go-pkgz-repeater-v2.2.0_GH0.tar.gz) = 10077
+SHA256 (go-pkgz-rest-v1.20.6_GH0.tar.gz) = 8103aae8dfe9110ba6f9884797c274a91a0bef5cb94a62427253922edbef14c8
+SIZE (go-pkgz-rest-v1.20.6_GH0.tar.gz) = 36676
+SHA256 (go-pkgz-routegroup-v1.6.0_GH0.tar.gz) = d6116ec617169d830598bfa7eeeaa5854c2fea9166dd5940fb41a186f741905e
+SIZE (go-pkgz-routegroup-v1.6.0_GH0.tar.gz) = 29359
 SHA256 (go-pkgz-syncs-v1.3.2_GH0.tar.gz) = 78c90265f7617a9eda774c39deb5f17cd87dfdf161402b3e4dc6e5dac48c0c68
 SIZE (go-pkgz-syncs-v1.3.2_GH0.tar.gz) = 9087
 SHA256 (go-yaml-yaml-v3.0.1_GH0.tar.gz) = cf05411540d3e6ef8f1fd88434b34f94cedaceb540329031d80e23b74540c4e5
 SIZE (go-yaml-yaml-v3.0.1_GH0.tar.gz) = 91173
-SHA256 (golang-jwt-jwt-v3.2.2_GH0.tar.gz) = 4cd18a4bb5d949244f137fed0884f93695ff268cb9efaba71ddcf4c50b17efe0
-SIZE (golang-jwt-jwt-v3.2.2_GH0.tar.gz) = 39887
-SHA256 (golang-crypto-v0.25.0_GH0.tar.gz) = 44619ce0bc1901464e14925487f5152b850b50e214cc12021dbe177f22444749
-SIZE (golang-crypto-v0.25.0_GH0.tar.gz) = 1796762
-SHA256 (golang-image-v0.18.0_GH0.tar.gz) = dd23e3256a92667d201fd031a44294e4d54812e0f6fc69365da3bb4fcf3c730d
-SIZE (golang-image-v0.18.0_GH0.tar.gz) = 5103909
-SHA256 (golang-net-v0.27.0_GH0.tar.gz) = 7366b073182cd029815e724a6584cdf01864f46f108e1b1f6beb04597ebacaea
-SIZE (golang-net-v0.27.0_GH0.tar.gz) = 1454586
-SHA256 (golang-oauth2-v0.21.0_GH0.tar.gz) = cff4b764ed7b362dfbfb69a96064498b6e9533e3eb1d5904aebc6ef085b7e602
-SIZE (golang-oauth2-v0.21.0_GH0.tar.gz) = 98393
-SHA256 (golang-snappy-v0.0.4_GH0.tar.gz) = 77df678795596f9dfecb5744deb984633d780460a7e9a59e0c7ecfe2052b644f
-SIZE (golang-snappy-v0.0.4_GH0.tar.gz) = 66129
-SHA256 (golang-sync-v0.7.0_GH0.tar.gz) = 39bf56d2dc04d16baabbf5eb5d847a2ad68762b5efde7ca3a8fdb24bdcdd9461
-SIZE (golang-sync-v0.7.0_GH0.tar.gz) = 18181
-SHA256 (golang-sys-v0.22.0_GH0.tar.gz) = b5a84a20ff327803ed47aefd837a3264d511b3f644017cb8e050ff1f5bd22471
-SIZE (golang-sys-v0.22.0_GH0.tar.gz) = 1498230
-SHA256 (golang-text-v0.16.0_GH0.tar.gz) = 6df270cb3d696f882857c8ce02233e7f08d5ff900986e1ac669b47e088b18779
-SIZE (golang-text-v0.16.0_GH0.tar.gz) = 8972326
+SHA256 (golang-jwt-jwt-v5.3.0_GH0.tar.gz) = 946655610d8b790757e4d31c8be44860fd45e842370d494140c25296520a9e1c
+SIZE (golang-jwt-jwt-v5.3.0_GH0.tar.gz) = 61993
+SHA256 (golang-crypto-v0.46.0_GH0.tar.gz) = 9dfbc96ebeb56e1bf71cd742c2a49494df9e68c4acf141bb6312e32b6c9e9ad1
+SIZE (golang-crypto-v0.46.0_GH0.tar.gz) = 2148802
+SHA256 (golang-image-v0.34.0_GH0.tar.gz) = 0fbd1db0308d71fb2fb642bf6dcee8ecde32a6f41df55c395fb2cf1613ee4609
+SIZE (golang-image-v0.34.0_GH0.tar.gz) = 5111265
+SHA256 (golang-net-v0.48.0_GH0.tar.gz) = 999b4eeae1b018ce0e2353cd656b47297c57fedcb9a419904ff856de0438898f
+SIZE (golang-net-v0.48.0_GH0.tar.gz) = 1528679
+SHA256 (golang-oauth2-v0.34.0_GH0.tar.gz) = 7b5aa72ed4631661a3a8fafbc779724296b57d946bd2c0d5e513e48c8e83329f
+SIZE (golang-oauth2-v0.34.0_GH0.tar.gz) = 100945
+SHA256 (golang-snappy-v1.0.0_GH0.tar.gz) = 433e6bf6a8380f57dd92020542d865802124e4a9139dc0b1fab5ff51704310bf
+SIZE (golang-snappy-v1.0.0_GH0.tar.gz) = 66168
+SHA256 (golang-sync-v0.19.0_GH0.tar.gz) = bb77b590cf5b3703d30cbd19a4ac7ed5f0fb4af67fbc87340ba06023e81db533
+SIZE (golang-sync-v0.19.0_GH0.tar.gz) = 18196
+SHA256 (golang-sys-v0.39.0_GH0.tar.gz) = 2af1491dde3e8296440bf95f99f2e866b317d3842c8334aa49e1c55f397a3ae7
+SIZE (golang-sys-v0.39.0_GH0.tar.gz) = 1535479
+SHA256 (golang-text-v0.32.0_GH0.tar.gz) = 593f4edcbb602157527fbe725ee5ca668cade3d33cd0d12d9f0b13ac1db50f7b
+SIZE (golang-text-v0.32.0_GH0.tar.gz) = 8970019
 SHA256 (google-uuid-v1.6.0_GH0.tar.gz) = ee63376b5675376c60e055ed66e5f3651ccc703bd580c022b8ad00cea309252d
 SIZE (google-uuid-v1.6.0_GH0.tar.gz) = 20896
-SHA256 (googleapis-google-cloud-go-v0.5.0_GH0.tar.gz) = 47f397f62b434ea798a72a4a8e8a6d41130e55a791832e6229a76f70194fed16
-SIZE (googleapis-google-cloud-go-v0.5.0_GH0.tar.gz) = 814132
+SHA256 (googleapis-google-cloud-go-v0.9.0_GH0.tar.gz) = 4303332ae35efe09cf9f7fdd81e28014cef996e485f96c7497fcefc3cc48f1ac
+SIZE (googleapis-google-cloud-go-v0.9.0_GH0.tar.gz) = 1054667
 SHA256 (gorilla-css-v1.0.1_GH0.tar.gz) = c56d3dd69a9922440c3a79246ff3b3fe8114128eac94605e3efcd9c465c57e4a
 SIZE (gorilla-css-v1.0.1_GH0.tar.gz) = 7769
 SHA256 (gorilla-feeds-v1.2.0_GH0.tar.gz) = 75174af287f6e749e6e447dfd0b1b4528a0c7945a030b397595d416455943f25
@@ -97,38 +95,38 @@ SHA256 (hashicorp-golang-lru-v2.0.7_GH0.tar.gz) = 312697d0bf6e6bb44e66a94b2a8a07
 SIZE (hashicorp-golang-lru-v2.0.7_GH0.tar.gz) = 23860
 SHA256 (jessevdk-go-flags-v1.6.1_GH0.tar.gz) = 01bae681937db1bcab792da59a859392cb55b678c7a3756a18e29a0ff7a462aa
 SIZE (jessevdk-go-flags-v1.6.1_GH0.tar.gz) = 60612
-SHA256 (klauspost-compress-v1.17.9_GH0.tar.gz) = 8130a8314f6f296bf43a0f07021fe51a994c2069390afd45e57496525312506c
-SIZE (klauspost-compress-v1.17.9_GH0.tar.gz) = 38751164
+SHA256 (klauspost-compress-v1.18.2_GH0.tar.gz) = 08d94e493acd70a19ec7010b044a3aba8186aae53f3106d64c91d7ad75a671f6
+SIZE (klauspost-compress-v1.18.2_GH0.tar.gz) = 39076656
 SHA256 (kyokomi-emoji-v2.2.13_GH0.tar.gz) = abc1e097e6831fc7957710611c59ee34ee26378ab3a0cbbc9172435ba71279f0
 SIZE (kyokomi-emoji-v2.2.13_GH0.tar.gz) = 104791
 SHA256 (microcosm-cc-bluemonday-v1.0.27_GH0.tar.gz) = 02f57c2cc795a7ec9d74354d182fcff5cc69734c7a46f82b33b656f8bdb19703
 SIZE (microcosm-cc-bluemonday-v1.0.27_GH0.tar.gz) = 169828
-SHA256 (mongodb-mongo-go-driver-v1.16.0_GH0.tar.gz) = c8b1ace875aa9f9ba30abdf836d1c7fca9239683496075787422fb33c7b685b5
-SIZE (mongodb-mongo-go-driver-v1.16.0_GH0.tar.gz) = 5505413
+SHA256 (mongodb-mongo-go-driver-v1.17.6_GH0.tar.gz) = 4f5dcde43b10a59e047b518039bea5beeeda79183ecd113e622e9443319ed566
+SIZE (mongodb-mongo-go-driver-v1.17.6_GH0.tar.gz) = 5567337
 SHA256 (montanaflynn-stats-v0.7.1_GH0.tar.gz) = 97e9258173992d3caee6f7d7ac175d559dfc086388ad6c65fde439b808e1b725
 SIZE (montanaflynn-stats-v0.7.1_GH0.tar.gz) = 52136
 SHA256 (pmezard-go-difflib-v1.0.0_GH0.tar.gz) = 28f3dc1b5c0efd61203ab07233f774740d3bf08da4d8153fb5310db6cea0ebda
 SIZE (pmezard-go-difflib-v1.0.0_GH0.tar.gz) = 11398
-SHA256 (redis-go-redis-v9.4.0_GH0.tar.gz) = d2bd26be4dcb2368b6d4fbab2759b61385b0b36f8b8ccf80ad211f0594785973
-SIZE (redis-go-redis-v9.4.0_GH0.tar.gz) = 294300
+SHA256 (redis-go-redis-v9.17.2_GH0.tar.gz) = 299928f824d0644ebb7a76e368479f5b2cc94c5c81344ac783c6c76c28ae217f
+SIZE (redis-go-redis-v9.17.2_GH0.tar.gz) = 4996805
 SHA256 (rrivera-identicon-d5ba35832c0d_GH0.tar.gz) = 25968d56488ac24dfe008becbd4b950c98c3215277cd9da7009ae5521d6e6f94
 SIZE (rrivera-identicon-d5ba35832c0d_GH0.tar.gz) = 24885
-SHA256 (rs-xid-v1.5.0_GH0.tar.gz) = 105fc29a13c39f558a5ccf70bd27eded738628328bad682e24e04c3a798d3196
-SIZE (rs-xid-v1.5.0_GH0.tar.gz) = 11534
+SHA256 (rs-xid-v1.6.0_GH0.tar.gz) = dd4293a4934a37e6f4a1a31e3aa7d5c7dc2be23853697587774ca922b76a3822
+SIZE (rs-xid-v1.6.0_GH0.tar.gz) = 12041
 SHA256 (russross-blackfriday-v2.1.0_GH0.tar.gz) = a13af0fc5305713f5154693feaf654d024689efea76390091a5e8c757335b4f4
 SIZE (russross-blackfriday-v2.1.0_GH0.tar.gz) = 92896
 SHA256 (skip2-go-qrcode-da1b6568686e_GH0.tar.gz) = af179c37da861a43242fb4383186724b34866d7b5bd3e54ca44031a2b9f92046
 SIZE (skip2-go-qrcode-da1b6568686e_GH0.tar.gz) = 36693
-SHA256 (slack-go-slack-v0.12.5_GH0.tar.gz) = ea24dbb70860269c3a0dd467486fe48d7fe5535687378830ff76a2bfe9a13400
-SIZE (slack-go-slack-v0.12.5_GH0.tar.gz) = 386148
-SHA256 (stretchr-testify-v1.9.0_GH0.tar.gz) = ee651d4d4427d55096007190398102383498e6b5cf97ea9e89ad6e72b4115fbb
-SIZE (stretchr-testify-v1.9.0_GH0.tar.gz) = 108663
+SHA256 (slack-go-slack-v0.17.3_GH0.tar.gz) = c10ec15bbf68356ceac20d1761e03211a26aae7fd536f2a3573618c94bee9c93
+SIZE (slack-go-slack-v0.17.3_GH0.tar.gz) = 416151
+SHA256 (stretchr-testify-v1.11.1_GH0.tar.gz) = 4b51fbc0f19e42841013748e6d527314e1d0e7255122766b5fca1d35b4630c69
+SIZE (stretchr-testify-v1.11.1_GH0.tar.gz) = 116832
 SHA256 (uber-go-goleak-v1.3.0_GH0.tar.gz) = 4813e7694736f4d7fd1aad195d942f40ffca448c29bff3282ba6e92eaba4e0cd
 SIZE (uber-go-goleak-v1.3.0_GH0.tar.gz) = 20057
 SHA256 (xdg-go-pbkdf2-v1.0.0_GH0.tar.gz) = 2eec55146447215eb58190e04c546c93cad7f369ac9b5aacd9dc11330d756757
 SIZE (xdg-go-pbkdf2-v1.0.0_GH0.tar.gz) = 7758
-SHA256 (xdg-go-scram-v1.1.2_GH0.tar.gz) = 66e8e73966d87b7266957dbe421313b335c455907a36b0115ea81bdf7d1c9d19
-SIZE (xdg-go-scram-v1.1.2_GH0.tar.gz) = 19334
+SHA256 (xdg-go-scram-v1.2.0_GH0.tar.gz) = 82fb3c673cd698ae14b301c86cd58541c0a678d8fd4f8da0e580ee933811199b
+SIZE (xdg-go-scram-v1.2.0_GH0.tar.gz) = 32411
 SHA256 (xdg-go-stringprep-v1.0.4_GH0.tar.gz) = dc2abbf4f868d71e035d96986bc5c25921046d0e34c7675b6c1d555589611cf0
 SIZE (xdg-go-stringprep-v1.0.4_GH0.tar.gz) = 31008
 SHA256 (youmark-pkcs8-a2c0da244d78_GH0.tar.gz) = 088a77ed48ea4b35eed3377e4032381080a8f67d5deac1c7301008e5d9211418
diff --git a/www/remark42/files/remark.in b/www/remark42/files/remark.in
index c74227e83a90..caf4ccfdb555 100644
--- a/www/remark42/files/remark.in
+++ b/www/remark42/files/remark.in
@@ -61,11 +61,18 @@ load_rc_config ${name}
 : ${remark_admin_type:="shared"}
 : ${remark_admin_rpc_api:=""}
 : ${remark_admin_rpc_timeout:="5s"}
+: ${remark_admin_rpc_auth_user:=""}
+: ${remark_admin_rpc_auth_passwd:=""}
+: ${remark_admin_rpc_secret_per_site:=""}
 : ${remark_admin_shared_id:=""}
 : ${remark_admin_shared_email:=""}
 : ${remark_backup_path:="%%REMARK_DATADIR%%/backup"}
 : ${remark_backup_max:="10"}
 : ${remark_cache_type:="mem"}
+: ${remark_cache_redis_addr:=""}
+: ${remark_cache_max_items:=""}
+: ${remark_cache_max_value:=""}
+: ${remark_cache_max_size:=""}
 : ${remark_avatar_type:="fs"}
 : ${remark_avatar_fs_path:="%%REMARK_DATADIR%%/avatars"}
 : ${remark_avatar_bolt_file:="%%REMARK_DATADIR%%/avatars.db"}
@@ -84,6 +91,10 @@ load_rc_config ${name}
 : ${remark_image_resize_width:="2400"}
 : ${remark_image_resize_height:="900"}
 : ${remark_auth_same_site:="default"}
+: ${remark_auth_apple_cid:=""}
+: ${remark_auth_apple_tid:=""}
+: ${remark_auth_apple_kid:=""}
+: ${remark_auth_apple_private_key_filepath:=""}
 : ${remark_auth_google_cid:=""}
 : ${remark_auth_google_csec:=""}
 : ${remark_auth_facebook_cid:=""}
@@ -96,6 +107,8 @@ load_rc_config ${name}
 : ${remark_auth_twitter_csec:=""}
 : ${remark_auth_patreon_cid:=""}
 : ${remark_auth_patreon_csec:=""}
+: ${remark_auth_discord_cid:=""}
+: ${remark_auth_discord_csec:=""}
 : ${remark_auth_yandex_cid:=""}
 : ${remark_auth_yandex_csec:=""}
 : ${remark_auth_telegram:=""}
@@ -211,9 +224,9 @@ remark_precmd()
                 err 1 "remark_admin_type has to be either 'shared' or 'rpc'"
                 ;;
         esac
-	export_variables ADMIN_SHARED_ID ADMIN_SHARED_EMAIL BACKUP_PATH
+	export_variables ADMIN_SHARED_ID ADMIN_SHARED_EMAIL ADMIN_RPC_SECRET_PER_SITE BACKUP_PATH
 	export MAX_BACKUP_FILES="${remark_backup_max}"
-	export_variables CACHE_TYPE AVATAR_TYPE
+	export_variables CACHE_TYPE CACHE_REDIS_ADDR CACHE_MAX_ITEMS CACHE_MAX_VALUE CACHE_MAX_SIZE AVATAR_TYPE
 	case "${AVATAR_TYPE}" in
 	fs)
 		export_variable AVATAR_FS_PATH
@@ -245,7 +258,9 @@ remark_precmd()
 		;;
 	esac
 	export_variables IMAGE_MAX_SIZE IMAGE_RESIZE_WIDTH IMAGE_RESIZE_HEIGHT AUTH_SAME_SITE AUTH_TELEGRAM
-	for _provider in google facebook microsoft github twitter patreon yandex; do
+	# Export Apple auth separately due to different parameters
+	export_variables AUTH_APPLE_CID AUTH_APPLE_TID AUTH_APPLE_KID AUTH_APPLE_PRIVATE_KEY_FILEPATH
+	for _provider in google facebook microsoft github twitter patreon discord yandex; do
 		_provider_upper="$(echo ${_provider} | tr a-z A-Z)"
 		export_variables "AUTH_${_provider_upper}_CID" "AUTH_${_provider_upper}_CSEC"
 	done