Socket
Socket
Sign inDemoInstall

fergies-inverted-index

Package Overview
Dependencies
Maintainers
1
Versions
68
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

fergies-inverted-index - npm Package Compare versions

Comparing version 4.0.1 to 4.1.0

72

dist/fergies-inverted-index.cjs.js

@@ -19,6 +19,6 @@ 'use strict';

key = {
field: [ key.split(':')[0] ],
value: {
gte: key.split(':')[1],
lte: key.split(':')[1]
FIELD: [ key.split(':')[0] ],
VALUE: {
GTE: key.split(':')[1],
LTE: key.split(':')[1]
}

@@ -29,5 +29,5 @@ };

key = {
value: {
gte: key,
lte: key
VALUE: {
GTE: key,
LTE: key
}

@@ -38,6 +38,6 @@ };

// key is object, but key.value is string
if (isString(key.value)) {
key.value = {
gte: key.value,
lte: key.value
if (isString(key.VALUE)) {
key.VALUE = {
GTE: key.VALUE,
LTE: key.VALUE
};

@@ -49,7 +49,7 @@ }

// tokens
if (key.value.gte.slice(-1) !== ops.tokenAppend) {
key.value.gte = key.value.gte + ops.tokenAppend;
if (key.VALUE.GTE.slice(-1) !== ops.tokenAppend) {
key.VALUE.GTE = key.VALUE.GTE + ops.tokenAppend;
}
if (key.value.lte.slice(-1) !== ops.tokenAppend) {
key.value.lte = key.value.lte + ops.tokenAppend;
if (key.VALUE.LTE.slice(-1) !== ops.tokenAppend) {
key.VALUE.LTE = key.VALUE.LTE + ops.tokenAppend;
}

@@ -106,4 +106,4 @@ return key

new Promise(
resolve => ops.field // is a field specified?
? resolve(isString(ops.field) ? [ ops.field ] : ops.field) // use specified field (if String push to Array)
resolve => ops.FIELD // is a field specified?
? resolve(isString(ops.FIELD) ? [ ops.FIELD ] : ops.FIELD) // use specified field (if String push to Array)
: AVAILABLE_FIELDS() // else get ALL available fields from store

@@ -114,4 +114,4 @@ .then(resolve)).then(

fieldName => new Promise(resolve => db.createReadStream({
gte: fieldName + ':' + ops.value.gte,
lte: fieldName + ':' + ops.value.lte + '○'
gte: fieldName + ':' + ops.VALUE.GTE,
lte: fieldName + ':' + ops.VALUE.LTE + '○'
}).on('data', token => token.value.forEach(docId => {

@@ -177,5 +177,5 @@ rs[docId] = [...(rs[docId] || []), token.key];

_id: [...result.reduce((acc, cur) => acc.add(cur._id), new Set())].sort(),
value: {
gte: key.value.gte.split(':').pop().replace(re, ''),
lte: key.value.lte.split(':').pop().replace(re, '')
VALUE: {
GTE: key.VALUE.GTE.split(':').pop().replace(re, ''),
LTE: key.VALUE.LTE.split(':').pop().replace(re, '')
}

@@ -234,7 +234,7 @@ })

const DIST = ops => getRange({
gte: ops.field + ':' + ((ops.value && ops.value.gte) || ''),
lte: ops.field + ':' + ((ops.value && ops.value.lte) || '') + '○'
gte: ops.FIELD + ':' + ((ops.VALUE && ops.VALUE.GTE) || ''),
lte: ops.FIELD + ':' + ((ops.VALUE && ops.VALUE.LTE) || '') + '○'
}).then(items => items.map(item => ({
field: item.split(/:(.+)/)[0],
value: item.split(/:(.+)/)[1]
FIELD: item.split(/:(.+)/)[0],
VALUE: item.split(/:(.+)/)[1]
})));

@@ -253,6 +253,6 @@

// use trav lib to find all leaf nodes with corresponding paths
const invertDoc = function (obj) {
var keys = [];
const invertDoc = obj => {
const keys = [];
trav(obj).forEach(function (node) {
var searchable = true;
let searchable = true;
this.path.forEach(item => {

@@ -265,13 +265,11 @@ // make fields beginning with ! non-searchable

if (searchable && this.isLeaf) {
var key = this.path.join('.') + ':' + this.node;
if (Array.isArray(this.parent.node)) {
key = this.path.slice(0, this.path.length - 1).join('.') + ':' + this.node;
}
keys.push(key);
keys.push(this.path
// allowing numbers in path names create ambiguity with arrays
// so just strip numbers from path names
.filter(item => !Number.isInteger(+item))
.join('.') + ':' + this.node);
}
});
// Bump all _ids to strings. Prevents _id='0' causing problems amongst other things
if (!isNaN(obj._id)) obj._id = obj._id + '';
return {
_id: obj._id || incrementalId + '', // generate _id if not present
_id: obj._id,
keys: keys

@@ -278,0 +276,0 @@ }

@@ -15,6 +15,6 @@ import level from 'level';

key = {
field: [ key.split(':')[0] ],
value: {
gte: key.split(':')[1],
lte: key.split(':')[1]
FIELD: [ key.split(':')[0] ],
VALUE: {
GTE: key.split(':')[1],
LTE: key.split(':')[1]
}

@@ -25,5 +25,5 @@ };

key = {
value: {
gte: key,
lte: key
VALUE: {
GTE: key,
LTE: key
}

@@ -34,6 +34,6 @@ };

// key is object, but key.value is string
if (isString(key.value)) {
key.value = {
gte: key.value,
lte: key.value
if (isString(key.VALUE)) {
key.VALUE = {
GTE: key.VALUE,
LTE: key.VALUE
};

@@ -45,7 +45,7 @@ }

// tokens
if (key.value.gte.slice(-1) !== ops.tokenAppend) {
key.value.gte = key.value.gte + ops.tokenAppend;
if (key.VALUE.GTE.slice(-1) !== ops.tokenAppend) {
key.VALUE.GTE = key.VALUE.GTE + ops.tokenAppend;
}
if (key.value.lte.slice(-1) !== ops.tokenAppend) {
key.value.lte = key.value.lte + ops.tokenAppend;
if (key.VALUE.LTE.slice(-1) !== ops.tokenAppend) {
key.VALUE.LTE = key.VALUE.LTE + ops.tokenAppend;
}

@@ -102,4 +102,4 @@ return key

new Promise(
resolve => ops.field // is a field specified?
? resolve(isString(ops.field) ? [ ops.field ] : ops.field) // use specified field (if String push to Array)
resolve => ops.FIELD // is a field specified?
? resolve(isString(ops.FIELD) ? [ ops.FIELD ] : ops.FIELD) // use specified field (if String push to Array)
: AVAILABLE_FIELDS() // else get ALL available fields from store

@@ -110,4 +110,4 @@ .then(resolve)).then(

fieldName => new Promise(resolve => db.createReadStream({
gte: fieldName + ':' + ops.value.gte,
lte: fieldName + ':' + ops.value.lte + '○'
gte: fieldName + ':' + ops.VALUE.GTE,
lte: fieldName + ':' + ops.VALUE.LTE + '○'
}).on('data', token => token.value.forEach(docId => {

@@ -173,5 +173,5 @@ rs[docId] = [...(rs[docId] || []), token.key];

_id: [...result.reduce((acc, cur) => acc.add(cur._id), new Set())].sort(),
value: {
gte: key.value.gte.split(':').pop().replace(re, ''),
lte: key.value.lte.split(':').pop().replace(re, '')
VALUE: {
GTE: key.VALUE.GTE.split(':').pop().replace(re, ''),
LTE: key.VALUE.LTE.split(':').pop().replace(re, '')
}

@@ -230,7 +230,7 @@ })

const DIST = ops => getRange({
gte: ops.field + ':' + ((ops.value && ops.value.gte) || ''),
lte: ops.field + ':' + ((ops.value && ops.value.lte) || '') + '○'
gte: ops.FIELD + ':' + ((ops.VALUE && ops.VALUE.GTE) || ''),
lte: ops.FIELD + ':' + ((ops.VALUE && ops.VALUE.LTE) || '') + '○'
}).then(items => items.map(item => ({
field: item.split(/:(.+)/)[0],
value: item.split(/:(.+)/)[1]
FIELD: item.split(/:(.+)/)[0],
VALUE: item.split(/:(.+)/)[1]
})));

@@ -249,6 +249,6 @@

// use trav lib to find all leaf nodes with corresponding paths
const invertDoc = function (obj) {
var keys = [];
const invertDoc = obj => {
const keys = [];
trav(obj).forEach(function (node) {
var searchable = true;
let searchable = true;
this.path.forEach(item => {

@@ -261,13 +261,11 @@ // make fields beginning with ! non-searchable

if (searchable && this.isLeaf) {
var key = this.path.join('.') + ':' + this.node;
if (Array.isArray(this.parent.node)) {
key = this.path.slice(0, this.path.length - 1).join('.') + ':' + this.node;
}
keys.push(key);
keys.push(this.path
// allowing numbers in path names create ambiguity with arrays
// so just strip numbers from path names
.filter(item => !Number.isInteger(+item))
.join('.') + ':' + this.node);
}
});
// Bump all _ids to strings. Prevents _id='0' causing problems amongst other things
if (!isNaN(obj._id)) obj._id = obj._id + '';
return {
_id: obj._id || incrementalId + '', // generate _id if not present
_id: obj._id,
keys: keys

@@ -274,0 +272,0 @@ }

{
"name": "fergies-inverted-index",
"version": "4.0.1",
"version": "4.1.0",
"description": "An inverted index that allows javascript objects to be easily serialised and retrieved using promises and map-reduce",

@@ -5,0 +5,0 @@ "main": "dist/fergies-inverted-index.cjs.js",

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