openvibers/openvibe.media Commits

Bump openvibe-shared v2.3.1 → v2.5.0 (#16)

OP OpenVibers committed 3 Oct 2026 · 6fc4e524f1 · 4 files, +33 −7

checks run by GitHub CI (test, test-pg) · CI ✓ 3/3 · review SHIP by Codex GPT-6 Sol · 1 fix round

https://github.com/OpenVibers/OpenVibe.Media/pull/16

Changes

ddiff --git a/README.md b/README.md
iindex a158397..a283f8b 100644
---- a/README.md
++++ b/README.md
@@@ -45,7 +45,7 @@ without `DATABASE_URL`, development uses an embedded PGlite database in `data/pg
the account and revocation subscriptions)
- Backblaze B2 and Cloudflare R2 (S3 API) when configured; `ffmpeg`/`ffprobe` on the host
- `openvibe-contracts` v0.79.0, `openvibe-sdk` v0.21.2 (tokens, events outbox, per-actor limits),
-- `openvibe-shared` v2.3.1, pinned by release tarball
++ `openvibe-shared` v2.5.0, pinned by release tarball
## Capabilities
@@@ -111,7 +111,7 @@ server/
vod.duration.reconcile (stored vs measured durations, local and B2/R2),
storage.orphans.scan (monthly storage orphan report, service-wide, report only)
client-ip.js trust proxy = loopback; req.ip is the only client address
--(openvibe-shared v2.3.1, openvibe-contracts v0.79.0, openvibe-sdk v0.21.2: pinned release tarballs, installed by npm)
++(openvibe-shared v2.5.0, openvibe-contracts v0.79.0, openvibe-sdk v0.21.2: pinned release tarballs, installed by npm)
scripts/smoke-test.sh end-to-end smoke test (boots a temp instance)
scripts/reconcile-objects.js / object-invariant.js / object-drift-report.js / no-good-copy-report.js object-model operator tools
scripts/media-jobs.js list jobs, run the size-invariant scan (dry run by default), approve/cancel proposals
ddiff --git a/package-lock.json b/package-lock.json
iindex 2466047..c95aff9 100644
---- a/package-lock.json
++++ b/package-lock.json
@@@ -19,7 +19,7 @@
"multer": "^1.4.5-lts.1",
"openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.79.0",
"openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.21.2",
-- "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v2.3.1",
++ "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v2.5.0",
"pg": "^8.23.0",
"sharp": "^0.33.4"
},
@@@ -2055,12 +2055,15 @@
}
},
"node_modules/openvibe-shared": {
-- "version": "2.3.1",
-- "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v2.3.1",
-- "integrity": "sha512-K+MXnB4O+8xIFi+NQGC2SDTvDq3RkzfxQ3bTVx76Y/Rbuq7kC/L5kL3c/06xr9sPYcjyzF3Bhpv5yH2YNfR4Zw==",
++ "version": "2.5.0",
++ "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v2.5.0",
++ "integrity": "sha512-fHuUS6SXM7ezatfAyqLm1V8B6puV9YXSnz6aG6XQbWx28qghRCCHeUF3lr4nxiCGdn9SyikYtIyLGL5r1ycp9Q==",
"license": "MIT",
"dependencies": {
"jsonwebtoken": "^9.0.0"
++ },
++ "bin": {
++ "openvibe-build-assets": "scripts/build-assets.js"
}
},
"node_modules/parseurl": {
ddiff --git a/package.json b/package.json
iindex 0b4c2a2..19443d3 100644
---- a/package.json
++++ b/package.json
@@@ -23,7 +23,7 @@
"multer": "^1.4.5-lts.1",
"openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.79.0",
"openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.21.2",
-- "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v2.3.1",
++ "openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v2.5.0",
"pg": "^8.23.0",
"sharp": "^0.33.4"
},
ddiff --git a/test/pins.test.js b/test/pins.test.js
nnew file mode 100644
iindex 0000000..8712825
---- /dev/null
++++ b/test/pins.test.js
@@@ -0,0 +1,23 @@
++'use strict';
++// The README documents the shared libraries Media pins by release tarball. The pin and the lockfile move
++// together (ov bump), but the README's copy was left behind on the openvibe-shared v2.3.1 → v2.5.0 bump —
++// the doc drift this guards. Every pinned tag in package.json must be the version the README names.
++const assert = require('assert');
++const fs = require('fs');
++const path = require('path');
++
++const root = path.join(__dirname, '..');
++const pkg = require(path.join(root, 'package.json'));
++const readme = fs.readFileSync(path.join(root, 'README.md'), 'utf8');
++
++const PIN = /OpenVibers\/OpenVibe\.[A-Za-z]+\/tar\.gz\/refs\/tags\/v(\d+\.\d+\.\d+)$/;
++let pinned = 0;
++for (const [name, spec] of Object.entries(pkg.dependencies || {})) {
++ if (!name.startsWith('openvibe-')) continue;
++ const m = PIN.exec(String(spec));
++ if (!m) continue;
++ pinned++;
++ assert.ok(new RegExp(`${name.replace(/\./g, '\\.')}\`? v${m[1]}`).test(readme), `README names ${name} v${m[1]}, the pinned tag`);
++}
++assert.ok(pinned >= 3, `the README's pin list covers every tarball pin (found ${pinned})`);
++console.log(`pins: README matches ${pinned} pinned release tarballs`);