openvibers/openvibe.examples Commits
openvibe-sdk v0.6.0 in every example; the tool-job example submits through the openvibe.tools gateway jobs facade (it hard-coded the img satellite)
Changes
@@@ -78,7 +78,7 @@ npm run e2e # reads ./.env: OV_CLIENT_ID, OV_CLIENT_SECRET, OV_PROJECT_It uploads a small file to your Media tenant, reads it back and deletes it; publishes`app.<project_key>.e2e.ran` and pulls your topic until it finds it; converts a 1x1 PNG to WebP on--`img.openvibe.tools`, following the job's events. It prints each step (never the secret, a token++`openvibe.tools` (the gateway's jobs facade), following the job's events. It prints each step (never the secret, a tokenor a URL signature) and exits `1` if a step failed, `2` if a variable is missing.**4. Run the examples.** Each reads `.env` in its own folder (`cp .env.example .env`), or point it@@@ -13,6 +13,6 @@"node": ">=22"},"dependencies": {-- "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.4.0"++ "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.6.0"}}@@@ -13,6 +13,6 @@"node": ">=22"},"dependencies": {-- "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.4.0"++ "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.6.0"}}@@@ -13,6 +13,6 @@"node": ">=22"},"dependencies": {-- "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.4.0"++ "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.6.0"}}@@@ -13,7 +13,7 @@"node": ">=22"},"dependencies": {-- "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.4.0",++ "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.6.0","openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.28.0"}}@@@ -13,6 +13,6 @@"node": ">=22"},"dependencies": {-- "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.4.0"++ "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.6.0"}}@@@ -13,6 +13,6 @@"node": ">=22"},"dependencies": {-- "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.4.0"++ "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.6.0"}}@@@ -42,7 +42,7 @@ npm test```Network and Tools are `openvibe-sdk/testing`'s mock platform with `jobs` enabled, answering at--`https://img.openvibe.tools` like the real satellite (an `img.process` handler plays queued →++`https://openvibe.tools` like the real gateway (an `img.process` handler plays queued →running → progress → succeeded; `acceptSandbox: ['openvibe.tools']` because Tools accepts sandboxapp tokens on jobs); `dropJobStreams()` cuts the event stream after the first event.@@@ -53,7 +53,7 @@ app tokens on jobs); `dropJobStreams()` cuts the event stream after the first ev2. `cp .env.example .env`, fill in `OV_CLIENT_ID` and `OV_CLIENT_SECRET`.3. `node --env-file=.env run-job.js ./photo.png`--`img.process` runs on `https://img.openvibe.tools` (`input.tool` is one of its tools, for example++`img.process` runs on the img satellite behind `https://openvibe.tools` (`input.tool` is one of its tools, for example`convert` with `format`); audio and docs jobs run on their own satellites (set`OV_TOOLS_JOBS_URL`, `OV_JOB_TYPE`, `OV_JOB_INPUT`). Tools accepts sandbox app tokens on`/api/v1/jobs`: a sandbox project may have 2 active jobs of at most 30 minutes, and its results are@@@ -13,6 +13,6 @@"node": ">=22"},"dependencies": {-- "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.4.0"++ "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.6.0"}}@@@ -35,7 +35,7 @@ function loadConfig(env = process.env) {network: env.OV_NETWORK_URL || 'https://openvibe.network',clientId: env.OV_CLIENT_ID,clientSecret: env.OV_CLIENT_SECRET,-- toolsUrl: env.OV_TOOLS_JOBS_URL || 'https://img.openvibe.tools',++ toolsUrl: env.OV_TOOLS_JOBS_URL || 'https://openvibe.tools', // the gateway's /api/v1/jobs facade routes img.process to the img satellitetype: env.OV_JOB_TYPE || 'img.process',input,outDir: env.OV_OUT_DIR || path.join(process.cwd(), 'out'),@@@ -58,7 +58,7 @@ const TOOLS = ['tools.job.create', 'tools.job.read'];assert.equal(fs.readFileSync(files[0], 'utf8'), 'converted:not really a png, the mock does not care');assert.equal(fs.existsSync(env.OV_JOB_STATE), false, 'state cleared once done');assert.equal(submits(), 1);-- assert.ok(platform.stats.requests.some((r) => r.url === 'https://img.openvibe.tools/api/v1/jobs'), 'img.process went to the img satellite (the default)');++ assert.ok(platform.stats.requests.some((r) => r.url === 'https://openvibe.tools/api/v1/jobs'), 'img.process went to the Tools gateway (its /api/v1/jobs facade, the default)');const submitCall = platform.stats.requests.find((r) => r.method === 'POST' && r.url.endsWith('/api/v1/jobs'));assert.match(submitCall.headers['idempotency-key'], /^ex-[0-9a-f]{40}$/);@@@ -13,7 +13,7 @@"node": ">=22"},"dependencies": {-- "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.4.0",++ "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.6.0","better-sqlite3": "^11.10.0"}}@@@ -12,7 +12,7 @@"examples/*"],"devDependencies": {-- "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.4.0"++ "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.6.0"},"engines": {"node": ">=22"@@@ -23,7 +23,7 @@"version": "0.2.0","license": "MIT","dependencies": {-- "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.4.0"++ "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.6.0"},"engines": {"node": ">=22"@@@ -45,7 +45,7 @@"version": "0.2.0","license": "MIT","dependencies": {-- "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.4.0"++ "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.6.0"},"engines": {"node": ">=22"@@@ -56,7 +56,7 @@"version": "0.2.0","license": "MIT","dependencies": {-- "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.4.0"++ "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.6.0"},"engines": {"node": ">=22"@@@ -68,7 +68,7 @@"license": "MIT","dependencies": {"openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.28.0",-- "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.4.0"++ "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.6.0"},"engines": {"node": ">=22"@@@ -79,7 +79,7 @@"version": "0.2.0","license": "MIT","dependencies": {-- "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.4.0"++ "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.6.0"},"engines": {"node": ">=22"@@@ -90,7 +90,7 @@"version": "0.2.0","license": "MIT","dependencies": {-- "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.4.0"++ "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.6.0"},"engines": {"node": ">=22"@@@ -101,7 +101,7 @@"version": "0.2.0","license": "MIT","dependencies": {-- "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.4.0"++ "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.6.0"},"engines": {"node": ">=22"@@@ -113,7 +113,7 @@"license": "MIT","dependencies": {"better-sqlite3": "^11.10.0",-- "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.4.0"++ "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.6.0"},"engines": {"node": ">=22"@@@ -469,9 +469,9 @@"link": true},"node_modules/openvibe-sdk": {-- "version": "0.4.0",-- "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.4.0",-- "integrity": "sha512-Hyz55YOMIs0xwCQ1NXsN0sUYhlbKXAX3uWY2fPCdEEL18FXUYVhK8wlG/5JMMypFHnjDiSd9VHzBNG12hWsmkQ==",++ "version": "0.6.0",++ "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.6.0",++ "integrity": "sha512-v6PFh8Xf/bE1XDbuSkbVXVC5cN+q9fkwQi/qc9kmiGPr9Zze47ydS+qS0i3RXUmQF2v0/BdCzAMcowsdzf1ezQ==","license": "MIT","engines": {"node": ">=20"@@@ -19,6 +19,6 @@"node": ">=22"},"devDependencies": {-- "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.4.0"++ "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.6.0"}}@@@ -15,7 +15,7 @@* metadata back, delete it* 2. event-subscriber publish app.<project_key>.e2e.ran, then pull the project's topic from just* before it with a durable cursor and find it-- * 3. tool-job convert a 1x1 PNG to WebP on img.openvibe.tools, following the job's events++ * 3. tool-job convert a 1x1 PNG to WebP through the openvibe.tools jobs facade, following the job's events** It refuses to start without the three variables, prints what each step did, and never prints a* secret: the client secret and anything shaped like a token are masked in all output, and signed@@@ -12,7 +12,7 @@ const path = require('node:path');const ROOT = path.join(__dirname, '..');const EXPECTED = ['browser-app', 'chat-bot', 'event-subscriber', 'media-uploader', 'mod-manifest', 'node-server-app', 'oauth-app', 'tool-job', 'webhook-consumer'];--const SDK = 'https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.4.0';++const SDK = 'https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.6.0';const dirs = fs.readdirSync(path.join(ROOT, 'examples')).filter((d) => fs.statSync(path.join(ROOT, 'examples', d)).isDirectory()).sort();assert.deepEqual(dirs, EXPECTED, 'the nine charter examples');@@@ -38,7 +38,7 @@ for (const name of EXPECTED) {assert.equal(pkg.scripts.test, 'node test/smoke.test.js', `${name}: npm test runs the smoke test`);for (const [dep, spec] of Object.entries({ ...pkg.dependencies, ...pkg.devDependencies })) {assert.ok(!/^(file|link):/.test(spec), `${name}: ${dep} is not a local link`);-- if (dep === 'openvibe-sdk') assert.equal(spec, SDK, `${name}: openvibe-sdk pinned to v0.4.0`);++ if (dep === 'openvibe-sdk') assert.equal(spec, SDK, `${name}: openvibe-sdk pinned to v0.6.0`);}const readme = fs.readFileSync(path.join(dir, 'README.md'), 'utf8');
@@ -78,7 +78,7 @@ npm run e2e # reads ./.env: OV_CLIENT_ID, OV_CLIENT_SECRET, OV_PROJECT_
@@ -78,7 +78,7 @@ npm run e2e # reads ./.env: OV_CLIENT_ID, OV_CLIENT_SECRET, OV_PROJECT_
It uploads a small file to your Media tenant, reads it back and deletes it; publishes
It uploads a small file to your Media tenant, reads it back and deletes it; publishes
`app.<project_key>.e2e.ran` and pulls your topic until it finds it; converts a 1x1 PNG to WebP on
`app.<project_key>.e2e.ran` and pulls your topic until it finds it; converts a 1x1 PNG to WebP on
-`img.openvibe.tools`, following the job's events. It prints each step (never the secret, a token
+`openvibe.tools` (the gateway's jobs facade), following the job's events. It prints each step (never the secret, a token
or a URL signature) and exits `1` if a step failed, `2` if a variable is missing.
or a URL signature) and exits `1` if a step failed, `2` if a variable is missing.
**4. Run the examples.** Each reads `.env` in its own folder (`cp .env.example .env`), or point it
**4. Run the examples.** Each reads `.env` in its own folder (`cp .env.example .env`), or point it
@@ -13,6 +13,6 @@
@@ -13,6 +13,6 @@
"node": ">=22"
"node": ">=22"
},
},
"dependencies": {
"dependencies": {
- "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.4.0"
+ "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.6.0"
}
}
}
}
@@ -13,6 +13,6 @@
@@ -13,6 +13,6 @@
"node": ">=22"
"node": ">=22"
},
},
"dependencies": {
"dependencies": {
- "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.4.0"
+ "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.6.0"
}
}
}
}
@@ -13,6 +13,6 @@
@@ -13,6 +13,6 @@
"node": ">=22"
"node": ">=22"
},
},
"dependencies": {
"dependencies": {
- "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.4.0"
+ "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.6.0"
}
}
}
}
@@ -13,7 +13,7 @@
@@ -13,7 +13,7 @@
"node": ">=22"
"node": ">=22"
},
},
"dependencies": {
"dependencies": {
- "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.4.0",
+ "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.6.0",
"openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.28.0"
"openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.28.0"
}
}
}
}
@@ -13,6 +13,6 @@
@@ -13,6 +13,6 @@
"node": ">=22"
"node": ">=22"
},
},
"dependencies": {
"dependencies": {
- "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.4.0"
+ "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.6.0"
}
}
}
}
@@ -13,6 +13,6 @@
@@ -13,6 +13,6 @@
"node": ">=22"
"node": ">=22"
},
},
"dependencies": {
"dependencies": {
- "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.4.0"
+ "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.6.0"
}
}
}
}
@@ -42,7 +42,7 @@ npm test
@@ -42,7 +42,7 @@ npm test
```
```
Network and Tools are `openvibe-sdk/testing`'s mock platform with `jobs` enabled, answering at
Network and Tools are `openvibe-sdk/testing`'s mock platform with `jobs` enabled, answering at
-`https://img.openvibe.tools` like the real satellite (an `img.process` handler plays queued →
+`https://openvibe.tools` like the real gateway (an `img.process` handler plays queued →
running → progress → succeeded; `acceptSandbox: ['openvibe.tools']` because Tools accepts sandbox
running → progress → succeeded; `acceptSandbox: ['openvibe.tools']` because Tools accepts sandbox
app tokens on jobs); `dropJobStreams()` cuts the event stream after the first event.
app tokens on jobs); `dropJobStreams()` cuts the event stream after the first event.
@@ -53,7 +53,7 @@ app tokens on jobs); `dropJobStreams()` cuts the event stream after the first ev
@@ -53,7 +53,7 @@ app tokens on jobs); `dropJobStreams()` cuts the event stream after the first ev
2. `cp .env.example .env`, fill in `OV_CLIENT_ID` and `OV_CLIENT_SECRET`.
2. `cp .env.example .env`, fill in `OV_CLIENT_ID` and `OV_CLIENT_SECRET`.
3. `node --env-file=.env run-job.js ./photo.png`
3. `node --env-file=.env run-job.js ./photo.png`
-`img.process` runs on `https://img.openvibe.tools` (`input.tool` is one of its tools, for example
+`img.process` runs on the img satellite behind `https://openvibe.tools` (`input.tool` is one of its tools, for example
`convert` with `format`); audio and docs jobs run on their own satellites (set
`convert` with `format`); audio and docs jobs run on their own satellites (set
`OV_TOOLS_JOBS_URL`, `OV_JOB_TYPE`, `OV_JOB_INPUT`). Tools accepts sandbox app tokens on
`OV_TOOLS_JOBS_URL`, `OV_JOB_TYPE`, `OV_JOB_INPUT`). Tools accepts sandbox app tokens on
`/api/v1/jobs`: a sandbox project may have 2 active jobs of at most 30 minutes, and its results are
`/api/v1/jobs`: a sandbox project may have 2 active jobs of at most 30 minutes, and its results are
@@ -13,6 +13,6 @@
@@ -13,6 +13,6 @@
"node": ">=22"
"node": ">=22"
},
},
"dependencies": {
"dependencies": {
- "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.4.0"
+ "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.6.0"
}
}
}
}
@@ -35,7 +35,7 @@ function loadConfig(env = process.env) {
@@ -35,7 +35,7 @@ function loadConfig(env = process.env) {
network: env.OV_NETWORK_URL || 'https://openvibe.network',
network: env.OV_NETWORK_URL || 'https://openvibe.network',
clientId: env.OV_CLIENT_ID,
clientId: env.OV_CLIENT_ID,
clientSecret: env.OV_CLIENT_SECRET,
clientSecret: env.OV_CLIENT_SECRET,
- toolsUrl: env.OV_TOOLS_JOBS_URL || 'https://img.openvibe.tools',
+ toolsUrl: env.OV_TOOLS_JOBS_URL || 'https://openvibe.tools', // the gateway's /api/v1/jobs facade routes img.process to the img satellite
type: env.OV_JOB_TYPE || 'img.process',
type: env.OV_JOB_TYPE || 'img.process',
input,
input,
outDir: env.OV_OUT_DIR || path.join(process.cwd(), 'out'),
outDir: env.OV_OUT_DIR || path.join(process.cwd(), 'out'),
@@ -58,7 +58,7 @@ const TOOLS = ['tools.job.create', 'tools.job.read'];
@@ -58,7 +58,7 @@ const TOOLS = ['tools.job.create', 'tools.job.read'];
assert.equal(fs.readFileSync(files[0], 'utf8'), 'converted:not really a png, the mock does not care');
assert.equal(fs.readFileSync(files[0], 'utf8'), 'converted:not really a png, the mock does not care');
assert.equal(fs.existsSync(env.OV_JOB_STATE), false, 'state cleared once done');
assert.equal(fs.existsSync(env.OV_JOB_STATE), false, 'state cleared once done');
assert.equal(submits(), 1);
assert.equal(submits(), 1);
- assert.ok(platform.stats.requests.some((r) => r.url === 'https://img.openvibe.tools/api/v1/jobs'), 'img.process went to the img satellite (the default)');
+ assert.ok(platform.stats.requests.some((r) => r.url === 'https://openvibe.tools/api/v1/jobs'), 'img.process went to the Tools gateway (its /api/v1/jobs facade, the default)');
const submitCall = platform.stats.requests.find((r) => r.method === 'POST' && r.url.endsWith('/api/v1/jobs'));
const submitCall = platform.stats.requests.find((r) => r.method === 'POST' && r.url.endsWith('/api/v1/jobs'));
assert.match(submitCall.headers['idempotency-key'], /^ex-[0-9a-f]{40}$/);
assert.match(submitCall.headers['idempotency-key'], /^ex-[0-9a-f]{40}$/);
@@ -13,7 +13,7 @@
@@ -13,7 +13,7 @@
"node": ">=22"
"node": ">=22"
},
},
"dependencies": {
"dependencies": {
- "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.4.0",
+ "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.6.0",
"better-sqlite3": "^11.10.0"
"better-sqlite3": "^11.10.0"
}
}
}
}
@@ -12,7 +12,7 @@
@@ -12,7 +12,7 @@
"examples/*"
"examples/*"
],
],
"devDependencies": {
"devDependencies": {
- "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.4.0"
+ "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.6.0"
},
},
"engines": {
"engines": {
"node": ">=22"
"node": ">=22"
@@ -23,7 +23,7 @@
@@ -23,7 +23,7 @@
"version": "0.2.0",
"version": "0.2.0",
"license": "MIT",
"license": "MIT",
"dependencies": {
"dependencies": {
- "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.4.0"
+ "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.6.0"
},
},
"engines": {
"engines": {
"node": ">=22"
"node": ">=22"
@@ -45,7 +45,7 @@
@@ -45,7 +45,7 @@
"version": "0.2.0",
"version": "0.2.0",
"license": "MIT",
"license": "MIT",
"dependencies": {
"dependencies": {
- "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.4.0"
+ "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.6.0"
},
},
"engines": {
"engines": {
"node": ">=22"
"node": ">=22"
@@ -56,7 +56,7 @@
@@ -56,7 +56,7 @@
"version": "0.2.0",
"version": "0.2.0",
"license": "MIT",
"license": "MIT",
"dependencies": {
"dependencies": {
- "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.4.0"
+ "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.6.0"
},
},
"engines": {
"engines": {
"node": ">=22"
"node": ">=22"
@@ -68,7 +68,7 @@
@@ -68,7 +68,7 @@
"license": "MIT",
"license": "MIT",
"dependencies": {
"dependencies": {
"openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.28.0",
"openvibe-contracts": "https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/v0.28.0",
- "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.4.0"
+ "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.6.0"
},
},
"engines": {
"engines": {
"node": ">=22"
"node": ">=22"
@@ -79,7 +79,7 @@
@@ -79,7 +79,7 @@
"version": "0.2.0",
"version": "0.2.0",
"license": "MIT",
"license": "MIT",
"dependencies": {
"dependencies": {
- "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.4.0"
+ "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.6.0"
},
},
"engines": {
"engines": {
"node": ">=22"
"node": ">=22"
@@ -90,7 +90,7 @@
@@ -90,7 +90,7 @@
"version": "0.2.0",
"version": "0.2.0",
"license": "MIT",
"license": "MIT",
"dependencies": {
"dependencies": {
- "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.4.0"
+ "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.6.0"
},
},
"engines": {
"engines": {
"node": ">=22"
"node": ">=22"
@@ -101,7 +101,7 @@
@@ -101,7 +101,7 @@
"version": "0.2.0",
"version": "0.2.0",
"license": "MIT",
"license": "MIT",
"dependencies": {
"dependencies": {
- "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.4.0"
+ "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.6.0"
},
},
"engines": {
"engines": {
"node": ">=22"
"node": ">=22"
@@ -113,7 +113,7 @@
@@ -113,7 +113,7 @@
"license": "MIT",
"license": "MIT",
"dependencies": {
"dependencies": {
"better-sqlite3": "^11.10.0",
"better-sqlite3": "^11.10.0",
- "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.4.0"
+ "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.6.0"
},
},
"engines": {
"engines": {
"node": ">=22"
"node": ">=22"
@@ -469,9 +469,9 @@
@@ -469,9 +469,9 @@
"link": true
"link": true
},
},
"node_modules/openvibe-sdk": {
"node_modules/openvibe-sdk": {
- "version": "0.4.0",
- "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.4.0",
- "integrity": "sha512-Hyz55YOMIs0xwCQ1NXsN0sUYhlbKXAX3uWY2fPCdEEL18FXUYVhK8wlG/5JMMypFHnjDiSd9VHzBNG12hWsmkQ==",
+ "version": "0.6.0",
+ "resolved": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.6.0",
+ "integrity": "sha512-v6PFh8Xf/bE1XDbuSkbVXVC5cN+q9fkwQi/qc9kmiGPr9Zze47ydS+qS0i3RXUmQF2v0/BdCzAMcowsdzf1ezQ==",
"license": "MIT",
"license": "MIT",
"engines": {
"engines": {
"node": ">=20"
"node": ">=20"
@@ -19,6 +19,6 @@
@@ -19,6 +19,6 @@
"node": ">=22"
"node": ">=22"
},
},
"devDependencies": {
"devDependencies": {
- "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.4.0"
+ "openvibe-sdk": "https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.6.0"
}
}
}
}
@@ -15,7 +15,7 @@
@@ -15,7 +15,7 @@
* metadata back, delete it
* metadata back, delete it
* 2. event-subscriber publish app.<project_key>.e2e.ran, then pull the project's topic from just
* 2. event-subscriber publish app.<project_key>.e2e.ran, then pull the project's topic from just
* before it with a durable cursor and find it
* before it with a durable cursor and find it
- * 3. tool-job convert a 1x1 PNG to WebP on img.openvibe.tools, following the job's events
+ * 3. tool-job convert a 1x1 PNG to WebP through the openvibe.tools jobs facade, following the job's events
*
*
* It refuses to start without the three variables, prints what each step did, and never prints a
* It refuses to start without the three variables, prints what each step did, and never prints a
* secret: the client secret and anything shaped like a token are masked in all output, and signed
* secret: the client secret and anything shaped like a token are masked in all output, and signed
@@ -12,7 +12,7 @@ const path = require('node:path');
@@ -12,7 +12,7 @@ const path = require('node:path');
const ROOT = path.join(__dirname, '..');
const ROOT = path.join(__dirname, '..');
const EXPECTED = ['browser-app', 'chat-bot', 'event-subscriber', 'media-uploader', 'mod-manifest', 'node-server-app', 'oauth-app', 'tool-job', 'webhook-consumer'];
const EXPECTED = ['browser-app', 'chat-bot', 'event-subscriber', 'media-uploader', 'mod-manifest', 'node-server-app', 'oauth-app', 'tool-job', 'webhook-consumer'];
-const SDK = 'https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.4.0';
+const SDK = 'https://codeload.github.com/OpenVibers/OpenVibe.SDK/tar.gz/refs/tags/v0.6.0';
const dirs = fs.readdirSync(path.join(ROOT, 'examples')).filter((d) => fs.statSync(path.join(ROOT, 'examples', d)).isDirectory()).sort();
const dirs = fs.readdirSync(path.join(ROOT, 'examples')).filter((d) => fs.statSync(path.join(ROOT, 'examples', d)).isDirectory()).sort();
assert.deepEqual(dirs, EXPECTED, 'the nine charter examples');
assert.deepEqual(dirs, EXPECTED, 'the nine charter examples');
@@ -38,7 +38,7 @@ for (const name of EXPECTED) {
@@ -38,7 +38,7 @@ for (const name of EXPECTED) {
assert.equal(pkg.scripts.test, 'node test/smoke.test.js', `${name}: npm test runs the smoke test`);
assert.equal(pkg.scripts.test, 'node test/smoke.test.js', `${name}: npm test runs the smoke test`);
for (const [dep, spec] of Object.entries({ ...pkg.dependencies, ...pkg.devDependencies })) {
for (const [dep, spec] of Object.entries({ ...pkg.dependencies, ...pkg.devDependencies })) {
assert.ok(!/^(file|link):/.test(spec), `${name}: ${dep} is not a local link`);
assert.ok(!/^(file|link):/.test(spec), `${name}: ${dep} is not a local link`);
- if (dep === 'openvibe-sdk') assert.equal(spec, SDK, `${name}: openvibe-sdk pinned to v0.4.0`);
+ if (dep === 'openvibe-sdk') assert.equal(spec, SDK, `${name}: openvibe-sdk pinned to v0.6.0`);
}
}
const readme = fs.readFileSync(path.join(dir, 'README.md'), 'utf8');
const readme = fs.readFileSync(path.join(dir, 'README.md'), 'utf8');