openvibers/openvibe.vip Commits
openvibe-shared v4.201.0 (was v4.200.0) (#250)
Changes
@@@ -510,5 +510,5 @@ Part of the [OpenVibe network](https://openvibe.network). Built in the open by [<!-- versions:start -->- openvibe-contracts: v0.399.0- openvibe-sdk: v0.147.0--- openvibe-shared: v4.200.0++- openvibe-shared: v4.201.0<!-- versions:end -->@@@ -6,7 +6,7 @@"deployment": "Launched 2026-10-17 at https://openvibe.vip (openvibe-contracts 0.200.0 made VIP live; vhost deploy/nginx/openvibe.vip.conf installed): deployed with `sudo ovhost deploy vip`, /opt/openvibe.vip, unit openvibe-vip, 127.0.0.1:4620 behind nginx. Principal vip; three Events subscriptions for Billing's events. Checkout open since the Billing cutover (VIP_CHECKOUT_PROVIDERS=powerchat,credit): 43 plans imported from Live, 0 memberships sold on launch day.","contracts": "openvibe-contracts v0.399.0","sdk": "openvibe-sdk v0.147.0",-- "shared": "openvibe-shared v4.200.0",++ "shared": "openvibe-shared v4.201.0","plan": "OpenVibe End-to-End Realignment & Implementation Plan, revision 3 (20 Sep 2026)","roadmap": "Wave 10","works": [@@@ -16,7 +16,7 @@"multer": "^2.5.0","openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.399.0","openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.147.0",-- "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.200.0",++ "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.201.0","pg": "^8.23.0"},"devDependencies": {@@@ -1279,9 +1279,9 @@}},"node_modules/openvibe-shared": {-- "version": "4.200.0",-- "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.200.0",-- "integrity": "sha512-MkGUNbiLM7RbuYhYZlmQXX660x5hQWkwlG0skuxjShlXxqbPAMNpAM+OMu+BbQieMpXq8HfQyTJH6nr6O6lM7w==",++ "version": "4.201.0",++ "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.201.0",++ "integrity": "sha512-dZuifDLCoMlg+Qg/2G7IE3NbCqd2fZuk0G32JODgFRWS+CaHHTUTwWBBieJkuaUa1IV2xETe8qtbdLwekhvatg==","license": "MIT","dependencies": {"clean-css": "^5.3.3",@@@ -33,7 +33,7 @@"multer": "^2.5.0","openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.399.0","openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.147.0",-- "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.200.0",++ "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.201.0","pg": "^8.23.0"},"engines": {@@@ -11,6 +11,7 @@ const { createDomain } = require('../server/domain');const { createPosts } = require('../server/domain/posts');const { createMediaClient } = require('../server/media-client');const { createWebRoutes } = require('../server/web/routes');++const glyphs = require('openvibe-shared/glyphs');const { test, run } = harness('members-only posts');@@@ -317,7 +318,11 @@ test('a locked post offers a way to join only when a tier that reads it can be jassert.ok(!out.text.includes('For the first row.'), 'no text of a locked post, either way');assert.ok(!out.text.includes('For the second row.'));// The lock glyph before the line, drawn by the shared glyph set and hidden from a screen reader.-- assert.ok(/aria-hidden="true"><rect x="5" y="11"/.test(out.text), 'the shared lock glyph is on the line');++ // Ask the pinned library for the drawing rather than pinning one of its older paths.++ const lock = glyphs.svg('lock', { size: 16 });++ assert.ok(lock, 'the shared glyph set draws a lock');++ assert.match(lock, /aria-hidden="true"/, 'the glyph is hidden from a screen reader');++ assert.ok(out.text.includes(lock), 'the shared lock glyph is on the line');} finally { await t.close(); }});
@@ -510,5 +510,5 @@ Part of the [OpenVibe network](https://openvibe.network). Built in the open by [
@@ -510,5 +510,5 @@ Part of the [OpenVibe network](https://openvibe.network). Built in the open by [
<!-- versions:start -->
<!-- versions:start -->
- openvibe-contracts: v0.399.0
- openvibe-contracts: v0.399.0
- openvibe-sdk: v0.147.0
- openvibe-sdk: v0.147.0
-- openvibe-shared: v4.200.0
+- openvibe-shared: v4.201.0
<!-- versions:end -->
<!-- versions:end -->
@@ -6,7 +6,7 @@
@@ -6,7 +6,7 @@
"deployment": "Launched 2026-10-17 at https://openvibe.vip (openvibe-contracts 0.200.0 made VIP live; vhost deploy/nginx/openvibe.vip.conf installed): deployed with `sudo ovhost deploy vip`, /opt/openvibe.vip, unit openvibe-vip, 127.0.0.1:4620 behind nginx. Principal vip; three Events subscriptions for Billing's events. Checkout open since the Billing cutover (VIP_CHECKOUT_PROVIDERS=powerchat,credit): 43 plans imported from Live, 0 memberships sold on launch day.",
"deployment": "Launched 2026-10-17 at https://openvibe.vip (openvibe-contracts 0.200.0 made VIP live; vhost deploy/nginx/openvibe.vip.conf installed): deployed with `sudo ovhost deploy vip`, /opt/openvibe.vip, unit openvibe-vip, 127.0.0.1:4620 behind nginx. Principal vip; three Events subscriptions for Billing's events. Checkout open since the Billing cutover (VIP_CHECKOUT_PROVIDERS=powerchat,credit): 43 plans imported from Live, 0 memberships sold on launch day.",
"contracts": "openvibe-contracts v0.399.0",
"contracts": "openvibe-contracts v0.399.0",
"sdk": "openvibe-sdk v0.147.0",
"sdk": "openvibe-sdk v0.147.0",
- "shared": "openvibe-shared v4.200.0",
+ "shared": "openvibe-shared v4.201.0",
"plan": "OpenVibe End-to-End Realignment & Implementation Plan, revision 3 (20 Sep 2026)",
"plan": "OpenVibe End-to-End Realignment & Implementation Plan, revision 3 (20 Sep 2026)",
"roadmap": "Wave 10",
"roadmap": "Wave 10",
"works": [
"works": [
@@ -16,7 +16,7 @@
@@ -16,7 +16,7 @@
"multer": "^2.5.0",
"multer": "^2.5.0",
"openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.399.0",
"openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.399.0",
"openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.147.0",
"openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.147.0",
- "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.200.0",
+ "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.201.0",
"pg": "^8.23.0"
"pg": "^8.23.0"
},
},
"devDependencies": {
"devDependencies": {
@@ -1279,9 +1279,9 @@
@@ -1279,9 +1279,9 @@
}
}
},
},
"node_modules/openvibe-shared": {
"node_modules/openvibe-shared": {
- "version": "4.200.0",
- "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.200.0",
- "integrity": "sha512-MkGUNbiLM7RbuYhYZlmQXX660x5hQWkwlG0skuxjShlXxqbPAMNpAM+OMu+BbQieMpXq8HfQyTJH6nr6O6lM7w==",
+ "version": "4.201.0",
+ "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.201.0",
+ "integrity": "sha512-dZuifDLCoMlg+Qg/2G7IE3NbCqd2fZuk0G32JODgFRWS+CaHHTUTwWBBieJkuaUa1IV2xETe8qtbdLwekhvatg==",
"license": "MIT",
"license": "MIT",
"dependencies": {
"dependencies": {
"clean-css": "^5.3.3",
"clean-css": "^5.3.3",
@@ -33,7 +33,7 @@
@@ -33,7 +33,7 @@
"multer": "^2.5.0",
"multer": "^2.5.0",
"openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.399.0",
"openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.399.0",
"openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.147.0",
"openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.147.0",
- "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.200.0",
+ "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.201.0",
"pg": "^8.23.0"
"pg": "^8.23.0"
},
},
"engines": {
"engines": {
@@ -11,6 +11,7 @@ const { createDomain } = require('../server/domain');
@@ -11,6 +11,7 @@ const { createDomain } = require('../server/domain');
const { createPosts } = require('../server/domain/posts');
const { createPosts } = require('../server/domain/posts');
const { createMediaClient } = require('../server/media-client');
const { createMediaClient } = require('../server/media-client');
const { createWebRoutes } = require('../server/web/routes');
const { createWebRoutes } = require('../server/web/routes');
+const glyphs = require('openvibe-shared/glyphs');
const { test, run } = harness('members-only posts');
const { test, run } = harness('members-only posts');
@@ -317,7 +318,11 @@ test('a locked post offers a way to join only when a tier that reads it can be j
@@ -317,7 +318,11 @@ test('a locked post offers a way to join only when a tier that reads it can be j
assert.ok(!out.text.includes('For the first row.'), 'no text of a locked post, either way');
assert.ok(!out.text.includes('For the first row.'), 'no text of a locked post, either way');
assert.ok(!out.text.includes('For the second row.'));
assert.ok(!out.text.includes('For the second row.'));
// The lock glyph before the line, drawn by the shared glyph set and hidden from a screen reader.
// The lock glyph before the line, drawn by the shared glyph set and hidden from a screen reader.
- assert.ok(/aria-hidden="true"><rect x="5" y="11"/.test(out.text), 'the shared lock glyph is on the line');
+ // Ask the pinned library for the drawing rather than pinning one of its older paths.
+ const lock = glyphs.svg('lock', { size: 16 });
+ assert.ok(lock, 'the shared glyph set draws a lock');
+ assert.match(lock, /aria-hidden="true"/, 'the glyph is hidden from a screen reader');
+ assert.ok(out.text.includes(lock), 'the shared lock glyph is on the line');
} finally { await t.close(); }
} finally { await t.close(); }
});
});