openvibers/openvibe.help Commits
openvibe-contracts v0.126.0 (was v0.122.1) (#6)
Changes
@@@ -207,7 +207,7 @@ Reporting a vulnerability: [SECURITY.md](SECURITY.md).Part of the [OpenVibe network](https://openvibe.network). Built in the open by [OpenVibers](https://github.com/OpenVibers).<!-- versions:start -->--- openvibe-contracts: v0.122.1++- openvibe-contracts: v0.126.0- openvibe-sdk: v0.36.0- openvibe-shared: v2.20.0<!-- versions:end -->@@@ -6,11 +6,11 @@"runtime": "node 22, express 4, PostgreSQL 18 (openvibe-sdk/db, async) + Valkey 9","port": "5020","domain": "openvibe.help",-- "contracts": "openvibe-contracts v0.122.1",++ "contracts": "openvibe-contracts v0.126.0","sdk": "openvibe-sdk v0.36.0","shared": "openvibe-shared v2.20.0","packages": [-- "openvibe-contracts v0.122.1",++ "openvibe-contracts v0.126.0","openvibe-sdk v0.36.0","openvibe-shared v2.20.0"],@@@ -15,7 +15,7 @@"express-rate-limit": "^7.5.0","helmet": "^8.1.0","iovalkey": "^0.4.0",-- "openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.122.1",++ "openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.126.0","openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.36.0","openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v2.20.0","pg": "^8.23.0"@@@ -871,9 +871,9 @@}},"node_modules/openvibe-contracts": {-- "version": "0.122.1",-- "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.122.1",-- "integrity": "sha512-+edJcURx0E76QWdgjr42fl0OgQxdWl7FA1OuWpopDKfO4ndidvf+GEz5skt1upSN4JLecLWrpMMyXJN27GjZsQ==",++ "version": "0.126.0",++ "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.126.0",++ "integrity": "sha512-M/Vu5aMHEMtPI29xYaM03ZMbm2bfmyX2NVhEHNsjgw6dt/buW2g9tPE015VuBjO3j8LpkzsjWc2QXIJiajTs+w==","license": "AGPL-3.0-only","dependencies": {"ajv": "^8.17.1",@@@ -22,7 +22,7 @@"express-rate-limit": "^7.5.0","helmet": "^8.1.0","iovalkey": "^0.4.0",-- "openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.122.1",++ "openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.126.0","openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.36.0","openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v2.20.0","pg": "^8.23.0"@@@ -99,8 +99,8 @@ const WITH_FAQ = [await check('a service manifest\'s own site faq is used, not only a product manifest\'s', () => {const openre = catalog.byId.get('openre.stream');-- assert.ok(openre && openre.faq.length === 5, `openre.stream has ${openre ? openre.faq.length : 'no'} questions`);-- assert.ok((catalog.bySite.get('openre.stream') || []).length === 5, 'no article pages for openre.stream');++ assert.ok(openre && openre.faq.length === 8, `openre.stream has ${openre ? openre.faq.length : 'no'} questions`);++ assert.ok((catalog.bySite.get('openre.stream') || []).length === 8, 'an article page per openre.stream question');});await check('the link back to the site and to its /updates is on the site page', async () => {@@@ -135,8 +135,11 @@ const WITH_FAQ = [});await check('/api/v1/articles?q= ranks the articles and names where each came from', async () => {-- const all = (await t.get('/api/v1/articles')).json();-- assert.strictEqual(all.count, catalog.articles.length);++ // A page is 50 articles by default and at most 100 (the catalog passed 50 with contracts 0.126.0).++ const page = (await t.get('/api/v1/articles')).json();++ assert.strictEqual(page.count, Math.min(catalog.articles.length, 50));++ const all = (await t.get('/api/v1/articles?limit=100')).json();++ assert.strictEqual(all.count, Math.min(catalog.articles.length, 100));const hits = (await t.get('/api/v1/articles?q=agent')).json();assert.ok(hits.count > 0, 'no hits for "agent"');assert.ok(hits.articles.every((a) => a.url.startsWith('/a/')), 'an article without a URL');
@@ -207,7 +207,7 @@ Reporting a vulnerability: [SECURITY.md](SECURITY.md).
@@ -207,7 +207,7 @@ Reporting a vulnerability: [SECURITY.md](SECURITY.md).
Part of the [OpenVibe network](https://openvibe.network). Built in the open by [OpenVibers](https://github.com/OpenVibers).
Part of the [OpenVibe network](https://openvibe.network). Built in the open by [OpenVibers](https://github.com/OpenVibers).
<!-- versions:start -->
<!-- versions:start -->
-- openvibe-contracts: v0.122.1
+- openvibe-contracts: v0.126.0
- openvibe-sdk: v0.36.0
- openvibe-sdk: v0.36.0
- openvibe-shared: v2.20.0
- openvibe-shared: v2.20.0
<!-- versions:end -->
<!-- versions:end -->
@@ -6,11 +6,11 @@
@@ -6,11 +6,11 @@
"runtime": "node 22, express 4, PostgreSQL 18 (openvibe-sdk/db, async) + Valkey 9",
"runtime": "node 22, express 4, PostgreSQL 18 (openvibe-sdk/db, async) + Valkey 9",
"port": "5020",
"port": "5020",
"domain": "openvibe.help",
"domain": "openvibe.help",
- "contracts": "openvibe-contracts v0.122.1",
+ "contracts": "openvibe-contracts v0.126.0",
"sdk": "openvibe-sdk v0.36.0",
"sdk": "openvibe-sdk v0.36.0",
"shared": "openvibe-shared v2.20.0",
"shared": "openvibe-shared v2.20.0",
"packages": [
"packages": [
- "openvibe-contracts v0.122.1",
+ "openvibe-contracts v0.126.0",
"openvibe-sdk v0.36.0",
"openvibe-sdk v0.36.0",
"openvibe-shared v2.20.0"
"openvibe-shared v2.20.0"
],
],
@@ -15,7 +15,7 @@
@@ -15,7 +15,7 @@
"express-rate-limit": "^7.5.0",
"express-rate-limit": "^7.5.0",
"helmet": "^8.1.0",
"helmet": "^8.1.0",
"iovalkey": "^0.4.0",
"iovalkey": "^0.4.0",
- "openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.122.1",
+ "openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.126.0",
"openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.36.0",
"openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.36.0",
"openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v2.20.0",
"openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v2.20.0",
"pg": "^8.23.0"
"pg": "^8.23.0"
@@ -871,9 +871,9 @@
@@ -871,9 +871,9 @@
}
}
},
},
"node_modules/openvibe-contracts": {
"node_modules/openvibe-contracts": {
- "version": "0.122.1",
- "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.122.1",
- "integrity": "sha512-+edJcURx0E76QWdgjr42fl0OgQxdWl7FA1OuWpopDKfO4ndidvf+GEz5skt1upSN4JLecLWrpMMyXJN27GjZsQ==",
+ "version": "0.126.0",
+ "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.126.0",
+ "integrity": "sha512-M/Vu5aMHEMtPI29xYaM03ZMbm2bfmyX2NVhEHNsjgw6dt/buW2g9tPE015VuBjO3j8LpkzsjWc2QXIJiajTs+w==",
"license": "AGPL-3.0-only",
"license": "AGPL-3.0-only",
"dependencies": {
"dependencies": {
"ajv": "^8.17.1",
"ajv": "^8.17.1",
@@ -22,7 +22,7 @@
@@ -22,7 +22,7 @@
"express-rate-limit": "^7.5.0",
"express-rate-limit": "^7.5.0",
"helmet": "^8.1.0",
"helmet": "^8.1.0",
"iovalkey": "^0.4.0",
"iovalkey": "^0.4.0",
- "openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.122.1",
+ "openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.126.0",
"openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.36.0",
"openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.36.0",
"openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v2.20.0",
"openvibe-shared": "https://codeload.github.com/OpenVibers/OpenVibe.Shared/tar.gz/refs/tags/v2.20.0",
"pg": "^8.23.0"
"pg": "^8.23.0"
@@ -99,8 +99,8 @@ const WITH_FAQ = [
@@ -99,8 +99,8 @@ const WITH_FAQ = [
await check('a service manifest\'s own site faq is used, not only a product manifest\'s', () => {
await check('a service manifest\'s own site faq is used, not only a product manifest\'s', () => {
const openre = catalog.byId.get('openre.stream');
const openre = catalog.byId.get('openre.stream');
- assert.ok(openre && openre.faq.length === 5, `openre.stream has ${openre ? openre.faq.length : 'no'} questions`);
- assert.ok((catalog.bySite.get('openre.stream') || []).length === 5, 'no article pages for openre.stream');
+ assert.ok(openre && openre.faq.length === 8, `openre.stream has ${openre ? openre.faq.length : 'no'} questions`);
+ assert.ok((catalog.bySite.get('openre.stream') || []).length === 8, 'an article page per openre.stream question');
});
});
await check('the link back to the site and to its /updates is on the site page', async () => {
await check('the link back to the site and to its /updates is on the site page', async () => {
@@ -135,8 +135,11 @@ const WITH_FAQ = [
@@ -135,8 +135,11 @@ const WITH_FAQ = [
});
});
await check('/api/v1/articles?q= ranks the articles and names where each came from', async () => {
await check('/api/v1/articles?q= ranks the articles and names where each came from', async () => {
- const all = (await t.get('/api/v1/articles')).json();
- assert.strictEqual(all.count, catalog.articles.length);
+ // A page is 50 articles by default and at most 100 (the catalog passed 50 with contracts 0.126.0).
+ const page = (await t.get('/api/v1/articles')).json();
+ assert.strictEqual(page.count, Math.min(catalog.articles.length, 50));
+ const all = (await t.get('/api/v1/articles?limit=100')).json();
+ assert.strictEqual(all.count, Math.min(catalog.articles.length, 100));
const hits = (await t.get('/api/v1/articles?q=agent')).json();
const hits = (await t.get('/api/v1/articles?q=agent')).json();
assert.ok(hits.count > 0, 'no hits for "agent"');
assert.ok(hits.count > 0, 'no hits for "agent"');
assert.ok(hits.articles.every((a) => a.url.startsWith('/a/')), 'an article without a URL');
assert.ok(hits.articles.every((a) => a.url.startsWith('/a/')), 'an article without a URL');