Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Socket
Sign inDemoInstall

expre-parser

Package Overview
Dependencies
Maintainers
4
Versions
21
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

expre-parser - npm Package Compare versions

Comparing version 0.1.9 to 0.1.10

1

lib/src/ast-model.d.ts

@@ -1,2 +0,1 @@

/// <reference types="sqlite-parser" />
import * as sqliteParser from "sqlite-parser";

@@ -3,0 +2,0 @@ import { Compiler } from "./compiler";

5

lib/src/expre-parser.d.ts

@@ -1,2 +0,2 @@

/// <reference types="sqlite-parser" />
import * as sqliteParser from "sqlite-parser";
import { BaseNode as SPBaseNode } from "sqlite-parser";

@@ -6,3 +6,4 @@ import { BaseNode } from "./ast-model";

export * from './compiler';
export declare function parse(expression: string): BaseNode;
export declare function sqlite_parse(expression: string | number): sqliteParser.BaseNode;
export declare function parse(expression: string | number): BaseNode;
export declare function convertNode(ast: SPBaseNode): BaseNode;

@@ -11,9 +11,17 @@ "use strict";

__export(require("./compiler"));
function parse(expression) {
function sqlite_parse(expression) {
// sqliteParser works in expressions with "select" string at begining
let ast = sqliteParser('select ' + expression);
var astStatement = ast.statement[0].result[0];
let node = convertNode(astStatement);
return node;
try {
return sqliteParser('select ' + expression).statement[0].result[0];
;
}
catch (err) {
throw new Error('La expresion ' + expression + ' no es válida'); // sintaxis inválida para sqlite-parser
}
}
exports.sqlite_parse = sqlite_parse;
function parse(expression) {
let ast = sqlite_parse(expression);
return convertNode(ast);
}
exports.parse = parse;

@@ -20,0 +28,0 @@ function convertNode(ast) {

@@ -23,3 +23,3 @@ "use strict";

it("parse one number", async function () {
let obtained = ExpresionParser.parse("43");
let obtained = ExpresionParser.parse(43);
let expectedParsed = new EPModel.LiteralNode({ type: 'literal', value: "43", variant: 'decimal' });

@@ -101,2 +101,30 @@ // es llamado `jsonObj` en lugar de `LiteralObj` u `objLiteral` para no confundir el `literal` de objetos JS con nuestro LiteralNode de AST

});
describe("protesta la librería sqlite_parse con SQL inválidos, por ej: delete, drop, etc", function () {
it("cualquier cosa", async function () {
['&', 'pe#p', 'delete', '@', 'FROM', '!', '==', '%', 'drop', 'if ('].forEach(invalExp => {
try {
ExpresionParser.sqlite_parse(invalExp);
throw new Error('Tenía que dar error, porque la expresion "' + invalExp + '" es sintaxis inválida');
}
catch (err) {
discrepances.showAndThrow(err.message, 'La expresion ' + invalExp + ' no es válida');
}
});
});
});
describe("protesta convertNode() porque el usario escribio SQL válido para sqlite-parser que no consideramos válido, por ej: ?, etc ", function () {
it("cualquier cosa", async function () {
['?'].forEach(invalExp => {
let ast;
try {
ast = ExpresionParser.sqlite_parse(invalExp);
ExpresionParser.convertNode(ast);
throw new Error('Tenía que dar error porque la expresion "' + invalExp + '" es no la queremos');
}
catch (err) {
discrepances.showAndThrow(err.message, 'ast.type not consider: ' + ast.type);
}
});
});
});
describe("wrapped", function () {

@@ -103,0 +131,0 @@ var compilerOptions = {

{
"name": "expre-parser",
"description": "expression parser",
"version": "0.1.9",
"version": "0.1.10",
"author": "Codenautas <codenautas@googlegroups.com>",

@@ -6,0 +6,0 @@ "license": "MIT",

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

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