From d1ad7466b372f58c149d1e97a84fcbfa122e9e53 Mon Sep 17 00:00:00 2001 From: BlackDex Date: Wed, 9 Jul 2025 19:01:07 +0200 Subject: [PATCH] Update web-vault and admin resources - Updated web-vault to v2025.7.0 - Updated admin JS and CSS files Signed-off-by: BlackDex --- docker/DockerSettings.yaml | 4 +- docker/Dockerfile.alpine | 12 +++--- docker/Dockerfile.debian | 12 +++--- src/static/scripts/bootstrap.bundle.js | 6 +-- src/static/scripts/bootstrap.css | 2 +- src/static/scripts/datatables.css | 17 +++++--- src/static/scripts/datatables.js | 42 ++++++++++++++----- .../templates/scss/vaultwarden.scss.hbs | 4 ++ 8 files changed, 64 insertions(+), 35 deletions(-) diff --git a/docker/DockerSettings.yaml b/docker/DockerSettings.yaml index e7b9f185..ffecb1ad 100644 --- a/docker/DockerSettings.yaml +++ b/docker/DockerSettings.yaml @@ -1,6 +1,6 @@ --- -vault_version: "v2025.6.0" -vault_image_digest: "sha256:494be10bd99d9d05c7bec13dad71ad99102ea920de9a5d3587529709a64fb42c" +vault_version: "v2025.7.0" +vault_image_digest: "sha256:f6ac819a2cd9e226f2cd2ec26196ede94a41e672e9672a11b5f307a19278b15e" # Cross Compile Docker Helper Scripts v1.6.1 # We use the linux/amd64 platform shell scripts since there is no difference between the different platform scripts # https://github.com/tonistiigi/xx | https://hub.docker.com/r/tonistiigi/xx/tags diff --git a/docker/Dockerfile.alpine b/docker/Dockerfile.alpine index 70388bfd..a1e724e6 100644 --- a/docker/Dockerfile.alpine +++ b/docker/Dockerfile.alpine @@ -19,15 +19,15 @@ # - From https://hub.docker.com/r/vaultwarden/web-vault/tags, # click the tag name to view the digest of the image it currently points to. # - From the command line: -# $ docker pull docker.io/vaultwarden/web-vault:v2025.6.0 -# $ docker image inspect --format "{{.RepoDigests}}" docker.io/vaultwarden/web-vault:v2025.6.0 -# [docker.io/vaultwarden/web-vault@sha256:494be10bd99d9d05c7bec13dad71ad99102ea920de9a5d3587529709a64fb42c] +# $ docker pull docker.io/vaultwarden/web-vault:v2025.7.0 +# $ docker image inspect --format "{{.RepoDigests}}" docker.io/vaultwarden/web-vault:v2025.7.0 +# [docker.io/vaultwarden/web-vault@sha256:f6ac819a2cd9e226f2cd2ec26196ede94a41e672e9672a11b5f307a19278b15e] # # - Conversely, to get the tag name from the digest: -# $ docker image inspect --format "{{.RepoTags}}" docker.io/vaultwarden/web-vault@sha256:494be10bd99d9d05c7bec13dad71ad99102ea920de9a5d3587529709a64fb42c -# [docker.io/vaultwarden/web-vault:v2025.6.0] +# $ docker image inspect --format "{{.RepoTags}}" docker.io/vaultwarden/web-vault@sha256:f6ac819a2cd9e226f2cd2ec26196ede94a41e672e9672a11b5f307a19278b15e +# [docker.io/vaultwarden/web-vault:v2025.7.0] # -FROM --platform=linux/amd64 docker.io/vaultwarden/web-vault@sha256:494be10bd99d9d05c7bec13dad71ad99102ea920de9a5d3587529709a64fb42c AS vault +FROM --platform=linux/amd64 docker.io/vaultwarden/web-vault@sha256:f6ac819a2cd9e226f2cd2ec26196ede94a41e672e9672a11b5f307a19278b15e AS vault ########################## ALPINE BUILD IMAGES ########################## ## NOTE: The Alpine Base Images do not support other platforms then linux/amd64 diff --git a/docker/Dockerfile.debian b/docker/Dockerfile.debian index d343cbff..6bd0cdfc 100644 --- a/docker/Dockerfile.debian +++ b/docker/Dockerfile.debian @@ -19,15 +19,15 @@ # - From https://hub.docker.com/r/vaultwarden/web-vault/tags, # click the tag name to view the digest of the image it currently points to. # - From the command line: -# $ docker pull docker.io/vaultwarden/web-vault:v2025.6.0 -# $ docker image inspect --format "{{.RepoDigests}}" docker.io/vaultwarden/web-vault:v2025.6.0 -# [docker.io/vaultwarden/web-vault@sha256:494be10bd99d9d05c7bec13dad71ad99102ea920de9a5d3587529709a64fb42c] +# $ docker pull docker.io/vaultwarden/web-vault:v2025.7.0 +# $ docker image inspect --format "{{.RepoDigests}}" docker.io/vaultwarden/web-vault:v2025.7.0 +# [docker.io/vaultwarden/web-vault@sha256:f6ac819a2cd9e226f2cd2ec26196ede94a41e672e9672a11b5f307a19278b15e] # # - Conversely, to get the tag name from the digest: -# $ docker image inspect --format "{{.RepoTags}}" docker.io/vaultwarden/web-vault@sha256:494be10bd99d9d05c7bec13dad71ad99102ea920de9a5d3587529709a64fb42c -# [docker.io/vaultwarden/web-vault:v2025.6.0] +# $ docker image inspect --format "{{.RepoTags}}" docker.io/vaultwarden/web-vault@sha256:f6ac819a2cd9e226f2cd2ec26196ede94a41e672e9672a11b5f307a19278b15e +# [docker.io/vaultwarden/web-vault:v2025.7.0] # -FROM --platform=linux/amd64 docker.io/vaultwarden/web-vault@sha256:494be10bd99d9d05c7bec13dad71ad99102ea920de9a5d3587529709a64fb42c AS vault +FROM --platform=linux/amd64 docker.io/vaultwarden/web-vault@sha256:f6ac819a2cd9e226f2cd2ec26196ede94a41e672e9672a11b5f307a19278b15e AS vault ########################## Cross Compile Docker Helper Scripts ########################## ## We use the linux/amd64 no matter which Build Platform, since these are all bash scripts diff --git a/src/static/scripts/bootstrap.bundle.js b/src/static/scripts/bootstrap.bundle.js index 859e9d2b..91eea7e7 100644 --- a/src/static/scripts/bootstrap.bundle.js +++ b/src/static/scripts/bootstrap.bundle.js @@ -1,5 +1,5 @@ /*! - * Bootstrap v5.3.6 (https://getbootstrap.com/) + * Bootstrap v5.3.7 (https://getbootstrap.com/) * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */ @@ -647,7 +647,7 @@ * Constants */ - const VERSION = '5.3.6'; + const VERSION = '5.3.7'; /** * Class definition @@ -4805,7 +4805,6 @@ * * Shout-out to Angular https://github.com/angular/angular/blob/15.2.8/packages/core/src/sanitization/url_sanitizer.ts#L38 */ - // eslint-disable-next-line unicorn/better-regex const SAFE_URL_PATTERN = /^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i; const allowedAttribute = (attribute, allowedAttributeList) => { const attributeName = attribute.nodeName.toLowerCase(); @@ -5349,6 +5348,7 @@ if (trigger === 'click') { EventHandler.on(this._element, this.constructor.eventName(EVENT_CLICK$1), this._config.selector, event => { const context = this._initializeOnDelegatedTarget(event); + context._activeTrigger[TRIGGER_CLICK] = !(context._isShown() && context._activeTrigger[TRIGGER_CLICK]); context.toggle(); }); } else if (trigger !== TRIGGER_MANUAL) { diff --git a/src/static/scripts/bootstrap.css b/src/static/scripts/bootstrap.css index cb819ec2..e9479ad9 100644 --- a/src/static/scripts/bootstrap.css +++ b/src/static/scripts/bootstrap.css @@ -1,6 +1,6 @@ @charset "UTF-8"; /*! - * Bootstrap v5.3.6 (https://getbootstrap.com/) + * Bootstrap v5.3.7 (https://getbootstrap.com/) * Copyright 2011-2025 The Bootstrap Authors * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */ diff --git a/src/static/scripts/datatables.css b/src/static/scripts/datatables.css index 06c823f2..4d927abf 100644 --- a/src/static/scripts/datatables.css +++ b/src/static/scripts/datatables.css @@ -4,10 +4,10 @@ * * To rebuild or modify this file with the latest versions of the included * software please visit: - * https://datatables.net/download/#bs5/dt-2.3.1 + * https://datatables.net/download/#bs5/dt-2.3.2 * * Included libraries: - * DataTables 2.3.1 + * DataTables 2.3.2 */ :root { @@ -17,17 +17,18 @@ --dt-row-stripe: 0, 0, 0; --dt-row-hover: 0, 0, 0; --dt-column-ordering: 0, 0, 0; + --dt-header-align-items: center; --dt-html-background: white; } :root.dark { --dt-html-background: rgb(33, 37, 41); } -table.dataTable td.dt-control { +table.dataTable tbody td.dt-control { text-align: center; cursor: pointer; } -table.dataTable td.dt-control:before { +table.dataTable tbody td.dt-control:before { display: inline-block; box-sizing: border-box; content: ""; @@ -36,7 +37,7 @@ table.dataTable td.dt-control:before { border-bottom: 5px solid transparent; border-right: 0px solid transparent; } -table.dataTable tr.dt-hasChild td.dt-control:before { +table.dataTable tbody tr.dt-hasChild td.dt-control:before { border-top: 10px solid rgba(0, 0, 0, 0.5); border-left: 5px solid transparent; border-bottom: 0px solid transparent; @@ -163,7 +164,7 @@ table.dataTable tfoot > tr > td div.dt-column-header, table.dataTable tfoot > tr > td div.dt-column-footer { display: flex; justify-content: space-between; - align-items: center; + align-items: var(--dt-header-align-items); gap: 4px; } table.dataTable thead > tr > th div.dt-column-header span.dt-column-title, @@ -421,6 +422,10 @@ table.dataTable tbody td.dt-body-nowrap { white-space: nowrap; } +:root { + --dt-header-align-items: flex-end; +} + /*! Bootstrap 5 integration for DataTables * * ©2020 SpryMedia Ltd, all rights reserved. diff --git a/src/static/scripts/datatables.js b/src/static/scripts/datatables.js index 368cfb36..0ba22347 100644 --- a/src/static/scripts/datatables.js +++ b/src/static/scripts/datatables.js @@ -4,13 +4,13 @@ * * To rebuild or modify this file with the latest versions of the included * software please visit: - * https://datatables.net/download/#bs5/dt-2.3.1 + * https://datatables.net/download/#bs5/dt-2.3.2 * * Included libraries: - * DataTables 2.3.1 + * DataTables 2.3.2 */ -/*! DataTables 2.3.1 +/*! DataTables 2.3.2 * © SpryMedia Ltd - datatables.net/license */ @@ -124,7 +124,7 @@ _fnCamelToHungarian( defaults.column, defaults.column, true ); /* Setting up the initialisation object */ - _fnCamelToHungarian( defaults, $.extend( oInit, $this.data() ), true ); + _fnCamelToHungarian( defaults, $.extend( oInit, _fnEscapeObject($this.data()) ), true ); @@ -513,7 +513,7 @@ * * @type string */ - builder: "bs5/dt-2.3.1", + builder: "bs5/dt-2.3.2", /** * Buttons. For use with the Buttons extension for DataTables. This is @@ -554,6 +554,11 @@ */ errMode: "alert", + /** HTML entity escaping */ + escape: { + /** When reading data-* attributes for initialisation options */ + attributes: false + }, /** * Legacy so v1 plug-ins don't throw js errors on load @@ -4025,7 +4030,7 @@ if ( write ) { if (unique) { // Allow column options to be set from HTML attributes - _fnColumnOptions( settings, shifted, jqCell.data() ); + _fnColumnOptions( settings, shifted, _fnEscapeObject(jqCell.data()) ); // Get the width for the column. This can be defined from the // width attribute, style attribute or `columns.width` option @@ -4271,7 +4276,7 @@ // to the object for the callback. var empty = {}; - DataTable.util.set(ajax.dataSrc)(empty, []); + _fnAjaxDataSrc(oSettings, empty, []); callback(empty); } else { @@ -5799,9 +5804,11 @@ var run = false; var columns = column === undefined ? _fnColumnsFromHeader( e.target ) - : Array.isArray(column) - ? column - : [column]; + : typeof column === 'function' + ? column() + : Array.isArray(column) + ? column + : [column]; if ( columns.length ) { for ( var i=0, ien=columns.length ; i form > div:nth-child(1) > div > button[buttontype="secon } {{/if}} +/* Hide the `Log in with passkey` settings */ +app-change-password app-webauthn-login-settings { + @extend %vw-hide; +} /* Hide Log in with passkey on the login page */ {{#if (webver ">=2025.5.1")}} .vw-passkey-login {