From 9dcb621fc293f53b9aa1e4582d07a0387b3c431f Mon Sep 17 00:00:00 2001
From: Khaled Hosny
Date: Mon, 6 Apr 2026 16:41:34 +0200
Subject: [PATCH 1/4] Unbreak www 2 (#757)
* revert: "fix(web): Unbreak web site deploy (#756)"
This reverts commit 1f216e3140ace6a1e813dfcf1722f6fa39e5ea89.
* revert: "chore(deps): update dependency typescript to v6 (#744)"
This reverts commit ab5f41980ec99e91c9d1d32f027c046dde23a91b.
---
fontspector-web/www/package-lock.json | 8 ++++----
fontspector-web/www/package.json | 2 +-
fontspector-web/www/tsconfig.json | 3 ++-
3 files changed, 7 insertions(+), 6 deletions(-)
diff --git a/fontspector-web/www/package-lock.json b/fontspector-web/www/package-lock.json
index f62f6c7d..083c77f2 100644
--- a/fontspector-web/www/package-lock.json
+++ b/fontspector-web/www/package-lock.json
@@ -26,7 +26,7 @@
"harfbuzzjs": "^0.10.0",
"jquery": "^4.0.0",
"sass-embedded": "^1.97.3",
- "typescript": "^6.0.0",
+ "typescript": "^5.9.3",
"vite": "^8.0.0",
"vite-plugin-static-copy": "^4.0.0",
"vite-plugin-top-level-await": "^1.6.0",
@@ -2774,9 +2774,9 @@
"license": "0BSD"
},
"node_modules/typescript": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.2.tgz",
- "integrity": "sha512-bGdAIrZ0wiGDo5l8c++HWtbaNCWTS4UTv7RaTH/ThVIgjkveJt83m74bBHMJkuCbslY8ixgLBVZJIOiQlQTjfQ==",
+ "version": "5.9.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
+ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
"devOptional": true,
"license": "Apache-2.0",
"bin": {
diff --git a/fontspector-web/www/package.json b/fontspector-web/www/package.json
index 30afc68f..ecab3514 100644
--- a/fontspector-web/www/package.json
+++ b/fontspector-web/www/package.json
@@ -25,7 +25,7 @@
"harfbuzzjs": "^0.10.0",
"jquery": "^4.0.0",
"sass-embedded": "^1.97.3",
- "typescript": "^6.0.0",
+ "typescript": "^5.9.3",
"vite": "^8.0.0",
"vite-plugin-static-copy": "^4.0.0",
"vite-plugin-top-level-await": "^1.6.0",
diff --git a/fontspector-web/www/tsconfig.json b/fontspector-web/www/tsconfig.json
index 5e2e9cbe..3038fcbd 100644
--- a/fontspector-web/www/tsconfig.json
+++ b/fontspector-web/www/tsconfig.json
@@ -5,11 +5,12 @@
"lib": ["DOM", "DOM.Iterable", "ESNext"],
"allowJs": false,
"skipLibCheck": true,
+ "esModuleInterop": false,
"allowSyntheticDefaultImports": true,
"strict": true,
"forceConsistentCasingInFileNames": true,
"module": "ESNext",
- "moduleResolution": "nodenext",
+ "moduleResolution": "Node",
"resolveJsonModule": true,
"isolatedModules": true,
"noEmit": true,
From 8576a67d412851dd9143731e514645f92c6945ed Mon Sep 17 00:00:00 2001
From: Dave Crossland
Date: Tue, 7 Apr 2026 13:58:43 -0600
Subject: [PATCH 2/4] chore(web): Add link to report issues on GitHub in
StartModal (#762)
* Add link to report issues on GitHub in StartModal
* Enhance Navbar with version info and issue link
Updated Navbar component to
* include issue reporting link
* adjusted version display string
* remove link to reset from navbar, so only the back arrow icon links
---
fontspector-web/www/src/components/Navbar.vue | 7 ++++---
fontspector-web/www/src/components/StartModal.vue | 5 ++++-
2 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/fontspector-web/www/src/components/Navbar.vue b/fontspector-web/www/src/components/Navbar.vue
index ed86c964..1db304aa 100644
--- a/fontspector-web/www/src/components/Navbar.vue
+++ b/fontspector-web/www/src/components/Navbar.vue
@@ -29,14 +29,15 @@ function downloadReport() {
+
+ Report issues or ideas on Github
+
@@ -181,4 +184,4 @@ function initDropzone() {
border-radius: 70px;
background-color: rgba(5, 66, 86, 0.8)
}
-
\ No newline at end of file
+
From f6f3c41c5ce51d27c4874b679b7959668e61c9fa Mon Sep 17 00:00:00 2001
From: Marc Foley
Date: Wed, 8 Apr 2026 12:15:13 +0100
Subject: [PATCH 3/4] fix(googlefonts/axes_match): Do not error if new font
includes new styles (#763)
---
.../src/checks/googlefonts/axes_match.rs | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/profile-googlefonts/src/checks/googlefonts/axes_match.rs b/profile-googlefonts/src/checks/googlefonts/axes_match.rs
index bcc8928a..370a5b9c 100644
--- a/profile-googlefonts/src/checks/googlefonts/axes_match.rs
+++ b/profile-googlefonts/src/checks/googlefonts/axes_match.rs
@@ -58,11 +58,11 @@ fn axes_match(c: &TestableCollection, context: &Context) -> CheckFnResult {
let remote_style = remote_styles
.iter()
.flat_map(|s| TTF.from_testable(s))
- .find(|remote_f| remote_f.best_subfamilyname() == our_subfamily_name)
- .ok_or(FontspectorError::General(format!(
- "No matching remote style for {}",
- t.basename().unwrap_or("Regular".to_string())
- )))?;
+ .find(|remote_f| remote_f.best_subfamilyname() == our_subfamily_name);
+ let Some(remote_style) = remote_style else {
+ // New style not present in the remote version; that's fine.
+ continue;
+ };
let remote_axes = remote_style
.font()
.axes()
From 200ed470c29ab2ab4b626a1b7182bb46f61b8adb Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed, 8 Apr 2026 11:27:50 +0000
Subject: [PATCH 4/4] chore(deps): update dependency vue to v3.5.32
---
fontspector-web/www/package-lock.json | 106 +++++++++++++-------------
1 file changed, 53 insertions(+), 53 deletions(-)
diff --git a/fontspector-web/www/package-lock.json b/fontspector-web/www/package-lock.json
index 083c77f2..d91f4362 100644
--- a/fontspector-web/www/package-lock.json
+++ b/fontspector-web/www/package-lock.json
@@ -1215,39 +1215,39 @@
}
},
"node_modules/@vue/compiler-core": {
- "version": "3.5.31",
- "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.31.tgz",
- "integrity": "sha512-k/ueL14aNIEy5Onf0OVzR8kiqF/WThgLdFhxwa4e/KF/0qe38IwIdofoSWBTvvxQOesaz6riAFAUaYjoF9fLLQ==",
+ "version": "3.5.32",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.32.tgz",
+ "integrity": "sha512-4x74Tbtqnda8s/NSD6e1Dr5p1c8HdMU5RWSjMSUzb8RTcUQqevDCxVAitcLBKT+ie3o0Dl9crc/S/opJM7qBGQ==",
"license": "MIT",
"dependencies": {
"@babel/parser": "^7.29.2",
- "@vue/shared": "3.5.31",
+ "@vue/shared": "3.5.32",
"entities": "^7.0.1",
"estree-walker": "^2.0.2",
"source-map-js": "^1.2.1"
}
},
"node_modules/@vue/compiler-dom": {
- "version": "3.5.31",
- "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.31.tgz",
- "integrity": "sha512-BMY/ozS/xxjYqRFL+tKdRpATJYDTTgWSo0+AJvJNg4ig+Hgb0dOsHPXvloHQ5hmlivUqw1Yt2pPIqp4e0v1GUw==",
+ "version": "3.5.32",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.32.tgz",
+ "integrity": "sha512-ybHAu70NtiEI1fvAUz3oXZqkUYEe5J98GjMDpTGl5iHb0T15wQYLR4wE3h9xfuTNA+Cm2f4czfe8B4s+CCH57Q==",
"license": "MIT",
"dependencies": {
- "@vue/compiler-core": "3.5.31",
- "@vue/shared": "3.5.31"
+ "@vue/compiler-core": "3.5.32",
+ "@vue/shared": "3.5.32"
}
},
"node_modules/@vue/compiler-sfc": {
- "version": "3.5.31",
- "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.31.tgz",
- "integrity": "sha512-M8wpPgR9UJ8MiRGjppvx9uWJfLV7A/T+/rL8s/y3QG3u0c2/YZgff3d6SuimKRIhcYnWg5fTfDMlz2E6seUW8Q==",
+ "version": "3.5.32",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.32.tgz",
+ "integrity": "sha512-8UYUYo71cP/0YHMO814TRZlPuUUw3oifHuMR7Wp9SNoRSrxRQnhMLNlCeaODNn6kNTJsjFoQ/kqIj4qGvya4Xg==",
"license": "MIT",
"dependencies": {
"@babel/parser": "^7.29.2",
- "@vue/compiler-core": "3.5.31",
- "@vue/compiler-dom": "3.5.31",
- "@vue/compiler-ssr": "3.5.31",
- "@vue/shared": "3.5.31",
+ "@vue/compiler-core": "3.5.32",
+ "@vue/compiler-dom": "3.5.32",
+ "@vue/compiler-ssr": "3.5.32",
+ "@vue/shared": "3.5.32",
"estree-walker": "^2.0.2",
"magic-string": "^0.30.21",
"postcss": "^8.5.8",
@@ -1255,13 +1255,13 @@
}
},
"node_modules/@vue/compiler-ssr": {
- "version": "3.5.31",
- "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.31.tgz",
- "integrity": "sha512-h0xIMxrt/LHOvJKMri+vdYT92BrK3HFLtDqq9Pr/lVVfE4IyKZKvWf0vJFW10Yr6nX02OR4MkJwI0c1HDa1hog==",
+ "version": "3.5.32",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.32.tgz",
+ "integrity": "sha512-Gp4gTs22T3DgRotZ8aA/6m2jMR+GMztvBXUBEUOYOcST+giyGWJ4WvFd7QLHBkzTxkfOt8IELKNdpzITLbA2rw==",
"license": "MIT",
"dependencies": {
- "@vue/compiler-dom": "3.5.31",
- "@vue/shared": "3.5.31"
+ "@vue/compiler-dom": "3.5.32",
+ "@vue/shared": "3.5.32"
}
},
"node_modules/@vue/language-core": {
@@ -1281,53 +1281,53 @@
}
},
"node_modules/@vue/reactivity": {
- "version": "3.5.31",
- "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.31.tgz",
- "integrity": "sha512-DtKXxk9E/KuVvt8VxWu+6Luc9I9ETNcqR1T1oW1gf02nXaZ1kuAx58oVu7uX9XxJR0iJCro6fqBLw9oSBELo5g==",
+ "version": "3.5.32",
+ "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.32.tgz",
+ "integrity": "sha512-/ORasxSGvZ6MN5gc+uE364SxFdJ0+WqVG0CENXaGW58TOCdrAW76WWaplDtECeS1qphvtBZtR+3/o1g1zL4xPQ==",
"license": "MIT",
"dependencies": {
- "@vue/shared": "3.5.31"
+ "@vue/shared": "3.5.32"
}
},
"node_modules/@vue/runtime-core": {
- "version": "3.5.31",
- "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.31.tgz",
- "integrity": "sha512-AZPmIHXEAyhpkmN7aWlqjSfYynmkWlluDNPHMCZKFHH+lLtxP/30UJmoVhXmbDoP1Ng0jG0fyY2zCj1PnSSA6Q==",
+ "version": "3.5.32",
+ "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.32.tgz",
+ "integrity": "sha512-pDrXCejn4UpFDFmMd27AcJEbHaLemaE5o4pbb7sLk79SRIhc6/t34BQA7SGNgYtbMnvbF/HHOftYBgFJtUoJUQ==",
"license": "MIT",
"dependencies": {
- "@vue/reactivity": "3.5.31",
- "@vue/shared": "3.5.31"
+ "@vue/reactivity": "3.5.32",
+ "@vue/shared": "3.5.32"
}
},
"node_modules/@vue/runtime-dom": {
- "version": "3.5.31",
- "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.31.tgz",
- "integrity": "sha512-xQJsNRmGPeDCJq/u813tyonNgWBFjzfVkBwDREdEWndBnGdHLHgkwNBQxLtg4zDrzKTEcnikUy1UUNecb3lJ6g==",
+ "version": "3.5.32",
+ "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.32.tgz",
+ "integrity": "sha512-1CDVv7tv/IV13V8Nip1k/aaObVbWqRlVCVezTwx3K07p7Vxossp5JU1dcPNhJk3w347gonIUT9jQOGutyJrSVQ==",
"license": "MIT",
"dependencies": {
- "@vue/reactivity": "3.5.31",
- "@vue/runtime-core": "3.5.31",
- "@vue/shared": "3.5.31",
+ "@vue/reactivity": "3.5.32",
+ "@vue/runtime-core": "3.5.32",
+ "@vue/shared": "3.5.32",
"csstype": "^3.2.3"
}
},
"node_modules/@vue/server-renderer": {
- "version": "3.5.31",
- "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.31.tgz",
- "integrity": "sha512-GJuwRvMcdZX/CriUnyIIOGkx3rMV3H6sOu0JhdKbduaeCji6zb60iOGMY7tFoN24NfsUYoFBhshZtGxGpxO4iA==",
+ "version": "3.5.32",
+ "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.32.tgz",
+ "integrity": "sha512-IOjm2+JQwRFS7W28HNuJeXQle9KdZbODFY7hFGVtnnghF51ta20EWAZJHX+zLGtsHhaU6uC9BGPV52KVpYryMQ==",
"license": "MIT",
"dependencies": {
- "@vue/compiler-ssr": "3.5.31",
- "@vue/shared": "3.5.31"
+ "@vue/compiler-ssr": "3.5.32",
+ "@vue/shared": "3.5.32"
},
"peerDependencies": {
- "vue": "3.5.31"
+ "vue": "3.5.32"
}
},
"node_modules/@vue/shared": {
- "version": "3.5.31",
- "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.31.tgz",
- "integrity": "sha512-nBxuiuS9Lj5bPkPbWogPUnjxxWpkRniX7e5UBQDWl6Fsf4roq9wwV+cR7ezQ4zXswNvPIlsdj1slcLB7XCsRAw==",
+ "version": "3.5.32",
+ "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.32.tgz",
+ "integrity": "sha512-ksNyrmRQzWJJ8n3cRDuSF7zNNontuJg1YHnmWRJd2AMu8Ij2bqwiiri2lH5rHtYPZjj4STkNcgcmiQqlOjiYGg==",
"license": "MIT"
},
"node_modules/@vueuse/core": {
@@ -3046,16 +3046,16 @@
"license": "MIT"
},
"node_modules/vue": {
- "version": "3.5.31",
- "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.31.tgz",
- "integrity": "sha512-iV/sU9SzOlmA/0tygSmjkEN6Jbs3nPoIPFhCMLD2STrjgOU8DX7ZtzMhg4ahVwf5Rp9KoFzcXeB1ZrVbLBp5/Q==",
+ "version": "3.5.32",
+ "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.32.tgz",
+ "integrity": "sha512-vM4z4Q9tTafVfMAK7IVzmxg34rSzTFMyIe0UUEijUCkn9+23lj0WRfA83dg7eQZIUlgOSGrkViIaCfqSAUXsMw==",
"license": "MIT",
"dependencies": {
- "@vue/compiler-dom": "3.5.31",
- "@vue/compiler-sfc": "3.5.31",
- "@vue/runtime-dom": "3.5.31",
- "@vue/server-renderer": "3.5.31",
- "@vue/shared": "3.5.31"
+ "@vue/compiler-dom": "3.5.32",
+ "@vue/compiler-sfc": "3.5.32",
+ "@vue/runtime-dom": "3.5.32",
+ "@vue/server-renderer": "3.5.32",
+ "@vue/shared": "3.5.32"
},
"peerDependencies": {
"typescript": "*"