
Security News
/Research
Wallet-Draining npm Package Impersonates Nodemailer to Hijack Crypto Transactions
Malicious npm package impersonates Nodemailer and drains wallets by hijacking crypto transactions across multiple blockchains.
mongolike-operations
Advanced tools
Define Flow interfaces of MongoDB-like Operations used in Phenyl modules.
Define Flow interfaces of MongoDB-like operations used in Phenyl modules.
Operations As Data(OAD) is the concept of handling large JSON data that all the data operations (update/find) should be written as JSON format (≒ plain object).
This mongolike-operations
defines these Operation type.
mongolike-operation
is one of Phenyl Family.
Phenyl is a JavaScript Server/Client framework for State Synchronization over Environment(SSoE).
Operation to find values in large JSON.
Type:
type FindOperation =
SimpleFindOperation |
{| $and: Array<FindOperation> |} |
{| $nor: Array<FindOperation> |} |
{| $or: Array<FindOperation> |}
type SimpleFindOperation = {
[fieldName: DocumentPath]: QueryCondition | EqCondition,
}
type EqCondition = Object | Array<Basic> | string | number | boolean
// QueryCondition: See below section
Example:
const findOperation = {
$and: [
{ libraryName: 'phenyl' },
{ 'libraryVersion.major': { $gte: 1 } }
]
}
Condition to find values in large JSON, included in FindOperation
.
Almost compatible with MongoDB's Query Operators.
interface QueryCondition {
// comparison
$eq?: any,
$gt?: any,
$gte?: any,
$in?: Array<any>,
$lt?: any,
$lte?: any,
$ne?: any,
$nin?: Array<any>,
// logical
$not?: QueryCondition,
// element
$exists?: boolean,
$type?: BSONTypeNumber | BSONTypeString,
// evaluation
$mod?: [number, number],
$regex?: RegExp | string,
$options?: RegExp$flags,
$text?: TextQueryCondition,
$where?: Function, // To Be Implemented
// geospatial
$geoIntersects?: Object, // To Be Implemented
$geoWithin?: Object, // To Be Implemented
$near?: Object, // To Be Implemented
$nearSphere?: Object, // To Be Implemented
// array
$all?: Array<any>,
$elemMatch?: QueryCondition,
$size?: number,
// bitwise
$bitsAllClear?: number, // Currently, only number is allowed
$bitsAllSet?: number, // Currently, only number is allowed
$bitsAnyClear?: number, // Currently, only number is allowed
$bitsAnySet?: number, // Currently, only number is allowed
// comments
// $comment: // No implementation
}
Operations to update values of large JSON. Almost compatible with MongoDB's Update Operators.
See README of power-assign for more detailed use.
Restorable is a characteristic of JavaScript class instances which meets the following requirement.
const jsonStr = JSON.stringify(instance)
const plain = JSON.parse(jsonStr)
const newInstance = new TheClass(plain)
assert.deepEqual(newInstance, instance)
Roughly, Restorable object is an instance which can re-created by passing its JSON object to the class constructor.
See is-restorable module for more detail.
The same definition as Amazon DynamoDB's DocumentPath.
type DocumentPath = string
DocumentPath expresses nested value location.
{ foo: { arr: [ { bar: 'baz' }] }}
The string 'baz'
is expressed as 'foo.arr[0].bar'
in DocumentPath format.
This DocumentPath is slightly different from Dot Notation in MongoDB which expresses 'baz'
as 'foo.arr.0.bar'
(array index expression is different).
Apache License 2.0
FAQs
Define Flow interfaces of MongoDB-like Operations used in Phenyl modules.
The npm package mongolike-operations receives a total of 726 weekly downloads. As such, mongolike-operations popularity was classified as not popular.
We found that mongolike-operations demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
/Research
Malicious npm package impersonates Nodemailer and drains wallets by hijacking crypto transactions across multiple blockchains.
Security News
This episode explores the hard problem of reachability analysis, from static analysis limits to handling dynamic languages and massive dependency trees.
Security News
/Research
Malicious Nx npm versions stole secrets and wallet info using AI CLI tools; Socket’s AI scanner detected the supply chain attack and flagged the malware.