'use strict'; /** * openvibe-contracts — machine-readable contracts for the OpenVibe network. * * const contracts = require('openvibe-contracts'); * contracts.validate('identity.subject-ref@1', { type: 'user', id: 'usr_01J...' }); * contracts.ids.newId('user'); // 'usr_01J...' * contracts.http.problem(403, 'capability.denied'); // RFC 9457 body * contracts.capabilities.check(tokenClaims, 'media.object.read', { namespace: 'live' }); * contracts.staff.can(userTokenClaims, 'staff.moderation.chat'); // staff roles → staff capabilities * contracts.resources.parse('ovrn:media:prj_…:object/med_…'); // { service, project_id, type, id } */ const registry = require('./lib/registry'); module.exports = { levels: require('./lib/levels'), catalog: registry.catalog, resolve: registry.resolve, validate: registry.validate, assertValid: registry.assertValid, schema: registry.schema, ids: require('./lib/ids'), http: require('./lib/http'), capabilities: require('./lib/capabilities'), services: require('./lib/services'), products: require('./lib/products'), serviceAuth: require('./lib/service-auth'), modules: require('./lib/modules'), tools: require('./lib/tools'), zones: require('./lib/zones'), usage: require('./lib/usage'), resources: require('./lib/resources'), staff: require('./lib/staff'), labels: require('./lib/labels'), moneyReasons: require('./lib/money-reasons'), openapi: require('./lib/openapi'), };