This is an automated email from the ASF dual-hosted git repository.
Antonio-Maranhao pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/couchdb-fauxton.git
The following commit(s) were added to refs/heads/main by this push:
new 885270a8 fix: removes BOM char in generated CSS files (#1560)
885270a8 is described below
commit 885270a8f12edbefe25e64f909c65c65e105335e
Author: Antonio Maranhao <[email protected]>
AuthorDate: Tue Aug 11 16:06:52 2026 -0400
fix: removes BOM char in generated CSS files (#1560)
Since the update to sass 1.82.0, the `\uFEFF` UTF-8 character was being
added to the beggining of some lines in the generated CSS files.
This happens because Sass adds a UTF-8 Byte Order Mark (BOM) automatically
in compressed output mode when non-ASCII characters are detected.
The BOM character causes problems because in some situations the
browser seems to stop parsing the CSS and the CSS properties after the
charater
are not loaded.
---
package-lock.json | 124 ++++++++++++++++++++++++++++++++++++++++++++++
package.json | 1 +
webpack.config.release.js | 9 ++++
3 files changed, 134 insertions(+)
diff --git a/package-lock.json b/package-lock.json
index a598e4fb..efd7bfb2 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -95,6 +95,7 @@
"node-fetch": "^2.6.7",
"redux-mock-store": "^1.5.4",
"sinon": "^21.0.1",
+ "string-replace-loader": "^3.3.0",
"style-loader": "^3.3.1",
"webpack": "^5.74.0",
"webpack-cli": "^5.0.1",
@@ -19363,6 +19364,79 @@
"node": ">=10"
}
},
+ "node_modules/string-replace-loader": {
+ "version": "3.3.0",
+ "resolved":
"https://registry.npmjs.org/string-replace-loader/-/string-replace-loader-3.3.0.tgz",
+ "integrity":
"sha512-AZ3y7ktSHhd/Ebipczkp6vdfp01d2kQVwFujCGAgmogTB8t4dRhbsRGDKnyZAYqBbIA9QW7+D/IsACVJOOpcBg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "schema-utils": "^4"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "peerDependencies": {
+ "webpack": "^5"
+ }
+ },
+ "node_modules/string-replace-loader/node_modules/ajv": {
+ "version": "8.20.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz",
+ "integrity":
"sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.3",
+ "fast-uri": "^3.0.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
+ "node_modules/string-replace-loader/node_modules/ajv-keywords": {
+ "version": "5.1.0",
+ "resolved":
"https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
+ "integrity":
"sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.3"
+ },
+ "peerDependencies": {
+ "ajv": "^8.8.2"
+ }
+ },
+ "node_modules/string-replace-loader/node_modules/json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved":
"https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity":
"sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/string-replace-loader/node_modules/schema-utils": {
+ "version": "4.3.3",
+ "resolved":
"https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz",
+ "integrity":
"sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/json-schema": "^7.0.9",
+ "ajv": "^8.9.0",
+ "ajv-formats": "^2.1.1",
+ "ajv-keywords": "^5.1.0"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ }
+ },
"node_modules/string-width": {
"version": "4.2.3",
"resolved":
"https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
@@ -34871,6 +34945,56 @@
"strip-ansi": "^6.0.0"
}
},
+ "string-replace-loader": {
+ "version": "3.3.0",
+ "resolved":
"https://registry.npmjs.org/string-replace-loader/-/string-replace-loader-3.3.0.tgz",
+ "integrity":
"sha512-AZ3y7ktSHhd/Ebipczkp6vdfp01d2kQVwFujCGAgmogTB8t4dRhbsRGDKnyZAYqBbIA9QW7+D/IsACVJOOpcBg==",
+ "dev": true,
+ "requires": {
+ "schema-utils": "^4"
+ },
+ "dependencies": {
+ "ajv": {
+ "version": "8.20.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz",
+ "integrity":
"sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==",
+ "dev": true,
+ "requires": {
+ "fast-deep-equal": "^3.1.3",
+ "fast-uri": "^3.0.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2"
+ }
+ },
+ "ajv-keywords": {
+ "version": "5.1.0",
+ "resolved":
"https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
+ "integrity":
"sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
+ "dev": true,
+ "requires": {
+ "fast-deep-equal": "^3.1.3"
+ }
+ },
+ "json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved":
"https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity":
"sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
+ "dev": true
+ },
+ "schema-utils": {
+ "version": "4.3.3",
+ "resolved":
"https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz",
+ "integrity":
"sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==",
+ "dev": true,
+ "requires": {
+ "@types/json-schema": "^7.0.9",
+ "ajv": "^8.9.0",
+ "ajv-formats": "^2.1.1",
+ "ajv-keywords": "^5.1.0"
+ }
+ }
+ }
+ },
"string-width": {
"version": "4.2.3",
"resolved":
"https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
diff --git a/package.json b/package.json
index 27cee8e3..1ae2515b 100644
--- a/package.json
+++ b/package.json
@@ -54,6 +54,7 @@
"node-fetch": "^2.6.7",
"redux-mock-store": "^1.5.4",
"sinon": "^21.0.1",
+ "string-replace-loader": "^3.3.0",
"style-loader": "^3.3.1",
"webpack": "^5.74.0",
"webpack-cli": "^5.0.1",
diff --git a/webpack.config.release.js b/webpack.config.release.js
index d61f2569..94af02cb 100644
--- a/webpack.config.release.js
+++ b/webpack.config.release.js
@@ -122,6 +122,15 @@ module.exports = {
},
},
"css-loader",
+ // Removes UTF-8 Byte Order Mark (BOM) characters added by sass,
which causes the brower to ignore
+ // CSS properties defined after the character.
+ {
+ loader: "string-replace-loader",
+ options: {
+ search: /^\uFEFF/gm,
+ replace: "",
+ },
+ },
{
loader: "sass-loader",
options: {