Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
del = true;
else {
console.log( "Must supply parameter 'add' or 'del'" );
//process.exit(0);
}
var Gun = require( "gun/gun" );
var gunDb = require( "." );
//var Gun = require( "gun" );
require('gun/lib/not')
require( "gun-unset" );
const rel_ = Gun.val.rel._; // '#'
const val_ = Gun._.field; // '.'
const node_ = Gun.node._; // '_'
var gun = new Gun( /*{ db:{ file:'gun.db' } }*/ );
console.log( new Date(), "Initialized gun instance" );
var root = gun.get( "db" );
var alice = root.get( "alice" )
alice.not( (val)=>{
console.log( "init alice data", val );
alice.put( { name: 'alice', dob: 'before now', whatever: 'one' } );
} );
var bob = root.get( "bob" )
bob.not( (val)=>{
console.log( "init bob data" , val);
console.log( "Must supply parameter 'add' or 'del'" );
//process.exit(0);
}
var Gun = require( "gun/gun" );
var gunDb = require( "." );
//var Gun = require( "gun" );
require('gun/lib/not')
require( "gun-unset" );
const rel_ = Gun.val.rel._; // '#'
const val_ = Gun._.field; // '.'
const node_ = Gun.node._; // '_'
var gun = new Gun( /*{ db:{ file:'gun.db' } }*/ );
console.log( new Date(), "Initialized gun instance" );
var root = gun.get( "db" );
var alice = root.get( "alice" )
alice.not( (val)=>{
console.log( "init alice data", val );
alice.put( { name: 'alice', dob: 'before now', whatever: 'one' } );
} );
var bob = root.get( "bob" )
bob.not( (val)=>{
console.log( "init bob data" , val);
bob.put( { name:'bob', dob: "yes", color: "purple" } );
} );
test.async();
// Now we want to connect to every gun server peer...
var peers = [], i = env.config.servers;
while(i--){
// For the total number of servers listed in the configuration
// Add their URL into an array.
peers.push('http://'+ env.config.IP + ':' + (env.config.port + (i + 1)) + '/gun');
}
// Pass all the servers we want to connect to into gun.
//var gun = Gun();
var gun = Gun(peers);
// Now we want to create a list
// of all the messages that WILL be sent
// according to the expected configuration.
// This is equal to...
var num = 0, total = 0, check = Gun.obj.map(env.ids, function(v,id,t){
// for each browser ID
// they will be saving X number of messages each.
var i = env.config.each;
while(i--){
// So add a deterministic key we can check against.
t(id + (i + 1), 1);
// And count up the total number of messages we expect for all.
total += 1;
}
});
// Note, this `check` hash table now looks something like this:
// {alice1: 1, alice2: 1, alice3: 1, bob1: 1, bob2: 1, bob3: 1}
var report = $("<div>").css({position: 'fixed', top: 0, right: 0, background: 'white', padding: 10}).text(num +" / "+ total +" Verified").prependTo('body');
// Add a nifty UI that tells us how many messages have been verified.
// FINALLY, tell gun to subscribe to every record
// that is is/will be saved to this table.</div>
//$(log).append(el.attr('id', key).text(key +": "+ data));
$(log).text(key +": "+ data); // DOM updates thrash performance, try this.
// Scroll down with the logging.
//$('body').stop(true).animate({scrollTop: $(log).height()});
// Now, make sure the received data
// matches exactly the data we EXPECT
if(("Hello world, "+key+"!") === data){
// if it does, we can "check off" record
// Bump the total number of verified items and update the UI.
if(check[key]){ num += 1 }
// from our verify todo list.
check[key] = 0;
report.text(num +" / "+ total +" Verified");
}
// This next part is important:
if(Gun.obj.map(check, function(still){
// IF THERE ARE ANY RECORDS STILL LEFT TO BE VERIFIED
if(still){ return true }
})){ return } // return, PREVENTING the test from being finished.
// IF HOWEVER, every single message
// that we EXPECTED to see
// has now been seen
// then THIS ONE BROWSER PEER (of many peers)
// is finally done.
test.done();
});
// But we have to actually tell the browser to save data!
export const dataApiFactory = (accountMock: IAccountMock) => {
const time = () => new Date(Gun.state());
const rootGun: IGunInstance = new Gun({
localStorage: false,
radix: true,
});
const gun = rootGun.get('test');
// const account = gun.user();
const account: IGunAccountInstance = {
create(
username: string,
password: string,
callback?: (data: { wait?: boolean; err?: string; ok?: number; pub: string }) => void,
) {
return this;
},
auth(
return this.once((obj: object = {}, key: string) => {
// if null or undefined (but shouldnt be able to be that, right ?).. skip it if opt allows
if (obj === null) {
return;
}
const { _: obSoul, ...obRest } = Gun.obj.copy(obj);
obj = obRest;
// next objects to dig into
const queue: any = {};
// current doc (passed on the callback)
let doc: object;
// flag
let done: boolean;
// get deeper into the reference soul
const expand = (newObj: object | any = {}) => {
const { _: newObSoul, ...o } = newObj;
// console.log("que", queue);
// if doc is null assign the current object to the doc
if (!doc) {
doc = o;
//process.on( "warning", (warning)=>{console.trace( "WARNING:", warning ); } );
//process.on( "error", (warning)=>{console.trace( "ERROR PROCESS:", warning ); } );
//process.on( "exit", (warning)=>{console.trace( "EXIT:", warning ); } );
const Gun = require('gun/gun');
const vfs = require("sack.vfs");
var _debug_counter = 0;
var __debug_counter = 0;
var _debug_tick = Date.now();
const _debug = false;
const rel_ = Gun.val.rel._; // '#'
const val_ = Gun.obj.has._; // '.'
const node_ = Gun.node._; // '_'
const state_ = Gun.state._;// '>';
const soul_ = Gun.node.soul._;// '#';
const ACK_ = '@';
const SEQ_ = '#';
Gun.on('opt', function(ctx){
this.to.next(ctx);
if(ctx.once){ return }
var opt = ctx.opt.db || (ctx.opt.db = {});
//opt.file = opt.file || ('file:gun.db?nolock=1');
opt.file = opt.file || ('gun.db');
var client = vfs.Sqlite(opt.file);
var gun = ctx.gun;
//process.on( "warning", (warning)=>{console.trace( "WARNING:", warning ); } );
//process.on( "error", (warning)=>{console.trace( "ERROR PROCESS:", warning ); } );
//process.on( "exit", (warning)=>{console.trace( "EXIT:", warning ); } );
const Gun = require('gun/gun');
var _debug_counter = 0;
var __debug_counter = 0;
var _debug_tick = Date.now();
const _debug = false;
const rel_ = Gun.val.rel._; // '#'
const val_ = Gun._.field; // '.'
const node_ = Gun.node._; // '_'
const state_ = Gun.state._; // '>';
var qb;
const ACK_ = '@';
const SEQ_ = '#';
Gun.on('opt', function(ctx) {
var goNext = function(){
this.to.next(ctx);
if (ctx.once) {
return;
}
if(data instanceof Function){
return travel(data, a, b, this);
}
var gun = this, root = gun.back(-1);
var cb = (a instanceof Function && a) || (b instanceof Function && b);
if(Gun.is(data)){
data.get(function(soul){
if(!soul){
return cb && cb({err: "Timegraph cannot link `undefined`!"});
}
gun.time(Gun.val.link.ify(soul), a, b);
}, true);
return gun;
}
opt = (cb === a)? b : a;
opt = Gun.text.is(opt)? {key: opt} : opt || {};
var t = new Date(Gun.state()).toISOString().split(/[\-t\:\.z]/ig);
var p, tmp = t.pop();
gun.get(function(soul){
var id = soul;
p = id;
if(!p){ id = p = (gun.back('opt.uuid') || Gun.text.random)(9) }
// could shrink this into a loop. Do later?
t = [p].concat(t);
var rid = opt.key || (gun.back('opt.uuid') || Gun.text.random)(9);
var milli = ify({}, t.join(':'));
milli[rid] = data;
tmp = t.pop();
var sec = ify({}, t.join(':'));
sec[tmp] = milli;
tmp = t.pop();
var min = ify({}, t.join(':'));
//process.on( "warning", (warning)=>{console.trace( "WARNING:", warning ); } );
//process.on( "error", (warning)=>{console.trace( "ERROR PROCESS:", warning ); } );
//process.on( "exit", (warning)=>{console.trace( "EXIT:", warning ); } );
const Gun = require('gun/gun');
var _debug_counter = 0;
var __debug_counter = 0;
var _debug_tick = Date.now();
const _debug = false;
const rel_ = Gun.val.rel._; // '#'
const val_ = Gun._.field; // '.'
const node_ = Gun.node._; // '_'
const state_ = Gun.state._; // '>';
var qb;
const ACK_ = '@';
const SEQ_ = '#';
Gun.on('opt', function(ctx) {
var goNext = function(){
this.to.next(ctx);
if (ctx.once) {
return;
}
}.bind(this);