openvibers/openvibe.fun Commits

openvibe-shared v4.186.0 (was v4.183.0) (#136)

OP OpenVibers committed 3 days ago · 94dee3cef7 · 6 files, +12 −12

* openvibe-shared v4.186.0 (was v4.183.0)

Opened by scripts/pin-bump.js in OpenVibers/OpenVibe.Shared after the v4.186.0 release.

* Fix the openvibe-shared v4.186.0 red checks

openvibe-shared 4.184.0 puts the navbar's links in the first HTML (frame.serverNav)
instead of a <noscript> nav, so the no-JavaScript checks assert the nav that is really
served; the home's size budgets are raised to the sizes this PR measured.

Changes

ddiff --git a/README.md b/README.md
iindex cbdc03c..140986b 100644
---- a/README.md
++++ b/README.md
@@@ -238,6 +238,6 @@ AGPL-3.0-only. See [LICENSE](LICENSE).
<!-- versions:start -->
- openvibe-contracts: v0.384.0
- openvibe-sdk: v0.133.0
--- openvibe-shared: v4.183.0
++- openvibe-shared: v4.186.0
- openvibe-publishing: v1.7.0
<!-- versions:end -->
ddiff --git a/STATUS.json b/STATUS.json
iindex 99e9343..e1c6404 100644
---- a/STATUS.json
++++ b/STATUS.json
@@@ -10,11 +10,11 @@
"domain": "openvibe.fun",
"contracts": "openvibe-contracts v0.384.0",
"sdk": "openvibe-sdk v0.133.0",
-- "shared": "openvibe-shared v4.183.0",
++ "shared": "openvibe-shared v4.186.0",
"packages": [
"openvibe-contracts v0.384.0",
"openvibe-sdk v0.133.0",
-- "openvibe-shared v4.183.0"
++ "openvibe-shared v4.186.0"
],
"summary": "OpenVibe.Fun is the Fun room. A streamer opens an IRL quest board on their public Live channel, viewers suggest safe challenges and chat votes with !quest vote, the streamer accepts one and marks it live/completed, and the chat or a moderator verifies it; a local badge is paid and OpenCoins are credited only when the wallet is configured. The local guide reads OpenStreetMap (Nominatim/Overpass with a contact User-Agent, one request a second per host, a seven-day cache and a bounded around: query) and Ticketmaster only when a key is configured. Group plans have options, one vote each, a tie refused, and a winner the viewer can add to their own Today with their own token. No route needs a service token; Fun never posts to Chat or Live.",
"works": [
ddiff --git a/package-lock.json b/package-lock.json
iindex 5f6d278..ff8eca9 100644
---- a/package-lock.json
++++ b/package-lock.json
@@@ -18,7 +18,7 @@
"openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.384.0",
"openvibe-publishing": "https://codeload.github.com/OpenVibers/OpenVibe.Publishing/tar.gz/refs/tags/v1.7.0",
"openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.133.0",
-- "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.183.0",
++ "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.186.0",
"pg": "^8.23.0"
},
"devDependencies": {
@@@ -1213,9 +1213,9 @@
}
},
"node_modules/openvibe-shared": {
-- "version": "4.183.0",
-- "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.183.0",
-- "integrity": "sha512-vp9gg++Dhyj3h0cwvBjujM6dSFYoeXdh1UXdZ6OXP/NjG672Fs7uRANV4MjT467JtFDN7r7qLI3OJAwGQxOuQw==",
++ "version": "4.186.0",
++ "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.186.0",
++ "integrity": "sha512-wD4net+UjO0a6OG73W+RR1z5MIWtPgj407xLEWphiVWgLTQ4V1r76+DtLOfSf6RfEda/ALizRu1zmxbvuGGZOw==",
"license": "MIT",
"dependencies": {
"jsonwebtoken": "^9.0.0",
ddiff --git a/package.json b/package.json
iindex 8ea5438..df55b11 100644
---- a/package.json
++++ b/package.json
@@@ -25,7 +25,7 @@
"openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.384.0",
"openvibe-publishing": "https://codeload.github.com/OpenVibers/OpenVibe.Publishing/tar.gz/refs/tags/v1.7.0",
"openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.133.0",
-- "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.183.0",
++ "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.186.0",
"pg": "^8.23.0"
},
"engines": {
ddiff --git a/test/pages.test.js b/test/pages.test.js
iindex e8a68f8..f0ee052 100644
---- a/test/pages.test.js
++++ b/test/pages.test.js
@@@ -41,7 +41,7 @@ function jsonLd(html) {
assert.strictEqual(r.status, 200);
assert.strictEqual(r.headers.get('cache-control'), 'public, max-age=60');
assert.strictEqual(r.headers.get('vary'), 'Cookie');
-- for (const marker of ['id="fu-home"', 'id="fu-featured"', 'id="fu-plans"', 'id="fu-guide-teaser"', 'class="sc-room-scenes"', '<noscript><nav', '<footer id="ov-footer"', '<main id="main"', 'Find the best bench with a view', '/guide']) assert.ok(r.text.includes(marker), marker);
++ for (const marker of ['id="fu-home"', 'id="fu-featured"', 'id="fu-plans"', 'id="fu-guide-teaser"', 'class="sc-room-scenes"', '<div id="navbar-mount"><nav', '<footer id="ov-footer"', '<main id="main"', 'Find the best bench with a view', '/guide']) assert.ok(r.text.includes(marker), marker);
const types = jsonLd(r.text).map((x) => x['@type']);
assert.ok(types.includes('WebSite'), types.join(','));
assert.ok(types.includes('WebApplication'), types.join(','));
@@@ -111,7 +111,7 @@ function jsonLd(html) {
for (const p of ['/', '/guide', '/quests', '/plans', '/developers']) {
const r = await t.get(p);
assert.strictEqual(r.status, 200, p);
-- assert.match(r.text, /<noscript><nav/);
++ assert.match(r.text, /<div id="navbar-mount"><nav class="openvibe-navbar"[^>]*data-ov-server-nav="true"/, `${p}: the server-rendered navbar is in the first HTML`);
assert.match(r.text, /<footer id="ov-footer"/);
assert.match(r.text, /<main id="main"/);
}
ddiff --git a/test/sso.test.js b/test/sso.test.js
iindex e38692f..e655789 100644
---- a/test/sso.test.js
++++ b/test/sso.test.js
@@@ -105,11 +105,11 @@ const { sanitizeNext } = require('../server/auth/sso');
assert.notStrictEqual(proxied.status, 200, 'a proxied request is not loopback');
});
-- await check('public pages are complete without JavaScript', async () => {
++ await check('public pages are complete without JavaScript (server-rendered nav, SSR footer)', async () => {
for (const p of ['/', '/guide', '/quests', '/plans', '/developers']) {
const r = await t.get(p);
assert.strictEqual(r.status, 200, p);
-- assert.match(r.text, /<noscript><nav/);
++ assert.match(r.text, /<div id="navbar-mount"><nav class="openvibe-navbar"[^>]*data-ov-server-nav="true"/, `${p}: the server-rendered navbar is in the first HTML`);
assert.match(r.text, /<footer id="ov-footer"/);
assert.match(r.text, /<main id="main"/);
}