New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

aolog

Package Overview
Dependencies
Maintainers
1
Versions
26
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

aolog - npm Package Compare versions

Comparing version 1.1.1 to 2.0.0

101

index.js

@@ -14,6 +14,11 @@ 'use strict'

module.exports = function (ipfs, BUCKET_SIZE) {
var Iterator = function (over, filter, reverse) {
var stack = [{obj: over, idx: reverse ? -1 : 0}]
var fullfilter = makefilter(filter)
var Iterator = function (over, opts) {
if (!opts) opts = {}
var reverse = opts.reverse ? true : false
var fullfilter = makefilter(opts.filter)
var offset = opts.offset || 0
var stack = [{obj: over}]
return {

@@ -23,6 +28,18 @@ pushcount: 0,

var self = this
// get element from top of stack
if (!stack[0].idx) {
if (offset) {
var idxRest = stack[0].obj.offset(offset)
stack[0].idx = idxRest[0]
offset = idxRest[1]
} else {
stack[0].idx = reverse ? -1 : 0
}
}
stack[0].obj.get(stack[0].idx, fullfilter, function (err, element, status) {
if (err) return cb(err)
if (status === EOF) {
// console.log('pop')
stack.shift()

@@ -34,9 +51,12 @@ // toplevel eof?

} else if (status === SKIP) {
// console.log('skip')
reverse ? stack[0].idx-- : stack[0].idx++
self.next(cb)
} else if (typeof element.get === 'function') {
// console.log('get')
self.pushcount++
stack.unshift({obj: element, idx: reverse ? -1 : 0})
stack.unshift({obj: element})
self.next(cb)
} else { // leaf
// console.log('leaf')
reverse ? stack[0].idx-- : stack[0].idx++

@@ -98,4 +118,8 @@ cb(null, element)

},
offset: function (ofs) {
return [0, ofs]
},
get: function (idx, filter, cb) {
var self = this
if (idx === 0 || idx === -1) {

@@ -148,2 +172,5 @@ if (!subsetMatches(self.filters, filter.blooms)) {

},
offset: function (ofs) {
return [ofs, 0]
},
filter: function () {

@@ -163,5 +190,7 @@ var filter = {}

get: function (idx, filter, cb) {
if (idx < 0) {
idx += this.elements.length
}
var el = this.elements[idx]

@@ -176,8 +205,5 @@ if (typeof el === 'undefined') return cb(null, null, EOF)

},
iterator: function (filter) {
return new Iterator(this, filter)
iterator: function (opts) {
return new Iterator(this, opts)
},
reverseIterator: function (filter) {
return new Iterator(this, filter, true)
},
persist: function (cb) {

@@ -226,2 +252,10 @@ var self = this

},
offset: function (ofs) {
var idx = 0
while (this.refs[(idx + 1)] && this.refs[idx].count <= ofs) {
ofs -= this.refs[idx].count
idx++
}
return [idx, ofs]
},
get: function (idx, filter, cb) {

@@ -238,8 +272,5 @@ if (idx < 0) {

},
iterator: function (filter) {
return new Iterator(this, filter)
iterator: function (opts) {
return new Iterator(this, opts)
},
reverseIterator: function (filter) {
return new Iterator(this, filter, true)
},
persist: function (cb) {

@@ -317,2 +348,35 @@ var self = this

},
offset: function (ofs) {
// console.log('finger ofs')
// console.log(ofs)
// if (ofs < 0) {
// ofs += this.count
// }
// console.log(this.count)
// console.log(ofs)
var idx = 0
if (this.head.count < ofs) {
ofs -= this.head.count
idx++
} else {
return [idx, ofs]
}
if (this.rest.count < ofs) {
ofs -= this.rest.count
idx++
} else {
return [idx, ofs]
}
if (this.tail.count < ofs) {
ofs -= this.tail.count
idx++
}
return [idx, ofs]
},
get: function (idx, filter, cb) {

@@ -324,8 +388,5 @@ if (idx === 0 || idx === -3) return cb(null, head)

},
iterator: function (filter) {
return new Iterator(this, filter)
iterator: function (opts) {
return new Iterator(this, opts)
},
reverseIterator: function (filter) {
return new Iterator(this, filter, true)
},
persist: function (cb) {

@@ -332,0 +393,0 @@ var self = this

2

package.json
{
"name": "aolog",
"version": "1.1.1",
"version": "2.0.0",
"description": "Append only log",

@@ -5,0 +5,0 @@ "main": "index.js",

'use strict'
var assert = require('assert')
var BUCKET_SIZE = 16
var BUCKET_SIZE = 2
var ipfs = require('ipfs-api')()

@@ -126,3 +126,3 @@ var aolog = require('../index.js')(ipfs, BUCKET_SIZE)

var SIZE = BUCKET_SIZE * 8
var SIZE = BUCKET_SIZE + 1

@@ -213,2 +213,55 @@ var log

})
var SIZE = BUCKET_SIZE * 64
var log
var reference = []
before(function (done) {
add_many(aolog.empty(), SIZE,
function (i) {
reference.push(i)
return i
},
function (err, res) {
if (err) throw err
log = res
done()
})
})
// helper
function range (from, to) {
var arr = []
while (from != to) {
arr.push(from++)
}
return arr
}
it('should take all from all offsets', function (done) {
var count = 0
_.map(range(0, SIZE), function (ofs) {
var iter = log.iterator({offset: ofs})
count++
iter.all(function (err, array) {
if (err) throw err
assert.deepEqual(array, reference.slice(ofs))
if (!--count) done()
})
})
})
it('should take 1 from all offsets', function (done) {
var count = 0
_.map(range(0, SIZE), function (ofs) {
var iter = log.iterator({offset: ofs})
iter.next(function (err, res) {
if (err) throw err
assert.deepEqual(res, reference[ofs])
if (++count === SIZE) done()
})
})
})
})

@@ -218,3 +271,3 @@

var log
var SIZE = BUCKET_SIZE
var SIZE = BUCKET_SIZE * 5
var expected = []

@@ -237,4 +290,4 @@

before(function (done) {
var iter = log.reverseIterator()
it('should have gotten the right elements', function (done) {
var iter = log.iterator({reverse: true})
async.forever(function (next) {

@@ -248,10 +301,8 @@ iter.next(function (err, value, status) {

})
}, function () { done() })
}, function () {
assert.deepEqual(expected, result)
done()
})
})
it('should have gotten the right elements', function () {
assert.deepEqual(expected, result)
})
var nr = Math.floor(SIZE/3)

@@ -261,3 +312,3 @@ var resultPart = []

before(function (done) {
var iter = log.reverseIterator()
var iter = log.iterator({reverse: true})

@@ -278,3 +329,3 @@ iter.take(nr, function (err, array) {

before(function (done) {
var iter = log.reverseIterator()
var iter = log.iterator({reverse: true})

@@ -295,3 +346,3 @@ iter.take(SIZE * 2, function (err, array) {

before(function (done) {
var iter = log.reverseIterator()
var iter = log.iterator({reverse: true})

@@ -358,3 +409,3 @@ iter.all(function (err, array) {

before(function (done) {
var iter = log.iterator({msg: 'buzz'})
var iter = log.iterator({filter: {msg: 'buzz'}})
async.forever(function (next) {

@@ -365,2 +416,3 @@ iter.next(function (err, value, status) {

count++
if (!value.msg.match('buzz')) {

@@ -406,3 +458,3 @@ throw 'no buzz!'

before(function (done) {
var iter = log.iterator({is: 'needle'})
var iter = log.iterator({filter: {is: 'needle'}})

@@ -522,3 +574,3 @@ async.forever(function (next) {

var SIZE = 10000
var SIZE = 1000

@@ -529,3 +581,3 @@ var log

before(function (done) {
this.timeout(10000)
this.timeout(20000)
add_many(aolog.empty(), SIZE, function (i) { return { is: "i = " + i } },

@@ -540,3 +592,3 @@ function (err, res) {

before(function (done) {
this.timeout(10000)
this.timeout(20000)
log.persist(function (err, res) {

@@ -543,0 +595,0 @@ if (err) throw err

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc