Socket
Socket
Sign inDemoInstall

@zvenigora/jse-eval

Package Overview
Dependencies
1
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.6.0 to 1.7.0

7

CHANGELOG.md

@@ -0,1 +1,8 @@

# [1.7.0](https://github.com/Zvenigora/jse-eval/compare/v1.6.0...v1.7.0) (2022-08-05)
### Features
* added default options ([697cba9](https://github.com/Zvenigora/jse-eval/commit/697cba97056749fe0098f5c42e4f885970d7eee3))
# [1.6.0](https://github.com/Zvenigora/jse-eval/compare/v1.5.2...v1.6.0) (2022-08-05)

@@ -2,0 +9,0 @@

3

dist/index.d.ts

@@ -29,2 +29,3 @@ import jsep from 'jsep';

static assignOps: Record<string, assignCallback>;
static defaultOptions: EvalOptions;
static addUnaryOp(operator: string, _function: unaryCallback): void;

@@ -34,2 +35,3 @@ static addBinaryOp(operator: string, precedence_or_fn: number | binaryCallback, _ra_or_callback?: boolean | binaryCallback, _function?: binaryCallback): void;

static registerPlugin(...plugins: Array<JseEvalPlugin>): void;
static addOptions(options: EvalOptions): void;
static eval(ast: jsep.Expression, context?: Context, options?: EvalOptions): unknown;

@@ -93,2 +95,3 @@ static evalAsync(ast: jsep.Expression, context?: Context, options?: EvalOptions): Promise<unknown>;

export declare const registerPlugin: typeof ExpressionEval.registerPlugin;
export declare const addOptions: typeof ExpressionEval.addOptions;
export declare const evaluate: typeof ExpressionEval.eval;

@@ -95,0 +98,0 @@ export declare const evalAsync: typeof ExpressionEval.evalAsync;

2

dist/jse-eval.modern.js

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

import e from"jsep";export{default as jsep,default as parse}from"jsep";function t(){return t=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},t.apply(this,arguments)}const n={caseSensitive:!0},r=new Map([["undefined",void 0],["null",null],["true",!0],["false",!1]]);class s{static addUnaryOp(t,n){e.addUnaryOp(t),s.unops[t]=n}static addBinaryOp(t,n,r,i){let a,o,l;"function"==typeof n?l=n:(a=n,"function"==typeof r?l=r:(o=r,l=i)),e.addBinaryOp(t,a||1,o),s.binops[t]=l}static addEvaluator(e,t){s.evaluators[e]=t}static registerPlugin(...e){e.forEach(e=>{e.init&&s.parse.plugins.register(e),e.initEval&&e.initEval.call(s,s)})}static eval(e,t,n){return new s(t,void 0,n).eval(e)}static async evalAsync(e,t,n){return new s(t,!0,n).eval(e)}static compile(e){return s.eval.bind(null,s.jsep(e))}static compileAsync(e){return s.evalAsync.bind(null,s.jsep(e))}static evalExpr(e,t){return s.compile(e)(t)}static evalExprAsync(e,t){return s.compileAsync(e)(t)}get caseSensitive(){return!(!this.options||!this.options.caseSensitive)}constructor(e,t,r){this.context=void 0,this.isAsync=void 0,this.options=void 0,this.context=e,this.isAsync=t,this.options=r||n}eval(e,t=(e=>e)){const n=s.evaluators[e.type]||s.evaluators.default;if(!n)throw new Error(`unknown node type: ${JSON.stringify(e,null,2)}`);return this.evalSyncAsync(n.bind(this)(e,this.context),n=>(e._value=n,t(n)))}evalSyncAsync(e,t){return this.isAsync?Promise.resolve(e).then(t):t(e)}evalArrayExpression(e){return this.evalArray(e.elements)}evalArray(e){const t=e.map(e=>this.eval(e)),n=t=>t.reduce((t,n,r)=>"SpreadElement"===e[r].type?[...t,...n]:(t.push(n),t),[]);return this.isAsync?Promise.all(t).then(n):n(t)}evalBinaryExpression(e){if("||"===e.operator)return this.eval(e.left,t=>t||this.eval(e.right));if("&&"===e.operator)return this.eval(e.left,t=>t&&this.eval(e.right));const t=[this.eval(e.left),this.eval(e.right)],n=([t,n])=>s.binops[e.operator](t,n);return this.isAsync?Promise.all(t).then(n):n(t)}evalCompoundExpression(e){return this.isAsync?e.body.reduce((e,t)=>e.then(()=>this.eval(t)),Promise.resolve()):e.body.map(e=>this.eval(e))[e.body.length-1]}evalCallExpression(e){return this.evalSyncAsync(this.evalCall(e.callee),([t,n])=>this.evalSyncAsync(this.evalArray(e.arguments),e=>t.apply(n,e)))}evalCall(e){return"MemberExpression"===e.type?this.evalSyncAsync(this.evaluateMember(e),([t,n])=>s.validateFnAndCall(n,t,e)):this.eval(e,t=>s.validateFnAndCall(t,e))}evalConditionalExpression(e){return this.eval(e.test,t=>this.eval(t?e.consequent:e.alternate))}evalIdentifier(e){if(this.caseSensitive)return this.context[e.name];if(0===e.name.localeCompare("this","en",{sensitivity:"base"}))return this.evalThisExpression();{const t=s.getLiteralPair(r,e.name,this.caseSensitive);if(t){const[,e]=t;return e}return s.getValue(this.context,e.name,this.caseSensitive)}}static evalLiteral(e){return e.value}evalMemberExpression(e){return this.evalSyncAsync(this.evaluateMember(e),([,e])=>e)}evaluateMember(e){return this.eval(e.object,t=>this.evalSyncAsync(e.computed?this.eval(e.property):e.property.name,n=>{if(/^__proto__|prototype|constructor$/.test(n))throw Error(`Access to member "${n}" disallowed.`);const r=s.getValue(e.optional?t||{}:t,n,this.caseSensitive);return[t,r,n]}))}evalThisExpression(){return this.context}evalUnaryExpression(e){return this.eval(e.argument,t=>s.unops[e.operator](t))}evalArrowFunctionExpression(e){return this.isAsync!==e.async?s[e.async?"evalAsync":"eval"](e,this.context):(...t)=>{const n=this.evalArrowContext(e,t);return s[e.async?"evalAsync":"eval"](e.body,n)}}evalArrowContext(e,n){const r=t({},this.context);return(e.params||[]).forEach((e,s)=>{if("AssignmentExpression"===e.type&&(void 0===n[s]&&(n[s]=this.eval(e.right)),e=e.left),"Identifier"===e.type)r[e.name]=n[s];else if("ArrayExpression"===e.type)e.elements.forEach((e,t)=>{let i=n[s][t];if("AssignmentExpression"===e.type&&(void 0===i&&(i=this.eval(e.right)),e=e.left),"Identifier"!==e.type)throw new Error("Unexpected arrow function argument");r[e.name]=i});else if("ObjectExpression"===e.type){const i=[];e.properties.forEach(e=>{let a,o=e;if("AssignmentExpression"===o.type&&(o=o.left),"Property"===o.type)a="Identifier"===o.key.type?o.key.name:this.eval(o.key).toString();else if("Identifier"===o.type)a=o.name;else{if("SpreadElement"!==o.type||"Identifier"!==o.argument.type)throw new Error("Unexpected arrow function argument");a=o.argument.name}let l=n[s][a];"SpreadElement"===o.type?(l=t({},n[s]),i.forEach(e=>{delete l[e]})):void 0===l&&"AssignmentExpression"===e.type&&(l=this.eval(e.right)),r[a]=l,i.push(a)})}else{if("SpreadElement"!==e.type||"Identifier"!==e.argument.type)throw new Error("Unexpected arrow function argument");r[e.argument.name]=n.slice(s)}}),r}evalAssignmentExpression(e){return this.evalSyncAsync(this.getContextAndKey(e.left),([t,n])=>this.eval(e.right,r=>s.assignOps[e.operator](t,n,r)))}evalUpdateExpression(e){return this.evalSyncAsync(this.getContextAndKey(e.argument),([t,n])=>s.evalUpdateOperation(e,t,n))}evalAwaitExpression(e){return s.evalAsync(e.argument,this.context)}static evalUpdateOperation(e,t,n){return e.prefix?"++"===e.operator?++t[n]:--t[n]:"++"===e.operator?t[n]++:t[n]--}getContextAndKey(e){if("MemberExpression"===e.type)return this.evalSyncAsync(this.evaluateMember(e),([e,,t])=>{const[n]=s.getKeyValuePair(e,t,this.caseSensitive);return[e,n]});if("Identifier"===e.type){const[t]=s.getKeyValuePair(this.context,e.name,this.caseSensitive);return[this.context,t]}if("ConditionalExpression"===e.type)return this.eval(e.test,t=>this.getContextAndKey(t?e.consequent:e.alternate));throw new Error("Invalid Member Key")}evalNewExpression(e){return this.evalSyncAsync(this.evalCall(e.callee),([t])=>this.evalSyncAsync(this.evalArray(e.arguments),n=>s.construct(t,n,e)))}evalObjectExpression(e){const t={},n=e.properties.map(e=>{if("SpreadElement"===e.type)Object.assign(t,s.eval(e.argument,this.context,this.options));else if("Property"===e.type)return this.evalSyncAsync("Identifier"===e.key.type?e.key.name:this.eval(e.key),n=>this.eval(e.shorthand?e.key:e.value,e=>{t[n]=e}))});return this.isAsync?Promise.all(n).then(()=>t):t}evalSpreadElement(e){return this.eval(e.argument)}evalTaggedTemplateExpression(e){const t=[this.evalCall(e.tag),this.evalSyncAsync(this.evalArray(e.quasi.expressions),t=>[e.quasi.quasis.map(e=>e.value.cooked),...t])],n=([[e,t],n])=>e.apply(t,n);return this.isAsync?Promise.all(t).then(n):n(t)}evalTemplateLiteral(e){return this.evalSyncAsync(this.evalArray(e.expressions),t=>e.quasis.reduce((e,n,r)=>(e+=n.value.cooked,n.tail||(e+=t[r]),e),""))}static construct(e,t,n){try{return new(Function.prototype.bind.apply(e,[null].concat(t)))}catch(e){throw new Error(`${s.nodeFunctionName(n.callee)} is not a constructor`)}}static validateFnAndCall(e,t,n){if("function"!=typeof e){if(!e&&n&&n.optional)return[()=>{},t];const r=s.nodeFunctionName(n||t);throw new Error(`'${r}' is not a function`)}return[e,t]}static nodeFunctionName(e){return e&&(e.name||e.property&&e.property.name)}static getValue(e,t,n){const[,r]=s.getKeyValuePair(e,t,n);return r}static getKeyValuePair(e,t,n){if(n||"string"!=typeof t)return[t,e[t]];if("string"==typeof t){let n=e;do{const r=Object.getOwnPropertyNames(n);if(Array.isArray(r)){const n=r.find(e=>0===e.localeCompare(t,"en",{sensitivity:"base"}));if(n)return[n,e[n]]}}while(n=Object.getPrototypeOf(n))}return[t,void 0]}static getLiteralPair(e,t,n){if(n)return e[t];for(const[n,r]of e)if(0===n.localeCompare(t,"en",{sensitivity:"base"}))return[n,r]}}s.jsep=e,s.parse=e,s.evaluate=s.eval,s.evaluators={ArrayExpression:s.prototype.evalArrayExpression,LogicalExpression:s.prototype.evalBinaryExpression,BinaryExpression:s.prototype.evalBinaryExpression,CallExpression:s.prototype.evalCallExpression,Compound:s.prototype.evalCompoundExpression,ConditionalExpression:s.prototype.evalConditionalExpression,Identifier:s.prototype.evalIdentifier,Literal:s.evalLiteral,OptionalMemberExpression:s.prototype.evalMemberExpression,MemberExpression:s.prototype.evalMemberExpression,ThisExpression:s.prototype.evalThisExpression,UnaryExpression:s.prototype.evalUnaryExpression,ArrowFunctionExpression:s.prototype.evalArrowFunctionExpression,AssignmentExpression:s.prototype.evalAssignmentExpression,UpdateExpression:s.prototype.evalUpdateExpression,AwaitExpression:s.prototype.evalAwaitExpression,NewExpression:s.prototype.evalNewExpression,ObjectExpression:s.prototype.evalObjectExpression,SpreadElement:s.prototype.evalSpreadElement,TaggedTemplateExpression:s.prototype.evalTaggedTemplateExpression,TemplateLiteral:s.prototype.evalTemplateLiteral},s.DEFAULT_PRECEDENCE={"||":1,"&&":2,"|":3,"^":4,"&":5,"==":6,"!=":6,"===":6,"!==":6,"<":7,">":7,"<=":7,">=":7,"<<":8,">>":8,">>>":8,"+":9,"-":9,"*":10,"/":10,"%":10},s.binops={"||":function(e,t){return e||t},"&&":function(e,t){return e&&t},"|":function(e,t){return e|t},"^":function(e,t){return e^t},"&":function(e,t){return e&t},"==":function(e,t){return e==t},"!=":function(e,t){return e!=t},"===":function(e,t){return e===t},"!==":function(e,t){return e!==t},"<":function(e,t){return e<t},">":function(e,t){return e>t},"<=":function(e,t){return e<=t},">=":function(e,t){return e>=t},"<<":function(e,t){return e<<t},">>":function(e,t){return e>>t},">>>":function(e,t){return e>>>t},"+":function(e,t){return e+t},"-":function(e,t){return e-t},"*":function(e,t){return e*t},"/":function(e,t){return e/t},"%":function(e,t){return e%t}},s.unops={"-":function(e){return-e},"+":function(e){return+e},"~":function(e){return~e},"!":function(e){return!e}},s.assignOps={"=":function(e,t,n){return e[t]=n},"*=":function(e,t,n){return e[t]*=n},"**=":function(e,t,n){return e[t]**=n},"/=":function(e,t,n){return e[t]/=n},"%=":function(e,t,n){return e[t]%=n},"+=":function(e,t,n){return e[t]+=n},"-=":function(e,t,n){return e[t]-=n},"<<=":function(e,t,n){return e[t]<<=n},">>=":function(e,t,n){return e[t]>>=n},">>>=":function(e,t,n){return e[t]>>>=n},"&=":function(e,t,n){return e[t]&=n},"^=":function(e,t,n){return e[t]^=n},"|=":function(e,t,n){return e[t]|=n}};const i=s.DEFAULT_PRECEDENCE,a=s.evaluators,o=s.binops,l=s.unops,p=s.assignOps,u=s.addUnaryOp,c=s.addBinaryOp,y=s.addEvaluator,v=s.registerPlugin,h=s.eval,f=s.evalAsync,d=s.compile,m=s.compileAsync,E=s.evalExpr,x=s.evalExprAsync;export{i as DEFAULT_PRECEDENCE,c as addBinaryOp,y as addEvaluator,u as addUnaryOp,p as assignOps,o as binops,d as compile,m as compileAsync,s as default,f as evalAsync,E as evalExpr,x as evalExprAsync,h as evaluate,a as evaluators,v as registerPlugin,l as unops};
import e from"jsep";export{default as jsep,default as parse}from"jsep";function t(){return t=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},t.apply(this,arguments)}const n=new Map([["undefined",void 0],["null",null],["true",!0],["false",!1]]);class r{static addUnaryOp(t,n){e.addUnaryOp(t),r.unops[t]=n}static addBinaryOp(t,n,s,i){let a,o,l;"function"==typeof n?l=n:(a=n,"function"==typeof s?l=s:(o=s,l=i)),e.addBinaryOp(t,a||1,o),r.binops[t]=l}static addEvaluator(e,t){r.evaluators[e]=t}static registerPlugin(...e){e.forEach(e=>{e.init&&r.parse.plugins.register(e),e.initEval&&e.initEval.call(r,r)})}static addOptions(e){r.defaultOptions=e}static eval(e,t,n){return new r(t,void 0,n).eval(e)}static async evalAsync(e,t,n){return new r(t,!0,n).eval(e)}static compile(e){return r.eval.bind(null,r.jsep(e))}static compileAsync(e){return r.evalAsync.bind(null,r.jsep(e))}static evalExpr(e,t){return r.compile(e)(t)}static evalExprAsync(e,t){return r.compileAsync(e)(t)}get caseSensitive(){return!(!this.options||!this.options.caseSensitive)}constructor(e,t,n){this.context=void 0,this.isAsync=void 0,this.options=void 0,this.context=e,this.isAsync=t,this.options=n||r.defaultOptions}eval(e,t=(e=>e)){const n=r.evaluators[e.type]||r.evaluators.default;if(!n)throw new Error(`unknown node type: ${JSON.stringify(e,null,2)}`);return this.evalSyncAsync(n.bind(this)(e,this.context),n=>(e._value=n,t(n)))}evalSyncAsync(e,t){return this.isAsync?Promise.resolve(e).then(t):t(e)}evalArrayExpression(e){return this.evalArray(e.elements)}evalArray(e){const t=e.map(e=>this.eval(e)),n=t=>t.reduce((t,n,r)=>"SpreadElement"===e[r].type?[...t,...n]:(t.push(n),t),[]);return this.isAsync?Promise.all(t).then(n):n(t)}evalBinaryExpression(e){if("||"===e.operator)return this.eval(e.left,t=>t||this.eval(e.right));if("&&"===e.operator)return this.eval(e.left,t=>t&&this.eval(e.right));const t=[this.eval(e.left),this.eval(e.right)],n=([t,n])=>r.binops[e.operator](t,n);return this.isAsync?Promise.all(t).then(n):n(t)}evalCompoundExpression(e){return this.isAsync?e.body.reduce((e,t)=>e.then(()=>this.eval(t)),Promise.resolve()):e.body.map(e=>this.eval(e))[e.body.length-1]}evalCallExpression(e){return this.evalSyncAsync(this.evalCall(e.callee),([t,n])=>this.evalSyncAsync(this.evalArray(e.arguments),e=>t.apply(n,e)))}evalCall(e){return"MemberExpression"===e.type?this.evalSyncAsync(this.evaluateMember(e),([t,n])=>r.validateFnAndCall(n,t,e)):this.eval(e,t=>r.validateFnAndCall(t,e))}evalConditionalExpression(e){return this.eval(e.test,t=>this.eval(t?e.consequent:e.alternate))}evalIdentifier(e){if(this.caseSensitive)return this.context[e.name];if(0===e.name.localeCompare("this","en",{sensitivity:"base"}))return this.evalThisExpression();{const t=r.getLiteralPair(n,e.name,this.caseSensitive);if(t){const[,e]=t;return e}return r.getValue(this.context,e.name,this.caseSensitive)}}static evalLiteral(e){return e.value}evalMemberExpression(e){return this.evalSyncAsync(this.evaluateMember(e),([,e])=>e)}evaluateMember(e){return this.eval(e.object,t=>this.evalSyncAsync(e.computed?this.eval(e.property):e.property.name,n=>{if(/^__proto__|prototype|constructor$/.test(n))throw Error(`Access to member "${n}" disallowed.`);const s=r.getValue(e.optional?t||{}:t,n,this.caseSensitive);return[t,s,n]}))}evalThisExpression(){return this.context}evalUnaryExpression(e){return this.eval(e.argument,t=>r.unops[e.operator](t))}evalArrowFunctionExpression(e){return this.isAsync!==e.async?r[e.async?"evalAsync":"eval"](e,this.context):(...t)=>{const n=this.evalArrowContext(e,t);return r[e.async?"evalAsync":"eval"](e.body,n)}}evalArrowContext(e,n){const r=t({},this.context);return(e.params||[]).forEach((e,s)=>{if("AssignmentExpression"===e.type&&(void 0===n[s]&&(n[s]=this.eval(e.right)),e=e.left),"Identifier"===e.type)r[e.name]=n[s];else if("ArrayExpression"===e.type)e.elements.forEach((e,t)=>{let i=n[s][t];if("AssignmentExpression"===e.type&&(void 0===i&&(i=this.eval(e.right)),e=e.left),"Identifier"!==e.type)throw new Error("Unexpected arrow function argument");r[e.name]=i});else if("ObjectExpression"===e.type){const i=[];e.properties.forEach(e=>{let a,o=e;if("AssignmentExpression"===o.type&&(o=o.left),"Property"===o.type)a="Identifier"===o.key.type?o.key.name:this.eval(o.key).toString();else if("Identifier"===o.type)a=o.name;else{if("SpreadElement"!==o.type||"Identifier"!==o.argument.type)throw new Error("Unexpected arrow function argument");a=o.argument.name}let l=n[s][a];"SpreadElement"===o.type?(l=t({},n[s]),i.forEach(e=>{delete l[e]})):void 0===l&&"AssignmentExpression"===e.type&&(l=this.eval(e.right)),r[a]=l,i.push(a)})}else{if("SpreadElement"!==e.type||"Identifier"!==e.argument.type)throw new Error("Unexpected arrow function argument");r[e.argument.name]=n.slice(s)}}),r}evalAssignmentExpression(e){return this.evalSyncAsync(this.getContextAndKey(e.left),([t,n])=>this.eval(e.right,s=>r.assignOps[e.operator](t,n,s)))}evalUpdateExpression(e){return this.evalSyncAsync(this.getContextAndKey(e.argument),([t,n])=>r.evalUpdateOperation(e,t,n))}evalAwaitExpression(e){return r.evalAsync(e.argument,this.context)}static evalUpdateOperation(e,t,n){return e.prefix?"++"===e.operator?++t[n]:--t[n]:"++"===e.operator?t[n]++:t[n]--}getContextAndKey(e){if("MemberExpression"===e.type)return this.evalSyncAsync(this.evaluateMember(e),([e,,t])=>{const[n]=r.getKeyValuePair(e,t,this.caseSensitive);return[e,n]});if("Identifier"===e.type){const[t]=r.getKeyValuePair(this.context,e.name,this.caseSensitive);return[this.context,t]}if("ConditionalExpression"===e.type)return this.eval(e.test,t=>this.getContextAndKey(t?e.consequent:e.alternate));throw new Error("Invalid Member Key")}evalNewExpression(e){return this.evalSyncAsync(this.evalCall(e.callee),([t])=>this.evalSyncAsync(this.evalArray(e.arguments),n=>r.construct(t,n,e)))}evalObjectExpression(e){const t={},n=e.properties.map(e=>{if("SpreadElement"===e.type)Object.assign(t,r.eval(e.argument,this.context,this.options));else if("Property"===e.type)return this.evalSyncAsync("Identifier"===e.key.type?e.key.name:this.eval(e.key),n=>this.eval(e.shorthand?e.key:e.value,e=>{t[n]=e}))});return this.isAsync?Promise.all(n).then(()=>t):t}evalSpreadElement(e){return this.eval(e.argument)}evalTaggedTemplateExpression(e){const t=[this.evalCall(e.tag),this.evalSyncAsync(this.evalArray(e.quasi.expressions),t=>[e.quasi.quasis.map(e=>e.value.cooked),...t])],n=([[e,t],n])=>e.apply(t,n);return this.isAsync?Promise.all(t).then(n):n(t)}evalTemplateLiteral(e){return this.evalSyncAsync(this.evalArray(e.expressions),t=>e.quasis.reduce((e,n,r)=>(e+=n.value.cooked,n.tail||(e+=t[r]),e),""))}static construct(e,t,n){try{return new(Function.prototype.bind.apply(e,[null].concat(t)))}catch(e){throw new Error(`${r.nodeFunctionName(n.callee)} is not a constructor`)}}static validateFnAndCall(e,t,n){if("function"!=typeof e){if(!e&&n&&n.optional)return[()=>{},t];const s=r.nodeFunctionName(n||t);throw new Error(`'${s}' is not a function`)}return[e,t]}static nodeFunctionName(e){return e&&(e.name||e.property&&e.property.name)}static getValue(e,t,n){const[,s]=r.getKeyValuePair(e,t,n);return s}static getKeyValuePair(e,t,n){if(n||"string"!=typeof t)return[t,e[t]];if("string"==typeof t){let n=e;do{const r=Object.getOwnPropertyNames(n);if(Array.isArray(r)){const n=r.find(e=>0===e.localeCompare(t,"en",{sensitivity:"base"}));if(n)return[n,e[n]]}}while(n=Object.getPrototypeOf(n))}return[t,void 0]}static getLiteralPair(e,t,n){if(n)return e[t];for(const[n,r]of e)if(0===n.localeCompare(t,"en",{sensitivity:"base"}))return[n,r]}}r.jsep=e,r.parse=e,r.evaluate=r.eval,r.evaluators={ArrayExpression:r.prototype.evalArrayExpression,LogicalExpression:r.prototype.evalBinaryExpression,BinaryExpression:r.prototype.evalBinaryExpression,CallExpression:r.prototype.evalCallExpression,Compound:r.prototype.evalCompoundExpression,ConditionalExpression:r.prototype.evalConditionalExpression,Identifier:r.prototype.evalIdentifier,Literal:r.evalLiteral,OptionalMemberExpression:r.prototype.evalMemberExpression,MemberExpression:r.prototype.evalMemberExpression,ThisExpression:r.prototype.evalThisExpression,UnaryExpression:r.prototype.evalUnaryExpression,ArrowFunctionExpression:r.prototype.evalArrowFunctionExpression,AssignmentExpression:r.prototype.evalAssignmentExpression,UpdateExpression:r.prototype.evalUpdateExpression,AwaitExpression:r.prototype.evalAwaitExpression,NewExpression:r.prototype.evalNewExpression,ObjectExpression:r.prototype.evalObjectExpression,SpreadElement:r.prototype.evalSpreadElement,TaggedTemplateExpression:r.prototype.evalTaggedTemplateExpression,TemplateLiteral:r.prototype.evalTemplateLiteral},r.DEFAULT_PRECEDENCE={"||":1,"&&":2,"|":3,"^":4,"&":5,"==":6,"!=":6,"===":6,"!==":6,"<":7,">":7,"<=":7,">=":7,"<<":8,">>":8,">>>":8,"+":9,"-":9,"*":10,"/":10,"%":10},r.binops={"||":function(e,t){return e||t},"&&":function(e,t){return e&&t},"|":function(e,t){return e|t},"^":function(e,t){return e^t},"&":function(e,t){return e&t},"==":function(e,t){return e==t},"!=":function(e,t){return e!=t},"===":function(e,t){return e===t},"!==":function(e,t){return e!==t},"<":function(e,t){return e<t},">":function(e,t){return e>t},"<=":function(e,t){return e<=t},">=":function(e,t){return e>=t},"<<":function(e,t){return e<<t},">>":function(e,t){return e>>t},">>>":function(e,t){return e>>>t},"+":function(e,t){return e+t},"-":function(e,t){return e-t},"*":function(e,t){return e*t},"/":function(e,t){return e/t},"%":function(e,t){return e%t}},r.unops={"-":function(e){return-e},"+":function(e){return+e},"~":function(e){return~e},"!":function(e){return!e}},r.assignOps={"=":function(e,t,n){return e[t]=n},"*=":function(e,t,n){return e[t]*=n},"**=":function(e,t,n){return e[t]**=n},"/=":function(e,t,n){return e[t]/=n},"%=":function(e,t,n){return e[t]%=n},"+=":function(e,t,n){return e[t]+=n},"-=":function(e,t,n){return e[t]-=n},"<<=":function(e,t,n){return e[t]<<=n},">>=":function(e,t,n){return e[t]>>=n},">>>=":function(e,t,n){return e[t]>>>=n},"&=":function(e,t,n){return e[t]&=n},"^=":function(e,t,n){return e[t]^=n},"|=":function(e,t,n){return e[t]|=n}},r.defaultOptions={caseSensitive:!0};const s=r.DEFAULT_PRECEDENCE,i=r.evaluators,a=r.binops,o=r.unops,l=r.assignOps,p=r.addUnaryOp,u=r.addBinaryOp,c=r.addEvaluator,y=r.registerPlugin,v=r.addOptions,h=r.eval,f=r.evalAsync,d=r.compile,m=r.compileAsync,E=r.evalExpr,x=r.evalExprAsync;export{s as DEFAULT_PRECEDENCE,u as addBinaryOp,c as addEvaluator,v as addOptions,p as addUnaryOp,l as assignOps,a as binops,d as compile,m as compileAsync,r as default,f as evalAsync,E as evalExpr,x as evalExprAsync,h as evaluate,i as evaluators,y as registerPlugin,o as unops};
//# sourceMappingURL=jse-eval.modern.js.map

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

import e from"jsep";export{default as jsep,default as parse}from"jsep";function n(){return n=Object.assign||function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},n.apply(this,arguments)}function t(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}var r={caseSensitive:!0},i=new Map([["undefined",void 0],["null",null],["true",!0],["false",!1]]),o=/*#__PURE__*/function(){function o(e,n,t){this.context=void 0,this.isAsync=void 0,this.options=void 0,this.context=e,this.isAsync=n,this.options=t||r}o.addUnaryOp=function(n,t){e.addUnaryOp(n),o.unops[n]=t},o.addBinaryOp=function(n,t,r,i){var a,s,u;"function"==typeof t?u=t:(a=t,"function"==typeof r?u=r:(s=r,u=i)),e.addBinaryOp(n,a||1,s),o.binops[n]=u},o.addEvaluator=function(e,n){o.evaluators[e]=n},o.registerPlugin=function(){[].slice.call(arguments).forEach(function(e){e.init&&o.parse.plugins.register(e),e.initEval&&e.initEval.call(o,o)})},o.eval=function(e,n,t){return new o(n,void 0,t).eval(e)},o.evalAsync=function(e,n,t){try{return Promise.resolve(new o(n,!0,t).eval(e))}catch(e){return Promise.reject(e)}},o.compile=function(e){return o.eval.bind(null,o.jsep(e))},o.compileAsync=function(e){return o.evalAsync.bind(null,o.jsep(e))},o.evalExpr=function(e,n){return o.compile(e)(n)},o.evalExprAsync=function(e,n){return o.compileAsync(e)(n)};var a,s,u=o.prototype;return u.eval=function(e,n){void 0===n&&(n=function(e){return e});var t=o.evaluators[e.type]||o.evaluators.default;if(!t)throw new Error("unknown node type: "+JSON.stringify(e,null,2));return this.evalSyncAsync(t.bind(this)(e,this.context),function(t){return e._value=t,n(t)})},u.evalSyncAsync=function(e,n){return this.isAsync?Promise.resolve(e).then(n):n(e)},u.evalArrayExpression=function(e){return this.evalArray(e.elements)},u.evalArray=function(e){var n=this,t=e.map(function(e){return n.eval(e)}),r=function(n){return n.reduce(function(n,t,r){return"SpreadElement"===e[r].type?[].concat(n,t):(n.push(t),n)},[])};return this.isAsync?Promise.all(t).then(r):r(t)},u.evalBinaryExpression=function(e){var n=this;if("||"===e.operator)return this.eval(e.left,function(t){return t||n.eval(e.right)});if("&&"===e.operator)return this.eval(e.left,function(t){return t&&n.eval(e.right)});var t=[this.eval(e.left),this.eval(e.right)],r=function(n){return o.binops[e.operator](n[0],n[1])};return this.isAsync?Promise.all(t).then(r):r(t)},u.evalCompoundExpression=function(e){var n=this;return this.isAsync?e.body.reduce(function(e,t){return e.then(function(){return n.eval(t)})},Promise.resolve()):e.body.map(function(e){return n.eval(e)})[e.body.length-1]},u.evalCallExpression=function(e){var n=this;return this.evalSyncAsync(this.evalCall(e.callee),function(t){var r=t[0],i=t[1];return n.evalSyncAsync(n.evalArray(e.arguments),function(e){return r.apply(i,e)})})},u.evalCall=function(e){return"MemberExpression"===e.type?this.evalSyncAsync(this.evaluateMember(e),function(n){return o.validateFnAndCall(n[1],n[0],e)}):this.eval(e,function(n){return o.validateFnAndCall(n,e)})},u.evalConditionalExpression=function(e){var n=this;return this.eval(e.test,function(t){return n.eval(t?e.consequent:e.alternate)})},u.evalIdentifier=function(e){if(this.caseSensitive)return this.context[e.name];if(0===e.name.localeCompare("this","en",{sensitivity:"base"}))return this.evalThisExpression();var n=o.getLiteralPair(i,e.name,this.caseSensitive);return n?n[1]:o.getValue(this.context,e.name,this.caseSensitive)},o.evalLiteral=function(e){return e.value},u.evalMemberExpression=function(e){return this.evalSyncAsync(this.evaluateMember(e),function(e){return e[1]})},u.evaluateMember=function(e){var n=this;return this.eval(e.object,function(t){return n.evalSyncAsync(e.computed?n.eval(e.property):e.property.name,function(r){if(/^__proto__|prototype|constructor$/.test(r))throw Error('Access to member "'+r+'" disallowed.');var i=o.getValue(e.optional?t||{}:t,r,n.caseSensitive);return[t,i,r]})})},u.evalThisExpression=function(){return this.context},u.evalUnaryExpression=function(e){return this.eval(e.argument,function(n){return o.unops[e.operator](n)})},u.evalArrowFunctionExpression=function(e){var n=this;return this.isAsync!==e.async?o[e.async?"evalAsync":"eval"](e,this.context):function(){var t=n.evalArrowContext(e,[].slice.call(arguments));return o[e.async?"evalAsync":"eval"](e.body,t)}},u.evalArrowContext=function(e,t){var r=this,i=n({},this.context);return(e.params||[]).forEach(function(e,o){if("AssignmentExpression"===e.type&&(void 0===t[o]&&(t[o]=r.eval(e.right)),e=e.left),"Identifier"===e.type)i[e.name]=t[o];else if("ArrayExpression"===e.type)e.elements.forEach(function(e,n){var a=t[o][n];if("AssignmentExpression"===e.type&&(void 0===a&&(a=r.eval(e.right)),e=e.left),"Identifier"!==e.type)throw new Error("Unexpected arrow function argument");i[e.name]=a});else if("ObjectExpression"===e.type){var a=[];e.properties.forEach(function(e){var s,u=e;if("AssignmentExpression"===u.type&&(u=u.left),"Property"===u.type)s="Identifier"===u.key.type?u.key.name:r.eval(u.key).toString();else if("Identifier"===u.type)s=u.name;else{if("SpreadElement"!==u.type||"Identifier"!==u.argument.type)throw new Error("Unexpected arrow function argument");s=u.argument.name}var l=t[o][s];"SpreadElement"===u.type?(l=n({},t[o]),a.forEach(function(e){delete l[e]})):void 0===l&&"AssignmentExpression"===e.type&&(l=r.eval(e.right)),i[s]=l,a.push(s)})}else{if("SpreadElement"!==e.type||"Identifier"!==e.argument.type)throw new Error("Unexpected arrow function argument");i[e.argument.name]=t.slice(o)}}),i},u.evalAssignmentExpression=function(e){var n=this;return this.evalSyncAsync(this.getContextAndKey(e.left),function(t){var r=t[0],i=t[1];return n.eval(e.right,function(n){return o.assignOps[e.operator](r,i,n)})})},u.evalUpdateExpression=function(e){return this.evalSyncAsync(this.getContextAndKey(e.argument),function(n){return o.evalUpdateOperation(e,n[0],n[1])})},u.evalAwaitExpression=function(e){return o.evalAsync(e.argument,this.context)},o.evalUpdateOperation=function(e,n,t){return e.prefix?"++"===e.operator?++n[t]:--n[t]:"++"===e.operator?n[t]++:n[t]--},u.getContextAndKey=function(e){var n=this;if("MemberExpression"===e.type)return this.evalSyncAsync(this.evaluateMember(e),function(e){var t=e[0];return[t,o.getKeyValuePair(t,e[2],n.caseSensitive)[0]]});if("Identifier"===e.type){var t=o.getKeyValuePair(this.context,e.name,this.caseSensitive);return[this.context,t[0]]}if("ConditionalExpression"===e.type)return this.eval(e.test,function(t){return n.getContextAndKey(t?e.consequent:e.alternate)});throw new Error("Invalid Member Key")},u.evalNewExpression=function(e){var n=this;return this.evalSyncAsync(this.evalCall(e.callee),function(t){var r=t[0];return n.evalSyncAsync(n.evalArray(e.arguments),function(n){return o.construct(r,n,e)})})},u.evalObjectExpression=function(e){var n=this,t={},r=e.properties.map(function(e){if("SpreadElement"===e.type)Object.assign(t,o.eval(e.argument,n.context,n.options));else if("Property"===e.type)return n.evalSyncAsync("Identifier"===e.key.type?e.key.name:n.eval(e.key),function(r){return n.eval(e.shorthand?e.key:e.value,function(e){t[r]=e})})});return this.isAsync?Promise.all(r).then(function(){return t}):t},u.evalSpreadElement=function(e){return this.eval(e.argument)},u.evalTaggedTemplateExpression=function(e){var n=[this.evalCall(e.tag),this.evalSyncAsync(this.evalArray(e.quasi.expressions),function(n){return[e.quasi.quasis.map(function(e){return e.value.cooked})].concat(n)})],t=function(e){var n=e[0];return n[0].apply(n[1],e[1])};return this.isAsync?Promise.all(n).then(t):t(n)},u.evalTemplateLiteral=function(e){return this.evalSyncAsync(this.evalArray(e.expressions),function(n){return e.quasis.reduce(function(e,t,r){return e+=t.value.cooked,t.tail||(e+=n[r]),e},"")})},o.construct=function(e,n,t){try{return new(Function.prototype.bind.apply(e,[null].concat(n)))}catch(e){throw new Error(o.nodeFunctionName(t.callee)+" is not a constructor")}},o.validateFnAndCall=function(e,n,t){if("function"!=typeof e){if(!e&&t&&t.optional)return[function(){},n];var r=o.nodeFunctionName(t||n);throw new Error("'"+r+"' is not a function")}return[e,n]},o.nodeFunctionName=function(e){return e&&(e.name||e.property&&e.property.name)},o.getValue=function(e,n,t){return o.getKeyValuePair(e,n,t)[1]},o.getKeyValuePair=function(e,n,t){if(t||"string"!=typeof n)return[n,e[n]];if("string"==typeof n){var r=e;do{var i=Object.getOwnPropertyNames(r);if(Array.isArray(i)){var o=i.find(function(e){return 0===e.localeCompare(n,"en",{sensitivity:"base"})});if(o)return[o,e[o]]}}while(r=Object.getPrototypeOf(r))}return[n,void 0]},o.getLiteralPair=function(e,n,r){if(r)return e[n];for(var i,o=function(e,n){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(r)return(r=r.call(e)).next.bind(r);if(Array.isArray(e)||(r=function(e,n){if(e){if("string"==typeof e)return t(e,n);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?t(e,n):void 0}}(e))){r&&(e=r);var i=0;return function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(e);!(i=o()).done;){var a=i.value,s=a[0],u=a[1];if(0===s.localeCompare(n,"en",{sensitivity:"base"}))return[s,u]}},a=o,(s=[{key:"caseSensitive",get:function(){return!(!this.options||!this.options.caseSensitive)}}])&&function(e,n){for(var t=0;t<n.length;t++){var r=n[t];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}(a.prototype,s),Object.defineProperty(a,"prototype",{writable:!1}),o}();o.jsep=e,o.parse=e,o.evaluate=o.eval,o.evaluators={ArrayExpression:o.prototype.evalArrayExpression,LogicalExpression:o.prototype.evalBinaryExpression,BinaryExpression:o.prototype.evalBinaryExpression,CallExpression:o.prototype.evalCallExpression,Compound:o.prototype.evalCompoundExpression,ConditionalExpression:o.prototype.evalConditionalExpression,Identifier:o.prototype.evalIdentifier,Literal:o.evalLiteral,OptionalMemberExpression:o.prototype.evalMemberExpression,MemberExpression:o.prototype.evalMemberExpression,ThisExpression:o.prototype.evalThisExpression,UnaryExpression:o.prototype.evalUnaryExpression,ArrowFunctionExpression:o.prototype.evalArrowFunctionExpression,AssignmentExpression:o.prototype.evalAssignmentExpression,UpdateExpression:o.prototype.evalUpdateExpression,AwaitExpression:o.prototype.evalAwaitExpression,NewExpression:o.prototype.evalNewExpression,ObjectExpression:o.prototype.evalObjectExpression,SpreadElement:o.prototype.evalSpreadElement,TaggedTemplateExpression:o.prototype.evalTaggedTemplateExpression,TemplateLiteral:o.prototype.evalTemplateLiteral},o.DEFAULT_PRECEDENCE={"||":1,"&&":2,"|":3,"^":4,"&":5,"==":6,"!=":6,"===":6,"!==":6,"<":7,">":7,"<=":7,">=":7,"<<":8,">>":8,">>>":8,"+":9,"-":9,"*":10,"/":10,"%":10},o.binops={"||":function(e,n){return e||n},"&&":function(e,n){return e&&n},"|":function(e,n){return e|n},"^":function(e,n){return e^n},"&":function(e,n){return e&n},"==":function(e,n){return e==n},"!=":function(e,n){return e!=n},"===":function(e,n){return e===n},"!==":function(e,n){return e!==n},"<":function(e,n){return e<n},">":function(e,n){return e>n},"<=":function(e,n){return e<=n},">=":function(e,n){return e>=n},"<<":function(e,n){return e<<n},">>":function(e,n){return e>>n},">>>":function(e,n){return e>>>n},"+":function(e,n){return e+n},"-":function(e,n){return e-n},"*":function(e,n){return e*n},"/":function(e,n){return e/n},"%":function(e,n){return e%n}},o.unops={"-":function(e){return-e},"+":function(e){return+e},"~":function(e){return~e},"!":function(e){return!e}},o.assignOps={"=":function(e,n,t){return e[n]=t},"*=":function(e,n,t){return e[n]*=t},"**=":function(e,n,t){var r;return e[r=n]=Math.pow(e[r],t)},"/=":function(e,n,t){return e[n]/=t},"%=":function(e,n,t){return e[n]%=t},"+=":function(e,n,t){return e[n]+=t},"-=":function(e,n,t){return e[n]-=t},"<<=":function(e,n,t){return e[n]<<=t},">>=":function(e,n,t){return e[n]>>=t},">>>=":function(e,n,t){return e[n]>>>=t},"&=":function(e,n,t){return e[n]&=t},"^=":function(e,n,t){return e[n]^=t},"|=":function(e,n,t){return e[n]|=t}};var a=o.DEFAULT_PRECEDENCE,s=o.evaluators,u=o.binops,l=o.unops,c=o.assignOps,p=o.addUnaryOp,f=o.addBinaryOp,v=o.addEvaluator,y=o.registerPlugin,h=o.eval,d=o.evalAsync,m=o.compile,E=o.compileAsync,x=o.evalExpr,A=o.evalExprAsync;export{a as DEFAULT_PRECEDENCE,f as addBinaryOp,v as addEvaluator,p as addUnaryOp,c as assignOps,u as binops,m as compile,E as compileAsync,o as default,d as evalAsync,x as evalExpr,A as evalExprAsync,h as evaluate,s as evaluators,y as registerPlugin,l as unops};
import e from"jsep";export{default as jsep,default as parse}from"jsep";function n(){return n=Object.assign||function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},n.apply(this,arguments)}function t(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}var r=new Map([["undefined",void 0],["null",null],["true",!0],["false",!1]]),i=/*#__PURE__*/function(){function i(e,n,t){this.context=void 0,this.isAsync=void 0,this.options=void 0,this.context=e,this.isAsync=n,this.options=t||i.defaultOptions}i.addUnaryOp=function(n,t){e.addUnaryOp(n),i.unops[n]=t},i.addBinaryOp=function(n,t,r,o){var a,s,u;"function"==typeof t?u=t:(a=t,"function"==typeof r?u=r:(s=r,u=o)),e.addBinaryOp(n,a||1,s),i.binops[n]=u},i.addEvaluator=function(e,n){i.evaluators[e]=n},i.registerPlugin=function(){[].slice.call(arguments).forEach(function(e){e.init&&i.parse.plugins.register(e),e.initEval&&e.initEval.call(i,i)})},i.addOptions=function(e){i.defaultOptions=e},i.eval=function(e,n,t){return new i(n,void 0,t).eval(e)},i.evalAsync=function(e,n,t){try{return Promise.resolve(new i(n,!0,t).eval(e))}catch(e){return Promise.reject(e)}},i.compile=function(e){return i.eval.bind(null,i.jsep(e))},i.compileAsync=function(e){return i.evalAsync.bind(null,i.jsep(e))},i.evalExpr=function(e,n){return i.compile(e)(n)},i.evalExprAsync=function(e,n){return i.compileAsync(e)(n)};var o,a,s=i.prototype;return s.eval=function(e,n){void 0===n&&(n=function(e){return e});var t=i.evaluators[e.type]||i.evaluators.default;if(!t)throw new Error("unknown node type: "+JSON.stringify(e,null,2));return this.evalSyncAsync(t.bind(this)(e,this.context),function(t){return e._value=t,n(t)})},s.evalSyncAsync=function(e,n){return this.isAsync?Promise.resolve(e).then(n):n(e)},s.evalArrayExpression=function(e){return this.evalArray(e.elements)},s.evalArray=function(e){var n=this,t=e.map(function(e){return n.eval(e)}),r=function(n){return n.reduce(function(n,t,r){return"SpreadElement"===e[r].type?[].concat(n,t):(n.push(t),n)},[])};return this.isAsync?Promise.all(t).then(r):r(t)},s.evalBinaryExpression=function(e){var n=this;if("||"===e.operator)return this.eval(e.left,function(t){return t||n.eval(e.right)});if("&&"===e.operator)return this.eval(e.left,function(t){return t&&n.eval(e.right)});var t=[this.eval(e.left),this.eval(e.right)],r=function(n){return i.binops[e.operator](n[0],n[1])};return this.isAsync?Promise.all(t).then(r):r(t)},s.evalCompoundExpression=function(e){var n=this;return this.isAsync?e.body.reduce(function(e,t){return e.then(function(){return n.eval(t)})},Promise.resolve()):e.body.map(function(e){return n.eval(e)})[e.body.length-1]},s.evalCallExpression=function(e){var n=this;return this.evalSyncAsync(this.evalCall(e.callee),function(t){var r=t[0],i=t[1];return n.evalSyncAsync(n.evalArray(e.arguments),function(e){return r.apply(i,e)})})},s.evalCall=function(e){return"MemberExpression"===e.type?this.evalSyncAsync(this.evaluateMember(e),function(n){return i.validateFnAndCall(n[1],n[0],e)}):this.eval(e,function(n){return i.validateFnAndCall(n,e)})},s.evalConditionalExpression=function(e){var n=this;return this.eval(e.test,function(t){return n.eval(t?e.consequent:e.alternate)})},s.evalIdentifier=function(e){if(this.caseSensitive)return this.context[e.name];if(0===e.name.localeCompare("this","en",{sensitivity:"base"}))return this.evalThisExpression();var n=i.getLiteralPair(r,e.name,this.caseSensitive);return n?n[1]:i.getValue(this.context,e.name,this.caseSensitive)},i.evalLiteral=function(e){return e.value},s.evalMemberExpression=function(e){return this.evalSyncAsync(this.evaluateMember(e),function(e){return e[1]})},s.evaluateMember=function(e){var n=this;return this.eval(e.object,function(t){return n.evalSyncAsync(e.computed?n.eval(e.property):e.property.name,function(r){if(/^__proto__|prototype|constructor$/.test(r))throw Error('Access to member "'+r+'" disallowed.');var o=i.getValue(e.optional?t||{}:t,r,n.caseSensitive);return[t,o,r]})})},s.evalThisExpression=function(){return this.context},s.evalUnaryExpression=function(e){return this.eval(e.argument,function(n){return i.unops[e.operator](n)})},s.evalArrowFunctionExpression=function(e){var n=this;return this.isAsync!==e.async?i[e.async?"evalAsync":"eval"](e,this.context):function(){var t=n.evalArrowContext(e,[].slice.call(arguments));return i[e.async?"evalAsync":"eval"](e.body,t)}},s.evalArrowContext=function(e,t){var r=this,i=n({},this.context);return(e.params||[]).forEach(function(e,o){if("AssignmentExpression"===e.type&&(void 0===t[o]&&(t[o]=r.eval(e.right)),e=e.left),"Identifier"===e.type)i[e.name]=t[o];else if("ArrayExpression"===e.type)e.elements.forEach(function(e,n){var a=t[o][n];if("AssignmentExpression"===e.type&&(void 0===a&&(a=r.eval(e.right)),e=e.left),"Identifier"!==e.type)throw new Error("Unexpected arrow function argument");i[e.name]=a});else if("ObjectExpression"===e.type){var a=[];e.properties.forEach(function(e){var s,u=e;if("AssignmentExpression"===u.type&&(u=u.left),"Property"===u.type)s="Identifier"===u.key.type?u.key.name:r.eval(u.key).toString();else if("Identifier"===u.type)s=u.name;else{if("SpreadElement"!==u.type||"Identifier"!==u.argument.type)throw new Error("Unexpected arrow function argument");s=u.argument.name}var l=t[o][s];"SpreadElement"===u.type?(l=n({},t[o]),a.forEach(function(e){delete l[e]})):void 0===l&&"AssignmentExpression"===e.type&&(l=r.eval(e.right)),i[s]=l,a.push(s)})}else{if("SpreadElement"!==e.type||"Identifier"!==e.argument.type)throw new Error("Unexpected arrow function argument");i[e.argument.name]=t.slice(o)}}),i},s.evalAssignmentExpression=function(e){var n=this;return this.evalSyncAsync(this.getContextAndKey(e.left),function(t){var r=t[0],o=t[1];return n.eval(e.right,function(n){return i.assignOps[e.operator](r,o,n)})})},s.evalUpdateExpression=function(e){return this.evalSyncAsync(this.getContextAndKey(e.argument),function(n){return i.evalUpdateOperation(e,n[0],n[1])})},s.evalAwaitExpression=function(e){return i.evalAsync(e.argument,this.context)},i.evalUpdateOperation=function(e,n,t){return e.prefix?"++"===e.operator?++n[t]:--n[t]:"++"===e.operator?n[t]++:n[t]--},s.getContextAndKey=function(e){var n=this;if("MemberExpression"===e.type)return this.evalSyncAsync(this.evaluateMember(e),function(e){var t=e[0];return[t,i.getKeyValuePair(t,e[2],n.caseSensitive)[0]]});if("Identifier"===e.type){var t=i.getKeyValuePair(this.context,e.name,this.caseSensitive);return[this.context,t[0]]}if("ConditionalExpression"===e.type)return this.eval(e.test,function(t){return n.getContextAndKey(t?e.consequent:e.alternate)});throw new Error("Invalid Member Key")},s.evalNewExpression=function(e){var n=this;return this.evalSyncAsync(this.evalCall(e.callee),function(t){var r=t[0];return n.evalSyncAsync(n.evalArray(e.arguments),function(n){return i.construct(r,n,e)})})},s.evalObjectExpression=function(e){var n=this,t={},r=e.properties.map(function(e){if("SpreadElement"===e.type)Object.assign(t,i.eval(e.argument,n.context,n.options));else if("Property"===e.type)return n.evalSyncAsync("Identifier"===e.key.type?e.key.name:n.eval(e.key),function(r){return n.eval(e.shorthand?e.key:e.value,function(e){t[r]=e})})});return this.isAsync?Promise.all(r).then(function(){return t}):t},s.evalSpreadElement=function(e){return this.eval(e.argument)},s.evalTaggedTemplateExpression=function(e){var n=[this.evalCall(e.tag),this.evalSyncAsync(this.evalArray(e.quasi.expressions),function(n){return[e.quasi.quasis.map(function(e){return e.value.cooked})].concat(n)})],t=function(e){var n=e[0];return n[0].apply(n[1],e[1])};return this.isAsync?Promise.all(n).then(t):t(n)},s.evalTemplateLiteral=function(e){return this.evalSyncAsync(this.evalArray(e.expressions),function(n){return e.quasis.reduce(function(e,t,r){return e+=t.value.cooked,t.tail||(e+=n[r]),e},"")})},i.construct=function(e,n,t){try{return new(Function.prototype.bind.apply(e,[null].concat(n)))}catch(e){throw new Error(i.nodeFunctionName(t.callee)+" is not a constructor")}},i.validateFnAndCall=function(e,n,t){if("function"!=typeof e){if(!e&&t&&t.optional)return[function(){},n];var r=i.nodeFunctionName(t||n);throw new Error("'"+r+"' is not a function")}return[e,n]},i.nodeFunctionName=function(e){return e&&(e.name||e.property&&e.property.name)},i.getValue=function(e,n,t){return i.getKeyValuePair(e,n,t)[1]},i.getKeyValuePair=function(e,n,t){if(t||"string"!=typeof n)return[n,e[n]];if("string"==typeof n){var r=e;do{var i=Object.getOwnPropertyNames(r);if(Array.isArray(i)){var o=i.find(function(e){return 0===e.localeCompare(n,"en",{sensitivity:"base"})});if(o)return[o,e[o]]}}while(r=Object.getPrototypeOf(r))}return[n,void 0]},i.getLiteralPair=function(e,n,r){if(r)return e[n];for(var i,o=function(e,n){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(r)return(r=r.call(e)).next.bind(r);if(Array.isArray(e)||(r=function(e,n){if(e){if("string"==typeof e)return t(e,n);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?t(e,n):void 0}}(e))){r&&(e=r);var i=0;return function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(e);!(i=o()).done;){var a=i.value,s=a[0],u=a[1];if(0===s.localeCompare(n,"en",{sensitivity:"base"}))return[s,u]}},o=i,(a=[{key:"caseSensitive",get:function(){return!(!this.options||!this.options.caseSensitive)}}])&&function(e,n){for(var t=0;t<n.length;t++){var r=n[t];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}(o.prototype,a),Object.defineProperty(o,"prototype",{writable:!1}),i}();i.jsep=e,i.parse=e,i.evaluate=i.eval,i.evaluators={ArrayExpression:i.prototype.evalArrayExpression,LogicalExpression:i.prototype.evalBinaryExpression,BinaryExpression:i.prototype.evalBinaryExpression,CallExpression:i.prototype.evalCallExpression,Compound:i.prototype.evalCompoundExpression,ConditionalExpression:i.prototype.evalConditionalExpression,Identifier:i.prototype.evalIdentifier,Literal:i.evalLiteral,OptionalMemberExpression:i.prototype.evalMemberExpression,MemberExpression:i.prototype.evalMemberExpression,ThisExpression:i.prototype.evalThisExpression,UnaryExpression:i.prototype.evalUnaryExpression,ArrowFunctionExpression:i.prototype.evalArrowFunctionExpression,AssignmentExpression:i.prototype.evalAssignmentExpression,UpdateExpression:i.prototype.evalUpdateExpression,AwaitExpression:i.prototype.evalAwaitExpression,NewExpression:i.prototype.evalNewExpression,ObjectExpression:i.prototype.evalObjectExpression,SpreadElement:i.prototype.evalSpreadElement,TaggedTemplateExpression:i.prototype.evalTaggedTemplateExpression,TemplateLiteral:i.prototype.evalTemplateLiteral},i.DEFAULT_PRECEDENCE={"||":1,"&&":2,"|":3,"^":4,"&":5,"==":6,"!=":6,"===":6,"!==":6,"<":7,">":7,"<=":7,">=":7,"<<":8,">>":8,">>>":8,"+":9,"-":9,"*":10,"/":10,"%":10},i.binops={"||":function(e,n){return e||n},"&&":function(e,n){return e&&n},"|":function(e,n){return e|n},"^":function(e,n){return e^n},"&":function(e,n){return e&n},"==":function(e,n){return e==n},"!=":function(e,n){return e!=n},"===":function(e,n){return e===n},"!==":function(e,n){return e!==n},"<":function(e,n){return e<n},">":function(e,n){return e>n},"<=":function(e,n){return e<=n},">=":function(e,n){return e>=n},"<<":function(e,n){return e<<n},">>":function(e,n){return e>>n},">>>":function(e,n){return e>>>n},"+":function(e,n){return e+n},"-":function(e,n){return e-n},"*":function(e,n){return e*n},"/":function(e,n){return e/n},"%":function(e,n){return e%n}},i.unops={"-":function(e){return-e},"+":function(e){return+e},"~":function(e){return~e},"!":function(e){return!e}},i.assignOps={"=":function(e,n,t){return e[n]=t},"*=":function(e,n,t){return e[n]*=t},"**=":function(e,n,t){var r;return e[r=n]=Math.pow(e[r],t)},"/=":function(e,n,t){return e[n]/=t},"%=":function(e,n,t){return e[n]%=t},"+=":function(e,n,t){return e[n]+=t},"-=":function(e,n,t){return e[n]-=t},"<<=":function(e,n,t){return e[n]<<=t},">>=":function(e,n,t){return e[n]>>=t},">>>=":function(e,n,t){return e[n]>>>=t},"&=":function(e,n,t){return e[n]&=t},"^=":function(e,n,t){return e[n]^=t},"|=":function(e,n,t){return e[n]|=t}},i.defaultOptions={caseSensitive:!0};var o=i.DEFAULT_PRECEDENCE,a=i.evaluators,s=i.binops,u=i.unops,l=i.assignOps,c=i.addUnaryOp,p=i.addBinaryOp,f=i.addEvaluator,v=i.registerPlugin,y=i.addOptions,d=i.eval,h=i.evalAsync,m=i.compile,E=i.compileAsync,x=i.evalExpr,A=i.evalExprAsync;export{o as DEFAULT_PRECEDENCE,p as addBinaryOp,f as addEvaluator,y as addOptions,c as addUnaryOp,l as assignOps,s as binops,m as compile,E as compileAsync,i as default,h as evalAsync,x as evalExpr,A as evalExprAsync,d as evaluate,a as evaluators,v as registerPlugin,u as unops};
//# sourceMappingURL=jse-eval.module.js.map

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

!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("jsep")):"function"==typeof define&&define.amd?define(["exports","jsep"],n):n((e||self).jseEval={},e.jsep)}(this,function(e,n){function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var r=/*#__PURE__*/t(n);function i(){return i=Object.assign||function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},i.apply(this,arguments)}function o(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}var a={caseSensitive:!0},s=new Map([["undefined",void 0],["null",null],["true",!0],["false",!1]]),u=/*#__PURE__*/function(){function e(e,n,t){this.context=void 0,this.isAsync=void 0,this.options=void 0,this.context=e,this.isAsync=n,this.options=t||a}e.addUnaryOp=function(n,t){r.default.addUnaryOp(n),e.unops[n]=t},e.addBinaryOp=function(n,t,i,o){var a,s,u;"function"==typeof t?u=t:(a=t,"function"==typeof i?u=i:(s=i,u=o)),r.default.addBinaryOp(n,a||1,s),e.binops[n]=u},e.addEvaluator=function(n,t){e.evaluators[n]=t},e.registerPlugin=function(){[].slice.call(arguments).forEach(function(n){n.init&&e.parse.plugins.register(n),n.initEval&&n.initEval.call(e,e)})},e.eval=function(n,t,r){return new e(t,void 0,r).eval(n)},e.evalAsync=function(n,t,r){try{return Promise.resolve(new e(t,!0,r).eval(n))}catch(e){return Promise.reject(e)}},e.compile=function(n){return e.eval.bind(null,e.jsep(n))},e.compileAsync=function(n){return e.evalAsync.bind(null,e.jsep(n))},e.evalExpr=function(n,t){return e.compile(n)(t)},e.evalExprAsync=function(n,t){return e.compileAsync(n)(t)};var n,t,u=e.prototype;return u.eval=function(n,t){void 0===t&&(t=function(e){return e});var r=e.evaluators[n.type]||e.evaluators.default;if(!r)throw new Error("unknown node type: "+JSON.stringify(n,null,2));return this.evalSyncAsync(r.bind(this)(n,this.context),function(e){return n._value=e,t(e)})},u.evalSyncAsync=function(e,n){return this.isAsync?Promise.resolve(e).then(n):n(e)},u.evalArrayExpression=function(e){return this.evalArray(e.elements)},u.evalArray=function(e){var n=this,t=e.map(function(e){return n.eval(e)}),r=function(n){return n.reduce(function(n,t,r){return"SpreadElement"===e[r].type?[].concat(n,t):(n.push(t),n)},[])};return this.isAsync?Promise.all(t).then(r):r(t)},u.evalBinaryExpression=function(n){var t=this;if("||"===n.operator)return this.eval(n.left,function(e){return e||t.eval(n.right)});if("&&"===n.operator)return this.eval(n.left,function(e){return e&&t.eval(n.right)});var r=[this.eval(n.left),this.eval(n.right)],i=function(t){return e.binops[n.operator](t[0],t[1])};return this.isAsync?Promise.all(r).then(i):i(r)},u.evalCompoundExpression=function(e){var n=this;return this.isAsync?e.body.reduce(function(e,t){return e.then(function(){return n.eval(t)})},Promise.resolve()):e.body.map(function(e){return n.eval(e)})[e.body.length-1]},u.evalCallExpression=function(e){var n=this;return this.evalSyncAsync(this.evalCall(e.callee),function(t){var r=t[0],i=t[1];return n.evalSyncAsync(n.evalArray(e.arguments),function(e){return r.apply(i,e)})})},u.evalCall=function(n){return"MemberExpression"===n.type?this.evalSyncAsync(this.evaluateMember(n),function(t){return e.validateFnAndCall(t[1],t[0],n)}):this.eval(n,function(t){return e.validateFnAndCall(t,n)})},u.evalConditionalExpression=function(e){var n=this;return this.eval(e.test,function(t){return n.eval(t?e.consequent:e.alternate)})},u.evalIdentifier=function(n){if(this.caseSensitive)return this.context[n.name];if(0===n.name.localeCompare("this","en",{sensitivity:"base"}))return this.evalThisExpression();var t=e.getLiteralPair(s,n.name,this.caseSensitive);return t?t[1]:e.getValue(this.context,n.name,this.caseSensitive)},e.evalLiteral=function(e){return e.value},u.evalMemberExpression=function(e){return this.evalSyncAsync(this.evaluateMember(e),function(e){return e[1]})},u.evaluateMember=function(n){var t=this;return this.eval(n.object,function(r){return t.evalSyncAsync(n.computed?t.eval(n.property):n.property.name,function(i){if(/^__proto__|prototype|constructor$/.test(i))throw Error('Access to member "'+i+'" disallowed.');var o=e.getValue(n.optional?r||{}:r,i,t.caseSensitive);return[r,o,i]})})},u.evalThisExpression=function(){return this.context},u.evalUnaryExpression=function(n){return this.eval(n.argument,function(t){return e.unops[n.operator](t)})},u.evalArrowFunctionExpression=function(n){var t=this;return this.isAsync!==n.async?e[n.async?"evalAsync":"eval"](n,this.context):function(){var r=t.evalArrowContext(n,[].slice.call(arguments));return e[n.async?"evalAsync":"eval"](n.body,r)}},u.evalArrowContext=function(e,n){var t=this,r=i({},this.context);return(e.params||[]).forEach(function(e,o){if("AssignmentExpression"===e.type&&(void 0===n[o]&&(n[o]=t.eval(e.right)),e=e.left),"Identifier"===e.type)r[e.name]=n[o];else if("ArrayExpression"===e.type)e.elements.forEach(function(e,i){var a=n[o][i];if("AssignmentExpression"===e.type&&(void 0===a&&(a=t.eval(e.right)),e=e.left),"Identifier"!==e.type)throw new Error("Unexpected arrow function argument");r[e.name]=a});else if("ObjectExpression"===e.type){var a=[];e.properties.forEach(function(e){var s,u=e;if("AssignmentExpression"===u.type&&(u=u.left),"Property"===u.type)s="Identifier"===u.key.type?u.key.name:t.eval(u.key).toString();else if("Identifier"===u.type)s=u.name;else{if("SpreadElement"!==u.type||"Identifier"!==u.argument.type)throw new Error("Unexpected arrow function argument");s=u.argument.name}var l=n[o][s];"SpreadElement"===u.type?(l=i({},n[o]),a.forEach(function(e){delete l[e]})):void 0===l&&"AssignmentExpression"===e.type&&(l=t.eval(e.right)),r[s]=l,a.push(s)})}else{if("SpreadElement"!==e.type||"Identifier"!==e.argument.type)throw new Error("Unexpected arrow function argument");r[e.argument.name]=n.slice(o)}}),r},u.evalAssignmentExpression=function(n){var t=this;return this.evalSyncAsync(this.getContextAndKey(n.left),function(r){var i=r[0],o=r[1];return t.eval(n.right,function(t){return e.assignOps[n.operator](i,o,t)})})},u.evalUpdateExpression=function(n){return this.evalSyncAsync(this.getContextAndKey(n.argument),function(t){return e.evalUpdateOperation(n,t[0],t[1])})},u.evalAwaitExpression=function(n){return e.evalAsync(n.argument,this.context)},e.evalUpdateOperation=function(e,n,t){return e.prefix?"++"===e.operator?++n[t]:--n[t]:"++"===e.operator?n[t]++:n[t]--},u.getContextAndKey=function(n){var t=this;if("MemberExpression"===n.type)return this.evalSyncAsync(this.evaluateMember(n),function(n){var r=n[0];return[r,e.getKeyValuePair(r,n[2],t.caseSensitive)[0]]});if("Identifier"===n.type){var r=e.getKeyValuePair(this.context,n.name,this.caseSensitive);return[this.context,r[0]]}if("ConditionalExpression"===n.type)return this.eval(n.test,function(e){return t.getContextAndKey(e?n.consequent:n.alternate)});throw new Error("Invalid Member Key")},u.evalNewExpression=function(n){var t=this;return this.evalSyncAsync(this.evalCall(n.callee),function(r){var i=r[0];return t.evalSyncAsync(t.evalArray(n.arguments),function(t){return e.construct(i,t,n)})})},u.evalObjectExpression=function(n){var t=this,r={},i=n.properties.map(function(n){if("SpreadElement"===n.type)Object.assign(r,e.eval(n.argument,t.context,t.options));else if("Property"===n.type)return t.evalSyncAsync("Identifier"===n.key.type?n.key.name:t.eval(n.key),function(e){return t.eval(n.shorthand?n.key:n.value,function(n){r[e]=n})})});return this.isAsync?Promise.all(i).then(function(){return r}):r},u.evalSpreadElement=function(e){return this.eval(e.argument)},u.evalTaggedTemplateExpression=function(e){var n=[this.evalCall(e.tag),this.evalSyncAsync(this.evalArray(e.quasi.expressions),function(n){return[e.quasi.quasis.map(function(e){return e.value.cooked})].concat(n)})],t=function(e){var n=e[0];return n[0].apply(n[1],e[1])};return this.isAsync?Promise.all(n).then(t):t(n)},u.evalTemplateLiteral=function(e){return this.evalSyncAsync(this.evalArray(e.expressions),function(n){return e.quasis.reduce(function(e,t,r){return e+=t.value.cooked,t.tail||(e+=n[r]),e},"")})},e.construct=function(n,t,r){try{return new(Function.prototype.bind.apply(n,[null].concat(t)))}catch(n){throw new Error(e.nodeFunctionName(r.callee)+" is not a constructor")}},e.validateFnAndCall=function(n,t,r){if("function"!=typeof n){if(!n&&r&&r.optional)return[function(){},t];var i=e.nodeFunctionName(r||t);throw new Error("'"+i+"' is not a function")}return[n,t]},e.nodeFunctionName=function(e){return e&&(e.name||e.property&&e.property.name)},e.getValue=function(n,t,r){return e.getKeyValuePair(n,t,r)[1]},e.getKeyValuePair=function(e,n,t){if(t||"string"!=typeof n)return[n,e[n]];if("string"==typeof n){var r=e;do{var i=Object.getOwnPropertyNames(r);if(Array.isArray(i)){var o=i.find(function(e){return 0===e.localeCompare(n,"en",{sensitivity:"base"})});if(o)return[o,e[o]]}}while(r=Object.getPrototypeOf(r))}return[n,void 0]},e.getLiteralPair=function(e,n,t){if(t)return e[n];for(var r,i=function(e,n){var t="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(t)return(t=t.call(e)).next.bind(t);if(Array.isArray(e)||(t=function(e,n){if(e){if("string"==typeof e)return o(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?o(e,n):void 0}}(e))){t&&(e=t);var r=0;return function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(e);!(r=i()).done;){var a=r.value,s=a[0],u=a[1];if(0===s.localeCompare(n,"en",{sensitivity:"base"}))return[s,u]}},n=e,(t=[{key:"caseSensitive",get:function(){return!(!this.options||!this.options.caseSensitive)}}])&&function(e,n){for(var t=0;t<n.length;t++){var r=n[t];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}(n.prototype,t),Object.defineProperty(n,"prototype",{writable:!1}),e}();u.jsep=r.default,u.parse=r.default,u.evaluate=u.eval,u.evaluators={ArrayExpression:u.prototype.evalArrayExpression,LogicalExpression:u.prototype.evalBinaryExpression,BinaryExpression:u.prototype.evalBinaryExpression,CallExpression:u.prototype.evalCallExpression,Compound:u.prototype.evalCompoundExpression,ConditionalExpression:u.prototype.evalConditionalExpression,Identifier:u.prototype.evalIdentifier,Literal:u.evalLiteral,OptionalMemberExpression:u.prototype.evalMemberExpression,MemberExpression:u.prototype.evalMemberExpression,ThisExpression:u.prototype.evalThisExpression,UnaryExpression:u.prototype.evalUnaryExpression,ArrowFunctionExpression:u.prototype.evalArrowFunctionExpression,AssignmentExpression:u.prototype.evalAssignmentExpression,UpdateExpression:u.prototype.evalUpdateExpression,AwaitExpression:u.prototype.evalAwaitExpression,NewExpression:u.prototype.evalNewExpression,ObjectExpression:u.prototype.evalObjectExpression,SpreadElement:u.prototype.evalSpreadElement,TaggedTemplateExpression:u.prototype.evalTaggedTemplateExpression,TemplateLiteral:u.prototype.evalTemplateLiteral},u.DEFAULT_PRECEDENCE={"||":1,"&&":2,"|":3,"^":4,"&":5,"==":6,"!=":6,"===":6,"!==":6,"<":7,">":7,"<=":7,">=":7,"<<":8,">>":8,">>>":8,"+":9,"-":9,"*":10,"/":10,"%":10},u.binops={"||":function(e,n){return e||n},"&&":function(e,n){return e&&n},"|":function(e,n){return e|n},"^":function(e,n){return e^n},"&":function(e,n){return e&n},"==":function(e,n){return e==n},"!=":function(e,n){return e!=n},"===":function(e,n){return e===n},"!==":function(e,n){return e!==n},"<":function(e,n){return e<n},">":function(e,n){return e>n},"<=":function(e,n){return e<=n},">=":function(e,n){return e>=n},"<<":function(e,n){return e<<n},">>":function(e,n){return e>>n},">>>":function(e,n){return e>>>n},"+":function(e,n){return e+n},"-":function(e,n){return e-n},"*":function(e,n){return e*n},"/":function(e,n){return e/n},"%":function(e,n){return e%n}},u.unops={"-":function(e){return-e},"+":function(e){return+e},"~":function(e){return~e},"!":function(e){return!e}},u.assignOps={"=":function(e,n,t){return e[n]=t},"*=":function(e,n,t){return e[n]*=t},"**=":function(e,n,t){var r;return e[r=n]=Math.pow(e[r],t)},"/=":function(e,n,t){return e[n]/=t},"%=":function(e,n,t){return e[n]%=t},"+=":function(e,n,t){return e[n]+=t},"-=":function(e,n,t){return e[n]-=t},"<<=":function(e,n,t){return e[n]<<=t},">>=":function(e,n,t){return e[n]>>=t},">>>=":function(e,n,t){return e[n]>>>=t},"&=":function(e,n,t){return e[n]&=t},"^=":function(e,n,t){return e[n]^=t},"|=":function(e,n,t){return e[n]|=t}};var l=u.DEFAULT_PRECEDENCE,c=u.evaluators,p=u.binops,f=u.unops,v=u.assignOps,y=u.addUnaryOp,d=u.addBinaryOp,h=u.addEvaluator,m=u.registerPlugin,E=u.eval,x=u.evalAsync,g=u.compile,A=u.compileAsync,b=u.evalExpr,w=u.evalExprAsync;Object.defineProperty(e,"jsep",{enumerable:!0,get:function(){return r.default}}),Object.defineProperty(e,"parse",{enumerable:!0,get:function(){return r.default}}),e.DEFAULT_PRECEDENCE=l,e.addBinaryOp=d,e.addEvaluator=h,e.addUnaryOp=y,e.assignOps=v,e.binops=p,e.compile=g,e.compileAsync=A,e.default=u,e.evalAsync=x,e.evalExpr=b,e.evalExprAsync=w,e.evaluate=E,e.evaluators=c,e.registerPlugin=m,e.unops=f});
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("jsep")):"function"==typeof define&&define.amd?define(["exports","jsep"],n):n((e||self).jseEval={},e.jsep)}(this,function(e,n){function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var r=/*#__PURE__*/t(n);function i(){return i=Object.assign||function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},i.apply(this,arguments)}function o(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}var a=new Map([["undefined",void 0],["null",null],["true",!0],["false",!1]]),s=/*#__PURE__*/function(){function e(n,t,r){this.context=void 0,this.isAsync=void 0,this.options=void 0,this.context=n,this.isAsync=t,this.options=r||e.defaultOptions}e.addUnaryOp=function(n,t){r.default.addUnaryOp(n),e.unops[n]=t},e.addBinaryOp=function(n,t,i,o){var a,s,u;"function"==typeof t?u=t:(a=t,"function"==typeof i?u=i:(s=i,u=o)),r.default.addBinaryOp(n,a||1,s),e.binops[n]=u},e.addEvaluator=function(n,t){e.evaluators[n]=t},e.registerPlugin=function(){[].slice.call(arguments).forEach(function(n){n.init&&e.parse.plugins.register(n),n.initEval&&n.initEval.call(e,e)})},e.addOptions=function(n){e.defaultOptions=n},e.eval=function(n,t,r){return new e(t,void 0,r).eval(n)},e.evalAsync=function(n,t,r){try{return Promise.resolve(new e(t,!0,r).eval(n))}catch(e){return Promise.reject(e)}},e.compile=function(n){return e.eval.bind(null,e.jsep(n))},e.compileAsync=function(n){return e.evalAsync.bind(null,e.jsep(n))},e.evalExpr=function(n,t){return e.compile(n)(t)},e.evalExprAsync=function(n,t){return e.compileAsync(n)(t)};var n,t,s=e.prototype;return s.eval=function(n,t){void 0===t&&(t=function(e){return e});var r=e.evaluators[n.type]||e.evaluators.default;if(!r)throw new Error("unknown node type: "+JSON.stringify(n,null,2));return this.evalSyncAsync(r.bind(this)(n,this.context),function(e){return n._value=e,t(e)})},s.evalSyncAsync=function(e,n){return this.isAsync?Promise.resolve(e).then(n):n(e)},s.evalArrayExpression=function(e){return this.evalArray(e.elements)},s.evalArray=function(e){var n=this,t=e.map(function(e){return n.eval(e)}),r=function(n){return n.reduce(function(n,t,r){return"SpreadElement"===e[r].type?[].concat(n,t):(n.push(t),n)},[])};return this.isAsync?Promise.all(t).then(r):r(t)},s.evalBinaryExpression=function(n){var t=this;if("||"===n.operator)return this.eval(n.left,function(e){return e||t.eval(n.right)});if("&&"===n.operator)return this.eval(n.left,function(e){return e&&t.eval(n.right)});var r=[this.eval(n.left),this.eval(n.right)],i=function(t){return e.binops[n.operator](t[0],t[1])};return this.isAsync?Promise.all(r).then(i):i(r)},s.evalCompoundExpression=function(e){var n=this;return this.isAsync?e.body.reduce(function(e,t){return e.then(function(){return n.eval(t)})},Promise.resolve()):e.body.map(function(e){return n.eval(e)})[e.body.length-1]},s.evalCallExpression=function(e){var n=this;return this.evalSyncAsync(this.evalCall(e.callee),function(t){var r=t[0],i=t[1];return n.evalSyncAsync(n.evalArray(e.arguments),function(e){return r.apply(i,e)})})},s.evalCall=function(n){return"MemberExpression"===n.type?this.evalSyncAsync(this.evaluateMember(n),function(t){return e.validateFnAndCall(t[1],t[0],n)}):this.eval(n,function(t){return e.validateFnAndCall(t,n)})},s.evalConditionalExpression=function(e){var n=this;return this.eval(e.test,function(t){return n.eval(t?e.consequent:e.alternate)})},s.evalIdentifier=function(n){if(this.caseSensitive)return this.context[n.name];if(0===n.name.localeCompare("this","en",{sensitivity:"base"}))return this.evalThisExpression();var t=e.getLiteralPair(a,n.name,this.caseSensitive);return t?t[1]:e.getValue(this.context,n.name,this.caseSensitive)},e.evalLiteral=function(e){return e.value},s.evalMemberExpression=function(e){return this.evalSyncAsync(this.evaluateMember(e),function(e){return e[1]})},s.evaluateMember=function(n){var t=this;return this.eval(n.object,function(r){return t.evalSyncAsync(n.computed?t.eval(n.property):n.property.name,function(i){if(/^__proto__|prototype|constructor$/.test(i))throw Error('Access to member "'+i+'" disallowed.');var o=e.getValue(n.optional?r||{}:r,i,t.caseSensitive);return[r,o,i]})})},s.evalThisExpression=function(){return this.context},s.evalUnaryExpression=function(n){return this.eval(n.argument,function(t){return e.unops[n.operator](t)})},s.evalArrowFunctionExpression=function(n){var t=this;return this.isAsync!==n.async?e[n.async?"evalAsync":"eval"](n,this.context):function(){var r=t.evalArrowContext(n,[].slice.call(arguments));return e[n.async?"evalAsync":"eval"](n.body,r)}},s.evalArrowContext=function(e,n){var t=this,r=i({},this.context);return(e.params||[]).forEach(function(e,o){if("AssignmentExpression"===e.type&&(void 0===n[o]&&(n[o]=t.eval(e.right)),e=e.left),"Identifier"===e.type)r[e.name]=n[o];else if("ArrayExpression"===e.type)e.elements.forEach(function(e,i){var a=n[o][i];if("AssignmentExpression"===e.type&&(void 0===a&&(a=t.eval(e.right)),e=e.left),"Identifier"!==e.type)throw new Error("Unexpected arrow function argument");r[e.name]=a});else if("ObjectExpression"===e.type){var a=[];e.properties.forEach(function(e){var s,u=e;if("AssignmentExpression"===u.type&&(u=u.left),"Property"===u.type)s="Identifier"===u.key.type?u.key.name:t.eval(u.key).toString();else if("Identifier"===u.type)s=u.name;else{if("SpreadElement"!==u.type||"Identifier"!==u.argument.type)throw new Error("Unexpected arrow function argument");s=u.argument.name}var l=n[o][s];"SpreadElement"===u.type?(l=i({},n[o]),a.forEach(function(e){delete l[e]})):void 0===l&&"AssignmentExpression"===e.type&&(l=t.eval(e.right)),r[s]=l,a.push(s)})}else{if("SpreadElement"!==e.type||"Identifier"!==e.argument.type)throw new Error("Unexpected arrow function argument");r[e.argument.name]=n.slice(o)}}),r},s.evalAssignmentExpression=function(n){var t=this;return this.evalSyncAsync(this.getContextAndKey(n.left),function(r){var i=r[0],o=r[1];return t.eval(n.right,function(t){return e.assignOps[n.operator](i,o,t)})})},s.evalUpdateExpression=function(n){return this.evalSyncAsync(this.getContextAndKey(n.argument),function(t){return e.evalUpdateOperation(n,t[0],t[1])})},s.evalAwaitExpression=function(n){return e.evalAsync(n.argument,this.context)},e.evalUpdateOperation=function(e,n,t){return e.prefix?"++"===e.operator?++n[t]:--n[t]:"++"===e.operator?n[t]++:n[t]--},s.getContextAndKey=function(n){var t=this;if("MemberExpression"===n.type)return this.evalSyncAsync(this.evaluateMember(n),function(n){var r=n[0];return[r,e.getKeyValuePair(r,n[2],t.caseSensitive)[0]]});if("Identifier"===n.type){var r=e.getKeyValuePair(this.context,n.name,this.caseSensitive);return[this.context,r[0]]}if("ConditionalExpression"===n.type)return this.eval(n.test,function(e){return t.getContextAndKey(e?n.consequent:n.alternate)});throw new Error("Invalid Member Key")},s.evalNewExpression=function(n){var t=this;return this.evalSyncAsync(this.evalCall(n.callee),function(r){var i=r[0];return t.evalSyncAsync(t.evalArray(n.arguments),function(t){return e.construct(i,t,n)})})},s.evalObjectExpression=function(n){var t=this,r={},i=n.properties.map(function(n){if("SpreadElement"===n.type)Object.assign(r,e.eval(n.argument,t.context,t.options));else if("Property"===n.type)return t.evalSyncAsync("Identifier"===n.key.type?n.key.name:t.eval(n.key),function(e){return t.eval(n.shorthand?n.key:n.value,function(n){r[e]=n})})});return this.isAsync?Promise.all(i).then(function(){return r}):r},s.evalSpreadElement=function(e){return this.eval(e.argument)},s.evalTaggedTemplateExpression=function(e){var n=[this.evalCall(e.tag),this.evalSyncAsync(this.evalArray(e.quasi.expressions),function(n){return[e.quasi.quasis.map(function(e){return e.value.cooked})].concat(n)})],t=function(e){var n=e[0];return n[0].apply(n[1],e[1])};return this.isAsync?Promise.all(n).then(t):t(n)},s.evalTemplateLiteral=function(e){return this.evalSyncAsync(this.evalArray(e.expressions),function(n){return e.quasis.reduce(function(e,t,r){return e+=t.value.cooked,t.tail||(e+=n[r]),e},"")})},e.construct=function(n,t,r){try{return new(Function.prototype.bind.apply(n,[null].concat(t)))}catch(n){throw new Error(e.nodeFunctionName(r.callee)+" is not a constructor")}},e.validateFnAndCall=function(n,t,r){if("function"!=typeof n){if(!n&&r&&r.optional)return[function(){},t];var i=e.nodeFunctionName(r||t);throw new Error("'"+i+"' is not a function")}return[n,t]},e.nodeFunctionName=function(e){return e&&(e.name||e.property&&e.property.name)},e.getValue=function(n,t,r){return e.getKeyValuePair(n,t,r)[1]},e.getKeyValuePair=function(e,n,t){if(t||"string"!=typeof n)return[n,e[n]];if("string"==typeof n){var r=e;do{var i=Object.getOwnPropertyNames(r);if(Array.isArray(i)){var o=i.find(function(e){return 0===e.localeCompare(n,"en",{sensitivity:"base"})});if(o)return[o,e[o]]}}while(r=Object.getPrototypeOf(r))}return[n,void 0]},e.getLiteralPair=function(e,n,t){if(t)return e[n];for(var r,i=function(e,n){var t="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(t)return(t=t.call(e)).next.bind(t);if(Array.isArray(e)||(t=function(e,n){if(e){if("string"==typeof e)return o(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?o(e,n):void 0}}(e))){t&&(e=t);var r=0;return function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(e);!(r=i()).done;){var a=r.value,s=a[0],u=a[1];if(0===s.localeCompare(n,"en",{sensitivity:"base"}))return[s,u]}},n=e,(t=[{key:"caseSensitive",get:function(){return!(!this.options||!this.options.caseSensitive)}}])&&function(e,n){for(var t=0;t<n.length;t++){var r=n[t];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}(n.prototype,t),Object.defineProperty(n,"prototype",{writable:!1}),e}();s.jsep=r.default,s.parse=r.default,s.evaluate=s.eval,s.evaluators={ArrayExpression:s.prototype.evalArrayExpression,LogicalExpression:s.prototype.evalBinaryExpression,BinaryExpression:s.prototype.evalBinaryExpression,CallExpression:s.prototype.evalCallExpression,Compound:s.prototype.evalCompoundExpression,ConditionalExpression:s.prototype.evalConditionalExpression,Identifier:s.prototype.evalIdentifier,Literal:s.evalLiteral,OptionalMemberExpression:s.prototype.evalMemberExpression,MemberExpression:s.prototype.evalMemberExpression,ThisExpression:s.prototype.evalThisExpression,UnaryExpression:s.prototype.evalUnaryExpression,ArrowFunctionExpression:s.prototype.evalArrowFunctionExpression,AssignmentExpression:s.prototype.evalAssignmentExpression,UpdateExpression:s.prototype.evalUpdateExpression,AwaitExpression:s.prototype.evalAwaitExpression,NewExpression:s.prototype.evalNewExpression,ObjectExpression:s.prototype.evalObjectExpression,SpreadElement:s.prototype.evalSpreadElement,TaggedTemplateExpression:s.prototype.evalTaggedTemplateExpression,TemplateLiteral:s.prototype.evalTemplateLiteral},s.DEFAULT_PRECEDENCE={"||":1,"&&":2,"|":3,"^":4,"&":5,"==":6,"!=":6,"===":6,"!==":6,"<":7,">":7,"<=":7,">=":7,"<<":8,">>":8,">>>":8,"+":9,"-":9,"*":10,"/":10,"%":10},s.binops={"||":function(e,n){return e||n},"&&":function(e,n){return e&&n},"|":function(e,n){return e|n},"^":function(e,n){return e^n},"&":function(e,n){return e&n},"==":function(e,n){return e==n},"!=":function(e,n){return e!=n},"===":function(e,n){return e===n},"!==":function(e,n){return e!==n},"<":function(e,n){return e<n},">":function(e,n){return e>n},"<=":function(e,n){return e<=n},">=":function(e,n){return e>=n},"<<":function(e,n){return e<<n},">>":function(e,n){return e>>n},">>>":function(e,n){return e>>>n},"+":function(e,n){return e+n},"-":function(e,n){return e-n},"*":function(e,n){return e*n},"/":function(e,n){return e/n},"%":function(e,n){return e%n}},s.unops={"-":function(e){return-e},"+":function(e){return+e},"~":function(e){return~e},"!":function(e){return!e}},s.assignOps={"=":function(e,n,t){return e[n]=t},"*=":function(e,n,t){return e[n]*=t},"**=":function(e,n,t){var r;return e[r=n]=Math.pow(e[r],t)},"/=":function(e,n,t){return e[n]/=t},"%=":function(e,n,t){return e[n]%=t},"+=":function(e,n,t){return e[n]+=t},"-=":function(e,n,t){return e[n]-=t},"<<=":function(e,n,t){return e[n]<<=t},">>=":function(e,n,t){return e[n]>>=t},">>>=":function(e,n,t){return e[n]>>>=t},"&=":function(e,n,t){return e[n]&=t},"^=":function(e,n,t){return e[n]^=t},"|=":function(e,n,t){return e[n]|=t}},s.defaultOptions={caseSensitive:!0};var u=s.DEFAULT_PRECEDENCE,l=s.evaluators,c=s.binops,p=s.unops,f=s.assignOps,v=s.addUnaryOp,y=s.addBinaryOp,d=s.addEvaluator,h=s.registerPlugin,m=s.addOptions,E=s.eval,x=s.evalAsync,g=s.compile,A=s.compileAsync,b=s.evalExpr,w=s.evalExprAsync;Object.defineProperty(e,"jsep",{enumerable:!0,get:function(){return r.default}}),Object.defineProperty(e,"parse",{enumerable:!0,get:function(){return r.default}}),e.DEFAULT_PRECEDENCE=u,e.addBinaryOp=y,e.addEvaluator=d,e.addOptions=m,e.addUnaryOp=v,e.assignOps=f,e.binops=c,e.compile=g,e.compileAsync=A,e.default=s,e.evalAsync=x,e.evalExpr=b,e.evalExprAsync=w,e.evaluate=E,e.evaluators=l,e.registerPlugin=h,e.unops=p});
//# sourceMappingURL=jse-eval.umd.js.map
{
"name": "@zvenigora/jse-eval",
"version": "1.6.0",
"version": "1.7.0",
"description": "JavaScript expression parsing and evaluation.",

@@ -5,0 +5,0 @@ "source": "index.ts",

@@ -226,13 +226,27 @@ # jse-eval

While JavaScript is the case-sensitive language some target audience finds it hard to use. To provide case-insensitive evaluation use `options`.
To change default behavior of evaluator, use `options`. Options may be provided as argument to function call of 'eval'. In another way options may be added as defualt to evaluator.
While JavaScript is the case-sensitive language some target audience finds it hard to use. To provide case-insensitive evaluation, set caseSensitive to false.
```javascript
import { parse, evaluate } from 'jse-eval';
const options = {caseSensitive: false};
const ast = parse('A + B / C');
// Pass options as argument
const value = eval(ast, {a: 2, b: 2, c: 5}, options); // 2.4
```
> **_NOTE:_** Options support has not implemented for `compile` function.
```javascript
import { compile } from 'jse-eval';
// Add options to evaluator
const options = {caseSensitive: false};
JseEval.addOptions(options);
const fn = JseEval.compile('Foo.BAR + 10', options);
const value = fn({foo: {bar: 'baz'}}); // 'baz10'
```
### Node Types Supported:

@@ -239,0 +253,0 @@ This project will try to stay current with all JSEP's node types::

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc