Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | 1x 1x 3x 3x 1x 3x 1x 1x 1x 2x 2x 1x 1x | import { BlankNode, IndexedFormula, NamedNode, st, Literal, sym, Statement } from 'rdflib' import { Namespaces } from 'solid-namespace' export function getStatementsToDelete ( origin: NamedNode | Literal, person: NamedNode, kb: IndexedFormula, ns: Namespaces ): any { const applicationStatements = kb.statementsMatching( null, ns.acl('origin'), origin ) const statementsToDelete = applicationStatements.reduce( (memo, st) => { return memo .concat( kb.statementsMatching( person, ns.acl('trustedApp'), st.subject as NamedNode ) ) .concat(kb.statementsMatching(st.subject)) }, [] as Array<Statement> ) return statementsToDelete } export function getStatementsToAdd ( origin: NamedNode, nodeName: string, modes: string[], person: NamedNode, ns: Namespaces ): any { const application = new BlankNode(`bn_${nodeName}`) // NamedNode(`${person.doc().uri}#${nodeName}`) return [ st(person, ns.acl('trustedApp'), application, person.doc()), st(application, ns.acl('origin'), origin, person.doc()), ...modes .map(mode => sym(mode)) .map(mode => st(application, ns.acl('mode'), mode, person.doc())) ] } export function generateRandomString () { return Math.random().toString(36).substr(2, 5) } |