segundo commit

This commit is contained in:
root 2025-11-06 19:19:45 +00:00
parent 6b8b75863a
commit d2e79d63a5
13601 changed files with 1117197 additions and 0 deletions

10
node_modules/ssb-server/lib/cli-cmd-aliases.js generated vendored Normal file
View file

@ -0,0 +1,10 @@
module.exports = {
feed: 'createFeedStream',
history: 'createHistoryStream',
hist: 'createHistoryStream',
public: 'getPublicKey',
pub: 'getPublicKey',
log: 'createLogStream',
logt: 'messagesByType',
conf: 'config'
}

47
node_modules/ssb-server/lib/progress.js generated vendored Normal file
View file

@ -0,0 +1,47 @@
//poll the progress() function and report how much waiting there is...
//just whipped this up, obviously room for improvement here.
module.exports = function (progress) {
function bar (r) {
var s = '\r', M = 50
for(var i = 0; i < M; i++)
s += i < M*r ? '*' : '.'
return s
}
function round (n, p) {
return Math.round(n * p) / p
}
function percent (n) {
return (round(n, 1000)*100).toString().substring(0, 4)+'%'
}
function rate (prog) {
if(prog.target == prog.current) return 1
return (prog.current - prog.start) / (prog.target - prog.start)
}
var prog = -1
var int = setInterval(function () {
var p = progress()
var r = 1, c = 0
var tasks = []
for(var k in p) {
var _r = rate(p[k])
if(_r < 1)
tasks.push(k+':'+percent(_r))
r = Math.min(_r, r)
c++
}
if(r != prog) {
prog = r
var msg = tasks.join(', ')
process.stdout.write('\r'+bar(prog) + ' ('+msg+')\x1b[K\r')
}
}, 333)
int.unref && int.unref()
}

239
node_modules/ssb-server/lib/validators.js generated vendored Normal file
View file

@ -0,0 +1,239 @@
var valid = require('muxrpc-validation')
var zerr = require('zerr')
var ref = require('ssb-ref')
// errors
var MissingAttr = zerr('Usage', 'Param % must have a .% of type "%"')
var AttrType = zerr('Usage', '.% of param % must be of type "%"')
function isFilter (v) {
return (v == '@' || v == '%' || v == '&')
}
module.exports = valid({
msgId: function (v) {
if (!ref.isMsg(v))
return 'type'
},
msgLink: function (v) {
if (!ref.isMsgLink(v))
return 'type'
},
feedId: function (v) {
if (!ref.isFeed(v))
return 'type'
},
blobId: function (v) {
if (!ref.isBlob(v))
return 'type'
},
msgContent: function (v, n) {
var err = this.get('object')(v, n)
if (err) return err
if (!v.type || typeof v.type != 'string')
return MissingAttr(n, 'type', 'string')
},
msg: function (v, n) {
var err = this.get('object')(v, n)
if (err)
return err
//allow content to be string. (i.e. for encrypted messages)
//or object with type string
if(!v.content)
return MissingAttr(n, 'content', 'object|string')
else if(typeof v.content === 'string')
; //check if it's base64?
else if('object' === typeof v.content) {
if(!v.content.type || typeof v.content.type != 'string')
return MissingAttr(n, 'content.type', 'string')
}
else
return MissingAttr(n, 'content', 'object|string')
// .author
if (!ref.isFeed(v.author))
return MissingAttr(n, 'author', 'feedId')
// .sequence
if (typeof v.sequence != 'number')
return MissingAttr(n, 'sequence', 'number')
// .previous
if (v.sequence > 1 && !ref.isMsg(v.previous))
return MissingAttr(n, 'previous', 'msgId')
else if(v.sequence == 1 && v.previous != null)
return MissingAttr(n, 'previous', 'null')
// .timestamp
if (typeof v.timestamp != 'number')
return MissingAttr(n, 'timestamp', 'number')
// .hash
if (v.hash != 'sha256')
return zerr('Usage', 'Param % must have .hash set to "sha256"')(n)
// .signature
if (typeof v.signature != 'string')
return MissingAttr(n, 'signature', 'string')
},
readStreamOpts: function (v, n) {
var err = this.get('object')(v, n)
if (err)
return err
// .live
if (v.live && typeof v.live != 'boolean' && typeof v.live != 'number')
return AttrType(n, 'live', 'boolean')
// .reverse
if (v.reverse && typeof v.reverse != 'boolean' && typeof v.reverse != 'number')
return AttrType(n, 'reverse', 'boolean')
// .keys
if (v.keys && typeof v.keys != 'boolean' && typeof v.keys != 'number')
return AttrType(n, 'keys', 'boolean')
// .values
if (v.values && typeof v.values != 'boolean' && typeof v.values != 'number')
return AttrType(n, 'values', 'boolean')
// .limit
if (v.limit && typeof v.limit != 'number')
return AttrType(n, 'limit', 'number')
// .fillCache
if (v.fillCache && typeof v.fillCache != 'boolean' && typeof v.fillCache != 'number')
return AttrType(n, 'fillCache', 'boolean')
},
createHistoryStreamOpts: function (v, n) {
// .id
if (!ref.isFeed(v.id))
return MissingAttr(n, 'id', 'feedId')
// .seq
if (v.seq && typeof v.seq != 'number')
return AttrType(n, 'seq', 'number')
// .live
if (v.live && typeof v.live != 'boolean' && typeof v.live != 'number')
return AttrType(n, 'live', 'boolean')
// .limit
if (v.limit && typeof v.limit != 'number')
return AttrType(n, 'limit', 'number')
// .keys
if (v.keys && typeof v.keys != 'boolean' && typeof v.keys != 'number')
return AttrType(n, 'keys', 'boolean')
// .values
if (v.values && typeof v.values != 'boolean' && typeof v.values != 'number')
return AttrType(n, 'values', 'boolean')
},
createUserStreamOpts: function (v, n) {
var err = this.get('readStreamOpts')(v, n)
if (err)
return err
// .id
if (!ref.isFeed(v.id))
return MissingAttr(n, 'id', 'feedId')
},
messagesByTypeOpts: function (v, n) {
var err = this.get('readStreamOpts')(v, n)
if (err)
return err
// .type
if (typeof v.type != 'string')
return MissingAttr(n, 'type', 'string')
},
linksOpts: function (v, n) {
var err = this.get('object')(v, n)
if (err)
return err
// .source
if (v.source && !ref.isLink(v.source) && !isFilter(v.source))
return AttrType(n, 'source', 'id|filter')
// .dest
if (v.dest && !ref.isLink(v.dest) && !isFilter(v.dest))
return AttrType(n, 'dest', 'id|filter')
// .rel
if (v.rel && typeof v.rel != 'string')
return AttrType(n, 'rel', 'string')
// .live
if (v.live && typeof v.live != 'boolean' && typeof v.live != 'number')
return AttrType(n, 'live', 'boolean')
// .reverse
if (v.reverse && typeof v.reverse != 'boolean' && typeof v.reverse != 'number')
return AttrType(n, 'reverse', 'boolean')
// .keys
if (v.keys && typeof v.keys != 'boolean' && typeof v.keys != 'number')
return AttrType(n, 'keys', 'boolean')
// .values
if (v.values && typeof v.values != 'boolean' && typeof v.values != 'number')
return AttrType(n, 'values', 'boolean')
},
isBlockedOpts: function (v, n) {
var err = this.get('object')(v, n)
if (err)
return err
// .source
if (v.source && !ref.isFeed(v.source))
return AttrType(n, 'source', 'feedId')
// .dest
if (v.dest && !ref.isFeed(v.dest))
return AttrType(n, 'dest', 'feedId')
},
createFriendStreamOpts: function (v, n) {
var err = this.get('object')(v, n)
if (err)
return err
// .start
if (v.start && !ref.isFeed(v.start))
return AttrType(n, 'start', 'feedId')
// .graph
if (v.graph && typeof v.graph != 'string')
return AttrType(n, 'graph', 'string')
// .dunbar
if (v.dunbar && typeof v.dunbar != 'number')
return AttrType(n, 'dunbar', 'number')
// .hops
if (v.hops && typeof v.hops != 'number')
return AttrType(n, 'hops', 'number')
}
})