diff --git a/docs/developer-orientation.md b/docs/developer-orientation.md index 894d813..dfc1319 100644 --- a/docs/developer-orientation.md +++ b/docs/developer-orientation.md @@ -96,7 +96,7 @@ Total transitive production dependencies: 137 * (31) better-sqlite3: SQLite3 is the best database, and this is the best library for it. * (27) @cloudrac3r/pug: Language for dynamic web pages. This is my fork. (I released code that hadn't made it to npm, and removed the heavy pug-filters feature.) * (16) stream-mime-type@1: This seems like the best option. Version 1 is used because version 2 is ESM-only. -* (9) h3: Web server. OOYE needs this for the appservice listener, authmedia proxy, and more. 14 transitive dependencies is on the low end for a web server. +* (9) h3: Web server. OOYE needs this for the appservice listener, authmedia proxy, self-service, and more. * (11) sharp: Image resizing and compositing. OOYE needs this for the emoji sprite sheets. ### 🪱 diff --git a/package-lock.json b/package-lock.json index 50ff07c..9a11970 100644 --- a/package-lock.json +++ b/package-lock.json @@ -32,11 +32,11 @@ "h3": "^1.15.1", "heatsync": "^2.7.2", "htmx.org": "^2.0.4", - "lru-cache": "^10.4.3", + "lru-cache": "^11.0.2", "minimist": "^1.2.8", "prettier-bytes": "^1.0.4", "sharp": "^0.33.4", - "snowtransfer": "^0.12.0", + "snowtransfer": "^0.13.1", "stream-mime-type": "^1.0.2", "try-to-catch": "^3.0.1", "uqr": "^0.1.2", @@ -143,9 +143,9 @@ } }, "node_modules/@chriscdn/promise-semaphore": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/@chriscdn/promise-semaphore/-/promise-semaphore-2.0.9.tgz", - "integrity": "sha512-kKXJcm5gM8FN8O8U20H19/85b8R33K0Q2u5cnm9mfblK/7QcNChlOhCTWgnrr8wYiuF1ZbYIZcioxW79QfjnmQ==" + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@chriscdn/promise-semaphore/-/promise-semaphore-2.0.10.tgz", + "integrity": "sha512-NagoHAZEYISDYYprsHe+x2BEcD6GKhTpEreI8BM1qgtHOtCS3lbwRvvTQxzAxU8JVSmw7ep/ROLv3Ng/MPcMHg==" }, "node_modules/@cloudcmd/stub": { "version": "4.0.1", @@ -926,10 +926,9 @@ "dev": true }, "node_modules/@stackoverflow/stacks": { - "version": "2.5.4", - "resolved": "https://registry.npmjs.org/@stackoverflow/stacks/-/stacks-2.5.4.tgz", - "integrity": "sha512-k11SesaE+bZXNoa7IDinkpmu1BgVq7xIV1Gl1fZ5SM00hPi2S/vCyjIupLvJbSt1PAJTlnpBoUIM1ubb0Y7qFg==", - "license": "MIT", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/@stackoverflow/stacks/-/stacks-2.7.1.tgz", + "integrity": "sha512-aKqVyPigMiMUpbGDA3egM2ORmaNGCJQ/e+WJZJgnj0pc/xBpiFdYSojsl/tP3eGKg0cvU7EldGzzvfwFYwUbfA==", "dependencies": { "@hotwired/stimulus": "^3.2.2", "@popperjs/core": "^2.11.8" @@ -1076,11 +1075,10 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.17.19", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.19.tgz", - "integrity": "sha512-LEwC7o1ifqg/6r2gn9Dns0f1rhK+fPFDoMiceTJ6kWmVk6bgXBI/9IOWfVan4WiAavK9pIVWdX0/e3J+eEUh5A==", + "version": "20.17.24", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.24.tgz", + "integrity": "sha512-d7fGCyB96w9BnWQrOsJtpyiSaBcAYYr75bnK6ZRjDbql2cGLj/3GsL5OYmLPNq76l7Gf2q4Rv9J2o6h5CrD9sA==", "dev": true, - "license": "MIT", "dependencies": { "undici-types": "~6.19.2" } @@ -1426,18 +1424,6 @@ "node": ">=16.15.0" } }, - "node_modules/cloudstorm/node_modules/snowtransfer": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/snowtransfer/-/snowtransfer-0.13.1.tgz", - "integrity": "sha512-EMrvqCk0JVcpJILTV9JEvUi3VyC5kohcza9d9l034B+cXwLbOWKFhzKULBPe/VqTdx+aqFpdYCdb1/HDrRiZ1Q==", - "license": "MIT", - "dependencies": { - "discord-api-types": "^0.37.119" - }, - "engines": { - "node": ">=16.15.0" - } - }, "node_modules/color": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", @@ -1872,10 +1858,9 @@ } }, "node_modules/heatsync": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/heatsync/-/heatsync-2.7.2.tgz", - "integrity": "sha512-1djRg4eufv5q+CRy5SuZSiV3j53KIDSGkDubJB+vXY1OE+AnTkw5HIJxi+0vEjHjX+wbH5syYQunQ/ElAgoEmg==", - "license": "MIT", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/heatsync/-/heatsync-2.8.1.tgz", + "integrity": "sha512-BipRCTh6jqndV5FsebdJFQHRKb5J4ecVA7Kqv0gktb/MorrEwgTEoTNSITjEK59heGyP+QnTSj6LyJDFsnVqvQ==", "dependencies": { "backtracker": "^4.0.0" }, @@ -2081,10 +2066,12 @@ } }, "node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "license": "ISC" + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.2.tgz", + "integrity": "sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==", + "engines": { + "node": "20 || >=22" + } }, "node_modules/make-dir": { "version": "4.0.0", @@ -2283,6 +2270,12 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true + }, "node_modules/peek-readable": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.1.0.tgz", @@ -2683,10 +2676,9 @@ } }, "node_modules/snowtransfer": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/snowtransfer/-/snowtransfer-0.12.0.tgz", - "integrity": "sha512-EmVTAeSXtA7ZlTqwmZxe5JwRTm4FOXEOqMOzGu8fdVSoqXjcWgQ8IfaIRu/54FamOMjOmcxnpTyNPj5MUqWxpA==", - "license": "MIT", + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/snowtransfer/-/snowtransfer-0.13.1.tgz", + "integrity": "sha512-EMrvqCk0JVcpJILTV9JEvUi3VyC5kohcza9d9l034B+cXwLbOWKFhzKULBPe/VqTdx+aqFpdYCdb1/HDrRiZ1Q==", "dependencies": { "discord-api-types": "^0.37.119" }, diff --git a/package.json b/package.json index 7092877..6f1f6aa 100644 --- a/package.json +++ b/package.json @@ -41,11 +41,11 @@ "h3": "^1.15.1", "heatsync": "^2.7.2", "htmx.org": "^2.0.4", - "lru-cache": "^10.4.3", + "lru-cache": "^11.0.2", "minimist": "^1.2.8", "prettier-bytes": "^1.0.4", "sharp": "^0.33.4", - "snowtransfer": "^0.12.0", + "snowtransfer": "^0.13.1", "stream-mime-type": "^1.0.2", "try-to-catch": "^3.0.1", "uqr": "^0.1.2", diff --git a/scripts/setup.js b/scripts/setup.js index d949580..15c17cd 100644 --- a/scripts/setup.js +++ b/scripts/setup.js @@ -382,7 +382,7 @@ function defineEchoHandler() { // set profile data on discord... const avatarImageBuffer = await fetch("https://cadence.moe/friends/out_of_your_element.png").then(res => res.arrayBuffer()) await discord.snow.user.updateSelf({avatar: "data:image/png;base64," + Buffer.from(avatarImageBuffer).toString("base64")}) - await discord.snow.requestHandler.request(`/applications/@me`, {}, "patch", "json", {description: "Powered by **Out Of Your Element**\nhttps://gitdab.com/cadence/out-of-your-element"}) + await discord.snow.bot.updateApplicationInfo({description: "Powered by **Out Of Your Element**\nhttps://gitdab.com/cadence/out-of-your-element"}) console.log("✅ Discord profile updated...") // set profile data on homeserver... diff --git a/src/web/pug/guild.pug b/src/web/pug/guild.pug index 06705b3..92ffa1b 100644 --- a/src/web/pug/guild.pug +++ b/src/web/pug/guild.pug @@ -72,7 +72,7 @@ block body button.s-btn.s-btn__filled#invite-button Invite div .s-card.d-flex.ai-center.jc-center(style="min-width: 132px; min-height: 132px;") - button.s-btn(class=space_id ? "s-btn__muted" : "s-btn__filled" hx-get=`/qr?guild_id=${guild_id}` hx-indicator="closest button" hx-swap="outerHTML" hx-disabled-elt="this") Show QR + button.s-btn(class=space_id ? "s-btn__muted" : "s-btn__filled" hx-get=rel(`/qr?guild_id=${guild_id}`) hx-indicator="closest button" hx-swap="outerHTML" hx-disabled-elt="this") Show QR if space_id h3.mt32.fs-category Privacy level diff --git a/src/web/pug/guild_access_denied.pug b/src/web/pug/guild_access_denied.pug index 43cf361..42fea7b 100644 --- a/src/web/pug/guild_access_denied.pug +++ b/src/web/pug/guild_access_denied.pug @@ -6,7 +6,7 @@ block body != icons.Spots.SpotEmptyXL p You need to log in to manage your servers. .d-flex.jc-center.g8 - a.s-btn.s-btn__icon.s-btn__blurple.s-btn__filled(href=rel("/oauth")) + a.s-btn.s-btn__icon.s-btn__featured.s-btn__filled(href=rel("/oauth")) != icons.Icons.IconDiscord = ` Log in with Discord` a.s-btn.s-btn__icon.s-btn__matrix.s-btn__filled(href=rel("/log-in-with-matrix")) diff --git a/src/web/pug/includes/template.pug b/src/web/pug/includes/template.pug index ae395c5..d9f1c30 100644 --- a/src/web/pug/includes/template.pug +++ b/src/web/pug/includes/template.pug @@ -79,8 +79,6 @@ html(lang="en") .s-btn__dropdown:has(+ :popover-open) { background-color: var(--theme-topbar-item-background-hover, var(--black-200)) !important; } - +define-theme("blurple", "236", "84%", "64%") - +define-themed-button("blurple", "blurple") +define-themed-button("matrix", "black") body.themed.theme-system header.s-topbar @@ -97,7 +95,7 @@ html(lang="en") = ` Log in` span(class="sm:d-none")= ` with Matrix` if !session.data.userID - a.s-btn.s-btn__icon.s-btn__blurple.s-btn__outlined.as-center(href=rel("/oauth")) + a.s-btn.s-btn__icon.s-btn__featured.s-btn__outlined.as-center(href=rel("/oauth")) != icons.Icons.IconDiscord = ` Log in` span(class="sm:d-none")= ` with Discord`