openvibers/openvibe.design Commits

openvibe-shared v4.93.2 (was v4.92.0) (#121)

OP OpenVibers committed 11 days ago · 9d422ac917 · 5 files, +12 −8

* openvibe-shared v4.93.2 (was v4.92.0)

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

* /kit: Labels (kit.labels) and its helpers, for openvibe-shared 4.93

Changes

ddiff --git a/README.md b/README.md
iindex 104e4d1..04604a2 100644
---- a/README.md
++++ b/README.md
@@@ -229,5 +229,5 @@ Part of the [OpenVibe network](https://openvibe.network). Built in the open by
<!-- versions:start -->
- openvibe-contracts: v0.236.0
- openvibe-sdk: v0.74.0
--- openvibe-shared: v4.92.0
++- openvibe-shared: v4.93.2
<!-- versions:end -->
ddiff --git a/STATUS.json b/STATUS.json
iindex 5e114c5..a28fd5e 100644
---- a/STATUS.json
++++ b/STATUS.json
@@@ -10,11 +10,11 @@
"domain": "openvibe.design",
"contracts": "openvibe-contracts v0.236.0",
"sdk": "openvibe-sdk v0.74.0",
-- "shared": "openvibe-shared v4.92.0",
++ "shared": "openvibe-shared v4.93.2",
"packages": [
"openvibe-contracts v0.236.0",
"openvibe-sdk v0.74.0",
-- "openvibe-shared v4.92.0"
++ "openvibe-shared v4.93.2"
],
"summary": "The service skeleton for openvibe.design: Network sign-in as OAuth client `design` (PKCE S256, httpOnly design_at/design_rt cookies) and a theme API proxy to OpenVibe.Network's /api/themes. The proxy serves the public catalogue (cached 5 minutes), one theme, the person's active theme and custom variables, saving a theme with source 'studio', its history and a restore by id, and a submission to the gallery. Writes need this site's own Origin; Network 4xx answers pass through and a Network failure is 502. The studio is designed: a gallery, previews on a Live channel, a Chat room and a shop's grid (with colour-vision views), a six-colour editor that derives the full token set, WCAG checks that gate Use, sharing to the gallery, and History with Restore. The Arena queues one prompt for three models through OpenVibe.AI (client credentials, ai.run.create), stores sanitized HTML with reported model/provider/cost/time/tokens, renders it only in sandboxed CSP-capped iframes, draws blind pairs, records one vote per person per round, and keeps Elo ratings per category plus median cost and time. The prompts, outputs and votes are an open JSONL dataset; rounds and votes follow ADR-033 export and deletion.",
"works": [
ddiff --git a/package-lock.json b/package-lock.json
iindex f4fc498..e11b707 100644
---- a/package-lock.json
++++ b/package-lock.json
@@@ -17,7 +17,7 @@
"helmet": "^8.1.0",
"openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.236.0",
"openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.74.0",
-- "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.92.0",
++ "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.93.2",
"pg": "^8.23.1",
"subset-font": "^2.9.0"
},
@@@ -1365,9 +1365,9 @@
}
},
"node_modules/openvibe-shared": {
-- "version": "4.92.0",
-- "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.92.0",
-- "integrity": "sha512-Z20rSXMAKef0d4VfqsFkJ76u4uIS8TiCZ5/Dqmpp00keYoGKz33qzykjpWraUuShmRQJdXzlGtmcAHdiWCxvOA==",
++ "version": "4.93.2",
++ "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.93.2",
++ "integrity": "sha512-wprQsl5zBZRwosJePELWGO1fmgFomKTbf1SyKsRVC4a0cpcronW6MLiWAVpAn3xm/IYSpw24/4Gf4f8AZQ0vAw==",
"license": "MIT",
"dependencies": {
"jsonwebtoken": "^9.0.0",
ddiff --git a/package.json b/package.json
iindex 85f88c4..5d0c3fe 100644
---- a/package.json
++++ b/package.json
@@@ -23,7 +23,7 @@
"helmet": "^8.1.0",
"openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.236.0",
"openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.74.0",
-- "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.92.0",
++ "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v4.93.2",
"pg": "^8.23.1",
"subset-font": "^2.9.0"
},
ddiff --git a/server/kit/parts.js b/server/kit/parts.js
iindex 7bf07a4..d26e47a 100644
---- a/server/kit/parts.js
++++ b/server/kit/parts.js
@@@ -93,6 +93,8 @@ const PARTS = [
code: `kit.drop({ name: 'photo', accept: 'image/*', label: 'Choose a photo', hint: 'JPEG, PNG or WebP, up to 20 MB', camera: true, id: 'kit-demo-drop' })` },
// ── Data ──
++ { id: 'labels', fn: 'labels', group: 'data', name: 'Labels', line: 'What a stream, recording, picture or post carries (nudity, strong language, graphic, 18+, flashing lights, spoilers), in words. Only the labels in force: a suggestion is the creator\'s to confirm. The page marks the thing itself with kit.labelsAttr so each viewer\'s own choice (show, blur, hide) applies.',
++ code: `kit.labels(['language', '18+'])` },
{ id: 'stats', fn: 'stats', group: 'data', name: 'Numbers', line: 'A strip of numbers that matter. Zero and unknown are left out; it scrolls sideways on a phone.',
code: `kit.stats([[1204, 'watching now'], [48, 'people chatting'], [12, 'streams live', '/live']])` },
{ id: 'num', fn: 'num', group: 'data', name: 'Number', line: 'A number the way a reader wants it: money, compact, percent, time. Missing is "–", never 0.',
@@@ -133,6 +135,8 @@ const PARTS = [
const HELPERS = [
['kit.esc(text)', 'Escapes text for HTML. Every builder already does it for its text arguments.'],
++ ['kit.labelsAttr(labels)', 'The data-ov-labels attribute for the labelled thing, so ov-labels.js (loaded by the navbar) applies each viewer\'s show, blur or hide.'],
++ ['kit.LABEL_NAMES', 'The six content labels and their names in words.'],
['kit.url(href)', 'Keeps http(s) and same-site links; anything else becomes #.'],
['kit.mediaW(url, width)', 'A Media picture at a width from its resize ladder (64, 96, 160, 320, 480, 640), so an avatar is not its full upload; any other URL as kit.url gives it.'],
['kit.icon(name)', 'One of kit.ICONS as inline SVG, in the text\'s colour. The full set is at /icons.'],