@ -21,125 +21,198 @@ let config = {
server _addr : "127.0.0.1:14400"
server _addr : "127.0.0.1:14400"
} ;
} ;
ng . init _headless ( config ) . then ( async ( ) => {
// get your wallet file as an ArrayBuffer and pass it to wallet_read_file
let session _id ;
const fs = require ( 'fs' ) ;
let buffer = fs . readFileSync ( "/Users/nl/Downloads/wallet-Hr-UITwGtjE1k6lXBoVGzD4FQMiDkM3T6bSeAi9PXt4A.ngw" ) ;
ng . wallet _read _file ( buffer ) . then ( async ( wallet ) => {
console . log ( "start" ) ;
try {
try {
//let user_id = await ng.admin_create_user(config);
let opened _wallet = await ng . wallet _open _with _mnemonic _words ( wallet , [ "jealous" ,
//console.log("user created: ",user_id);
"during" ,
"elevator" ,
let user _id = "sajsOaZWHXNyvhBxWbyj9GFmxuAjsP31gWQ2qZunCr0A" ;
"swallow" ,
"pen" ,
//let base;
"phone" ,
let session = await ng . session _headless _start ( user _id ) ;
"like" ,
session _id = session . session _id ;
"employ" ,
"myth" ,
"remember" ,
"question" ,
"lemon" ] ,
[ 2 , 3 , 2 , 3 ] ) ;
console . log ( opened _wallet ) ;
let user _id = opened _wallet . V0 . personal _site ;
let wallet _name = opened _wallet . V0 . wallet _id ;
console . log ( user _id )
console . log ( wallet _name )
let _client = await ng . wallet _import ( wallet , opened _wallet , true )
let session = await ng . session _in _memory _start ( wallet _name , user _id ) ;
let session _id = session . session _id ;
console . log ( session ) ;
console . log ( session ) ;
let dump = await ng . rdf _dump ( session . session _id ) ;
let protected _repo _id = session . protected _store _id . substr ( 2 , 44 ) ;
console . log ( "Session started. protected store ID = " , protected _repo _id )
let info = await ng . client _info ( ) ;
console . log ( info ) ;
let connection _status = await ng . user _connect (
info ,
user _id
) ;
console . log ( connection _status ) ;
let dump = await ng . rdf _dump ( session _id ) ;
console . log ( dump ) ;
console . log ( dump ) ;
let private _store = "did:ng:o:qBzNhlqofXRKbTfTUOq-2Aagh5AgDES5LR4Hsw7caCUA:v:XL7JfZF_8OuRiEN1db3g44sUD2m1aU8Z_Ab1Z6H-AOkA" ;
//let nuri = await ng.doc_create(session.session_id, "Graph", "data:graph", "protected", "B381BvfdAFYPBkdhDrsqnMMg5pnJMWJgJbZobZErXZMA", "store");
let nuri = "did:ng:o:FwRgrwtOhli54mRT6xi8J5ZK7X4L7L86lpbwhNVmgbsA:v:cpEgHDobJmdpcB8Z4SP91tBX4wPaasjJuz09GkfP2_UA" ;
console . log ( "nuri=" , nuri ) ;
let base = "did:ng:o:FwRgrwtOhli54mRT6xi8J5ZK7X4L7L86lpbwhNVmgbsA" ;
console . log ( "******** UPDATE" )
let nuri = await ng . doc _create ( session _id , "Graph" , "data:graph" , "protected" , protected _repo _id , "store" ) ;
console . log ( nuri ) ;
//let header_branch = "did:ng:o:b70vk7Bj4eInXgG8pLysrFpEL-YSOiRYEmihPGiM1EsA:v:_0hm2qIpq443C7rMEdCGnhPDhsaWR2XruTIaF-9LKbkA:b:TokczMya9WDpQ-_FYFi7QJVbHmllWS3lD-vjtzHHQa0A";
// await ng.sparql_update(session_id,
// "INSERT DATA { <did:ng:_> <example:predicate> \"An example value30\". }", nuri );
// let sparql_result = await ng.sparql_query(session.session_id, "SELECT ?s ?p ?o WHERE { ?s ?p ?o }", base, header_branch);
// console.log(sparql_result);
// for (const q of sparql_result.results.bindings) {
// console.log(q);
// }
// await ng.sparql_update(session.session_id, "WITH <"+header_branch+"> \
// DELETE { <> <did:ng:x:ng#n> ?n. } INSERT {<> <did:ng:x:ng#n> \"ddd6\". } WHERE {OPTIONAL { <> <did:ng:x:ng#n> ?n } }",nuri);
// let history = await ng.branch_history(session.session_id);
// for (const h of history.history) {
// console.log(h[0], h[1]);
// }
// console.log(history.swimlane_state);
await ng . sparql _update ( session . session _id , "INSERT DATA { <did:ng:_> <did:ng:i> <did:ng:j3> }" ) ;
sparql _result = await ng . sparql _query ( session . session _id , "CONSTRUCT { ?s ?p ?o } WHERE { ?s ?p ?o }" ) ;
console . log ( "******** CONSTRUCT" )
for ( const r of sparql _result ) console . log ( r . subject . value , r . predicate . value , r . object . value ) ;
// cleaning up
await ng . user _disconnect ( user _id ) ;
// await ng.sparql_update(session.session_id, "DELETE DATA { <did:ng:t:AJQ5gCLoXXjalC9diTDCvxxWu5ZQUcYWEE821nhVRMcE> <did:ng:i> <did:ng:j> }");
await ng . session _stop ( user _id ) ;
// await ng.sparql_update(session.session_id, "INSERT DATA { <did:ng:t:AJQ5gCLoXXjalC9diTDCvxxWu5ZQUcYWEE821nhVRMcE> <did:ng:i> <did:ng:j> }");
await ng . wallet _close ( wallet _name ) ;
// await ng.sparql_update(session.session_id, "INSERT { ?s <did:ng:i> <did:ng:k> } WHERE { ?s <did:ng:i> <did:ng:j> } ");
// await ng.sparql_update(session.session_id, "INSERT DATA { <did:ng:z> <did:ng:j> <did:ng:t:BJQ5gCLoXXjalC9diTDCvxxWu5ZQUcYWEE821nhVRMcE>. <did:ng:t:BJQ5gCLoXXjalC9diTDCvxxWu5ZQUcYWEE821nhVRMcE> <did:ng:m> <did:ng:n> }");
//await ng.sparql_update(session.session_id, "INSERT DATA { <did:ng:z> <did:ng:j> [ <did:ng:m> <did:ng:n> ]. }");
//await ng.sparql_update(session.session_id, "INSERT DATA { [ <did:ng:m> <did:ng:n> ] <did:ng:ok> <did:ng:v> . }");
//await ng.sparql_update(session.session_id, "INSERT { ?a <did:ng:ok> <did:ng:v> . } WHERE { ?a <did:ng:m> <did:ng:n> } ");
//await ng.sparql_update(session.session_id, "INSERT DATA { <did:ng:z> <did:ng:j> _:1 . _:1 <did:ng:m> <did:ng:n>. }");
//await ng.sparql_update(session.session_id, "INSERT DATA { _:f766ca988268ddc60315ddd5bd621387 <did:ng:o> <did:ng:>. }");
//await ng.sparql_update(session.session_id, "INSERT { _:_ <did:ng:ok> <did:ng:v> . } WHERE { _:_ <did:ng:m> <did:ng:n> } ");
//await ng.sparql_update(session.session_id, "INSERT DATA { _:_ <abc:a> <d:a> . _:_a <abceee:a> <d:a> . }");
//await ng.sparql_update(session.session_id, "INSERT DATA { <> <a:selftest> <a:selftest> . }",base);
//await ng.sparql_update(session.session_id, "INSERT DATA { <did:ng:TEST4> <did:ng:j> _:_ . _:_ <did:ng:m> <did:ng:n> . }");
//await ng.sparql_update(session.session_id, "INSERT DATA { <did:ng:TEST5> <did:ng:j> [ <did:ng:m> <did:ng:n> ]. }");
// sparql_result = await ng.sparql_query(session.session_id, "SELECT ?a WHERE { ?a <did:ng:j> _:abc. _:abc <did:ng:m> <did:ng:n> }", base);
// console.log(sparql_result);
// for (const q of sparql_result.results.bindings) {
// console.log(q);
// }
// sparql_result = await ng.sparql_query(session.session_id, "SELECT ?s ?a WHERE { ?s <did:ng:j> ?a }", base);
// console.log(sparql_result);
// for (const q of sparql_result.results.bindings) {
// console.log(q);
// }
// console.log("******** CONSTRUCT2")
// let quads = await ng.sparql_query(session.session_id, "CONSTRUCT { ?s ?p ?o } WHERE { ?s ?p ?o }",base);
// for (const q of quads) {
// console.log(q.subject.toString(), q.predicate.toString(), q.object.toString(), q.graph.toString())
// }
// let file_nuri = await ng.file_put_to_private_store(session.session_id,"LICENSE-MIT","text/plain");
// console.log(file_nuri);
// //let file_nuri = "did:ng:j:AD_d4njVMAtIDEU1G-RDxfOLIOZyOrB_1Rb7B6XykIEJ:k:APV-_Xtk03PW_Mbl4OaYpLrmEkBDVtn81lpto8sxc_tb";
// var bufs = [];
// let cancel = await ng.file_get_from_private_store(session.session_id, file_nuri, async (file) => {
// if (file.V0.FileMeta) {
// //skip
// } else if (file.V0.FileBinary) {
// if (file.V0.FileBinary.byteLength > 0) {
// bufs.push(file.V0.FileBinary);
// }
// } else if (file.V0 == 'EndOfStream') {
// //console.log("end of file");
// var buf = Buffer.concat(bufs);
// // if the file contains some UTF8 text
// console.log(buf.toString('utf8'));
// }
// });
// the 2nd argument `false` means: do not `force_close` the dataset.
// it will be detached, which means it stays in memory even when the session is stopped.
// (not all the dataset is in memory anyway! just some metadata)
// if you set this to true, the dataset is closed and removed from memory on the server.
// next time you will open a session for this user, the dataset will be loaded again.
let res = await ng . session _headless _stop ( session . session _id , false ) ;
//console.log(res);
console . log ( "the end" ) ;
} catch ( e ) {
} catch ( e ) {
console . error ( e ) ;
console . error ( e ) ;
if ( session _id ) await ng . session _headless _stop ( session _id , true ) ;
}
}
} )
} ) . catch ( err => {
. catch ( err => {
console . error ( err ) ;
console . error ( err ) ;
} ) ;
} ) ;
// ng.init_headless(config).then( async() => {
// let session_id;
// try {
// //let user_id = await ng.admin_create_user(config);
// //console.log("user created: ",user_id);
// let user_id = "sajsOaZWHXNyvhBxWbyj9GFmxuAjsP31gWQ2qZunCr0A";
// //let base;
// let session = await ng.session_headless_start(user_id);
// session_id = session.session_id;
// console.log(session);
// let dump = await ng.rdf_dump(session.session_id);
// console.log(dump);
// let private_store = "did:ng:o:qBzNhlqofXRKbTfTUOq-2Aagh5AgDES5LR4Hsw7caCUA:v:XL7JfZF_8OuRiEN1db3g44sUD2m1aU8Z_Ab1Z6H-AOkA";
// //let nuri = await ng.doc_create(session.session_id, "Graph", "data:graph", "protected", "B381BvfdAFYPBkdhDrsqnMMg5pnJMWJgJbZobZErXZMA", "store");
// let nuri = "did:ng:o:FwRgrwtOhli54mRT6xi8J5ZK7X4L7L86lpbwhNVmgbsA:v:cpEgHDobJmdpcB8Z4SP91tBX4wPaasjJuz09GkfP2_UA";
// console.log("nuri=",nuri);
// let base = "did:ng:o:FwRgrwtOhli54mRT6xi8J5ZK7X4L7L86lpbwhNVmgbsA";
// console.log("******** UPDATE")
// //let header_branch = "did:ng:o:b70vk7Bj4eInXgG8pLysrFpEL-YSOiRYEmihPGiM1EsA:v:_0hm2qIpq443C7rMEdCGnhPDhsaWR2XruTIaF-9LKbkA:b:TokczMya9WDpQ-_FYFi7QJVbHmllWS3lD-vjtzHHQa0A";
// // let sparql_result = await ng.sparql_query(session.session_id, "SELECT ?s ?p ?o WHERE { ?s ?p ?o }", base, header_branch);
// // console.log(sparql_result);
// // for (const q of sparql_result.results.bindings) {
// // console.log(q);
// // }
// // await ng.sparql_update(session.session_id, "WITH <"+header_branch+"> \
// // DELETE { <> <did:ng:x:ng#n> ?n. } INSERT {<> <did:ng:x:ng#n> \"ddd6\". } WHERE {OPTIONAL { <> <did:ng:x:ng#n> ?n } }",nuri);
// // let history = await ng.branch_history(session.session_id);
// // for (const h of history.history) {
// // console.log(h[0], h[1]);
// // }
// // console.log(history.swimlane_state);
// await ng.sparql_update(session.session_id, "INSERT DATA { <did:ng:_> <did:ng:i> <did:ng:j3> }");
// sparql_result = await ng.sparql_query(session.session_id, "CONSTRUCT { ?s ?p ?o } WHERE { ?s ?p ?o }");
// console.log("******** CONSTRUCT")
// for (const r of sparql_result) console.log(r.subject.value, r.predicate.value, r.object.value);
// // await ng.sparql_update(session.session_id, "DELETE DATA { <did:ng:t:AJQ5gCLoXXjalC9diTDCvxxWu5ZQUcYWEE821nhVRMcE> <did:ng:i> <did:ng:j> }");
// // await ng.sparql_update(session.session_id, "INSERT DATA { <did:ng:t:AJQ5gCLoXXjalC9diTDCvxxWu5ZQUcYWEE821nhVRMcE> <did:ng:i> <did:ng:j> }");
// // await ng.sparql_update(session.session_id, "INSERT { ?s <did:ng:i> <did:ng:k> } WHERE { ?s <did:ng:i> <did:ng:j> } ");
// // await ng.sparql_update(session.session_id, "INSERT DATA { <did:ng:z> <did:ng:j> <did:ng:t:BJQ5gCLoXXjalC9diTDCvxxWu5ZQUcYWEE821nhVRMcE>. <did:ng:t:BJQ5gCLoXXjalC9diTDCvxxWu5ZQUcYWEE821nhVRMcE> <did:ng:m> <did:ng:n> }");
// //await ng.sparql_update(session.session_id, "INSERT DATA { <did:ng:z> <did:ng:j> [ <did:ng:m> <did:ng:n> ]. }");
// //await ng.sparql_update(session.session_id, "INSERT DATA { [ <did:ng:m> <did:ng:n> ] <did:ng:ok> <did:ng:v> . }");
// //await ng.sparql_update(session.session_id, "INSERT { ?a <did:ng:ok> <did:ng:v> . } WHERE { ?a <did:ng:m> <did:ng:n> } ");
// //await ng.sparql_update(session.session_id, "INSERT DATA { <did:ng:z> <did:ng:j> _:1 . _:1 <did:ng:m> <did:ng:n>. }");
// //await ng.sparql_update(session.session_id, "INSERT DATA { _:f766ca988268ddc60315ddd5bd621387 <did:ng:o> <did:ng:>. }");
// //await ng.sparql_update(session.session_id, "INSERT { _:_ <did:ng:ok> <did:ng:v> . } WHERE { _:_ <did:ng:m> <did:ng:n> } ");
// //await ng.sparql_update(session.session_id, "INSERT DATA { _:_ <abc:a> <d:a> . _:_a <abceee:a> <d:a> . }");
// //await ng.sparql_update(session.session_id, "INSERT DATA { <> <a:selftest> <a:selftest> . }",base);
// //await ng.sparql_update(session.session_id, "INSERT DATA { <did:ng:TEST4> <did:ng:j> _:_ . _:_ <did:ng:m> <did:ng:n> . }");
// //await ng.sparql_update(session.session_id, "INSERT DATA { <did:ng:TEST5> <did:ng:j> [ <did:ng:m> <did:ng:n> ]. }");
// // sparql_result = await ng.sparql_query(session.session_id, "SELECT ?a WHERE { ?a <did:ng:j> _:abc. _:abc <did:ng:m> <did:ng:n> }", base);
// // console.log(sparql_result);
// // for (const q of sparql_result.results.bindings) {
// // console.log(q);
// // }
// // sparql_result = await ng.sparql_query(session.session_id, "SELECT ?s ?a WHERE { ?s <did:ng:j> ?a }", base);
// // console.log(sparql_result);
// // for (const q of sparql_result.results.bindings) {
// // console.log(q);
// // }
// // console.log("******** CONSTRUCT2")
// // let quads = await ng.sparql_query(session.session_id, "CONSTRUCT { ?s ?p ?o } WHERE { ?s ?p ?o }",base);
// // for (const q of quads) {
// // console.log(q.subject.toString(), q.predicate.toString(), q.object.toString(), q.graph.toString())
// // }
// // let file_nuri = await ng.file_put_to_private_store(session.session_id,"LICENSE-MIT","text/plain");
// // console.log(file_nuri);
// // //let file_nuri = "did:ng:j:AD_d4njVMAtIDEU1G-RDxfOLIOZyOrB_1Rb7B6XykIEJ:k:APV-_Xtk03PW_Mbl4OaYpLrmEkBDVtn81lpto8sxc_tb";
// // var bufs = [];
// // let cancel = await ng.file_get_from_private_store(session.session_id, file_nuri, async (file) => {
// // if (file.V0.FileMeta) {
// // //skip
// // } else if (file.V0.FileBinary) {
// // if (file.V0.FileBinary.byteLength > 0) {
// // bufs.push(file.V0.FileBinary);
// // }
// // } else if (file.V0 == 'EndOfStream') {
// // //console.log("end of file");
// // var buf = Buffer.concat(bufs);
// // // if the file contains some UTF8 text
// // console.log(buf.toString('utf8'));
// // }
// // });
// // the 2nd argument `false` means: do not `force_close` the dataset.
// // it will be detached, which means it stays in memory even when the session is stopped.
// // (not all the dataset is in memory anyway! just some metadata)
// // if you set this to true, the dataset is closed and removed from memory on the server.
// // next time you will open a session for this user, the dataset will be loaded again.
// let res = await ng.session_headless_stop(session.session_id, false);
// //console.log(res);
// } catch (e) {
// console.error(e);
// if (session_id) await ng.session_headless_stop(session_id, true);
// }
// })
// .catch(err => {
// console.error(err);
// });