@steedos/formula 3.0.0-beta.7 → 3.0.0-beta.71
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/formulon.lwc.min.js +1 -1
- package/lib/formulon.min.js +1 -1
- package/package.json +2 -2
package/lib/formulon.lwc.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var e=function(){function e(t,r,n,a){this.message=t,this.expected=r,this.found=n,this.location=a,this.name="SyntaxError","function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,e)}return function(e,t){function r(){this.constructor=e}r.prototype=t.prototype,e.prototype=new r}(e,Error),e.buildMessage=function(e,t){var r={literal:function(e){return'"'+a(e.text)+'"'},class:function(e){var t,r="";for(t=0;t<e.parts.length;t++)r+=e.parts[t]instanceof Array?u(e.parts[t][0])+"-"+u(e.parts[t][1]):u(e.parts[t]);return"["+(e.inverted?"^":"")+r+"]"},any:function(e){return"any character"},end:function(e){return"end of input"},other:function(e){return e.description}};function n(e){return e.charCodeAt(0).toString(16).toUpperCase()}function a(e){return e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,(function(e){return"\\x0"+n(e)})).replace(/[\x10-\x1F\x7F-\x9F]/g,(function(e){return"\\x"+n(e)}))}function u(e){return e.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,(function(e){return"\\x0"+n(e)})).replace(/[\x10-\x1F\x7F-\x9F]/g,(function(e){return"\\x"+n(e)}))}return"Expected "+function(e){var t,n,a,u=new Array(e.length);for(t=0;t<e.length;t++)u[t]=(a=e[t],r[a.type](a));if(u.sort(),u.length>0){for(t=1,n=1;t<u.length;t++)u[t-1]!==u[t]&&(u[n]=u[t],n++);u.length=n}switch(u.length){case 1:return u[0];case 2:return u[0]+" or "+u[1];default:return u.slice(0,-1).join(", ")+", or "+u[u.length-1]}}(e)+" but "+function(e){return e?'"'+a(e)+'"':"end of input"}(t)+" found."},{SyntaxError:e,parse:function(t,r){r=void 0!==r?r:{};var n,a={},u={start:vt},i=vt,o="(",l=st("(",!1),s=")",c=st(")",!1),p=function(e){return e},d=function(e,t){return{type:"callExpression",id:e,arguments:(r=t,null!==r?r[0]:[])};var r},f=function(e,t){return function(e){const t=[],r=[];e.forEach((e=>{if("operator"===e.type){for(;t.length>0&&!(t[t.length-1].precedence<e.precedence);){let e=t.pop(),n=r.pop(),a=r.pop();r.push(qt(e,a,n))}t.push(e)}else r.push(e)}));for(;t.length>0;){let e=t.pop(),n=r.pop(),a=r.pop();r.push(qt(e,a,n))}return r.pop()}([e,t].flat(2))},v=function(e,t){return[Object.assign({type:"operator"},Nt[e]),t]},m="^",h=st("^",!1),g="*",y=st("*",!1),b="/",x=st("/",!1),T="+",$=st("+",!1),C="-",w=st("-",!1),A=function(e,t,r){var n;switch(t){case"||":n="or";break;case"&&":n="and"}return{type:"callExpression",id:n,arguments:[e,r]}},k=function(e,t,r){var n;switch(t){case"<":n="lessThan";break;case"<=":n="lessThanOrEqual";break;case">":n="greaterThan";break;case">=":n="greaterThanOrEqual";break;case"==":case"=":n="equal";break;case"!=":case"<>":n="unequal";break;case"&":n="add"}return{type:"callExpression",id:n,arguments:[e,r]}},E="<=",M=st("<=",!1),U=">=",F=st(">=",!1),S="<>",D=st("<>",!1),O="<",I=st("<",!1),N=">",q=st(">",!1),j="==",R=st("==",!1),W="=",Z=st("=",!1),_="!=",L=st("!=",!1),Y="&&",z=st("&&",!1),P="||",Q=st("||",!1),X="&",H=st("&",!1),V=function(e){return{type:"callExpression",id:"not",arguments:[e]}},B="!",G=st("!",!1),K=function(e){return e},J=",",ee=st(",",!1),te=function(e){return e},re=function(e){return e},ne=/^[A-Za-z]/,ae=ct([["A","Z"],["a","z"]],!1,!1),ue=function(e){return e.join("").toLowerCase()},ie=function(e){return e},oe=function(e,t){return{type:"identifier",name:e+t.join("")}},le="_",se=st("_",!1),ce="$",pe=st("$",!1),de=".",fe=st(".",!1),ve=function(e){return function(e){return{type:"literal",value:e.join(""),dataType:"text",options:{length:e.length}}}(e)},me=function(e){var t=lt().replace(/[\+\-]/g,"").split(".");return{type:"literal",value:parseFloat(lt()),dataType:"number",options:{length:t[0].length,scale:t[1].length}}},he=function(e){return{type:"literal",value:parseInt(lt()),dataType:"number",options:{length:lt().replace(/[\+\-]/g,"").length,scale:0}}},ge="0",ye=st("0",!1),be=/^[0-9]/,xe=ct([["0","9"]],!1,!1),Te=/^[1-9]/,$e=ct([["1","9"]],!1,!1),Ce="true",we=st("true",!0),Ae=function(){return{type:"literal",value:!0,dataType:"checkbox",options:{}}},ke="false",Ee=st("false",!0),Me=function(){return{type:"literal",value:!1,dataType:"checkbox",options:{}}},Ue="null",Fe=st("null",!0),Se=function(){return{type:"literal",value:null,dataType:"null",options:{}}},De="\\",Oe=st("\\",!1),Ie=function(){return lt()},Ne="'",qe=st("'",!1),je='"',Re=st('"',!1),We={type:"any"},Ze=/^[\n\r\u2028\u2029]/,_e=ct(["\n","\r","\u2028","\u2029"],!1,!1),Le="\t",Ye=st("\t",!1),ze="\v",Pe=st("\v",!1),Qe="\f",Xe=st("\f",!1),He=" ",Ve=st(" ",!1),Be=" ",Ge=st(" ",!1),Ke="",Je=st("",!1),et="\ufeff",tt=st("\ufeff",!1),rt=0,nt=0,at=[{line:1,column:1}],ut=0,it=[],ot=0;if("startRule"in r){if(!(r.startRule in u))throw new Error("Can't start parsing from rule \""+r.startRule+'".');i=u[r.startRule]}function lt(){return t.substring(nt,rt)}function st(e,t){return{type:"literal",text:e,ignoreCase:t}}function ct(e,t,r){return{type:"class",parts:e,inverted:t,ignoreCase:r}}function pt(e){var r,n=at[e];if(n)return n;for(r=e-1;!at[r];)r--;for(n={line:(n=at[r]).line,column:n.column};r<e;)10===t.charCodeAt(r)?(n.line++,n.column=1):n.column++,r++;return at[e]=n,n}function dt(e,t){var r=pt(e),n=pt(t);return{start:{offset:e,line:r.line,column:r.column},end:{offset:t,line:n.line,column:n.column}}}function ft(e){rt<ut||(rt>ut&&(ut=rt,it=[]),it.push(e))}function vt(){return mt()}function mt(){var e;return(e=xt())===a&&(e=function(){var e,r,n;e=rt,r=function(){var e;33===t.charCodeAt(rt)?(e=B,rt++):(e=a,0===ot&&ft(G));return e}(),r!==a&&Ot()!==a&&(n=mt())!==a?(nt=e,e=r=V(n)):(rt=e,e=a);return e}())===a&&(e=gt())===a&&(e=$t())===a&&(e=At()),e}function ht(){var e,r,n,u;return(e=gt())===a&&(e=$t())===a&&(e=At())===a&&(e=rt,40===t.charCodeAt(rt)?(r=o,rt++):(r=a,0===ot&&ft(l)),r!==a&&Ot()!==a&&(n=yt())!==a&&Ot()!==a?(41===t.charCodeAt(rt)?(u=s,rt++):(u=a,0===ot&&ft(c)),u!==a?(nt=e,e=r=p(n)):(rt=e,e=a)):(rt=e,e=a)),e}function gt(){var e,r,n;return e=rt,r=function(){var e,r,n;e=rt,r=[],ne.test(t.charAt(rt))?(n=t.charAt(rt),rt++):(n=a,0===ot&&ft(ae));if(n!==a)for(;n!==a;)r.push(n),ne.test(t.charAt(rt))?(n=t.charAt(rt),rt++):(n=a,0===ot&&ft(ae));else r=a;r!==a&&(nt=e,r=ue(r));return e=r,e}(),r!==a&&Ot()!==a?(n=function(){var e,r,n,u,i;e=rt,40===t.charCodeAt(rt)?(r=o,rt++):(r=a,0===ot&&ft(l));r!==a&&Ot()!==a?(n=rt,u=function(){var e,r,n,u,i;e=rt,r=[],n=rt,u=mt(),u!==a&&Ot()!==a?(44===t.charCodeAt(rt)?(i=J,rt++):(i=a,0===ot&&ft(ee)),i===a&&(i=null),i!==a&&Ot()!==a?(nt=n,n=u=te(u)):(rt=n,n=a)):(rt=n,n=a);if(n!==a)for(;n!==a;)r.push(n),n=rt,(u=mt())!==a&&Ot()!==a?(44===t.charCodeAt(rt)?(i=J,rt++):(i=a,0===ot&&ft(ee)),i===a&&(i=null),i!==a&&Ot()!==a?(nt=n,n=u=te(u)):(rt=n,n=a)):(rt=n,n=a);else r=a;r!==a&&(nt=e,r=re(r));return e=r,e}(),u!==a&&(i=Ot())!==a?n=u=[u,i]:(rt=n,n=a),n===a&&(n=null),n!==a?(41===t.charCodeAt(rt)?(u=s,rt++):(u=a,0===ot&&ft(c)),u!==a?(nt=e,e=r=K(n)):(rt=e,e=a)):(rt=e,e=a)):(rt=e,e=a);return e}(),n!==a?(nt=e,e=r=d(r,n)):(rt=e,e=a)):(rt=e,e=a),e}function yt(){var e,t,r,n;if(e=rt,(t=ht())!==a)if(Ot()!==a){for(r=[],n=bt();n!==a;)r.push(n),n=bt();r!==a?(nt=e,e=t=f(t,r)):(rt=e,e=a)}else rt=e,e=a;else rt=e,e=a;return e}function bt(){var e,r,n;return e=rt,Ot()!==a?(r=function(){var e;94===t.charCodeAt(rt)?(e=m,rt++):(e=a,0===ot&&ft(h));e===a&&(42===t.charCodeAt(rt)?(e=g,rt++):(e=a,0===ot&&ft(y)),e===a&&(47===t.charCodeAt(rt)?(e=b,rt++):(e=a,0===ot&&ft(x)),e===a&&(43===t.charCodeAt(rt)?(e=T,rt++):(e=a,0===ot&&ft($)),e===a&&(45===t.charCodeAt(rt)?(e=C,rt++):(e=a,0===ot&&ft(w))))));return e}(),r!==a&&Ot()!==a&&(n=ht())!==a?(nt=e,e=v(r,n)):(rt=e,e=a)):(rt=e,e=a),e}function xt(){var e,r,n,u;return e=rt,(r=Tt())!==a&&Ot()!==a?(n=function(){var e;t.substr(rt,2)===Y?(e=Y,rt+=2):(e=a,0===ot&&ft(z));e===a&&(t.substr(rt,2)===P?(e=P,rt+=2):(e=a,0===ot&&ft(Q)));return e}(),n!==a&&Ot()!==a&&(u=xt())!==a?(nt=e,e=r=A(r,n,u)):(rt=e,e=a)):(rt=e,e=a),e===a&&(e=Tt()),e}function Tt(){var e,r,n,u;return e=rt,(r=yt())!==a&&Ot()!==a?(n=function(){var e;t.substr(rt,2)===E?(e=E,rt+=2):(e=a,0===ot&&ft(M));e===a&&(t.substr(rt,2)===U?(e=U,rt+=2):(e=a,0===ot&&ft(F)),e===a&&(t.substr(rt,2)===S?(e=S,rt+=2):(e=a,0===ot&&ft(D)),e===a&&(60===t.charCodeAt(rt)?(e=O,rt++):(e=a,0===ot&&ft(I)),e===a&&(62===t.charCodeAt(rt)?(e=N,rt++):(e=a,0===ot&&ft(q)),e===a&&(t.substr(rt,2)===j?(e=j,rt+=2):(e=a,0===ot&&ft(R)),e===a&&(61===t.charCodeAt(rt)?(e=W,rt++):(e=a,0===ot&&ft(Z)),e===a&&(t.substr(rt,2)===_?(e=_,rt+=2):(e=a,0===ot&&ft(L)))))))));return e}(),n===a&&(n=function(){var e;38===t.charCodeAt(rt)?(e=X,rt++):(e=a,0===ot&&ft(H));return e}()),n!==a&&Ot()!==a&&(u=Tt())!==a?(nt=e,e=r=k(r,n,u)):(rt=e,e=a)):(rt=e,e=a),e===a&&(e=yt()),e}function $t(){var e,t,r;return e=rt,t=rt,ot++,r=function(){var e;e=Mt(),e===a&&(e=Ut());return e}(),ot--,r===a?t=void 0:(rt=t,t=a),t!==a?(r=function(){var e,t,r,n;if(e=rt,t=Ct(),t!==a){for(r=[],n=wt();n!==a;)r.push(n),n=wt();r!==a?(nt=e,e=t=oe(t,r)):(rt=e,e=a)}else rt=e,e=a;return e}(),r!==a?(nt=e,e=t=ie(r)):(rt=e,e=a)):(rt=e,e=a),e}function Ct(){var e;return 95===t.charCodeAt(rt)?(e=le,rt++):(e=a,0===ot&&ft(se)),e===a&&(36===t.charCodeAt(rt)?(e=ce,rt++):(e=a,0===ot&&ft(pe)),e===a&&(ne.test(t.charAt(rt))?(e=t.charAt(rt),rt++):(e=a,0===ot&&ft(ae)))),e}function wt(){var e;return(e=Ct())===a&&(46===t.charCodeAt(rt)?(e=de,rt++):(e=a,0===ot&&ft(fe)),e===a&&(e=Et())),e}function At(){var e;return(e=function(){var e,t,r;if(e=rt,St()!==a){for(t=[],(r=Ft())===a&&(r=Dt());r!==a;)t.push(r),(r=Ft())===a&&(r=Dt());t!==a&&(r=St())!==a?(nt=e,e=ve(t)):(rt=e,e=a)}else rt=e,e=a;if(e===a)if(e=rt,Dt()!==a){for(t=[],(r=Ft())===a&&(r=St());r!==a;)t.push(r),(r=Ft())===a&&(r=St());t!==a&&(r=Dt())!==a?(nt=e,e=ve(t)):(rt=e,e=a)}else rt=e,e=a;return e}())===a&&(e=function(){var e,r,n,u,i,o;e=rt,r=rt,(n=Ot())!==a?(43===t.charCodeAt(rt)?(u=T,rt++):(u=a,0===ot&&ft($)),u!==a?r=n=[n,u]:(rt=r,r=a)):(rt=r,r=a);r===a&&(r=rt,45===t.charCodeAt(rt)?(n=C,rt++):(n=a,0===ot&&ft(w)),n!==a&&(u=Ot())!==a?r=n=[n,u]:(rt=r,r=a));r===a&&(r=null);if(r!==a)if((n=kt())!==a)if(46===t.charCodeAt(rt)?(u=de,rt++):(u=a,0===ot&&ft(fe)),u!==a){for(i=[],o=Et();o!==a;)i.push(o),o=Et();i!==a?(nt=e,e=r=me()):(rt=e,e=a)}else rt=e,e=a;else rt=e,e=a;else rt=e,e=a;e===a&&(e=rt,r=rt,(n=Ot())!==a?(43===t.charCodeAt(rt)?(u=T,rt++):(u=a,0===ot&&ft($)),u!==a?r=n=[n,u]:(rt=r,r=a)):(rt=r,r=a),r===a&&(r=rt,45===t.charCodeAt(rt)?(n=C,rt++):(n=a,0===ot&&ft(w)),n!==a&&(u=Ot())!==a?r=n=[n,u]:(rt=r,r=a)),r===a&&(r=null),r!==a&&(n=kt())!==a?(nt=e,e=r=he()):(rt=e,e=a));return e}())===a&&(e=Mt())===a&&(e=Ut()),e}function kt(){var e,r,n,u;if(48===t.charCodeAt(rt)?(e=ge,rt++):(e=a,0===ot&&ft(ye)),e===a)if(e=rt,r=function(){var e;Te.test(t.charAt(rt))?(e=t.charAt(rt),rt++):(e=a,0===ot&&ft($e));return e}(),r!==a){for(n=[],u=Et();u!==a;)n.push(u),u=Et();n!==a?e=r=[r,n]:(rt=e,e=a)}else rt=e,e=a;return e}function Et(){var e;return be.test(t.charAt(rt))?(e=t.charAt(rt),rt++):(e=a,0===ot&&ft(xe)),e}function Mt(){var e,r;return e=rt,t.substr(rt,4).toLowerCase()===Ce?(r=t.substr(rt,4),rt+=4):(r=a,0===ot&&ft(we)),r!==a&&(nt=e,r=Ae()),(e=r)===a&&(e=rt,t.substr(rt,5).toLowerCase()===ke?(r=t.substr(rt,5),rt+=5):(r=a,0===ot&&ft(Ee)),r!==a&&(nt=e,r=Me()),e=r),e}function Ut(){var e,r;return e=rt,t.substr(rt,4).toLowerCase()===Ue?(r=t.substr(rt,4),rt+=4):(r=a,0===ot&&ft(Fe)),r!==a&&(nt=e,r=Se()),e=r}function Ft(){var e,r,n;return e=rt,r=rt,ot++,n=function(){var e;e=St(),e===a&&(e=Dt());return e}(),n===a&&(92===t.charCodeAt(rt)?(n=De,rt++):(n=a,0===ot&&ft(Oe))),ot--,n===a?r=void 0:(rt=r,r=a),r!==a?(n=function(){var e;t.length>rt?(e=t.charAt(rt),rt++):(e=a,0===ot&&ft(We));return e}(),n!==a?(nt=e,e=r=Ie()):(rt=e,e=a)):(rt=e,e=a),e}function St(){var e;return 39===t.charCodeAt(rt)?(e=Ne,rt++):(e=a,0===ot&&ft(qe)),e}function Dt(){var e;return 34===t.charCodeAt(rt)?(e=je,rt++):(e=a,0===ot&&ft(Re)),e}function Ot(){var e,t;for(e=[],t=It();t!==a;)e.push(t),t=It();return e}function It(){var e;return 9===t.charCodeAt(rt)?(e=Le,rt++):(e=a,0===ot&&ft(Ye)),e===a&&(e=function(){var e;return Ze.test(t.charAt(rt))?(e=t.charAt(rt),rt++):(e=a,0===ot&&ft(_e)),e}())===a&&(11===t.charCodeAt(rt)?(e=ze,rt++):(e=a,0===ot&&ft(Pe)),e===a&&(12===t.charCodeAt(rt)?(e=Qe,rt++):(e=a,0===ot&&ft(Xe)),e===a&&(32===t.charCodeAt(rt)?(e=He,rt++):(e=a,0===ot&&ft(Ve)),e===a&&(160===t.charCodeAt(rt)?(e=Be,rt++):(e=a,0===ot&&ft(Ge)),e===a&&(8203===t.charCodeAt(rt)?(e=Ke,rt++):(e=a,0===ot&&ft(Je)),e===a&&(65279===t.charCodeAt(rt)?(e=et,rt++):(e=a,0===ot&&ft(tt)))))))),e}const Nt={"^":{functionName:"exponentiate",rightAssociative:!0,precedence:4},"*":{functionName:"multiply",rightAssociative:!1,precedence:3},"/":{functionName:"divide",rightAssociative:!1,precedence:3},"+":{functionName:"add",rightAssociative:!1,precedence:2},"-":{functionName:"subtract",rightAssociative:!1,precedence:2}};function qt(e,t,r){return{type:"callExpression",id:e.functionName,arguments:[t,r]}}if((n=i())!==a&&rt===t.length)return n;throw n!==a&&rt<t.length&&ft({type:"end"}),jt=it,Rt=ut<t.length?t.charAt(ut):null,Wt=ut<t.length?dt(ut,ut+1):dt(ut,ut),new e(e.buildMessage(jt,Rt),jt,Rt,Wt);var jt,Rt,Wt}}}(),t=function(){function e(t,r,n,a){this.message=t,this.expected=r,this.found=n,this.location=a,this.name="SyntaxError","function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,e)}return function(e,t){function r(){this.constructor=e}r.prototype=t.prototype,e.prototype=new r}(e,Error),e.buildMessage=function(e,t){var r={literal:function(e){return'"'+a(e.text)+'"'},class:function(e){var t,r="";for(t=0;t<e.parts.length;t++)r+=e.parts[t]instanceof Array?u(e.parts[t][0])+"-"+u(e.parts[t][1]):u(e.parts[t]);return"["+(e.inverted?"^":"")+r+"]"},any:function(e){return"any character"},end:function(e){return"end of input"},other:function(e){return e.description}};function n(e){return e.charCodeAt(0).toString(16).toUpperCase()}function a(e){return e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,(function(e){return"\\x0"+n(e)})).replace(/[\x10-\x1F\x7F-\x9F]/g,(function(e){return"\\x"+n(e)}))}function u(e){return e.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,(function(e){return"\\x0"+n(e)})).replace(/[\x10-\x1F\x7F-\x9F]/g,(function(e){return"\\x"+n(e)}))}return"Expected "+function(e){var t,n,a,u=new Array(e.length);for(t=0;t<e.length;t++)u[t]=(a=e[t],r[a.type](a));if(u.sort(),u.length>0){for(t=1,n=1;t<u.length;t++)u[t-1]!==u[t]&&(u[n]=u[t],n++);u.length=n}switch(u.length){case 1:return u[0];case 2:return u[0]+" or "+u[1];default:return u.slice(0,-1).join(", ")+", or "+u[u.length-1]}}(e)+" but "+function(e){return e?'"'+a(e)+'"':"end of input"}(t)+" found."},{SyntaxError:e,parse:function(t,r){r=void 0!==r?r:{};var n,a,u,i,o={},l={Time:M},s=M,c=":",p=w(":",!1),d=".",f=w(".",!1),v=function(e,t,r,n){return function(e,t,r,n){e>23&&C("hour part needs to be under 24");t>59&&C("minute part needs to be under 60");r>59&&C("second part needs to be under 60");n>999&&C("millisecond part needs to be under 1000")}(e,t,r,n),{type:"literal",value:new Date(n+1e3*r+60*t*1e3+60*e*60*1e3),dataType:"time",options:{}}},m=function(){return parseInt(t.substring(b,y))},h=/^[0-9]/,g={type:"class",parts:[["0","9"]],inverted:!1,ignoreCase:!1},y=0,b=0,x=[{line:1,column:1}],T=0,$=[];if("startRule"in r){if(!(r.startRule in l))throw new Error("Can't start parsing from rule \""+r.startRule+'".');s=l[r.startRule]}function C(t,r){throw function(t,r){return new e(t,null,null,r)}(t,r=void 0!==r?r:k(b,y))}function w(e,t){return{type:"literal",text:e,ignoreCase:t}}function A(e){var r,n=x[e];if(n)return n;for(r=e-1;!x[r];)r--;for(n={line:(n=x[r]).line,column:n.column};r<e;)10===t.charCodeAt(r)?(n.line++,n.column=1):n.column++,r++;return x[e]=n,n}function k(e,t){var r=A(e),n=A(t);return{start:{offset:e,line:r.line,column:r.column},end:{offset:t,line:n.line,column:n.column}}}function E(e){y<T||(y>T&&(T=y,$=[]),$.push(e))}function M(){var e,r,n,a,u,i,l,s;return e=y,r=function(){var e,t;e=y,t=U(),t!==o&&U()!==o?(b=e,e=t=m()):(y=e,e=o);return e}(),r!==o?(58===t.charCodeAt(y)?(n=c,y++):(n=o,E(p)),n!==o?(a=function(){var e,t;e=y,t=U(),t!==o&&U()!==o?(b=e,e=t=m()):(y=e,e=o);return e}(),a!==o?(58===t.charCodeAt(y)?(u=c,y++):(u=o,E(p)),u!==o?(i=function(){var e,t;e=y,t=U(),t!==o&&U()!==o?(b=e,e=t=m()):(y=e,e=o);return e}(),i!==o?(46===t.charCodeAt(y)?(l=d,y++):(l=o,E(f)),l!==o?(s=function(){var e,t;e=y,t=U(),t!==o&&U()!==o&&U()!==o?(b=e,e=t=m()):(y=e,e=o);return e}(),s!==o?(b=e,e=r=v(r,a,i,s)):(y=e,e=o)):(y=e,e=o)):(y=e,e=o)):(y=e,e=o)):(y=e,e=o)):(y=e,e=o)):(y=e,e=o),e}function U(){var e;return h.test(t.charAt(y))?(e=t.charAt(y),y++):(e=o,E(g)),e}if((n=s())!==o&&y===t.length)return n;throw n!==o&&y<t.length&&E({type:"end"}),a=$,u=T<t.length?t.charAt(T):null,i=T<t.length?k(T,T+1):k(T,T),new e(e.buildMessage(a,u),a,u,i)}}}();class r extends Error{constructor(e,t,r){super(e),this.errorType=t,this.options=r}}const n=864e5,a=(e,t)=>{if(e<0)return-1*a(-1*e,t);const r=10**t;return Math.round(e*r)/r},u=e=>{const t=e.toString().replace("-","");if(-1!==t.indexOf(".")){const e=t.split(".");return{length:e[0].length,scale:e[1].length}}return{length:t.length,scale:0}},i=(e,t,r)=>{switch(e){case"number":return"number"==typeof t?a(t,r.scale):null;case"text":return t.substring(0,r.length);default:return t}},o=e=>{const t={type:"literal",value:e};if(null==e)return Object.assign(t,{value:null,dataType:"null",options:{}});const r=typeof e;switch(typeof e){case"number":return Object.assign(t,{dataType:"number",options:u(e)});case"string":return Object.assign(t,{dataType:"text",options:{length:e.length}});case"boolean":return Object.assign(t,{dataType:"checkbox",options:{}});default:throw new TypeError(`Unsupported type '${r}'`)}},l=(e,t,r)=>({type:"error",errorType:e,message:t,...r}),s=(e,t,r)=>e instanceof Date?s(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate()):{type:"literal",dataType:"date",value:new Date(Date.UTC(e,t-1,r)),options:{}},c=e=>({type:"literal",dataType:"datetime",value:new Date(e),options:{}}),p=e=>({type:"literal",dataType:"time",value:new Date(e),options:{}}),d=e=>{try{return e()}catch(e){if(e instanceof r)return l(e.errorType,e.message,e.options);throw e}},f=(e,t)=>new Date(e.getTime()+t*n),v=e=>{if(!e.value&&"null"!==e.dataType&&0!==e.value&&!1!==e.value&&""!==e.value)return"";switch(e.dataType){case"null":return"NULL";case"number":case"text":case"picklist":return e.value.toString();case"multipicklist":return`[${e.value.map((e=>`"${e}"`)).join(", ")}]`;case"checkbox":return e.value.toString().toUpperCase();case"date":return`${e.value.getUTCFullYear()}-${(e.value.getUTCMonth()+1).toString().padStart(2,"0")}-${e.value.getUTCDate().toString().padStart(2,"0")}`;case"datetime":return e.value.toISOString();case"time":return e.value.toISOString().split("T")[1].replace("Z","");case"geolocation":return t=e.value[0],r=e.value[1],t&&r||0===t||0===r?`${t.toFixed(6)}, ${r.toFixed(6)}`:"";default:return}var t,r};class m extends r{constructor(e,t){super(e,"NotImplementedError",t)}static throwError(e){throw new m(`Function ${e} not implemented yet.`,{name:e})}}const h=e=>Array.isArray(e)?e.map((e=>h(e))).join(", "):"string"!=typeof e?"":e.charAt(0).toUpperCase()+e.slice(1);class g extends r{constructor(e,t){super(e,"ArgumentError",t)}static throwWrongType(e,t,r){const n={function:e,expected:t,received:r},a=r||"Non-Salesforce";throw new g(`Incorrect parameter type for function '${e.toUpperCase()}()'. Expected ${h(t)}, received ${h(a)}`,n)}static throwIncorrectNumberOfArguments(e,t,r){const n={function:e,expected:t,received:r};throw new g(`Incorrect number of parameters for function '${e.toUpperCase()}()'. Expected ${t}, received ${r}`,n)}}const y=(e,t)=>{switch(e.dataType){case"date":case"datetime":return o(e.value.getTime()===t.value.getTime());default:return o(e.value===t.value)}},b=(e,t,r)=>o(e.value.substr(t.value-1,r.value)),x=(e,t)=>b(e,o(1),t);var T=Object.freeze({__proto__:null,sf$or:(...e)=>{const t=e.map((e=>e.value)).reduce(((e,t)=>e||t));return o(t)},sf$equal:y,sf$unequal:(e,t)=>o(!y(e,t).value),sf$greaterThan:(e,t)=>o(e.value>t.value),sf$greaterThanOrEqual:(e,t)=>o(e.value>=t.value),sf$lessThan:(e,t)=>o(e.value<t.value),sf$lessThanOrEqual:(e,t)=>o(e.value<=t.value),sf$addmonths:(e,t)=>s(((e,t)=>{const r=e.getUTCMonth()+t,n=new Date(Date.UTC(e.getUTCFullYear(),r,e.getUTCDate()));return e.getUTCDate()!==n.getUTCDate()&&n.setUTCDate(0),n})(e.value,t.value)),sf$date:(e,t,r)=>s(e.value,t.value,r.value),sf$datevalue:e=>s(new Date(Date.parse(e.value))),sf$datetimevalue:e=>c(Date.parse(`${e.value}Z`)),sf$day:e=>o(e.value.getUTCDate()),sf$hour:e=>o(e.value.getUTCHours()),sf$millisecond:e=>o(e.value.getUTCMilliseconds()),sf$minute:e=>o(e.value.getUTCMinutes()),sf$month:e=>o(e.value.getUTCMonth()+1),sf$now:()=>c((new Date).getTime()),sf$second:e=>o(e.value.getUTCSeconds()),sf$timenow:()=>p((new Date).getTime()%864e5),sf$timevalue:e=>(e=>{try{return t.parse(e)}catch(e){if(e instanceof t.SyntaxError)return o(null);throw e}})(e.value),sf$today:()=>s(new Date),sf$weekday:e=>o(e.value.getUTCDay()+1),sf$year:e=>o(e.value.getUTCFullYear()),sf$and:(...e)=>{const t=e.map((e=>e.value)).reduce(((e,t)=>e&&t));return o(t)},sf$blankvalue:(e,t)=>"null"===e.dataType||""===e.value||null===e.value||void 0===e.value||"multipicklist"===e.dataType&&!e.value.length?t:e,sf$case:(e,...t)=>{const r=t.length-1;if(r<=0){const e={function:"case",expected:4,received:r+2};throw new g(`Incorrect number of parameters for function '${e.function.toUpperCase()}()'. Expected ${e.expected}+, received ${e.received}`,e)}if(r%2!=0){const e={function:"case",expected:r+1,received:r+2};throw new g(`Incorrect number of parameters for function '${e.function.toUpperCase()}()'. Expected ${e.expected}, received ${e.received}`,e)}for(let n=0;n<r;n+=2)if(y(t[n],e).value)return t[n+1];return t[r]},sf$if:(e,t,r)=>e.value?t:r,sf$isblank:e=>o("null"===e.dataType||""===e.value||null===e.value||void 0===e.value||"multipicklist"===e.dataType&&!e.value.length),sf$isnull:e=>{m.throwError("isnull")},sf$isnumber:e=>{m.throwError("isnumber")},sf$not:e=>o(!e.value),sf$nullvalue:(e,t)=>{m.throwError("nullvalue")},sf$add:(e,t)=>{switch([e.dataType,t.dataType].join(" ")){case"date number":return s(f(e.value,t.value));case"number date":return s(f(t.value,e.value));case"time number":return p(e.value.getTime()+t.value);case"number time":return p(e.value+t.value.getTime());case"datetime number":return c(f(e.value,t.value));case"number datetime":return c(f(t.value,e.value));case"number number":case"text text":return o(e.value+t.value);default:g.throwWrongType("add","number",t.dataType)}},sf$subtract:(e,t)=>{switch([e.dataType,t.dataType].join(" ")){case"date number":return s(f(e.value,-1*t.value));case"time number":return p(e.value.getTime()+-1*t.value);case"datetime number":return c(f(e.value,-1*t.value));case"date date":case"datetime datetime":return o((r=e.value,a=t.value,(r.getTime()-a.getTime())/n));case"time time":return o(e.value.getTime()-t.value.getTime());case"number number":case"text text":return o(e.value-t.value);default:g.throwWrongType("subtract","number",t.dataType)}var r,a},sf$multiply:(e,t)=>o(e.value*t.value),sf$divide:(e,t)=>o(e.value/t.value),sf$exponentiate:(e,t)=>o(e.value**t.value),sf$abs:e=>o(Math.abs(e.value)),sf$ceiling:e=>e.value<0?o(-1*Math.ceil(-1*e.value)):o(Math.ceil(e.value)),sf$distance:(e,t,r)=>{const n=r.value;if("km"!==n&&"mi"!==n){throw new g(`Incorrect parameter value for function 'DISTANCE()'. Expected 'mi'/'km', received '${n}'`,{function:"distance",expected:["km","mi"],received:n})}const[a,u]=e.value,[i,l]=t.value;if(a===i&&u===l)return o(0);const s=a*Math.PI/180,c=i*Math.PI/180,p=(i-a)*Math.PI/180,d=(l-u)*Math.PI/180,f=Math.sin(p/2)*Math.sin(p/2)+Math.cos(s)*Math.cos(c)*Math.sin(d/2)*Math.sin(d/2),v=6371009*(2*Math.atan2(Math.sqrt(f),Math.sqrt(1-f)))/1e3;return o("mi"===n?v/1.609344:v)},sf$exp:e=>o(Math.exp(e.value)),sf$floor:e=>e.value<0?o(-1*Math.floor(-1*e.value)):o(Math.floor(e.value)),sf$geolocation:(e,t)=>((e,t)=>({type:"literal",dataType:"geolocation",value:[e,t],options:{}}))(e.value,t.value),sf$ln:e=>o(Math.log(e.value)),sf$log:e=>o(Math.log10(e.value)),sf$max:(...e)=>{const t=e.map((e=>e.value));return o(Math.max(...t))},sf$mceiling:e=>o(Math.ceil(e.value)),sf$mfloor:e=>o(Math.floor(e.value)),sf$min:(...e)=>{const t=e.map((e=>e.value));return o(Math.min(...t))},sf$mod:(e,t)=>o(e.value%t.value),sf$round:(e,t)=>o(a(e.value,t.value)),sf$sqrt:e=>o(Math.sqrt(e.value)),sf$begins:(e,t)=>o(e.value.startsWith(t.value)),sf$br:()=>o("\n"),sf$casesafeid:e=>{let t="";return[0,1,2].forEach((r=>{let n=0;[0,1,2,3,4].forEach((t=>{const a=e.value[5*r+t];a.toUpperCase()===a&&a>="A"&&a<="Z"&&(n+=1<<t)})),t+="ABCDEFGHIJKLMNOPQRSTUVWXYZ012345"[n]})),o(e.value+t)},sf$concat:(e,t)=>o(e.value+t.value),sf$contains:(e,t)=>o(e.value.includes(t.value)),sf$find:(e,t,r=o(1))=>{if(r.value<=0||""===e.value)return o(0);const n=t.value.substring(r.value-1);return o(n.indexOf(e.value)+1)},sf$getsessionid:()=>o("00D3z000001eRlg!AQMAQC3Y4aM9sFux6SRWhyFcOUKin4taGaBxNMU8TN_R_1R0Y7ArI95eSyzQZVIlrnV_unTbmwHZlXex8xhlXz2kXZNP49Fa"),sf$hyperlink:(e,t,r=null)=>{const n=r?` target="${r.value}"`:"";return o(`<a href="${e.value}"${n}>${t.value}</a>`)},sf$image:(e,t,r=null,n=null)=>{const a=r?` height="${r.value}"`:"",u=n?` width="${n.value}"`:"";return o(`<img src="${e.value}" alt="${t.value}"${a}${u}/>`)},sf$includes:(e,t)=>o(e.value.includes(t.value)),sf$ispickval:(e,t)=>o(e.value===t.value),sf$mid:b,sf$left:x,sf$len:e=>o(e.value.length),sf$lower:(e,t)=>o(e.value.toLowerCase()),sf$lpad:(e,t,r)=>{if(null==r)return e;if(t.value<e.value.length)return x(e,t);const n=r.value.repeat(t.value);return o((n+e.value).slice(-t.value))},sf$right:(e,t)=>o(e.value.substr(e.value.length-t.value)),sf$rpad:(e,t,r)=>{if(null==r)return e;if(t.value<e.value.length)return x(e,t);const n=r.value.repeat(t.value);return o((e.value+n).substr(0,t.value))},sf$substitute:(e,t,r)=>o(e.value.replace(new RegExp(t.value.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"g"),r.value)),sf$text:e=>"text"===e.dataType?e:"datetime"===e.dataType?o(v(e).replace("T"," ").replace(/\.\d{3}/,"")):o(v(e)),sf$trim:e=>o(e.value.trim()),sf$upper:(e,t)=>o(e.value.toUpperCase()),sf$value:e=>{const t=parseFloat(e.value);return o(t||null)},sf$currencyrate:e=>{m.throwError("currencyrate")},sf$regex:(e,t)=>{const r=new RegExp(`^${t.value}$`);return o(null!=r.exec(e.value))}});const $=e=>t=>r=>{r.length<e&&g.throwIncorrectNumberOfArguments(t,e,r.length)},C=e=>t=>r=>{r.length>e&&g.throwIncorrectNumberOfArguments(t,e,r.length)},w=(...e)=>t=>r=>{r.map(((t,r)=>[t.dataType,e[r]||e[e.length-1]])).forEach((([e,r])=>{"null"!==e&&(Array.isArray(r)?-1===r.indexOf(e)&&g.throwWrongType(t,r,e):e!==r&&g.throwWrongType(t,r,e))}))},A=()=>e=>t=>{t.length>0&&t.filter((e=>"null"!==e.dataType)).reduce(((t,r)=>(t.dataType!==r.dataType&&g.throwWrongType(e,t.dataType,r.dataType),r)))};class k extends r{constructor(e,t){super(e,"NoFunctionError",t)}}const E={abs:{validations:[$(1),C(1),w("number")],returnType:"number"},add:{validations:[$(2),C(2),w(["number","text","date","datetime","time"],["number","text","date","datetime","time"])],returnType:["number","text","date","datetime","time"]},addmonths:{validations:[$(2),C(2),w(["date","datetime"],["number"])],returnType:["date","datetime"]},and:{validations:[$(1),w("checkbox")],returnType:"checkbox"},begins:{validations:[$(2),C(2),w("text","text")],returnType:"checkbox"},blankvalue:{validations:[$(2),C(2),w(["text","number","date","datetime","geolocation"]),A()],returnType:["text","number","date","datetime","geolocation"]},br:{validations:[$(0),C(0)],returnType:"text"},case:{validations:[$(4),w(["text","number","picklist","date","datetime"]),e=>t=>{const r="picklist"===t[0].dataType?"text":t[0].dataType,n=t.filter(((e,r)=>r%2==1&&r!==t.length-1)).find((e=>e.dataType!==r));n&&g.throwWrongType(e,r,n.dataType)}],returnType:["text","number","date","datetime"]},casesafeid:{validations:[$(1),C(1),w("text")],returnType:"text"},ceiling:{validations:[$(1),C(1),w("number")],returnType:"number"},contains:{validations:[$(2),C(2),w("text","text")],returnType:"checkbox"},currencyrate:{validations:[$(1),C(1),w("text")],returnType:"text"},date:{validations:[$(3),C(3),w("number","number","number")],returnType:"date"},datetimevalue:{validations:[$(1),C(1),w("text","date","datetime")],returnType:"datetime"},datevalue:{validations:[$(1),C(1),w(["text","date","datetime"])],returnType:"date"},day:{validations:[$(1),C(1),w("date")],returnType:"number"},distance:{validations:[$(3),C(3),w("geolocation","geolocation","text")],returnType:"number"},divide:{validations:[$(2),C(2),w("number","number")],returnType:"number"},equal:{validations:[$(2),C(2),w(["text","number","date","datetime","checkbox"]),A()],returnType:"checkbox"},exp:{validations:[$(1),C(1),w("number")],returnType:"number"},exponentiate:{validations:[$(2),C(2),w("number","number")],returnType:"number"},find:{validations:[$(2),C(3),w("text","text","number")],returnType:"number"},floor:{validations:[$(1),C(1),w("number")],returnType:"number"},geolocation:{validations:[$(2),C(2),w("number","number")],returnType:"geolocation"},getsessionid:{validations:[$(0),C(0)],returnType:"text"},greaterThan:{validations:[$(2),C(2),w(["number","date","datetime"]),A()],returnType:"checkbox"},greaterThanOrEqual:{validations:[$(2),C(2),w(["number","date","datetime"])],returnType:"checkbox"},hour:{validations:[$(1),C(1),w("datetime")],returnType:"number"},hyperlink:{validations:[$(2),C(3),w("text","text","text")],returnType:"text"},if:{validations:[$(3),C(3),w("checkbox",["text","number","date","datetime"],["text","number","date","datetime"])],returnType:["text","number","date","datetime"]},image:{validations:[$(2),C(4),w("text","text","number","number")],returnType:"text"},includes:{validations:[$(2),C(2),w("multipicklist","text")],returnType:"checkbox"},isblank:{validations:[$(1),C(1),w(["text","number","date","datetime","picklist","multipicklist","geolocation"])],returnType:"checkbox"},isnull:{validations:[$(1),C(1),w(["text","number"])],returnType:"checkbox"},ispickval:{validations:[$(2),C(2),w("picklist","text")],returnType:"checkbox"},isnumber:{validations:[$(1),C(1),w("text")],returnType:"checkbox"},left:{validations:[$(2),C(2),w("text","number")],returnType:"text"},len:{validations:[$(1),C(1),w("text")],returnType:"number"},lessThan:{validations:[$(2),C(2),w(["number","date","datetime"]),A()],returnType:"checkbox"},lessThanOrEqual:{validations:[$(2),C(2),w(["number","date","datetime"]),A()],returnType:"checkbox"},ln:{validations:[$(1),C(1),w("number")],returnType:"number"},log:{validations:[$(1),C(1),w("number")],returnType:"checkbox"},lower:{validations:[$(1),C(1),w("text")],returnType:"text"},lpad:{validations:[$(2),C(3),w("text","number","text")],returnType:"text"},max:{validations:[$(1),w("number")],returnType:"number"},mceiling:{validations:[$(1),C(1),w("number")],returnType:"number"},mfloor:{validations:[$(1),C(1),w("number")],returnType:"number"},mid:{validations:[$(3),C(3),w("text","number","number")],returnType:"number"},millisecond:{validations:[$(1),C(1),w("datetime")],returnType:"number"},min:{validations:[$(1),w("number")],returnType:"number"},minute:{validations:[$(1),C(1),w("datetime")],returnType:"number"},mod:{validations:[$(2),C(2),w("number","number")],returnType:"number"},month:{validations:[$(1),C(1),w("date")],returnType:"number"},multiply:{validations:[$(2),C(2),w("number","number")],returnType:"number"},not:{validations:[$(1),C(1),w("checkbox")],returnType:"checkbox"},now:{validations:[$(0),C(0)],returnType:"datetime"},nullvalue:{validations:[$(2),C(2),w(["text","number"],["text","number"])],returnType:["text","number"]},or:{validations:[$(1),w("checkbox")],returnType:"checkbox"},regex:{validations:[$(2),C(2),w("text","text")],returnType:"text"},right:{validations:[$(2),C(2),w("text","number")],returnType:"text"},round:{validations:[$(2),C(2),w("number","number")],returnType:"number"},rpad:{validations:[$(2),C(3),w("text","number","text")],returnType:"text"},second:{validations:[$(1),C(1),w("datetime")],returnType:"number"},sqrt:{validations:[$(1),C(1),w("number")],returnType:"number"},subtract:{validations:[$(2),C(2),w(["number","date","datetime","time"],["number","date","datetime","time"])],returnType:["number","date","datetime","time"]},substitute:{validations:[$(3),C(3),w("text","text","text")],returnType:"text"},text:{validations:[$(1),C(1),w(["number","date","datetime","picklist","time"])],returnType:"text"},timenow:{validations:[$(0),C(0)],returnType:"time"},timevalue:{validations:[$(1),C(1),w("text")],returnType:"time"},today:{validations:[$(0),C(0)],returnType:"date"},trim:{validations:[$(1),C(1),w("text")],returnType:"text"},unequal:{validations:[$(2),C(2),w(["text","number","date","datetime","checkbox"]),A()],returnType:"checkbox"},upper:{validations:[$(1),C(1),w("text")],returnType:"text"},value:{validations:[$(1),C(1),w("text")],returnType:"number"},weekday:{validations:[$(1),C(1),w("date")],returnType:"number"},year:{validations:[$(1),C(1),w("date")],returnType:"number"}};class M extends r{constructor(e,t){super(e,"ReferenceError",t)}}const U=e=>{switch(e.type){case"callExpression":return t=e.id,r=e.arguments.map((e=>U(e))),d((()=>{const e=r.find((e=>"error"===e.type));if(e)return e;const n=E[t];if(n)return n.validations.forEach((e=>e(t)(r))),T[`sf$${t}`](...r);throw new k(`Unknown function ${t.toUpperCase()}. Check spelling.`,{function:t})}));case"identifier":throw new M(`Field ${e.name} does not exist. Check spelling.`,{identifier:e.name});default:return e}var t,r},F=t=>{try{return e.parse(null==t?"":t.trim())}catch(t){if(t instanceof e.SyntaxError)return l("SyntaxError","Syntax error.",{});throw t}},S=(e,t=[])=>{switch(e.type){case"callExpression":return e.arguments.map((e=>S(e,t))).reduce(((e,t)=>e.concat(t)),[]);case"identifier":return t.concat(e.name);default:return t}},D=(e,t)=>"callExpression"===e.type?{type:"callExpression",id:e.id,arguments:e.arguments.map((e=>D(e,t)))}:"identifier"===e.type&&t[e.name]?{...t[e.name],type:"literal"}:e,O=(e,t={})=>{if(null==e||""===e.trim())return o("");const r=F(e),n=Object.keys(t).reduce(((e,r)=>{return{...e,[r]:(n=t[r],{...n,value:i(n.dataType,n.value,n.options)})};var n}),{});return(e=>d((()=>U(e))))(D(r,n))},I=e=>{if(null==e||""===e.trim())return[];const t=F(e);return S(t).reduce(((e,t)=>(e.indexOf(t)<0&&e.push(t),e)),[])},N=e=>v(e);export{I as extract,O as parse,N as toString};
|
|
1
|
+
var e=function(){function e(t,r,n,a){this.message=t,this.expected=r,this.found=n,this.location=a,this.name="SyntaxError","function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,e)}return function(e,t){function r(){this.constructor=e}r.prototype=t.prototype,e.prototype=new r}(e,Error),e.buildMessage=function(e,t){var r={literal:function(e){return'"'+a(e.text)+'"'},class:function(e){var t,r="";for(t=0;t<e.parts.length;t++)r+=e.parts[t]instanceof Array?u(e.parts[t][0])+"-"+u(e.parts[t][1]):u(e.parts[t]);return"["+(e.inverted?"^":"")+r+"]"},any:function(e){return"any character"},end:function(e){return"end of input"},other:function(e){return e.description}};function n(e){return e.charCodeAt(0).toString(16).toUpperCase()}function a(e){return e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(e){return"\\x0"+n(e)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(e){return"\\x"+n(e)})}function u(e){return e.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(e){return"\\x0"+n(e)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(e){return"\\x"+n(e)})}function i(e){return r[e.type](e)}return"Expected "+function(e){var t,r,n=new Array(e.length);for(t=0;t<e.length;t++)n[t]=i(e[t]);if(n.sort(),n.length>0){for(t=1,r=1;t<n.length;t++)n[t-1]!==n[t]&&(n[r]=n[t],r++);n.length=r}switch(n.length){case 1:return n[0];case 2:return n[0]+" or "+n[1];default:return n.slice(0,-1).join(", ")+", or "+n[n.length-1]}}(e)+" but "+function(e){return e?'"'+a(e)+'"':"end of input"}(t)+" found."},{SyntaxError:e,parse:function(t,r){r=void 0!==r?r:{};var n,a={},u={start:vt},i=vt,o="(",l=st("(",!1),s=")",c=st(")",!1),p=function(e){return e},d=function(e,t){return{type:"callExpression",id:e,arguments:(r=t,null!==r?r[0]:[])};var r},f=function(e,t){return function(e){const t=[],r=[];e.forEach(e=>{if("operator"===e.type){for(;t.length>0&&!(t[t.length-1].precedence<e.precedence);){let e=t.pop(),n=r.pop(),a=r.pop();r.push(qt(e,a,n))}t.push(e)}else r.push(e)});for(;t.length>0;){let e=t.pop(),n=r.pop(),a=r.pop();r.push(qt(e,a,n))}return r.pop()}([e,t].flat(2))},v=function(e,t){return[Object.assign({type:"operator"},Nt[e]),t]},m="^",h=st("^",!1),g="*",y=st("*",!1),b="/",x=st("/",!1),T="+",$=st("+",!1),C="-",w=st("-",!1),A=function(e,t,r){var n;switch(t){case"||":n="or";break;case"&&":n="and"}return{type:"callExpression",id:n,arguments:[e,r]}},k=function(e,t,r){var n;switch(t){case"<":n="lessThan";break;case"<=":n="lessThanOrEqual";break;case">":n="greaterThan";break;case">=":n="greaterThanOrEqual";break;case"==":case"=":n="equal";break;case"!=":case"<>":n="unequal";break;case"&":n="add"}return{type:"callExpression",id:n,arguments:[e,r]}},E="<=",M=st("<=",!1),U=">=",F=st(">=",!1),S="<>",D=st("<>",!1),O="<",I=st("<",!1),N=">",q=st(">",!1),j="==",R=st("==",!1),W="=",Z=st("=",!1),_="!=",L=st("!=",!1),Y="&&",z=st("&&",!1),P="||",Q=st("||",!1),X="&",H=st("&",!1),V=function(e){return{type:"callExpression",id:"not",arguments:[e]}},B="!",G=st("!",!1),K=function(e){return e},J=",",ee=st(",",!1),te=function(e){return e},re=function(e){return e},ne=/^[A-Za-z]/,ae=ct([["A","Z"],["a","z"]],!1,!1),ue=function(e){return e.join("").toLowerCase()},ie=function(e){return e},oe=function(e,t){return{type:"identifier",name:e+t.join("")}},le="_",se=st("_",!1),ce="$",pe=st("$",!1),de=".",fe=st(".",!1),ve=function(e){return function(e){return{type:"literal",value:e.join(""),dataType:"text",options:{length:e.length}}}(e)},me=function(e){var t=lt().replace(/[\+\-]/g,"").split(".");return{type:"literal",value:parseFloat(lt()),dataType:"number",options:{length:t[0].length,scale:t[1].length}}},he=function(e){return{type:"literal",value:parseInt(lt()),dataType:"number",options:{length:lt().replace(/[\+\-]/g,"").length,scale:0}}},ge="0",ye=st("0",!1),be=/^[0-9]/,xe=ct([["0","9"]],!1,!1),Te=/^[1-9]/,$e=ct([["1","9"]],!1,!1),Ce="true",we=st("true",!0),Ae=function(){return{type:"literal",value:!0,dataType:"checkbox",options:{}}},ke="false",Ee=st("false",!0),Me=function(){return{type:"literal",value:!1,dataType:"checkbox",options:{}}},Ue="null",Fe=st("null",!0),Se=function(){return{type:"literal",value:null,dataType:"null",options:{}}},De="\\",Oe=st("\\",!1),Ie=function(){return lt()},Ne="'",qe=st("'",!1),je='"',Re=st('"',!1),We={type:"any"},Ze=/^[\n\r\u2028\u2029]/,_e=ct(["\n","\r","\u2028","\u2029"],!1,!1),Le="\t",Ye=st("\t",!1),ze="\v",Pe=st("\v",!1),Qe="\f",Xe=st("\f",!1),He=" ",Ve=st(" ",!1),Be=" ",Ge=st(" ",!1),Ke="",Je=st("",!1),et="\ufeff",tt=st("\ufeff",!1),rt=0,nt=0,at=[{line:1,column:1}],ut=0,it=[],ot=0;if("startRule"in r){if(!(r.startRule in u))throw new Error("Can't start parsing from rule \""+r.startRule+'".');i=u[r.startRule]}function lt(){return t.substring(nt,rt)}function st(e,t){return{type:"literal",text:e,ignoreCase:t}}function ct(e,t,r){return{type:"class",parts:e,inverted:t,ignoreCase:r}}function pt(e){var r,n=at[e];if(n)return n;for(r=e-1;!at[r];)r--;for(n={line:(n=at[r]).line,column:n.column};r<e;)10===t.charCodeAt(r)?(n.line++,n.column=1):n.column++,r++;return at[e]=n,n}function dt(e,t){var r=pt(e),n=pt(t);return{start:{offset:e,line:r.line,column:r.column},end:{offset:t,line:n.line,column:n.column}}}function ft(e){rt<ut||(rt>ut&&(ut=rt,it=[]),it.push(e))}function vt(){return mt()}function mt(){var e;return(e=xt())===a&&(e=function(){var e,r,n;e=rt,r=function(){var e;33===t.charCodeAt(rt)?(e=B,rt++):(e=a,0===ot&&ft(G));return e}(),r!==a&&Ot()!==a&&(n=mt())!==a?(nt=e,e=r=V(n)):(rt=e,e=a);return e}())===a&&(e=gt())===a&&(e=$t())===a&&(e=At()),e}function ht(){var e,r,n,u;return(e=gt())===a&&(e=$t())===a&&(e=At())===a&&(e=rt,40===t.charCodeAt(rt)?(r=o,rt++):(r=a,0===ot&&ft(l)),r!==a&&Ot()!==a&&(n=yt())!==a&&Ot()!==a?(41===t.charCodeAt(rt)?(u=s,rt++):(u=a,0===ot&&ft(c)),u!==a?(nt=e,e=r=p(n)):(rt=e,e=a)):(rt=e,e=a)),e}function gt(){var e,r,n;return e=rt,r=function(){var e,r,n;e=rt,r=[],ne.test(t.charAt(rt))?(n=t.charAt(rt),rt++):(n=a,0===ot&&ft(ae));if(n!==a)for(;n!==a;)r.push(n),ne.test(t.charAt(rt))?(n=t.charAt(rt),rt++):(n=a,0===ot&&ft(ae));else r=a;r!==a&&(nt=e,r=ue(r));return e=r,e}(),r!==a&&Ot()!==a?(n=function(){var e,r,n,u,i;e=rt,40===t.charCodeAt(rt)?(r=o,rt++):(r=a,0===ot&&ft(l));r!==a&&Ot()!==a?(n=rt,u=function(){var e,r,n,u,i;e=rt,r=[],n=rt,u=mt(),u!==a&&Ot()!==a?(44===t.charCodeAt(rt)?(i=J,rt++):(i=a,0===ot&&ft(ee)),i===a&&(i=null),i!==a&&Ot()!==a?(nt=n,n=u=te(u)):(rt=n,n=a)):(rt=n,n=a);if(n!==a)for(;n!==a;)r.push(n),n=rt,(u=mt())!==a&&Ot()!==a?(44===t.charCodeAt(rt)?(i=J,rt++):(i=a,0===ot&&ft(ee)),i===a&&(i=null),i!==a&&Ot()!==a?(nt=n,n=u=te(u)):(rt=n,n=a)):(rt=n,n=a);else r=a;r!==a&&(nt=e,r=re(r));return e=r,e}(),u!==a&&(i=Ot())!==a?n=u=[u,i]:(rt=n,n=a),n===a&&(n=null),n!==a?(41===t.charCodeAt(rt)?(u=s,rt++):(u=a,0===ot&&ft(c)),u!==a?(nt=e,e=r=K(n)):(rt=e,e=a)):(rt=e,e=a)):(rt=e,e=a);return e}(),n!==a?(nt=e,e=r=d(r,n)):(rt=e,e=a)):(rt=e,e=a),e}function yt(){var e,t,r,n;if(e=rt,(t=ht())!==a)if(Ot()!==a){for(r=[],n=bt();n!==a;)r.push(n),n=bt();r!==a?(nt=e,e=t=f(t,r)):(rt=e,e=a)}else rt=e,e=a;else rt=e,e=a;return e}function bt(){var e,r,n;return e=rt,Ot()!==a?(r=function(){var e;94===t.charCodeAt(rt)?(e=m,rt++):(e=a,0===ot&&ft(h));e===a&&(42===t.charCodeAt(rt)?(e=g,rt++):(e=a,0===ot&&ft(y)),e===a&&(47===t.charCodeAt(rt)?(e=b,rt++):(e=a,0===ot&&ft(x)),e===a&&(43===t.charCodeAt(rt)?(e=T,rt++):(e=a,0===ot&&ft($)),e===a&&(45===t.charCodeAt(rt)?(e=C,rt++):(e=a,0===ot&&ft(w))))));return e}(),r!==a&&Ot()!==a&&(n=ht())!==a?(nt=e,e=v(r,n)):(rt=e,e=a)):(rt=e,e=a),e}function xt(){var e,r,n,u;return e=rt,(r=Tt())!==a&&Ot()!==a?(n=function(){var e;t.substr(rt,2)===Y?(e=Y,rt+=2):(e=a,0===ot&&ft(z));e===a&&(t.substr(rt,2)===P?(e=P,rt+=2):(e=a,0===ot&&ft(Q)));return e}(),n!==a&&Ot()!==a&&(u=xt())!==a?(nt=e,e=r=A(r,n,u)):(rt=e,e=a)):(rt=e,e=a),e===a&&(e=Tt()),e}function Tt(){var e,r,n,u;return e=rt,(r=yt())!==a&&Ot()!==a?(n=function(){var e;t.substr(rt,2)===E?(e=E,rt+=2):(e=a,0===ot&&ft(M));e===a&&(t.substr(rt,2)===U?(e=U,rt+=2):(e=a,0===ot&&ft(F)),e===a&&(t.substr(rt,2)===S?(e=S,rt+=2):(e=a,0===ot&&ft(D)),e===a&&(60===t.charCodeAt(rt)?(e=O,rt++):(e=a,0===ot&&ft(I)),e===a&&(62===t.charCodeAt(rt)?(e=N,rt++):(e=a,0===ot&&ft(q)),e===a&&(t.substr(rt,2)===j?(e=j,rt+=2):(e=a,0===ot&&ft(R)),e===a&&(61===t.charCodeAt(rt)?(e=W,rt++):(e=a,0===ot&&ft(Z)),e===a&&(t.substr(rt,2)===_?(e=_,rt+=2):(e=a,0===ot&&ft(L)))))))));return e}(),n===a&&(n=function(){var e;38===t.charCodeAt(rt)?(e=X,rt++):(e=a,0===ot&&ft(H));return e}()),n!==a&&Ot()!==a&&(u=Tt())!==a?(nt=e,e=r=k(r,n,u)):(rt=e,e=a)):(rt=e,e=a),e===a&&(e=yt()),e}function $t(){var e,t,r;return e=rt,t=rt,ot++,r=function(){var e;e=Mt(),e===a&&(e=Ut());return e}(),ot--,r===a?t=void 0:(rt=t,t=a),t!==a?(r=function(){var e,t,r,n;if(e=rt,t=Ct(),t!==a){for(r=[],n=wt();n!==a;)r.push(n),n=wt();r!==a?(nt=e,e=t=oe(t,r)):(rt=e,e=a)}else rt=e,e=a;return e}(),r!==a?(nt=e,e=t=ie(r)):(rt=e,e=a)):(rt=e,e=a),e}function Ct(){var e;return 95===t.charCodeAt(rt)?(e=le,rt++):(e=a,0===ot&&ft(se)),e===a&&(36===t.charCodeAt(rt)?(e=ce,rt++):(e=a,0===ot&&ft(pe)),e===a&&(ne.test(t.charAt(rt))?(e=t.charAt(rt),rt++):(e=a,0===ot&&ft(ae)))),e}function wt(){var e;return(e=Ct())===a&&(46===t.charCodeAt(rt)?(e=de,rt++):(e=a,0===ot&&ft(fe)),e===a&&(e=Et())),e}function At(){var e;return(e=function(){var e,t,r;if(e=rt,St()!==a){for(t=[],(r=Ft())===a&&(r=Dt());r!==a;)t.push(r),(r=Ft())===a&&(r=Dt());t!==a&&(r=St())!==a?(nt=e,e=ve(t)):(rt=e,e=a)}else rt=e,e=a;if(e===a)if(e=rt,Dt()!==a){for(t=[],(r=Ft())===a&&(r=St());r!==a;)t.push(r),(r=Ft())===a&&(r=St());t!==a&&(r=Dt())!==a?(nt=e,e=ve(t)):(rt=e,e=a)}else rt=e,e=a;return e}())===a&&(e=function(){var e,r,n,u,i,o;e=rt,r=rt,(n=Ot())!==a?(43===t.charCodeAt(rt)?(u=T,rt++):(u=a,0===ot&&ft($)),u!==a?r=n=[n,u]:(rt=r,r=a)):(rt=r,r=a);r===a&&(r=rt,45===t.charCodeAt(rt)?(n=C,rt++):(n=a,0===ot&&ft(w)),n!==a&&(u=Ot())!==a?r=n=[n,u]:(rt=r,r=a));r===a&&(r=null);if(r!==a)if((n=kt())!==a)if(46===t.charCodeAt(rt)?(u=de,rt++):(u=a,0===ot&&ft(fe)),u!==a){for(i=[],o=Et();o!==a;)i.push(o),o=Et();i!==a?(nt=e,e=r=me()):(rt=e,e=a)}else rt=e,e=a;else rt=e,e=a;else rt=e,e=a;e===a&&(e=rt,r=rt,(n=Ot())!==a?(43===t.charCodeAt(rt)?(u=T,rt++):(u=a,0===ot&&ft($)),u!==a?r=n=[n,u]:(rt=r,r=a)):(rt=r,r=a),r===a&&(r=rt,45===t.charCodeAt(rt)?(n=C,rt++):(n=a,0===ot&&ft(w)),n!==a&&(u=Ot())!==a?r=n=[n,u]:(rt=r,r=a)),r===a&&(r=null),r!==a&&(n=kt())!==a?(nt=e,e=r=he()):(rt=e,e=a));return e}())===a&&(e=Mt())===a&&(e=Ut()),e}function kt(){var e,r,n,u;if(48===t.charCodeAt(rt)?(e=ge,rt++):(e=a,0===ot&&ft(ye)),e===a)if(e=rt,r=function(){var e;Te.test(t.charAt(rt))?(e=t.charAt(rt),rt++):(e=a,0===ot&&ft($e));return e}(),r!==a){for(n=[],u=Et();u!==a;)n.push(u),u=Et();n!==a?e=r=[r,n]:(rt=e,e=a)}else rt=e,e=a;return e}function Et(){var e;return be.test(t.charAt(rt))?(e=t.charAt(rt),rt++):(e=a,0===ot&&ft(xe)),e}function Mt(){var e,r;return e=rt,t.substr(rt,4).toLowerCase()===Ce?(r=t.substr(rt,4),rt+=4):(r=a,0===ot&&ft(we)),r!==a&&(nt=e,r=Ae()),(e=r)===a&&(e=rt,t.substr(rt,5).toLowerCase()===ke?(r=t.substr(rt,5),rt+=5):(r=a,0===ot&&ft(Ee)),r!==a&&(nt=e,r=Me()),e=r),e}function Ut(){var e,r;return e=rt,t.substr(rt,4).toLowerCase()===Ue?(r=t.substr(rt,4),rt+=4):(r=a,0===ot&&ft(Fe)),r!==a&&(nt=e,r=Se()),e=r}function Ft(){var e,r,n;return e=rt,r=rt,ot++,n=function(){var e;e=St(),e===a&&(e=Dt());return e}(),n===a&&(92===t.charCodeAt(rt)?(n=De,rt++):(n=a,0===ot&&ft(Oe))),ot--,n===a?r=void 0:(rt=r,r=a),r!==a?(n=function(){var e;t.length>rt?(e=t.charAt(rt),rt++):(e=a,0===ot&&ft(We));return e}(),n!==a?(nt=e,e=r=Ie()):(rt=e,e=a)):(rt=e,e=a),e}function St(){var e;return 39===t.charCodeAt(rt)?(e=Ne,rt++):(e=a,0===ot&&ft(qe)),e}function Dt(){var e;return 34===t.charCodeAt(rt)?(e=je,rt++):(e=a,0===ot&&ft(Re)),e}function Ot(){var e,t;for(e=[],t=It();t!==a;)e.push(t),t=It();return e}function It(){var e;return 9===t.charCodeAt(rt)?(e=Le,rt++):(e=a,0===ot&&ft(Ye)),e===a&&(e=function(){var e;return Ze.test(t.charAt(rt))?(e=t.charAt(rt),rt++):(e=a,0===ot&&ft(_e)),e}())===a&&(11===t.charCodeAt(rt)?(e=ze,rt++):(e=a,0===ot&&ft(Pe)),e===a&&(12===t.charCodeAt(rt)?(e=Qe,rt++):(e=a,0===ot&&ft(Xe)),e===a&&(32===t.charCodeAt(rt)?(e=He,rt++):(e=a,0===ot&&ft(Ve)),e===a&&(160===t.charCodeAt(rt)?(e=Be,rt++):(e=a,0===ot&&ft(Ge)),e===a&&(8203===t.charCodeAt(rt)?(e=Ke,rt++):(e=a,0===ot&&ft(Je)),e===a&&(65279===t.charCodeAt(rt)?(e=et,rt++):(e=a,0===ot&&ft(tt)))))))),e}const Nt={"^":{functionName:"exponentiate",rightAssociative:!0,precedence:4},"*":{functionName:"multiply",rightAssociative:!1,precedence:3},"/":{functionName:"divide",rightAssociative:!1,precedence:3},"+":{functionName:"add",rightAssociative:!1,precedence:2},"-":{functionName:"subtract",rightAssociative:!1,precedence:2}};function qt(e,t,r){return{type:"callExpression",id:e.functionName,arguments:[t,r]}}if((n=i())!==a&&rt===t.length)return n;throw n!==a&&rt<t.length&&ft({type:"end"}),jt=it,Rt=ut<t.length?t.charAt(ut):null,Wt=ut<t.length?dt(ut,ut+1):dt(ut,ut),new e(e.buildMessage(jt,Rt),jt,Rt,Wt);var jt,Rt,Wt}}}(),t=function(){function e(t,r,n,a){this.message=t,this.expected=r,this.found=n,this.location=a,this.name="SyntaxError","function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,e)}return function(e,t){function r(){this.constructor=e}r.prototype=t.prototype,e.prototype=new r}(e,Error),e.buildMessage=function(e,t){var r={literal:function(e){return'"'+a(e.text)+'"'},class:function(e){var t,r="";for(t=0;t<e.parts.length;t++)r+=e.parts[t]instanceof Array?u(e.parts[t][0])+"-"+u(e.parts[t][1]):u(e.parts[t]);return"["+(e.inverted?"^":"")+r+"]"},any:function(e){return"any character"},end:function(e){return"end of input"},other:function(e){return e.description}};function n(e){return e.charCodeAt(0).toString(16).toUpperCase()}function a(e){return e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(e){return"\\x0"+n(e)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(e){return"\\x"+n(e)})}function u(e){return e.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(e){return"\\x0"+n(e)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(e){return"\\x"+n(e)})}function i(e){return r[e.type](e)}return"Expected "+function(e){var t,r,n=new Array(e.length);for(t=0;t<e.length;t++)n[t]=i(e[t]);if(n.sort(),n.length>0){for(t=1,r=1;t<n.length;t++)n[t-1]!==n[t]&&(n[r]=n[t],r++);n.length=r}switch(n.length){case 1:return n[0];case 2:return n[0]+" or "+n[1];default:return n.slice(0,-1).join(", ")+", or "+n[n.length-1]}}(e)+" but "+function(e){return e?'"'+a(e)+'"':"end of input"}(t)+" found."},{SyntaxError:e,parse:function(t,r){r=void 0!==r?r:{};var n,a,u,i,o={},l={Time:M},s=M,c=":",p=w(":",!1),d=".",f=w(".",!1),v=function(e,t,r,n){return function(e,t,r,n){e>23&&C("hour part needs to be under 24");t>59&&C("minute part needs to be under 60");r>59&&C("second part needs to be under 60");n>999&&C("millisecond part needs to be under 1000")}(e,t,r,n),{type:"literal",value:new Date(n+1e3*r+60*t*1e3+60*e*60*1e3),dataType:"time",options:{}}},m=function(){return parseInt(t.substring(b,y))},h=/^[0-9]/,g={type:"class",parts:[["0","9"]],inverted:!1,ignoreCase:!1},y=0,b=0,x=[{line:1,column:1}],T=0,$=[];if("startRule"in r){if(!(r.startRule in l))throw new Error("Can't start parsing from rule \""+r.startRule+'".');s=l[r.startRule]}function C(t,r){throw function(t,r){return new e(t,null,null,r)}(t,r=void 0!==r?r:k(b,y))}function w(e,t){return{type:"literal",text:e,ignoreCase:t}}function A(e){var r,n=x[e];if(n)return n;for(r=e-1;!x[r];)r--;for(n={line:(n=x[r]).line,column:n.column};r<e;)10===t.charCodeAt(r)?(n.line++,n.column=1):n.column++,r++;return x[e]=n,n}function k(e,t){var r=A(e),n=A(t);return{start:{offset:e,line:r.line,column:r.column},end:{offset:t,line:n.line,column:n.column}}}function E(e){y<T||(y>T&&(T=y,$=[]),$.push(e))}function M(){var e,r,n,a,u,i,l,s;return e=y,r=function(){var e,t;e=y,t=U(),t!==o&&U()!==o?(b=e,e=t=m()):(y=e,e=o);return e}(),r!==o?(58===t.charCodeAt(y)?(n=c,y++):(n=o,E(p)),n!==o?(a=function(){var e,t;e=y,t=U(),t!==o&&U()!==o?(b=e,e=t=m()):(y=e,e=o);return e}(),a!==o?(58===t.charCodeAt(y)?(u=c,y++):(u=o,E(p)),u!==o?(i=function(){var e,t;e=y,t=U(),t!==o&&U()!==o?(b=e,e=t=m()):(y=e,e=o);return e}(),i!==o?(46===t.charCodeAt(y)?(l=d,y++):(l=o,E(f)),l!==o?(s=function(){var e,t;e=y,t=U(),t!==o&&U()!==o&&U()!==o?(b=e,e=t=m()):(y=e,e=o);return e}(),s!==o?(b=e,e=r=v(r,a,i,s)):(y=e,e=o)):(y=e,e=o)):(y=e,e=o)):(y=e,e=o)):(y=e,e=o)):(y=e,e=o)):(y=e,e=o),e}function U(){var e;return h.test(t.charAt(y))?(e=t.charAt(y),y++):(e=o,E(g)),e}if((n=s())!==o&&y===t.length)return n;throw n!==o&&y<t.length&&E({type:"end"}),a=$,u=T<t.length?t.charAt(T):null,i=T<t.length?k(T,T+1):k(T,T),new e(e.buildMessage(a,u),a,u,i)}}}();class r extends Error{constructor(e,t,r){super(e),this.errorType=t,this.options=r}}const n=864e5,a=(e,t)=>{if(e<0)return-1*a(-1*e,t);const r=10**t;return Math.round(e*r)/r},u=e=>{const t=e.toString().replace("-","");if(-1!==t.indexOf(".")){const e=t.split(".");return{length:e[0].length,scale:e[1].length}}return{length:t.length,scale:0}},i=(e,t,r)=>{switch(e){case"number":return"number"==typeof t?a(t,r.scale):null;case"text":return t.substring(0,r.length);default:return t}},o=e=>{const t={type:"literal",value:e};if(null==e)return Object.assign(t,{value:null,dataType:"null",options:{}});const r=typeof e;switch(typeof e){case"number":return Object.assign(t,{dataType:"number",options:u(e)});case"string":return Object.assign(t,{dataType:"text",options:{length:e.length}});case"boolean":return Object.assign(t,{dataType:"checkbox",options:{}});default:throw new TypeError(`Unsupported type '${r}'`)}},l=(e,t,r)=>({type:"error",errorType:e,message:t,...r}),s=(e,t,r)=>e instanceof Date?s(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate()):{type:"literal",dataType:"date",value:new Date(Date.UTC(e,t-1,r)),options:{}},c=e=>({type:"literal",dataType:"datetime",value:new Date(e),options:{}}),p=e=>({type:"literal",dataType:"time",value:new Date(e),options:{}}),d=e=>{try{return e()}catch(e){if(e instanceof r)return l(e.errorType,e.message,e.options);throw e}},f=(e,t)=>new Date(e.getTime()+t*n),v=e=>{if(!e.value&&"null"!==e.dataType&&0!==e.value&&!1!==e.value&&""!==e.value)return"";switch(e.dataType){case"null":return"NULL";case"number":case"text":case"picklist":return e.value.toString();case"multipicklist":return`[${e.value.map(e=>`"${e}"`).join(", ")}]`;case"checkbox":return e.value.toString().toUpperCase();case"date":return`${e.value.getUTCFullYear()}-${(e.value.getUTCMonth()+1).toString().padStart(2,"0")}-${e.value.getUTCDate().toString().padStart(2,"0")}`;case"datetime":return e.value.toISOString();case"time":return e.value.toISOString().split("T")[1].replace("Z","");case"geolocation":return t=e.value[0],r=e.value[1],t&&r||0===t||0===r?`${t.toFixed(6)}, ${r.toFixed(6)}`:"";default:return}var t,r};class m extends r{constructor(e,t){super(e,"NotImplementedError",t)}static throwError(e){throw new m(`Function ${e} not implemented yet.`,{name:e})}}const h=e=>Array.isArray(e)?e.map(e=>h(e)).join(", "):"string"!=typeof e?"":e.charAt(0).toUpperCase()+e.slice(1);class g extends r{constructor(e,t){super(e,"ArgumentError",t)}static throwWrongType(e,t,r){const n={function:e,expected:t,received:r},a=r||"Non-Salesforce";throw new g(`Incorrect parameter type for function '${e.toUpperCase()}()'. Expected ${h(t)}, received ${h(a)}`,n)}static throwIncorrectNumberOfArguments(e,t,r){const n={function:e,expected:t,received:r};throw new g(`Incorrect number of parameters for function '${e.toUpperCase()}()'. Expected ${t}, received ${r}`,n)}}const y=(e,t)=>{switch(e.dataType){case"date":case"datetime":return o(e.value.getTime()===t.value.getTime());default:return o(e.value===t.value)}},b=(e,t,r)=>o(e.value.substr(t.value-1,r.value)),x=(e,t)=>b(e,o(1),t);var T=Object.freeze({__proto__:null,sf$or:(...e)=>{const t=e.map(e=>e.value).reduce((e,t)=>e||t);return o(t)},sf$equal:y,sf$unequal:(e,t)=>o(!y(e,t).value),sf$greaterThan:(e,t)=>o(e.value>t.value),sf$greaterThanOrEqual:(e,t)=>o(e.value>=t.value),sf$lessThan:(e,t)=>o(e.value<t.value),sf$lessThanOrEqual:(e,t)=>o(e.value<=t.value),sf$addmonths:(e,t)=>s(((e,t)=>{const r=e.getUTCMonth()+t,n=new Date(Date.UTC(e.getUTCFullYear(),r,e.getUTCDate()));return e.getUTCDate()!==n.getUTCDate()&&n.setUTCDate(0),n})(e.value,t.value)),sf$date:(e,t,r)=>s(e.value,t.value,r.value),sf$datevalue:e=>s(new Date(Date.parse(e.value))),sf$datetimevalue:e=>c(Date.parse(`${e.value}Z`)),sf$day:e=>o(e.value.getUTCDate()),sf$hour:e=>o(e.value.getUTCHours()),sf$millisecond:e=>o(e.value.getUTCMilliseconds()),sf$minute:e=>o(e.value.getUTCMinutes()),sf$month:e=>o(e.value.getUTCMonth()+1),sf$now:()=>c((new Date).getTime()),sf$second:e=>o(e.value.getUTCSeconds()),sf$timenow:()=>p((new Date).getTime()%864e5),sf$timevalue:e=>(e=>{try{return t.parse(e)}catch(e){if(e instanceof t.SyntaxError)return o(null);throw e}})(e.value),sf$today:()=>s(new Date),sf$weekday:e=>o(e.value.getUTCDay()+1),sf$year:e=>o(e.value.getUTCFullYear()),sf$and:(...e)=>{const t=e.map(e=>e.value).reduce((e,t)=>e&&t);return o(t)},sf$blankvalue:(e,t)=>"null"===e.dataType||""===e.value||null===e.value||void 0===e.value||"multipicklist"===e.dataType&&!e.value.length?t:e,sf$case:(e,...t)=>{const r=t.length-1;if(r<=0){const e={function:"case",expected:4,received:r+2};throw new g(`Incorrect number of parameters for function '${e.function.toUpperCase()}()'. Expected ${e.expected}+, received ${e.received}`,e)}if(r%2!=0){const e={function:"case",expected:r+1,received:r+2};throw new g(`Incorrect number of parameters for function '${e.function.toUpperCase()}()'. Expected ${e.expected}, received ${e.received}`,e)}for(let n=0;n<r;n+=2)if(y(t[n],e).value)return t[n+1];return t[r]},sf$if:(e,t,r)=>e.value?t:r,sf$isblank:e=>o("null"===e.dataType||""===e.value||null===e.value||void 0===e.value||"multipicklist"===e.dataType&&!e.value.length),sf$isnull:e=>{m.throwError("isnull")},sf$isnumber:e=>{m.throwError("isnumber")},sf$not:e=>o(!e.value),sf$nullvalue:(e,t)=>{m.throwError("nullvalue")},sf$add:(e,t)=>{switch([e.dataType,t.dataType].join(" ")){case"date number":return s(f(e.value,t.value));case"number date":return s(f(t.value,e.value));case"time number":return p(e.value.getTime()+t.value);case"number time":return p(e.value+t.value.getTime());case"datetime number":return c(f(e.value,t.value));case"number datetime":return c(f(t.value,e.value));case"number number":case"text text":return o(e.value+t.value);default:g.throwWrongType("add","number",t.dataType)}},sf$subtract:(e,t)=>{switch([e.dataType,t.dataType].join(" ")){case"date number":return s(f(e.value,-1*t.value));case"time number":return p(e.value.getTime()+-1*t.value);case"datetime number":return c(f(e.value,-1*t.value));case"date date":case"datetime datetime":return o((r=e.value,a=t.value,(r.getTime()-a.getTime())/n));case"time time":return o(e.value.getTime()-t.value.getTime());case"number number":case"text text":return o(e.value-t.value);default:g.throwWrongType("subtract","number",t.dataType)}var r,a},sf$multiply:(e,t)=>o(e.value*t.value),sf$divide:(e,t)=>o(e.value/t.value),sf$exponentiate:(e,t)=>o(e.value**t.value),sf$abs:e=>o(Math.abs(e.value)),sf$ceiling:e=>e.value<0?o(-1*Math.ceil(-1*e.value)):o(Math.ceil(e.value)),sf$distance:(e,t,r)=>{const n=r.value;if("km"!==n&&"mi"!==n){throw new g(`Incorrect parameter value for function 'DISTANCE()'. Expected 'mi'/'km', received '${n}'`,{function:"distance",expected:["km","mi"],received:n})}const[a,u]=e.value,[i,l]=t.value;if(a===i&&u===l)return o(0);const s=a*Math.PI/180,c=i*Math.PI/180,p=(i-a)*Math.PI/180,d=(l-u)*Math.PI/180,f=Math.sin(p/2)*Math.sin(p/2)+Math.cos(s)*Math.cos(c)*Math.sin(d/2)*Math.sin(d/2),v=6371009*(2*Math.atan2(Math.sqrt(f),Math.sqrt(1-f)))/1e3;return o("mi"===n?v/1.609344:v)},sf$exp:e=>o(Math.exp(e.value)),sf$floor:e=>e.value<0?o(-1*Math.floor(-1*e.value)):o(Math.floor(e.value)),sf$geolocation:(e,t)=>((e,t)=>({type:"literal",dataType:"geolocation",value:[e,t],options:{}}))(e.value,t.value),sf$ln:e=>o(Math.log(e.value)),sf$log:e=>o(Math.log10(e.value)),sf$max:(...e)=>{const t=e.map(e=>e.value);return o(Math.max(...t))},sf$mceiling:e=>o(Math.ceil(e.value)),sf$mfloor:e=>o(Math.floor(e.value)),sf$min:(...e)=>{const t=e.map(e=>e.value);return o(Math.min(...t))},sf$mod:(e,t)=>o(e.value%t.value),sf$round:(e,t)=>o(a(e.value,t.value)),sf$sqrt:e=>o(Math.sqrt(e.value)),sf$begins:(e,t)=>o(e.value.startsWith(t.value)),sf$br:()=>o("\n"),sf$casesafeid:e=>{let t="";return[0,1,2].forEach(r=>{let n=0;[0,1,2,3,4].forEach(t=>{const a=e.value[5*r+t];a.toUpperCase()===a&&a>="A"&&a<="Z"&&(n+=1<<t)}),t+="ABCDEFGHIJKLMNOPQRSTUVWXYZ012345"[n]}),o(e.value+t)},sf$concat:(e,t)=>o(e.value+t.value),sf$contains:(e,t)=>o(e.value.includes(t.value)),sf$find:(e,t,r=o(1))=>{if(r.value<=0||""===e.value)return o(0);const n=t.value.substring(r.value-1);return o(n.indexOf(e.value)+1)},sf$getsessionid:()=>o("00D3z000001eRlg!AQMAQC3Y4aM9sFux6SRWhyFcOUKin4taGaBxNMU8TN_R_1R0Y7ArI95eSyzQZVIlrnV_unTbmwHZlXex8xhlXz2kXZNP49Fa"),sf$hyperlink:(e,t,r=null)=>{const n=r?` target="${r.value}"`:"";return o(`<a href="${e.value}"${n}>${t.value}</a>`)},sf$image:(e,t,r=null,n=null)=>{const a=r?` height="${r.value}"`:"",u=n?` width="${n.value}"`:"";return o(`<img src="${e.value}" alt="${t.value}"${a}${u}/>`)},sf$includes:(e,t)=>o(e.value.includes(t.value)),sf$ispickval:(e,t)=>o(e.value===t.value),sf$mid:b,sf$left:x,sf$len:e=>o(e.value.length),sf$lower:(e,t)=>o(e.value.toLowerCase()),sf$lpad:(e,t,r)=>{if(null==r)return e;if(t.value<e.value.length)return x(e,t);const n=r.value.repeat(t.value);return o((n+e.value).slice(-t.value))},sf$right:(e,t)=>o(e.value.substr(e.value.length-t.value)),sf$rpad:(e,t,r)=>{if(null==r)return e;if(t.value<e.value.length)return x(e,t);const n=r.value.repeat(t.value);return o((e.value+n).substr(0,t.value))},sf$substitute:(e,t,r)=>o(e.value.replace(new RegExp(t.value.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"g"),r.value)),sf$text:e=>"text"===e.dataType?e:"datetime"===e.dataType?o(v(e).replace("T"," ").replace(/\.\d{3}/,"")):o(v(e)),sf$trim:e=>o(e.value.trim()),sf$upper:(e,t)=>o(e.value.toUpperCase()),sf$value:e=>{const t=parseFloat(e.value);return o(t||null)},sf$currencyrate:e=>{m.throwError("currencyrate")},sf$regex:(e,t)=>{const r=new RegExp(`^${t.value}$`);return o(null!=r.exec(e.value))}});const $=e=>t=>r=>{r.length<e&&g.throwIncorrectNumberOfArguments(t,e,r.length)},C=e=>t=>r=>{r.length>e&&g.throwIncorrectNumberOfArguments(t,e,r.length)},w=(...e)=>t=>r=>{r.map((t,r)=>[t.dataType,e[r]||e[e.length-1]]).forEach(([e,r])=>{"null"!==e&&(Array.isArray(r)?-1===r.indexOf(e)&&g.throwWrongType(t,r,e):e!==r&&g.throwWrongType(t,r,e))})},A=()=>e=>t=>{t.length>0&&t.filter(e=>"null"!==e.dataType).reduce((t,r)=>(t.dataType!==r.dataType&&g.throwWrongType(e,t.dataType,r.dataType),r))};class k extends r{constructor(e,t){super(e,"NoFunctionError",t)}}const E={abs:{validations:[$(1),C(1),w("number")],returnType:"number"},add:{validations:[$(2),C(2),w(["number","text","date","datetime","time"],["number","text","date","datetime","time"])],returnType:["number","text","date","datetime","time"]},addmonths:{validations:[$(2),C(2),w(["date","datetime"],["number"])],returnType:["date","datetime"]},and:{validations:[$(1),w("checkbox")],returnType:"checkbox"},begins:{validations:[$(2),C(2),w("text","text")],returnType:"checkbox"},blankvalue:{validations:[$(2),C(2),w(["text","number","date","datetime","geolocation"]),A()],returnType:["text","number","date","datetime","geolocation"]},br:{validations:[$(0),C(0)],returnType:"text"},case:{validations:[$(4),w(["text","number","picklist","date","datetime"]),e=>t=>{const r="picklist"===t[0].dataType?"text":t[0].dataType,n=t.filter((e,r)=>r%2==1&&r!==t.length-1).find(e=>e.dataType!==r);n&&g.throwWrongType(e,r,n.dataType)}],returnType:["text","number","date","datetime"]},casesafeid:{validations:[$(1),C(1),w("text")],returnType:"text"},ceiling:{validations:[$(1),C(1),w("number")],returnType:"number"},contains:{validations:[$(2),C(2),w("text","text")],returnType:"checkbox"},currencyrate:{validations:[$(1),C(1),w("text")],returnType:"text"},date:{validations:[$(3),C(3),w("number","number","number")],returnType:"date"},datetimevalue:{validations:[$(1),C(1),w("text","date","datetime")],returnType:"datetime"},datevalue:{validations:[$(1),C(1),w(["text","date","datetime"])],returnType:"date"},day:{validations:[$(1),C(1),w("date")],returnType:"number"},distance:{validations:[$(3),C(3),w("geolocation","geolocation","text")],returnType:"number"},divide:{validations:[$(2),C(2),w("number","number")],returnType:"number"},equal:{validations:[$(2),C(2),w(["text","number","date","datetime","checkbox"]),A()],returnType:"checkbox"},exp:{validations:[$(1),C(1),w("number")],returnType:"number"},exponentiate:{validations:[$(2),C(2),w("number","number")],returnType:"number"},find:{validations:[$(2),C(3),w("text","text","number")],returnType:"number"},floor:{validations:[$(1),C(1),w("number")],returnType:"number"},geolocation:{validations:[$(2),C(2),w("number","number")],returnType:"geolocation"},getsessionid:{validations:[$(0),C(0)],returnType:"text"},greaterThan:{validations:[$(2),C(2),w(["number","date","datetime"]),A()],returnType:"checkbox"},greaterThanOrEqual:{validations:[$(2),C(2),w(["number","date","datetime"])],returnType:"checkbox"},hour:{validations:[$(1),C(1),w("datetime")],returnType:"number"},hyperlink:{validations:[$(2),C(3),w("text","text","text")],returnType:"text"},if:{validations:[$(3),C(3),w("checkbox",["text","number","date","datetime"],["text","number","date","datetime"])],returnType:["text","number","date","datetime"]},image:{validations:[$(2),C(4),w("text","text","number","number")],returnType:"text"},includes:{validations:[$(2),C(2),w("multipicklist","text")],returnType:"checkbox"},isblank:{validations:[$(1),C(1),w(["text","number","date","datetime","picklist","multipicklist","geolocation"])],returnType:"checkbox"},isnull:{validations:[$(1),C(1),w(["text","number"])],returnType:"checkbox"},ispickval:{validations:[$(2),C(2),w("picklist","text")],returnType:"checkbox"},isnumber:{validations:[$(1),C(1),w("text")],returnType:"checkbox"},left:{validations:[$(2),C(2),w("text","number")],returnType:"text"},len:{validations:[$(1),C(1),w("text")],returnType:"number"},lessThan:{validations:[$(2),C(2),w(["number","date","datetime"]),A()],returnType:"checkbox"},lessThanOrEqual:{validations:[$(2),C(2),w(["number","date","datetime"]),A()],returnType:"checkbox"},ln:{validations:[$(1),C(1),w("number")],returnType:"number"},log:{validations:[$(1),C(1),w("number")],returnType:"checkbox"},lower:{validations:[$(1),C(1),w("text")],returnType:"text"},lpad:{validations:[$(2),C(3),w("text","number","text")],returnType:"text"},max:{validations:[$(1),w("number")],returnType:"number"},mceiling:{validations:[$(1),C(1),w("number")],returnType:"number"},mfloor:{validations:[$(1),C(1),w("number")],returnType:"number"},mid:{validations:[$(3),C(3),w("text","number","number")],returnType:"number"},millisecond:{validations:[$(1),C(1),w("datetime")],returnType:"number"},min:{validations:[$(1),w("number")],returnType:"number"},minute:{validations:[$(1),C(1),w("datetime")],returnType:"number"},mod:{validations:[$(2),C(2),w("number","number")],returnType:"number"},month:{validations:[$(1),C(1),w("date")],returnType:"number"},multiply:{validations:[$(2),C(2),w("number","number")],returnType:"number"},not:{validations:[$(1),C(1),w("checkbox")],returnType:"checkbox"},now:{validations:[$(0),C(0)],returnType:"datetime"},nullvalue:{validations:[$(2),C(2),w(["text","number"],["text","number"])],returnType:["text","number"]},or:{validations:[$(1),w("checkbox")],returnType:"checkbox"},regex:{validations:[$(2),C(2),w("text","text")],returnType:"text"},right:{validations:[$(2),C(2),w("text","number")],returnType:"text"},round:{validations:[$(2),C(2),w("number","number")],returnType:"number"},rpad:{validations:[$(2),C(3),w("text","number","text")],returnType:"text"},second:{validations:[$(1),C(1),w("datetime")],returnType:"number"},sqrt:{validations:[$(1),C(1),w("number")],returnType:"number"},subtract:{validations:[$(2),C(2),w(["number","date","datetime","time"],["number","date","datetime","time"])],returnType:["number","date","datetime","time"]},substitute:{validations:[$(3),C(3),w("text","text","text")],returnType:"text"},text:{validations:[$(1),C(1),w(["number","date","datetime","picklist","time"])],returnType:"text"},timenow:{validations:[$(0),C(0)],returnType:"time"},timevalue:{validations:[$(1),C(1),w("text")],returnType:"time"},today:{validations:[$(0),C(0)],returnType:"date"},trim:{validations:[$(1),C(1),w("text")],returnType:"text"},unequal:{validations:[$(2),C(2),w(["text","number","date","datetime","checkbox"]),A()],returnType:"checkbox"},upper:{validations:[$(1),C(1),w("text")],returnType:"text"},value:{validations:[$(1),C(1),w("text")],returnType:"number"},weekday:{validations:[$(1),C(1),w("date")],returnType:"number"},year:{validations:[$(1),C(1),w("date")],returnType:"number"}};class M extends r{constructor(e,t){super(e,"ReferenceError",t)}}const U=e=>{switch(e.type){case"callExpression":return t=e.id,r=e.arguments.map(e=>U(e)),d(()=>{const e=r.find(e=>"error"===e.type);if(e)return e;const n=E[t];if(n)return n.validations.forEach(e=>e(t)(r)),T[`sf$${t}`](...r);throw new k(`Unknown function ${t.toUpperCase()}. Check spelling.`,{function:t})});case"identifier":throw new M(`Field ${e.name} does not exist. Check spelling.`,{identifier:e.name});default:return e}var t,r},F=t=>{try{return e.parse(null==t?"":t.trim())}catch(t){if(t instanceof e.SyntaxError)return l("SyntaxError","Syntax error.",{});throw t}},S=(e,t=[])=>{switch(e.type){case"callExpression":return e.arguments.map(e=>S(e,t)).reduce((e,t)=>e.concat(t),[]);case"identifier":return t.concat(e.name);default:return t}},D=(e,t)=>"callExpression"===e.type?{type:"callExpression",id:e.id,arguments:e.arguments.map(e=>D(e,t))}:"identifier"===e.type&&t[e.name]?{...t[e.name],type:"literal"}:e,O=(e,t={})=>{if(null==e||""===e.trim())return o("");const r=F(e),n=Object.keys(t).reduce((e,r)=>{return{...e,[r]:(n=t[r],{...n,value:i(n.dataType,n.value,n.options)})};var n},{});return(e=>d(()=>U(e)))(D(r,n))},I=e=>{if(null==e||""===e.trim())return[];const t=F(e);return S(t).reduce((e,t)=>(e.indexOf(t)<0&&e.push(t),e),[])},N=e=>v(e);export{I as extract,O as parse,N as toString};
|
package/lib/formulon.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).formulon={})}(this,(function(e){"use strict";var t=function(){function e(t,r,n,a){this.message=t,this.expected=r,this.found=n,this.location=a,this.name="SyntaxError","function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,e)}return function(e,t){function r(){this.constructor=e}r.prototype=t.prototype,e.prototype=new r}(e,Error),e.buildMessage=function(e,t){var r={literal:function(e){return'"'+a(e.text)+'"'},class:function(e){var t,r="";for(t=0;t<e.parts.length;t++)r+=e.parts[t]instanceof Array?u(e.parts[t][0])+"-"+u(e.parts[t][1]):u(e.parts[t]);return"["+(e.inverted?"^":"")+r+"]"},any:function(e){return"any character"},end:function(e){return"end of input"},other:function(e){return e.description}};function n(e){return e.charCodeAt(0).toString(16).toUpperCase()}function a(e){return e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,(function(e){return"\\x0"+n(e)})).replace(/[\x10-\x1F\x7F-\x9F]/g,(function(e){return"\\x"+n(e)}))}function u(e){return e.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,(function(e){return"\\x0"+n(e)})).replace(/[\x10-\x1F\x7F-\x9F]/g,(function(e){return"\\x"+n(e)}))}return"Expected "+function(e){var t,n,a,u=new Array(e.length);for(t=0;t<e.length;t++)u[t]=(a=e[t],r[a.type](a));if(u.sort(),u.length>0){for(t=1,n=1;t<u.length;t++)u[t-1]!==u[t]&&(u[n]=u[t],n++);u.length=n}switch(u.length){case 1:return u[0];case 2:return u[0]+" or "+u[1];default:return u.slice(0,-1).join(", ")+", or "+u[u.length-1]}}(e)+" but "+function(e){return e?'"'+a(e)+'"':"end of input"}(t)+" found."},{SyntaxError:e,parse:function(t,r){r=void 0!==r?r:{};var n,a={},u={start:vt},i=vt,o="(",l=st("(",!1),s=")",c=st(")",!1),p=function(e){return e},d=function(e,t){return{type:"callExpression",id:e,arguments:(r=t,null!==r?r[0]:[])};var r},f=function(e,t){return function(e){const t=[],r=[];e.forEach((e=>{if("operator"===e.type){for(;t.length>0&&!(t[t.length-1].precedence<e.precedence);){let e=t.pop(),n=r.pop(),a=r.pop();r.push(Nt(e,a,n))}t.push(e)}else r.push(e)}));for(;t.length>0;){let e=t.pop(),n=r.pop(),a=r.pop();r.push(Nt(e,a,n))}return r.pop()}([e,t].flat(2))},v=function(e,t){return[Object.assign({type:"operator"},jt[e]),t]},m="^",h=st("^",!1),g="*",y=st("*",!1),b="/",x=st("/",!1),T="+",$=st("+",!1),C="-",w=st("-",!1),A=function(e,t,r){var n;switch(t){case"||":n="or";break;case"&&":n="and"}return{type:"callExpression",id:n,arguments:[e,r]}},k=function(e,t,r){var n;switch(t){case"<":n="lessThan";break;case"<=":n="lessThanOrEqual";break;case">":n="greaterThan";break;case">=":n="greaterThanOrEqual";break;case"==":case"=":n="equal";break;case"!=":case"<>":n="unequal";break;case"&":n="add"}return{type:"callExpression",id:n,arguments:[e,r]}},E="<=",M=st("<=",!1),U=">=",S=st(">=",!1),F="<>",D=st("<>",!1),O="<",I=st("<",!1),j=">",N=st(">",!1),q="==",R=st("==",!1),_="=",W=st("=",!1),Z="!=",L=st("!=",!1),P="&&",Y=st("&&",!1),z="||",Q=st("||",!1),X="&",H=st("&",!1),V=function(e){return{type:"callExpression",id:"not",arguments:[e]}},B="!",G=st("!",!1),K=function(e){return e},J=",",ee=st(",",!1),te=function(e){return e},re=function(e){return e},ne=/^[A-Za-z]/,ae=ct([["A","Z"],["a","z"]],!1,!1),ue=function(e){return e.join("").toLowerCase()},ie=function(e){return e},oe=function(e,t){return{type:"identifier",name:e+t.join("")}},le="_",se=st("_",!1),ce="$",pe=st("$",!1),de=".",fe=st(".",!1),ve=function(e){return function(e){return{type:"literal",value:e.join(""),dataType:"text",options:{length:e.length}}}(e)},me=function(e){var t=lt().replace(/[\+\-]/g,"").split(".");return{type:"literal",value:parseFloat(lt()),dataType:"number",options:{length:t[0].length,scale:t[1].length}}},he=function(e){return{type:"literal",value:parseInt(lt()),dataType:"number",options:{length:lt().replace(/[\+\-]/g,"").length,scale:0}}},ge="0",ye=st("0",!1),be=/^[0-9]/,xe=ct([["0","9"]],!1,!1),Te=/^[1-9]/,$e=ct([["1","9"]],!1,!1),Ce="true",we=st("true",!0),Ae=function(){return{type:"literal",value:!0,dataType:"checkbox",options:{}}},ke="false",Ee=st("false",!0),Me=function(){return{type:"literal",value:!1,dataType:"checkbox",options:{}}},Ue="null",Se=st("null",!0),Fe=function(){return{type:"literal",value:null,dataType:"null",options:{}}},De="\\",Oe=st("\\",!1),Ie=function(){return lt()},je="'",Ne=st("'",!1),qe='"',Re=st('"',!1),_e={type:"any"},We=/^[\n\r\u2028\u2029]/,Ze=ct(["\n","\r","\u2028","\u2029"],!1,!1),Le="\t",Pe=st("\t",!1),Ye="\v",ze=st("\v",!1),Qe="\f",Xe=st("\f",!1),He=" ",Ve=st(" ",!1),Be=" ",Ge=st(" ",!1),Ke="",Je=st("",!1),et="\ufeff",tt=st("\ufeff",!1),rt=0,nt=0,at=[{line:1,column:1}],ut=0,it=[],ot=0;if("startRule"in r){if(!(r.startRule in u))throw new Error("Can't start parsing from rule \""+r.startRule+'".');i=u[r.startRule]}function lt(){return t.substring(nt,rt)}function st(e,t){return{type:"literal",text:e,ignoreCase:t}}function ct(e,t,r){return{type:"class",parts:e,inverted:t,ignoreCase:r}}function pt(e){var r,n=at[e];if(n)return n;for(r=e-1;!at[r];)r--;for(n={line:(n=at[r]).line,column:n.column};r<e;)10===t.charCodeAt(r)?(n.line++,n.column=1):n.column++,r++;return at[e]=n,n}function dt(e,t){var r=pt(e),n=pt(t);return{start:{offset:e,line:r.line,column:r.column},end:{offset:t,line:n.line,column:n.column}}}function ft(e){rt<ut||(rt>ut&&(ut=rt,it=[]),it.push(e))}function vt(){return mt()}function mt(){var e;return(e=xt())===a&&(e=function(){var e,r,n;e=rt,r=function(){var e;33===t.charCodeAt(rt)?(e=B,rt++):(e=a,0===ot&&ft(G));return e}(),r!==a&&Ot()!==a&&(n=mt())!==a?(nt=e,e=r=V(n)):(rt=e,e=a);return e}())===a&&(e=gt())===a&&(e=$t())===a&&(e=At()),e}function ht(){var e,r,n,u;return(e=gt())===a&&(e=$t())===a&&(e=At())===a&&(e=rt,40===t.charCodeAt(rt)?(r=o,rt++):(r=a,0===ot&&ft(l)),r!==a&&Ot()!==a&&(n=yt())!==a&&Ot()!==a?(41===t.charCodeAt(rt)?(u=s,rt++):(u=a,0===ot&&ft(c)),u!==a?(nt=e,e=r=p(n)):(rt=e,e=a)):(rt=e,e=a)),e}function gt(){var e,r,n;return e=rt,r=function(){var e,r,n;e=rt,r=[],ne.test(t.charAt(rt))?(n=t.charAt(rt),rt++):(n=a,0===ot&&ft(ae));if(n!==a)for(;n!==a;)r.push(n),ne.test(t.charAt(rt))?(n=t.charAt(rt),rt++):(n=a,0===ot&&ft(ae));else r=a;r!==a&&(nt=e,r=ue(r));return e=r,e}(),r!==a&&Ot()!==a?(n=function(){var e,r,n,u,i;e=rt,40===t.charCodeAt(rt)?(r=o,rt++):(r=a,0===ot&&ft(l));r!==a&&Ot()!==a?(n=rt,u=function(){var e,r,n,u,i;e=rt,r=[],n=rt,u=mt(),u!==a&&Ot()!==a?(44===t.charCodeAt(rt)?(i=J,rt++):(i=a,0===ot&&ft(ee)),i===a&&(i=null),i!==a&&Ot()!==a?(nt=n,n=u=te(u)):(rt=n,n=a)):(rt=n,n=a);if(n!==a)for(;n!==a;)r.push(n),n=rt,(u=mt())!==a&&Ot()!==a?(44===t.charCodeAt(rt)?(i=J,rt++):(i=a,0===ot&&ft(ee)),i===a&&(i=null),i!==a&&Ot()!==a?(nt=n,n=u=te(u)):(rt=n,n=a)):(rt=n,n=a);else r=a;r!==a&&(nt=e,r=re(r));return e=r,e}(),u!==a&&(i=Ot())!==a?n=u=[u,i]:(rt=n,n=a),n===a&&(n=null),n!==a?(41===t.charCodeAt(rt)?(u=s,rt++):(u=a,0===ot&&ft(c)),u!==a?(nt=e,e=r=K(n)):(rt=e,e=a)):(rt=e,e=a)):(rt=e,e=a);return e}(),n!==a?(nt=e,e=r=d(r,n)):(rt=e,e=a)):(rt=e,e=a),e}function yt(){var e,t,r,n;if(e=rt,(t=ht())!==a)if(Ot()!==a){for(r=[],n=bt();n!==a;)r.push(n),n=bt();r!==a?(nt=e,e=t=f(t,r)):(rt=e,e=a)}else rt=e,e=a;else rt=e,e=a;return e}function bt(){var e,r,n;return e=rt,Ot()!==a?(r=function(){var e;94===t.charCodeAt(rt)?(e=m,rt++):(e=a,0===ot&&ft(h));e===a&&(42===t.charCodeAt(rt)?(e=g,rt++):(e=a,0===ot&&ft(y)),e===a&&(47===t.charCodeAt(rt)?(e=b,rt++):(e=a,0===ot&&ft(x)),e===a&&(43===t.charCodeAt(rt)?(e=T,rt++):(e=a,0===ot&&ft($)),e===a&&(45===t.charCodeAt(rt)?(e=C,rt++):(e=a,0===ot&&ft(w))))));return e}(),r!==a&&Ot()!==a&&(n=ht())!==a?(nt=e,e=v(r,n)):(rt=e,e=a)):(rt=e,e=a),e}function xt(){var e,r,n,u;return e=rt,(r=Tt())!==a&&Ot()!==a?(n=function(){var e;t.substr(rt,2)===P?(e=P,rt+=2):(e=a,0===ot&&ft(Y));e===a&&(t.substr(rt,2)===z?(e=z,rt+=2):(e=a,0===ot&&ft(Q)));return e}(),n!==a&&Ot()!==a&&(u=xt())!==a?(nt=e,e=r=A(r,n,u)):(rt=e,e=a)):(rt=e,e=a),e===a&&(e=Tt()),e}function Tt(){var e,r,n,u;return e=rt,(r=yt())!==a&&Ot()!==a?(n=function(){var e;t.substr(rt,2)===E?(e=E,rt+=2):(e=a,0===ot&&ft(M));e===a&&(t.substr(rt,2)===U?(e=U,rt+=2):(e=a,0===ot&&ft(S)),e===a&&(t.substr(rt,2)===F?(e=F,rt+=2):(e=a,0===ot&&ft(D)),e===a&&(60===t.charCodeAt(rt)?(e=O,rt++):(e=a,0===ot&&ft(I)),e===a&&(62===t.charCodeAt(rt)?(e=j,rt++):(e=a,0===ot&&ft(N)),e===a&&(t.substr(rt,2)===q?(e=q,rt+=2):(e=a,0===ot&&ft(R)),e===a&&(61===t.charCodeAt(rt)?(e=_,rt++):(e=a,0===ot&&ft(W)),e===a&&(t.substr(rt,2)===Z?(e=Z,rt+=2):(e=a,0===ot&&ft(L)))))))));return e}(),n===a&&(n=function(){var e;38===t.charCodeAt(rt)?(e=X,rt++):(e=a,0===ot&&ft(H));return e}()),n!==a&&Ot()!==a&&(u=Tt())!==a?(nt=e,e=r=k(r,n,u)):(rt=e,e=a)):(rt=e,e=a),e===a&&(e=yt()),e}function $t(){var e,t,r;return e=rt,t=rt,ot++,r=function(){var e;e=Mt(),e===a&&(e=Ut());return e}(),ot--,r===a?t=void 0:(rt=t,t=a),t!==a?(r=function(){var e,t,r,n;if(e=rt,t=Ct(),t!==a){for(r=[],n=wt();n!==a;)r.push(n),n=wt();r!==a?(nt=e,e=t=oe(t,r)):(rt=e,e=a)}else rt=e,e=a;return e}(),r!==a?(nt=e,e=t=ie(r)):(rt=e,e=a)):(rt=e,e=a),e}function Ct(){var e;return 95===t.charCodeAt(rt)?(e=le,rt++):(e=a,0===ot&&ft(se)),e===a&&(36===t.charCodeAt(rt)?(e=ce,rt++):(e=a,0===ot&&ft(pe)),e===a&&(ne.test(t.charAt(rt))?(e=t.charAt(rt),rt++):(e=a,0===ot&&ft(ae)))),e}function wt(){var e;return(e=Ct())===a&&(46===t.charCodeAt(rt)?(e=de,rt++):(e=a,0===ot&&ft(fe)),e===a&&(e=Et())),e}function At(){var e;return(e=function(){var e,t,r;if(e=rt,Ft()!==a){for(t=[],(r=St())===a&&(r=Dt());r!==a;)t.push(r),(r=St())===a&&(r=Dt());t!==a&&(r=Ft())!==a?(nt=e,e=ve(t)):(rt=e,e=a)}else rt=e,e=a;if(e===a)if(e=rt,Dt()!==a){for(t=[],(r=St())===a&&(r=Ft());r!==a;)t.push(r),(r=St())===a&&(r=Ft());t!==a&&(r=Dt())!==a?(nt=e,e=ve(t)):(rt=e,e=a)}else rt=e,e=a;return e}())===a&&(e=function(){var e,r,n,u,i,o;e=rt,r=rt,(n=Ot())!==a?(43===t.charCodeAt(rt)?(u=T,rt++):(u=a,0===ot&&ft($)),u!==a?r=n=[n,u]:(rt=r,r=a)):(rt=r,r=a);r===a&&(r=rt,45===t.charCodeAt(rt)?(n=C,rt++):(n=a,0===ot&&ft(w)),n!==a&&(u=Ot())!==a?r=n=[n,u]:(rt=r,r=a));r===a&&(r=null);if(r!==a)if((n=kt())!==a)if(46===t.charCodeAt(rt)?(u=de,rt++):(u=a,0===ot&&ft(fe)),u!==a){for(i=[],o=Et();o!==a;)i.push(o),o=Et();i!==a?(nt=e,e=r=me()):(rt=e,e=a)}else rt=e,e=a;else rt=e,e=a;else rt=e,e=a;e===a&&(e=rt,r=rt,(n=Ot())!==a?(43===t.charCodeAt(rt)?(u=T,rt++):(u=a,0===ot&&ft($)),u!==a?r=n=[n,u]:(rt=r,r=a)):(rt=r,r=a),r===a&&(r=rt,45===t.charCodeAt(rt)?(n=C,rt++):(n=a,0===ot&&ft(w)),n!==a&&(u=Ot())!==a?r=n=[n,u]:(rt=r,r=a)),r===a&&(r=null),r!==a&&(n=kt())!==a?(nt=e,e=r=he()):(rt=e,e=a));return e}())===a&&(e=Mt())===a&&(e=Ut()),e}function kt(){var e,r,n,u;if(48===t.charCodeAt(rt)?(e=ge,rt++):(e=a,0===ot&&ft(ye)),e===a)if(e=rt,r=function(){var e;Te.test(t.charAt(rt))?(e=t.charAt(rt),rt++):(e=a,0===ot&&ft($e));return e}(),r!==a){for(n=[],u=Et();u!==a;)n.push(u),u=Et();n!==a?e=r=[r,n]:(rt=e,e=a)}else rt=e,e=a;return e}function Et(){var e;return be.test(t.charAt(rt))?(e=t.charAt(rt),rt++):(e=a,0===ot&&ft(xe)),e}function Mt(){var e,r;return e=rt,t.substr(rt,4).toLowerCase()===Ce?(r=t.substr(rt,4),rt+=4):(r=a,0===ot&&ft(we)),r!==a&&(nt=e,r=Ae()),(e=r)===a&&(e=rt,t.substr(rt,5).toLowerCase()===ke?(r=t.substr(rt,5),rt+=5):(r=a,0===ot&&ft(Ee)),r!==a&&(nt=e,r=Me()),e=r),e}function Ut(){var e,r;return e=rt,t.substr(rt,4).toLowerCase()===Ue?(r=t.substr(rt,4),rt+=4):(r=a,0===ot&&ft(Se)),r!==a&&(nt=e,r=Fe()),e=r}function St(){var e,r,n;return e=rt,r=rt,ot++,n=function(){var e;e=Ft(),e===a&&(e=Dt());return e}(),n===a&&(92===t.charCodeAt(rt)?(n=De,rt++):(n=a,0===ot&&ft(Oe))),ot--,n===a?r=void 0:(rt=r,r=a),r!==a?(n=function(){var e;t.length>rt?(e=t.charAt(rt),rt++):(e=a,0===ot&&ft(_e));return e}(),n!==a?(nt=e,e=r=Ie()):(rt=e,e=a)):(rt=e,e=a),e}function Ft(){var e;return 39===t.charCodeAt(rt)?(e=je,rt++):(e=a,0===ot&&ft(Ne)),e}function Dt(){var e;return 34===t.charCodeAt(rt)?(e=qe,rt++):(e=a,0===ot&&ft(Re)),e}function Ot(){var e,t;for(e=[],t=It();t!==a;)e.push(t),t=It();return e}function It(){var e;return 9===t.charCodeAt(rt)?(e=Le,rt++):(e=a,0===ot&&ft(Pe)),e===a&&(e=function(){var e;return We.test(t.charAt(rt))?(e=t.charAt(rt),rt++):(e=a,0===ot&&ft(Ze)),e}())===a&&(11===t.charCodeAt(rt)?(e=Ye,rt++):(e=a,0===ot&&ft(ze)),e===a&&(12===t.charCodeAt(rt)?(e=Qe,rt++):(e=a,0===ot&&ft(Xe)),e===a&&(32===t.charCodeAt(rt)?(e=He,rt++):(e=a,0===ot&&ft(Ve)),e===a&&(160===t.charCodeAt(rt)?(e=Be,rt++):(e=a,0===ot&&ft(Ge)),e===a&&(8203===t.charCodeAt(rt)?(e=Ke,rt++):(e=a,0===ot&&ft(Je)),e===a&&(65279===t.charCodeAt(rt)?(e=et,rt++):(e=a,0===ot&&ft(tt)))))))),e}const jt={"^":{functionName:"exponentiate",rightAssociative:!0,precedence:4},"*":{functionName:"multiply",rightAssociative:!1,precedence:3},"/":{functionName:"divide",rightAssociative:!1,precedence:3},"+":{functionName:"add",rightAssociative:!1,precedence:2},"-":{functionName:"subtract",rightAssociative:!1,precedence:2}};function Nt(e,t,r){return{type:"callExpression",id:e.functionName,arguments:[t,r]}}if((n=i())!==a&&rt===t.length)return n;throw n!==a&&rt<t.length&&ft({type:"end"}),qt=it,Rt=ut<t.length?t.charAt(ut):null,_t=ut<t.length?dt(ut,ut+1):dt(ut,ut),new e(e.buildMessage(qt,Rt),qt,Rt,_t);var qt,Rt,_t}}}(),r=function(){function e(t,r,n,a){this.message=t,this.expected=r,this.found=n,this.location=a,this.name="SyntaxError","function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,e)}return function(e,t){function r(){this.constructor=e}r.prototype=t.prototype,e.prototype=new r}(e,Error),e.buildMessage=function(e,t){var r={literal:function(e){return'"'+a(e.text)+'"'},class:function(e){var t,r="";for(t=0;t<e.parts.length;t++)r+=e.parts[t]instanceof Array?u(e.parts[t][0])+"-"+u(e.parts[t][1]):u(e.parts[t]);return"["+(e.inverted?"^":"")+r+"]"},any:function(e){return"any character"},end:function(e){return"end of input"},other:function(e){return e.description}};function n(e){return e.charCodeAt(0).toString(16).toUpperCase()}function a(e){return e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,(function(e){return"\\x0"+n(e)})).replace(/[\x10-\x1F\x7F-\x9F]/g,(function(e){return"\\x"+n(e)}))}function u(e){return e.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,(function(e){return"\\x0"+n(e)})).replace(/[\x10-\x1F\x7F-\x9F]/g,(function(e){return"\\x"+n(e)}))}return"Expected "+function(e){var t,n,a,u=new Array(e.length);for(t=0;t<e.length;t++)u[t]=(a=e[t],r[a.type](a));if(u.sort(),u.length>0){for(t=1,n=1;t<u.length;t++)u[t-1]!==u[t]&&(u[n]=u[t],n++);u.length=n}switch(u.length){case 1:return u[0];case 2:return u[0]+" or "+u[1];default:return u.slice(0,-1).join(", ")+", or "+u[u.length-1]}}(e)+" but "+function(e){return e?'"'+a(e)+'"':"end of input"}(t)+" found."},{SyntaxError:e,parse:function(t,r){r=void 0!==r?r:{};var n,a,u,i,o={},l={Time:M},s=M,c=":",p=w(":",!1),d=".",f=w(".",!1),v=function(e,t,r,n){return function(e,t,r,n){e>23&&C("hour part needs to be under 24");t>59&&C("minute part needs to be under 60");r>59&&C("second part needs to be under 60");n>999&&C("millisecond part needs to be under 1000")}(e,t,r,n),{type:"literal",value:new Date(n+1e3*r+60*t*1e3+60*e*60*1e3),dataType:"time",options:{}}},m=function(){return parseInt(t.substring(b,y))},h=/^[0-9]/,g={type:"class",parts:[["0","9"]],inverted:!1,ignoreCase:!1},y=0,b=0,x=[{line:1,column:1}],T=0,$=[];if("startRule"in r){if(!(r.startRule in l))throw new Error("Can't start parsing from rule \""+r.startRule+'".');s=l[r.startRule]}function C(t,r){throw function(t,r){return new e(t,null,null,r)}(t,r=void 0!==r?r:k(b,y))}function w(e,t){return{type:"literal",text:e,ignoreCase:t}}function A(e){var r,n=x[e];if(n)return n;for(r=e-1;!x[r];)r--;for(n={line:(n=x[r]).line,column:n.column};r<e;)10===t.charCodeAt(r)?(n.line++,n.column=1):n.column++,r++;return x[e]=n,n}function k(e,t){var r=A(e),n=A(t);return{start:{offset:e,line:r.line,column:r.column},end:{offset:t,line:n.line,column:n.column}}}function E(e){y<T||(y>T&&(T=y,$=[]),$.push(e))}function M(){var e,r,n,a,u,i,l,s;return e=y,r=function(){var e,t;e=y,t=U(),t!==o&&U()!==o?(b=e,e=t=m()):(y=e,e=o);return e}(),r!==o?(58===t.charCodeAt(y)?(n=c,y++):(n=o,E(p)),n!==o?(a=function(){var e,t;e=y,t=U(),t!==o&&U()!==o?(b=e,e=t=m()):(y=e,e=o);return e}(),a!==o?(58===t.charCodeAt(y)?(u=c,y++):(u=o,E(p)),u!==o?(i=function(){var e,t;e=y,t=U(),t!==o&&U()!==o?(b=e,e=t=m()):(y=e,e=o);return e}(),i!==o?(46===t.charCodeAt(y)?(l=d,y++):(l=o,E(f)),l!==o?(s=function(){var e,t;e=y,t=U(),t!==o&&U()!==o&&U()!==o?(b=e,e=t=m()):(y=e,e=o);return e}(),s!==o?(b=e,e=r=v(r,a,i,s)):(y=e,e=o)):(y=e,e=o)):(y=e,e=o)):(y=e,e=o)):(y=e,e=o)):(y=e,e=o)):(y=e,e=o),e}function U(){var e;return h.test(t.charAt(y))?(e=t.charAt(y),y++):(e=o,E(g)),e}if((n=s())!==o&&y===t.length)return n;throw n!==o&&y<t.length&&E({type:"end"}),a=$,u=T<t.length?t.charAt(T):null,i=T<t.length?k(T,T+1):k(T,T),new e(e.buildMessage(a,u),a,u,i)}}}();class n extends Error{constructor(e,t,r){super(e),this.errorType=t,this.options=r}}const a=864e5,u=(e,t)=>{if(e<0)return-1*u(-1*e,t);const r=10**t;return Math.round(e*r)/r},i=e=>{const t=e.toString().replace("-","");if(-1!==t.indexOf(".")){const e=t.split(".");return{length:e[0].length,scale:e[1].length}}return{length:t.length,scale:0}},o=(e,t,r)=>{switch(e){case"number":return"number"==typeof t?u(t,r.scale):null;case"text":return t.substring(0,r.length);default:return t}},l=e=>{const t={type:"literal",value:e};if(null==e)return Object.assign(t,{value:null,dataType:"null",options:{}});const r=typeof e;switch(typeof e){case"number":return Object.assign(t,{dataType:"number",options:i(e)});case"string":return Object.assign(t,{dataType:"text",options:{length:e.length}});case"boolean":return Object.assign(t,{dataType:"checkbox",options:{}});default:throw new TypeError(`Unsupported type '${r}'`)}},s=(e,t,r)=>({type:"error",errorType:e,message:t,...r}),c=(e,t,r)=>e instanceof Date?c(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate()):{type:"literal",dataType:"date",value:new Date(Date.UTC(e,t-1,r)),options:{}},p=e=>({type:"literal",dataType:"datetime",value:new Date(e),options:{}}),d=e=>({type:"literal",dataType:"time",value:new Date(e),options:{}}),f=e=>{try{return e()}catch(e){if(e instanceof n)return s(e.errorType,e.message,e.options);throw e}},v=(e,t)=>new Date(e.getTime()+t*a),m=e=>{if(!e.value&&"null"!==e.dataType&&0!==e.value&&!1!==e.value&&""!==e.value)return"";switch(e.dataType){case"null":return"NULL";case"number":case"text":case"picklist":return e.value.toString();case"multipicklist":return`[${e.value.map((e=>`"${e}"`)).join(", ")}]`;case"checkbox":return e.value.toString().toUpperCase();case"date":return`${e.value.getUTCFullYear()}-${(e.value.getUTCMonth()+1).toString().padStart(2,"0")}-${e.value.getUTCDate().toString().padStart(2,"0")}`;case"datetime":return e.value.toISOString();case"time":return e.value.toISOString().split("T")[1].replace("Z","");case"geolocation":return t=e.value[0],r=e.value[1],t&&r||0===t||0===r?`${t.toFixed(6)}, ${r.toFixed(6)}`:"";default:return}var t,r};class h extends n{constructor(e,t){super(e,"NotImplementedError",t)}static throwError(e){throw new h(`Function ${e} not implemented yet.`,{name:e})}}const g=e=>Array.isArray(e)?e.map((e=>g(e))).join(", "):"string"!=typeof e?"":e.charAt(0).toUpperCase()+e.slice(1);class y extends n{constructor(e,t){super(e,"ArgumentError",t)}static throwWrongType(e,t,r){const n={function:e,expected:t,received:r},a=r||"Non-Salesforce";throw new y(`Incorrect parameter type for function '${e.toUpperCase()}()'. Expected ${g(t)}, received ${g(a)}`,n)}static throwIncorrectNumberOfArguments(e,t,r){const n={function:e,expected:t,received:r};throw new y(`Incorrect number of parameters for function '${e.toUpperCase()}()'. Expected ${t}, received ${r}`,n)}}const b=(e,t)=>{switch(e.dataType){case"date":case"datetime":return l(e.value.getTime()===t.value.getTime());default:return l(e.value===t.value)}},x=(e,t,r)=>l(e.value.substr(t.value-1,r.value)),T=(e,t)=>x(e,l(1),t);var $=Object.freeze({__proto__:null,sf$or:(...e)=>{const t=e.map((e=>e.value)).reduce(((e,t)=>e||t));return l(t)},sf$equal:b,sf$unequal:(e,t)=>l(!b(e,t).value),sf$greaterThan:(e,t)=>l(e.value>t.value),sf$greaterThanOrEqual:(e,t)=>l(e.value>=t.value),sf$lessThan:(e,t)=>l(e.value<t.value),sf$lessThanOrEqual:(e,t)=>l(e.value<=t.value),sf$addmonths:(e,t)=>c(((e,t)=>{const r=e.getUTCMonth()+t,n=new Date(Date.UTC(e.getUTCFullYear(),r,e.getUTCDate()));return e.getUTCDate()!==n.getUTCDate()&&n.setUTCDate(0),n})(e.value,t.value)),sf$date:(e,t,r)=>c(e.value,t.value,r.value),sf$datevalue:e=>c(new Date(Date.parse(e.value))),sf$datetimevalue:e=>p(Date.parse(`${e.value}Z`)),sf$day:e=>l(e.value.getUTCDate()),sf$hour:e=>l(e.value.getUTCHours()),sf$millisecond:e=>l(e.value.getUTCMilliseconds()),sf$minute:e=>l(e.value.getUTCMinutes()),sf$month:e=>l(e.value.getUTCMonth()+1),sf$now:()=>p((new Date).getTime()),sf$second:e=>l(e.value.getUTCSeconds()),sf$timenow:()=>d((new Date).getTime()%864e5),sf$timevalue:e=>(e=>{try{return r.parse(e)}catch(e){if(e instanceof r.SyntaxError)return l(null);throw e}})(e.value),sf$today:()=>c(new Date),sf$weekday:e=>l(e.value.getUTCDay()+1),sf$year:e=>l(e.value.getUTCFullYear()),sf$and:(...e)=>{const t=e.map((e=>e.value)).reduce(((e,t)=>e&&t));return l(t)},sf$blankvalue:(e,t)=>"null"===e.dataType||""===e.value||null===e.value||void 0===e.value||"multipicklist"===e.dataType&&!e.value.length?t:e,sf$case:(e,...t)=>{const r=t.length-1;if(r<=0){const e={function:"case",expected:4,received:r+2};throw new y(`Incorrect number of parameters for function '${e.function.toUpperCase()}()'. Expected ${e.expected}+, received ${e.received}`,e)}if(r%2!=0){const e={function:"case",expected:r+1,received:r+2};throw new y(`Incorrect number of parameters for function '${e.function.toUpperCase()}()'. Expected ${e.expected}, received ${e.received}`,e)}for(let n=0;n<r;n+=2)if(b(t[n],e).value)return t[n+1];return t[r]},sf$if:(e,t,r)=>e.value?t:r,sf$isblank:e=>l("null"===e.dataType||""===e.value||null===e.value||void 0===e.value||"multipicklist"===e.dataType&&!e.value.length),sf$isnull:e=>{h.throwError("isnull")},sf$isnumber:e=>{h.throwError("isnumber")},sf$not:e=>l(!e.value),sf$nullvalue:(e,t)=>{h.throwError("nullvalue")},sf$add:(e,t)=>{switch([e.dataType,t.dataType].join(" ")){case"date number":return c(v(e.value,t.value));case"number date":return c(v(t.value,e.value));case"time number":return d(e.value.getTime()+t.value);case"number time":return d(e.value+t.value.getTime());case"datetime number":return p(v(e.value,t.value));case"number datetime":return p(v(t.value,e.value));case"number number":case"text text":return l(e.value+t.value);default:y.throwWrongType("add","number",t.dataType)}},sf$subtract:(e,t)=>{switch([e.dataType,t.dataType].join(" ")){case"date number":return c(v(e.value,-1*t.value));case"time number":return d(e.value.getTime()+-1*t.value);case"datetime number":return p(v(e.value,-1*t.value));case"date date":case"datetime datetime":return l((r=e.value,n=t.value,(r.getTime()-n.getTime())/a));case"time time":return l(e.value.getTime()-t.value.getTime());case"number number":case"text text":return l(e.value-t.value);default:y.throwWrongType("subtract","number",t.dataType)}var r,n},sf$multiply:(e,t)=>l(e.value*t.value),sf$divide:(e,t)=>l(e.value/t.value),sf$exponentiate:(e,t)=>l(e.value**t.value),sf$abs:e=>l(Math.abs(e.value)),sf$ceiling:e=>e.value<0?l(-1*Math.ceil(-1*e.value)):l(Math.ceil(e.value)),sf$distance:(e,t,r)=>{const n=r.value;if("km"!==n&&"mi"!==n){throw new y(`Incorrect parameter value for function 'DISTANCE()'. Expected 'mi'/'km', received '${n}'`,{function:"distance",expected:["km","mi"],received:n})}const[a,u]=e.value,[i,o]=t.value;if(a===i&&u===o)return l(0);const s=a*Math.PI/180,c=i*Math.PI/180,p=(i-a)*Math.PI/180,d=(o-u)*Math.PI/180,f=Math.sin(p/2)*Math.sin(p/2)+Math.cos(s)*Math.cos(c)*Math.sin(d/2)*Math.sin(d/2),v=6371009*(2*Math.atan2(Math.sqrt(f),Math.sqrt(1-f)))/1e3;return l("mi"===n?v/1.609344:v)},sf$exp:e=>l(Math.exp(e.value)),sf$floor:e=>e.value<0?l(-1*Math.floor(-1*e.value)):l(Math.floor(e.value)),sf$geolocation:(e,t)=>((e,t)=>({type:"literal",dataType:"geolocation",value:[e,t],options:{}}))(e.value,t.value),sf$ln:e=>l(Math.log(e.value)),sf$log:e=>l(Math.log10(e.value)),sf$max:(...e)=>{const t=e.map((e=>e.value));return l(Math.max(...t))},sf$mceiling:e=>l(Math.ceil(e.value)),sf$mfloor:e=>l(Math.floor(e.value)),sf$min:(...e)=>{const t=e.map((e=>e.value));return l(Math.min(...t))},sf$mod:(e,t)=>l(e.value%t.value),sf$round:(e,t)=>l(u(e.value,t.value)),sf$sqrt:e=>l(Math.sqrt(e.value)),sf$begins:(e,t)=>l(e.value.startsWith(t.value)),sf$br:()=>l("\n"),sf$casesafeid:e=>{let t="";return[0,1,2].forEach((r=>{let n=0;[0,1,2,3,4].forEach((t=>{const a=e.value[5*r+t];a.toUpperCase()===a&&a>="A"&&a<="Z"&&(n+=1<<t)})),t+="ABCDEFGHIJKLMNOPQRSTUVWXYZ012345"[n]})),l(e.value+t)},sf$concat:(e,t)=>l(e.value+t.value),sf$contains:(e,t)=>l(e.value.includes(t.value)),sf$find:(e,t,r=l(1))=>{if(r.value<=0||""===e.value)return l(0);const n=t.value.substring(r.value-1);return l(n.indexOf(e.value)+1)},sf$getsessionid:()=>l("00D3z000001eRlg!AQMAQC3Y4aM9sFux6SRWhyFcOUKin4taGaBxNMU8TN_R_1R0Y7ArI95eSyzQZVIlrnV_unTbmwHZlXex8xhlXz2kXZNP49Fa"),sf$hyperlink:(e,t,r=null)=>{const n=r?` target="${r.value}"`:"";return l(`<a href="${e.value}"${n}>${t.value}</a>`)},sf$image:(e,t,r=null,n=null)=>{const a=r?` height="${r.value}"`:"",u=n?` width="${n.value}"`:"";return l(`<img src="${e.value}" alt="${t.value}"${a}${u}/>`)},sf$includes:(e,t)=>l(e.value.includes(t.value)),sf$ispickval:(e,t)=>l(e.value===t.value),sf$mid:x,sf$left:T,sf$len:e=>l(e.value.length),sf$lower:(e,t)=>l(e.value.toLowerCase()),sf$lpad:(e,t,r)=>{if(null==r)return e;if(t.value<e.value.length)return T(e,t);const n=r.value.repeat(t.value);return l((n+e.value).slice(-t.value))},sf$right:(e,t)=>l(e.value.substr(e.value.length-t.value)),sf$rpad:(e,t,r)=>{if(null==r)return e;if(t.value<e.value.length)return T(e,t);const n=r.value.repeat(t.value);return l((e.value+n).substr(0,t.value))},sf$substitute:(e,t,r)=>l(e.value.replace(new RegExp(t.value.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"g"),r.value)),sf$text:e=>"text"===e.dataType?e:"datetime"===e.dataType?l(m(e).replace("T"," ").replace(/\.\d{3}/,"")):l(m(e)),sf$trim:e=>l(e.value.trim()),sf$upper:(e,t)=>l(e.value.toUpperCase()),sf$value:e=>{const t=parseFloat(e.value);return l(t||null)},sf$currencyrate:e=>{h.throwError("currencyrate")},sf$regex:(e,t)=>{const r=new RegExp(`^${t.value}$`);return l(null!=r.exec(e.value))}});const C=e=>t=>r=>{r.length<e&&y.throwIncorrectNumberOfArguments(t,e,r.length)},w=e=>t=>r=>{r.length>e&&y.throwIncorrectNumberOfArguments(t,e,r.length)},A=(...e)=>t=>r=>{r.map(((t,r)=>[t.dataType,e[r]||e[e.length-1]])).forEach((([e,r])=>{"null"!==e&&(Array.isArray(r)?-1===r.indexOf(e)&&y.throwWrongType(t,r,e):e!==r&&y.throwWrongType(t,r,e))}))},k=()=>e=>t=>{t.length>0&&t.filter((e=>"null"!==e.dataType)).reduce(((t,r)=>(t.dataType!==r.dataType&&y.throwWrongType(e,t.dataType,r.dataType),r)))};class E extends n{constructor(e,t){super(e,"NoFunctionError",t)}}const M={abs:{validations:[C(1),w(1),A("number")],returnType:"number"},add:{validations:[C(2),w(2),A(["number","text","date","datetime","time"],["number","text","date","datetime","time"])],returnType:["number","text","date","datetime","time"]},addmonths:{validations:[C(2),w(2),A(["date","datetime"],["number"])],returnType:["date","datetime"]},and:{validations:[C(1),A("checkbox")],returnType:"checkbox"},begins:{validations:[C(2),w(2),A("text","text")],returnType:"checkbox"},blankvalue:{validations:[C(2),w(2),A(["text","number","date","datetime","geolocation"]),k()],returnType:["text","number","date","datetime","geolocation"]},br:{validations:[C(0),w(0)],returnType:"text"},case:{validations:[C(4),A(["text","number","picklist","date","datetime"]),e=>t=>{const r="picklist"===t[0].dataType?"text":t[0].dataType,n=t.filter(((e,r)=>r%2==1&&r!==t.length-1)).find((e=>e.dataType!==r));n&&y.throwWrongType(e,r,n.dataType)}],returnType:["text","number","date","datetime"]},casesafeid:{validations:[C(1),w(1),A("text")],returnType:"text"},ceiling:{validations:[C(1),w(1),A("number")],returnType:"number"},contains:{validations:[C(2),w(2),A("text","text")],returnType:"checkbox"},currencyrate:{validations:[C(1),w(1),A("text")],returnType:"text"},date:{validations:[C(3),w(3),A("number","number","number")],returnType:"date"},datetimevalue:{validations:[C(1),w(1),A("text","date","datetime")],returnType:"datetime"},datevalue:{validations:[C(1),w(1),A(["text","date","datetime"])],returnType:"date"},day:{validations:[C(1),w(1),A("date")],returnType:"number"},distance:{validations:[C(3),w(3),A("geolocation","geolocation","text")],returnType:"number"},divide:{validations:[C(2),w(2),A("number","number")],returnType:"number"},equal:{validations:[C(2),w(2),A(["text","number","date","datetime","checkbox"]),k()],returnType:"checkbox"},exp:{validations:[C(1),w(1),A("number")],returnType:"number"},exponentiate:{validations:[C(2),w(2),A("number","number")],returnType:"number"},find:{validations:[C(2),w(3),A("text","text","number")],returnType:"number"},floor:{validations:[C(1),w(1),A("number")],returnType:"number"},geolocation:{validations:[C(2),w(2),A("number","number")],returnType:"geolocation"},getsessionid:{validations:[C(0),w(0)],returnType:"text"},greaterThan:{validations:[C(2),w(2),A(["number","date","datetime"]),k()],returnType:"checkbox"},greaterThanOrEqual:{validations:[C(2),w(2),A(["number","date","datetime"])],returnType:"checkbox"},hour:{validations:[C(1),w(1),A("datetime")],returnType:"number"},hyperlink:{validations:[C(2),w(3),A("text","text","text")],returnType:"text"},if:{validations:[C(3),w(3),A("checkbox",["text","number","date","datetime"],["text","number","date","datetime"])],returnType:["text","number","date","datetime"]},image:{validations:[C(2),w(4),A("text","text","number","number")],returnType:"text"},includes:{validations:[C(2),w(2),A("multipicklist","text")],returnType:"checkbox"},isblank:{validations:[C(1),w(1),A(["text","number","date","datetime","picklist","multipicklist","geolocation"])],returnType:"checkbox"},isnull:{validations:[C(1),w(1),A(["text","number"])],returnType:"checkbox"},ispickval:{validations:[C(2),w(2),A("picklist","text")],returnType:"checkbox"},isnumber:{validations:[C(1),w(1),A("text")],returnType:"checkbox"},left:{validations:[C(2),w(2),A("text","number")],returnType:"text"},len:{validations:[C(1),w(1),A("text")],returnType:"number"},lessThan:{validations:[C(2),w(2),A(["number","date","datetime"]),k()],returnType:"checkbox"},lessThanOrEqual:{validations:[C(2),w(2),A(["number","date","datetime"]),k()],returnType:"checkbox"},ln:{validations:[C(1),w(1),A("number")],returnType:"number"},log:{validations:[C(1),w(1),A("number")],returnType:"checkbox"},lower:{validations:[C(1),w(1),A("text")],returnType:"text"},lpad:{validations:[C(2),w(3),A("text","number","text")],returnType:"text"},max:{validations:[C(1),A("number")],returnType:"number"},mceiling:{validations:[C(1),w(1),A("number")],returnType:"number"},mfloor:{validations:[C(1),w(1),A("number")],returnType:"number"},mid:{validations:[C(3),w(3),A("text","number","number")],returnType:"number"},millisecond:{validations:[C(1),w(1),A("datetime")],returnType:"number"},min:{validations:[C(1),A("number")],returnType:"number"},minute:{validations:[C(1),w(1),A("datetime")],returnType:"number"},mod:{validations:[C(2),w(2),A("number","number")],returnType:"number"},month:{validations:[C(1),w(1),A("date")],returnType:"number"},multiply:{validations:[C(2),w(2),A("number","number")],returnType:"number"},not:{validations:[C(1),w(1),A("checkbox")],returnType:"checkbox"},now:{validations:[C(0),w(0)],returnType:"datetime"},nullvalue:{validations:[C(2),w(2),A(["text","number"],["text","number"])],returnType:["text","number"]},or:{validations:[C(1),A("checkbox")],returnType:"checkbox"},regex:{validations:[C(2),w(2),A("text","text")],returnType:"text"},right:{validations:[C(2),w(2),A("text","number")],returnType:"text"},round:{validations:[C(2),w(2),A("number","number")],returnType:"number"},rpad:{validations:[C(2),w(3),A("text","number","text")],returnType:"text"},second:{validations:[C(1),w(1),A("datetime")],returnType:"number"},sqrt:{validations:[C(1),w(1),A("number")],returnType:"number"},subtract:{validations:[C(2),w(2),A(["number","date","datetime","time"],["number","date","datetime","time"])],returnType:["number","date","datetime","time"]},substitute:{validations:[C(3),w(3),A("text","text","text")],returnType:"text"},text:{validations:[C(1),w(1),A(["number","date","datetime","picklist","time"])],returnType:"text"},timenow:{validations:[C(0),w(0)],returnType:"time"},timevalue:{validations:[C(1),w(1),A("text")],returnType:"time"},today:{validations:[C(0),w(0)],returnType:"date"},trim:{validations:[C(1),w(1),A("text")],returnType:"text"},unequal:{validations:[C(2),w(2),A(["text","number","date","datetime","checkbox"]),k()],returnType:"checkbox"},upper:{validations:[C(1),w(1),A("text")],returnType:"text"},value:{validations:[C(1),w(1),A("text")],returnType:"number"},weekday:{validations:[C(1),w(1),A("date")],returnType:"number"},year:{validations:[C(1),w(1),A("date")],returnType:"number"}};class U extends n{constructor(e,t){super(e,"ReferenceError",t)}}const S=e=>{switch(e.type){case"callExpression":return t=e.id,r=e.arguments.map((e=>S(e))),f((()=>{const e=r.find((e=>"error"===e.type));if(e)return e;const n=M[t];if(n)return n.validations.forEach((e=>e(t)(r))),$[`sf$${t}`](...r);throw new E(`Unknown function ${t.toUpperCase()}. Check spelling.`,{function:t})}));case"identifier":throw new U(`Field ${e.name} does not exist. Check spelling.`,{identifier:e.name});default:return e}var t,r},F=e=>{try{return t.parse(null==e?"":e.trim())}catch(e){if(e instanceof t.SyntaxError)return s("SyntaxError","Syntax error.",{});throw e}},D=(e,t=[])=>{switch(e.type){case"callExpression":return e.arguments.map((e=>D(e,t))).reduce(((e,t)=>e.concat(t)),[]);case"identifier":return t.concat(e.name);default:return t}},O=(e,t)=>"callExpression"===e.type?{type:"callExpression",id:e.id,arguments:e.arguments.map((e=>O(e,t)))}:"identifier"===e.type&&t[e.name]?{...t[e.name],type:"literal"}:e;e.extract=e=>{if(null==e||""===e.trim())return[];const t=F(e);return D(t).reduce(((e,t)=>(e.indexOf(t)<0&&e.push(t),e)),[])},e.parse=(e,t={})=>{if(null==e||""===e.trim())return l("");const r=F(e),n=Object.keys(t).reduce(((e,r)=>{return{...e,[r]:(n=t[r],{...n,value:o(n.dataType,n.value,n.options)})};var n}),{});return(e=>f((()=>S(e))))(O(r,n))},e.toString=e=>m(e),Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).formulon={})}(this,function(e){"use strict";var t=function(){function e(t,r,n,a){this.message=t,this.expected=r,this.found=n,this.location=a,this.name="SyntaxError","function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,e)}return function(e,t){function r(){this.constructor=e}r.prototype=t.prototype,e.prototype=new r}(e,Error),e.buildMessage=function(e,t){var r={literal:function(e){return'"'+a(e.text)+'"'},class:function(e){var t,r="";for(t=0;t<e.parts.length;t++)r+=e.parts[t]instanceof Array?u(e.parts[t][0])+"-"+u(e.parts[t][1]):u(e.parts[t]);return"["+(e.inverted?"^":"")+r+"]"},any:function(e){return"any character"},end:function(e){return"end of input"},other:function(e){return e.description}};function n(e){return e.charCodeAt(0).toString(16).toUpperCase()}function a(e){return e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(e){return"\\x0"+n(e)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(e){return"\\x"+n(e)})}function u(e){return e.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(e){return"\\x0"+n(e)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(e){return"\\x"+n(e)})}function i(e){return r[e.type](e)}return"Expected "+function(e){var t,r,n=new Array(e.length);for(t=0;t<e.length;t++)n[t]=i(e[t]);if(n.sort(),n.length>0){for(t=1,r=1;t<n.length;t++)n[t-1]!==n[t]&&(n[r]=n[t],r++);n.length=r}switch(n.length){case 1:return n[0];case 2:return n[0]+" or "+n[1];default:return n.slice(0,-1).join(", ")+", or "+n[n.length-1]}}(e)+" but "+function(e){return e?'"'+a(e)+'"':"end of input"}(t)+" found."},{SyntaxError:e,parse:function(t,r){r=void 0!==r?r:{};var n,a={},u={start:vt},i=vt,o="(",l=st("(",!1),s=")",c=st(")",!1),p=function(e){return e},d=function(e,t){return{type:"callExpression",id:e,arguments:(r=t,null!==r?r[0]:[])};var r},f=function(e,t){return function(e){const t=[],r=[];e.forEach(e=>{if("operator"===e.type){for(;t.length>0&&!(t[t.length-1].precedence<e.precedence);){let e=t.pop(),n=r.pop(),a=r.pop();r.push(Nt(e,a,n))}t.push(e)}else r.push(e)});for(;t.length>0;){let e=t.pop(),n=r.pop(),a=r.pop();r.push(Nt(e,a,n))}return r.pop()}([e,t].flat(2))},v=function(e,t){return[Object.assign({type:"operator"},jt[e]),t]},m="^",h=st("^",!1),g="*",y=st("*",!1),b="/",x=st("/",!1),T="+",$=st("+",!1),C="-",w=st("-",!1),A=function(e,t,r){var n;switch(t){case"||":n="or";break;case"&&":n="and"}return{type:"callExpression",id:n,arguments:[e,r]}},k=function(e,t,r){var n;switch(t){case"<":n="lessThan";break;case"<=":n="lessThanOrEqual";break;case">":n="greaterThan";break;case">=":n="greaterThanOrEqual";break;case"==":case"=":n="equal";break;case"!=":case"<>":n="unequal";break;case"&":n="add"}return{type:"callExpression",id:n,arguments:[e,r]}},E="<=",M=st("<=",!1),U=">=",S=st(">=",!1),F="<>",D=st("<>",!1),O="<",I=st("<",!1),j=">",N=st(">",!1),q="==",R=st("==",!1),_="=",W=st("=",!1),Z="!=",L=st("!=",!1),P="&&",Y=st("&&",!1),z="||",Q=st("||",!1),X="&",H=st("&",!1),V=function(e){return{type:"callExpression",id:"not",arguments:[e]}},B="!",G=st("!",!1),K=function(e){return e},J=",",ee=st(",",!1),te=function(e){return e},re=function(e){return e},ne=/^[A-Za-z]/,ae=ct([["A","Z"],["a","z"]],!1,!1),ue=function(e){return e.join("").toLowerCase()},ie=function(e){return e},oe=function(e,t){return{type:"identifier",name:e+t.join("")}},le="_",se=st("_",!1),ce="$",pe=st("$",!1),de=".",fe=st(".",!1),ve=function(e){return function(e){return{type:"literal",value:e.join(""),dataType:"text",options:{length:e.length}}}(e)},me=function(e){var t=lt().replace(/[\+\-]/g,"").split(".");return{type:"literal",value:parseFloat(lt()),dataType:"number",options:{length:t[0].length,scale:t[1].length}}},he=function(e){return{type:"literal",value:parseInt(lt()),dataType:"number",options:{length:lt().replace(/[\+\-]/g,"").length,scale:0}}},ge="0",ye=st("0",!1),be=/^[0-9]/,xe=ct([["0","9"]],!1,!1),Te=/^[1-9]/,$e=ct([["1","9"]],!1,!1),Ce="true",we=st("true",!0),Ae=function(){return{type:"literal",value:!0,dataType:"checkbox",options:{}}},ke="false",Ee=st("false",!0),Me=function(){return{type:"literal",value:!1,dataType:"checkbox",options:{}}},Ue="null",Se=st("null",!0),Fe=function(){return{type:"literal",value:null,dataType:"null",options:{}}},De="\\",Oe=st("\\",!1),Ie=function(){return lt()},je="'",Ne=st("'",!1),qe='"',Re=st('"',!1),_e={type:"any"},We=/^[\n\r\u2028\u2029]/,Ze=ct(["\n","\r","\u2028","\u2029"],!1,!1),Le="\t",Pe=st("\t",!1),Ye="\v",ze=st("\v",!1),Qe="\f",Xe=st("\f",!1),He=" ",Ve=st(" ",!1),Be=" ",Ge=st(" ",!1),Ke="",Je=st("",!1),et="\ufeff",tt=st("\ufeff",!1),rt=0,nt=0,at=[{line:1,column:1}],ut=0,it=[],ot=0;if("startRule"in r){if(!(r.startRule in u))throw new Error("Can't start parsing from rule \""+r.startRule+'".');i=u[r.startRule]}function lt(){return t.substring(nt,rt)}function st(e,t){return{type:"literal",text:e,ignoreCase:t}}function ct(e,t,r){return{type:"class",parts:e,inverted:t,ignoreCase:r}}function pt(e){var r,n=at[e];if(n)return n;for(r=e-1;!at[r];)r--;for(n={line:(n=at[r]).line,column:n.column};r<e;)10===t.charCodeAt(r)?(n.line++,n.column=1):n.column++,r++;return at[e]=n,n}function dt(e,t){var r=pt(e),n=pt(t);return{start:{offset:e,line:r.line,column:r.column},end:{offset:t,line:n.line,column:n.column}}}function ft(e){rt<ut||(rt>ut&&(ut=rt,it=[]),it.push(e))}function vt(){return mt()}function mt(){var e;return(e=xt())===a&&(e=function(){var e,r,n;e=rt,r=function(){var e;33===t.charCodeAt(rt)?(e=B,rt++):(e=a,0===ot&&ft(G));return e}(),r!==a&&Ot()!==a&&(n=mt())!==a?(nt=e,e=r=V(n)):(rt=e,e=a);return e}())===a&&(e=gt())===a&&(e=$t())===a&&(e=At()),e}function ht(){var e,r,n,u;return(e=gt())===a&&(e=$t())===a&&(e=At())===a&&(e=rt,40===t.charCodeAt(rt)?(r=o,rt++):(r=a,0===ot&&ft(l)),r!==a&&Ot()!==a&&(n=yt())!==a&&Ot()!==a?(41===t.charCodeAt(rt)?(u=s,rt++):(u=a,0===ot&&ft(c)),u!==a?(nt=e,e=r=p(n)):(rt=e,e=a)):(rt=e,e=a)),e}function gt(){var e,r,n;return e=rt,r=function(){var e,r,n;e=rt,r=[],ne.test(t.charAt(rt))?(n=t.charAt(rt),rt++):(n=a,0===ot&&ft(ae));if(n!==a)for(;n!==a;)r.push(n),ne.test(t.charAt(rt))?(n=t.charAt(rt),rt++):(n=a,0===ot&&ft(ae));else r=a;r!==a&&(nt=e,r=ue(r));return e=r,e}(),r!==a&&Ot()!==a?(n=function(){var e,r,n,u,i;e=rt,40===t.charCodeAt(rt)?(r=o,rt++):(r=a,0===ot&&ft(l));r!==a&&Ot()!==a?(n=rt,u=function(){var e,r,n,u,i;e=rt,r=[],n=rt,u=mt(),u!==a&&Ot()!==a?(44===t.charCodeAt(rt)?(i=J,rt++):(i=a,0===ot&&ft(ee)),i===a&&(i=null),i!==a&&Ot()!==a?(nt=n,n=u=te(u)):(rt=n,n=a)):(rt=n,n=a);if(n!==a)for(;n!==a;)r.push(n),n=rt,(u=mt())!==a&&Ot()!==a?(44===t.charCodeAt(rt)?(i=J,rt++):(i=a,0===ot&&ft(ee)),i===a&&(i=null),i!==a&&Ot()!==a?(nt=n,n=u=te(u)):(rt=n,n=a)):(rt=n,n=a);else r=a;r!==a&&(nt=e,r=re(r));return e=r,e}(),u!==a&&(i=Ot())!==a?n=u=[u,i]:(rt=n,n=a),n===a&&(n=null),n!==a?(41===t.charCodeAt(rt)?(u=s,rt++):(u=a,0===ot&&ft(c)),u!==a?(nt=e,e=r=K(n)):(rt=e,e=a)):(rt=e,e=a)):(rt=e,e=a);return e}(),n!==a?(nt=e,e=r=d(r,n)):(rt=e,e=a)):(rt=e,e=a),e}function yt(){var e,t,r,n;if(e=rt,(t=ht())!==a)if(Ot()!==a){for(r=[],n=bt();n!==a;)r.push(n),n=bt();r!==a?(nt=e,e=t=f(t,r)):(rt=e,e=a)}else rt=e,e=a;else rt=e,e=a;return e}function bt(){var e,r,n;return e=rt,Ot()!==a?(r=function(){var e;94===t.charCodeAt(rt)?(e=m,rt++):(e=a,0===ot&&ft(h));e===a&&(42===t.charCodeAt(rt)?(e=g,rt++):(e=a,0===ot&&ft(y)),e===a&&(47===t.charCodeAt(rt)?(e=b,rt++):(e=a,0===ot&&ft(x)),e===a&&(43===t.charCodeAt(rt)?(e=T,rt++):(e=a,0===ot&&ft($)),e===a&&(45===t.charCodeAt(rt)?(e=C,rt++):(e=a,0===ot&&ft(w))))));return e}(),r!==a&&Ot()!==a&&(n=ht())!==a?(nt=e,e=v(r,n)):(rt=e,e=a)):(rt=e,e=a),e}function xt(){var e,r,n,u;return e=rt,(r=Tt())!==a&&Ot()!==a?(n=function(){var e;t.substr(rt,2)===P?(e=P,rt+=2):(e=a,0===ot&&ft(Y));e===a&&(t.substr(rt,2)===z?(e=z,rt+=2):(e=a,0===ot&&ft(Q)));return e}(),n!==a&&Ot()!==a&&(u=xt())!==a?(nt=e,e=r=A(r,n,u)):(rt=e,e=a)):(rt=e,e=a),e===a&&(e=Tt()),e}function Tt(){var e,r,n,u;return e=rt,(r=yt())!==a&&Ot()!==a?(n=function(){var e;t.substr(rt,2)===E?(e=E,rt+=2):(e=a,0===ot&&ft(M));e===a&&(t.substr(rt,2)===U?(e=U,rt+=2):(e=a,0===ot&&ft(S)),e===a&&(t.substr(rt,2)===F?(e=F,rt+=2):(e=a,0===ot&&ft(D)),e===a&&(60===t.charCodeAt(rt)?(e=O,rt++):(e=a,0===ot&&ft(I)),e===a&&(62===t.charCodeAt(rt)?(e=j,rt++):(e=a,0===ot&&ft(N)),e===a&&(t.substr(rt,2)===q?(e=q,rt+=2):(e=a,0===ot&&ft(R)),e===a&&(61===t.charCodeAt(rt)?(e=_,rt++):(e=a,0===ot&&ft(W)),e===a&&(t.substr(rt,2)===Z?(e=Z,rt+=2):(e=a,0===ot&&ft(L)))))))));return e}(),n===a&&(n=function(){var e;38===t.charCodeAt(rt)?(e=X,rt++):(e=a,0===ot&&ft(H));return e}()),n!==a&&Ot()!==a&&(u=Tt())!==a?(nt=e,e=r=k(r,n,u)):(rt=e,e=a)):(rt=e,e=a),e===a&&(e=yt()),e}function $t(){var e,t,r;return e=rt,t=rt,ot++,r=function(){var e;e=Mt(),e===a&&(e=Ut());return e}(),ot--,r===a?t=void 0:(rt=t,t=a),t!==a?(r=function(){var e,t,r,n;if(e=rt,t=Ct(),t!==a){for(r=[],n=wt();n!==a;)r.push(n),n=wt();r!==a?(nt=e,e=t=oe(t,r)):(rt=e,e=a)}else rt=e,e=a;return e}(),r!==a?(nt=e,e=t=ie(r)):(rt=e,e=a)):(rt=e,e=a),e}function Ct(){var e;return 95===t.charCodeAt(rt)?(e=le,rt++):(e=a,0===ot&&ft(se)),e===a&&(36===t.charCodeAt(rt)?(e=ce,rt++):(e=a,0===ot&&ft(pe)),e===a&&(ne.test(t.charAt(rt))?(e=t.charAt(rt),rt++):(e=a,0===ot&&ft(ae)))),e}function wt(){var e;return(e=Ct())===a&&(46===t.charCodeAt(rt)?(e=de,rt++):(e=a,0===ot&&ft(fe)),e===a&&(e=Et())),e}function At(){var e;return(e=function(){var e,t,r;if(e=rt,Ft()!==a){for(t=[],(r=St())===a&&(r=Dt());r!==a;)t.push(r),(r=St())===a&&(r=Dt());t!==a&&(r=Ft())!==a?(nt=e,e=ve(t)):(rt=e,e=a)}else rt=e,e=a;if(e===a)if(e=rt,Dt()!==a){for(t=[],(r=St())===a&&(r=Ft());r!==a;)t.push(r),(r=St())===a&&(r=Ft());t!==a&&(r=Dt())!==a?(nt=e,e=ve(t)):(rt=e,e=a)}else rt=e,e=a;return e}())===a&&(e=function(){var e,r,n,u,i,o;e=rt,r=rt,(n=Ot())!==a?(43===t.charCodeAt(rt)?(u=T,rt++):(u=a,0===ot&&ft($)),u!==a?r=n=[n,u]:(rt=r,r=a)):(rt=r,r=a);r===a&&(r=rt,45===t.charCodeAt(rt)?(n=C,rt++):(n=a,0===ot&&ft(w)),n!==a&&(u=Ot())!==a?r=n=[n,u]:(rt=r,r=a));r===a&&(r=null);if(r!==a)if((n=kt())!==a)if(46===t.charCodeAt(rt)?(u=de,rt++):(u=a,0===ot&&ft(fe)),u!==a){for(i=[],o=Et();o!==a;)i.push(o),o=Et();i!==a?(nt=e,e=r=me()):(rt=e,e=a)}else rt=e,e=a;else rt=e,e=a;else rt=e,e=a;e===a&&(e=rt,r=rt,(n=Ot())!==a?(43===t.charCodeAt(rt)?(u=T,rt++):(u=a,0===ot&&ft($)),u!==a?r=n=[n,u]:(rt=r,r=a)):(rt=r,r=a),r===a&&(r=rt,45===t.charCodeAt(rt)?(n=C,rt++):(n=a,0===ot&&ft(w)),n!==a&&(u=Ot())!==a?r=n=[n,u]:(rt=r,r=a)),r===a&&(r=null),r!==a&&(n=kt())!==a?(nt=e,e=r=he()):(rt=e,e=a));return e}())===a&&(e=Mt())===a&&(e=Ut()),e}function kt(){var e,r,n,u;if(48===t.charCodeAt(rt)?(e=ge,rt++):(e=a,0===ot&&ft(ye)),e===a)if(e=rt,r=function(){var e;Te.test(t.charAt(rt))?(e=t.charAt(rt),rt++):(e=a,0===ot&&ft($e));return e}(),r!==a){for(n=[],u=Et();u!==a;)n.push(u),u=Et();n!==a?e=r=[r,n]:(rt=e,e=a)}else rt=e,e=a;return e}function Et(){var e;return be.test(t.charAt(rt))?(e=t.charAt(rt),rt++):(e=a,0===ot&&ft(xe)),e}function Mt(){var e,r;return e=rt,t.substr(rt,4).toLowerCase()===Ce?(r=t.substr(rt,4),rt+=4):(r=a,0===ot&&ft(we)),r!==a&&(nt=e,r=Ae()),(e=r)===a&&(e=rt,t.substr(rt,5).toLowerCase()===ke?(r=t.substr(rt,5),rt+=5):(r=a,0===ot&&ft(Ee)),r!==a&&(nt=e,r=Me()),e=r),e}function Ut(){var e,r;return e=rt,t.substr(rt,4).toLowerCase()===Ue?(r=t.substr(rt,4),rt+=4):(r=a,0===ot&&ft(Se)),r!==a&&(nt=e,r=Fe()),e=r}function St(){var e,r,n;return e=rt,r=rt,ot++,n=function(){var e;e=Ft(),e===a&&(e=Dt());return e}(),n===a&&(92===t.charCodeAt(rt)?(n=De,rt++):(n=a,0===ot&&ft(Oe))),ot--,n===a?r=void 0:(rt=r,r=a),r!==a?(n=function(){var e;t.length>rt?(e=t.charAt(rt),rt++):(e=a,0===ot&&ft(_e));return e}(),n!==a?(nt=e,e=r=Ie()):(rt=e,e=a)):(rt=e,e=a),e}function Ft(){var e;return 39===t.charCodeAt(rt)?(e=je,rt++):(e=a,0===ot&&ft(Ne)),e}function Dt(){var e;return 34===t.charCodeAt(rt)?(e=qe,rt++):(e=a,0===ot&&ft(Re)),e}function Ot(){var e,t;for(e=[],t=It();t!==a;)e.push(t),t=It();return e}function It(){var e;return 9===t.charCodeAt(rt)?(e=Le,rt++):(e=a,0===ot&&ft(Pe)),e===a&&(e=function(){var e;return We.test(t.charAt(rt))?(e=t.charAt(rt),rt++):(e=a,0===ot&&ft(Ze)),e}())===a&&(11===t.charCodeAt(rt)?(e=Ye,rt++):(e=a,0===ot&&ft(ze)),e===a&&(12===t.charCodeAt(rt)?(e=Qe,rt++):(e=a,0===ot&&ft(Xe)),e===a&&(32===t.charCodeAt(rt)?(e=He,rt++):(e=a,0===ot&&ft(Ve)),e===a&&(160===t.charCodeAt(rt)?(e=Be,rt++):(e=a,0===ot&&ft(Ge)),e===a&&(8203===t.charCodeAt(rt)?(e=Ke,rt++):(e=a,0===ot&&ft(Je)),e===a&&(65279===t.charCodeAt(rt)?(e=et,rt++):(e=a,0===ot&&ft(tt)))))))),e}const jt={"^":{functionName:"exponentiate",rightAssociative:!0,precedence:4},"*":{functionName:"multiply",rightAssociative:!1,precedence:3},"/":{functionName:"divide",rightAssociative:!1,precedence:3},"+":{functionName:"add",rightAssociative:!1,precedence:2},"-":{functionName:"subtract",rightAssociative:!1,precedence:2}};function Nt(e,t,r){return{type:"callExpression",id:e.functionName,arguments:[t,r]}}if((n=i())!==a&&rt===t.length)return n;throw n!==a&&rt<t.length&&ft({type:"end"}),qt=it,Rt=ut<t.length?t.charAt(ut):null,_t=ut<t.length?dt(ut,ut+1):dt(ut,ut),new e(e.buildMessage(qt,Rt),qt,Rt,_t);var qt,Rt,_t}}}(),r=function(){function e(t,r,n,a){this.message=t,this.expected=r,this.found=n,this.location=a,this.name="SyntaxError","function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,e)}return function(e,t){function r(){this.constructor=e}r.prototype=t.prototype,e.prototype=new r}(e,Error),e.buildMessage=function(e,t){var r={literal:function(e){return'"'+a(e.text)+'"'},class:function(e){var t,r="";for(t=0;t<e.parts.length;t++)r+=e.parts[t]instanceof Array?u(e.parts[t][0])+"-"+u(e.parts[t][1]):u(e.parts[t]);return"["+(e.inverted?"^":"")+r+"]"},any:function(e){return"any character"},end:function(e){return"end of input"},other:function(e){return e.description}};function n(e){return e.charCodeAt(0).toString(16).toUpperCase()}function a(e){return e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(e){return"\\x0"+n(e)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(e){return"\\x"+n(e)})}function u(e){return e.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(e){return"\\x0"+n(e)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(e){return"\\x"+n(e)})}function i(e){return r[e.type](e)}return"Expected "+function(e){var t,r,n=new Array(e.length);for(t=0;t<e.length;t++)n[t]=i(e[t]);if(n.sort(),n.length>0){for(t=1,r=1;t<n.length;t++)n[t-1]!==n[t]&&(n[r]=n[t],r++);n.length=r}switch(n.length){case 1:return n[0];case 2:return n[0]+" or "+n[1];default:return n.slice(0,-1).join(", ")+", or "+n[n.length-1]}}(e)+" but "+function(e){return e?'"'+a(e)+'"':"end of input"}(t)+" found."},{SyntaxError:e,parse:function(t,r){r=void 0!==r?r:{};var n,a,u,i,o={},l={Time:M},s=M,c=":",p=w(":",!1),d=".",f=w(".",!1),v=function(e,t,r,n){return function(e,t,r,n){e>23&&C("hour part needs to be under 24");t>59&&C("minute part needs to be under 60");r>59&&C("second part needs to be under 60");n>999&&C("millisecond part needs to be under 1000")}(e,t,r,n),{type:"literal",value:new Date(n+1e3*r+60*t*1e3+60*e*60*1e3),dataType:"time",options:{}}},m=function(){return parseInt(t.substring(b,y))},h=/^[0-9]/,g={type:"class",parts:[["0","9"]],inverted:!1,ignoreCase:!1},y=0,b=0,x=[{line:1,column:1}],T=0,$=[];if("startRule"in r){if(!(r.startRule in l))throw new Error("Can't start parsing from rule \""+r.startRule+'".');s=l[r.startRule]}function C(t,r){throw function(t,r){return new e(t,null,null,r)}(t,r=void 0!==r?r:k(b,y))}function w(e,t){return{type:"literal",text:e,ignoreCase:t}}function A(e){var r,n=x[e];if(n)return n;for(r=e-1;!x[r];)r--;for(n={line:(n=x[r]).line,column:n.column};r<e;)10===t.charCodeAt(r)?(n.line++,n.column=1):n.column++,r++;return x[e]=n,n}function k(e,t){var r=A(e),n=A(t);return{start:{offset:e,line:r.line,column:r.column},end:{offset:t,line:n.line,column:n.column}}}function E(e){y<T||(y>T&&(T=y,$=[]),$.push(e))}function M(){var e,r,n,a,u,i,l,s;return e=y,r=function(){var e,t;e=y,t=U(),t!==o&&U()!==o?(b=e,e=t=m()):(y=e,e=o);return e}(),r!==o?(58===t.charCodeAt(y)?(n=c,y++):(n=o,E(p)),n!==o?(a=function(){var e,t;e=y,t=U(),t!==o&&U()!==o?(b=e,e=t=m()):(y=e,e=o);return e}(),a!==o?(58===t.charCodeAt(y)?(u=c,y++):(u=o,E(p)),u!==o?(i=function(){var e,t;e=y,t=U(),t!==o&&U()!==o?(b=e,e=t=m()):(y=e,e=o);return e}(),i!==o?(46===t.charCodeAt(y)?(l=d,y++):(l=o,E(f)),l!==o?(s=function(){var e,t;e=y,t=U(),t!==o&&U()!==o&&U()!==o?(b=e,e=t=m()):(y=e,e=o);return e}(),s!==o?(b=e,e=r=v(r,a,i,s)):(y=e,e=o)):(y=e,e=o)):(y=e,e=o)):(y=e,e=o)):(y=e,e=o)):(y=e,e=o)):(y=e,e=o),e}function U(){var e;return h.test(t.charAt(y))?(e=t.charAt(y),y++):(e=o,E(g)),e}if((n=s())!==o&&y===t.length)return n;throw n!==o&&y<t.length&&E({type:"end"}),a=$,u=T<t.length?t.charAt(T):null,i=T<t.length?k(T,T+1):k(T,T),new e(e.buildMessage(a,u),a,u,i)}}}();class n extends Error{constructor(e,t,r){super(e),this.errorType=t,this.options=r}}const a=864e5,u=(e,t)=>{if(e<0)return-1*u(-1*e,t);const r=10**t;return Math.round(e*r)/r},i=e=>{const t=e.toString().replace("-","");if(-1!==t.indexOf(".")){const e=t.split(".");return{length:e[0].length,scale:e[1].length}}return{length:t.length,scale:0}},o=(e,t,r)=>{switch(e){case"number":return"number"==typeof t?u(t,r.scale):null;case"text":return t.substring(0,r.length);default:return t}},l=e=>{const t={type:"literal",value:e};if(null==e)return Object.assign(t,{value:null,dataType:"null",options:{}});const r=typeof e;switch(typeof e){case"number":return Object.assign(t,{dataType:"number",options:i(e)});case"string":return Object.assign(t,{dataType:"text",options:{length:e.length}});case"boolean":return Object.assign(t,{dataType:"checkbox",options:{}});default:throw new TypeError(`Unsupported type '${r}'`)}},s=(e,t,r)=>({type:"error",errorType:e,message:t,...r}),c=(e,t,r)=>e instanceof Date?c(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate()):{type:"literal",dataType:"date",value:new Date(Date.UTC(e,t-1,r)),options:{}},p=e=>({type:"literal",dataType:"datetime",value:new Date(e),options:{}}),d=e=>({type:"literal",dataType:"time",value:new Date(e),options:{}}),f=e=>{try{return e()}catch(e){if(e instanceof n)return s(e.errorType,e.message,e.options);throw e}},v=(e,t)=>new Date(e.getTime()+t*a),m=e=>{if(!e.value&&"null"!==e.dataType&&0!==e.value&&!1!==e.value&&""!==e.value)return"";switch(e.dataType){case"null":return"NULL";case"number":case"text":case"picklist":return e.value.toString();case"multipicklist":return`[${e.value.map(e=>`"${e}"`).join(", ")}]`;case"checkbox":return e.value.toString().toUpperCase();case"date":return`${e.value.getUTCFullYear()}-${(e.value.getUTCMonth()+1).toString().padStart(2,"0")}-${e.value.getUTCDate().toString().padStart(2,"0")}`;case"datetime":return e.value.toISOString();case"time":return e.value.toISOString().split("T")[1].replace("Z","");case"geolocation":return t=e.value[0],r=e.value[1],t&&r||0===t||0===r?`${t.toFixed(6)}, ${r.toFixed(6)}`:"";default:return}var t,r};class h extends n{constructor(e,t){super(e,"NotImplementedError",t)}static throwError(e){throw new h(`Function ${e} not implemented yet.`,{name:e})}}const g=e=>Array.isArray(e)?e.map(e=>g(e)).join(", "):"string"!=typeof e?"":e.charAt(0).toUpperCase()+e.slice(1);class y extends n{constructor(e,t){super(e,"ArgumentError",t)}static throwWrongType(e,t,r){const n={function:e,expected:t,received:r},a=r||"Non-Salesforce";throw new y(`Incorrect parameter type for function '${e.toUpperCase()}()'. Expected ${g(t)}, received ${g(a)}`,n)}static throwIncorrectNumberOfArguments(e,t,r){const n={function:e,expected:t,received:r};throw new y(`Incorrect number of parameters for function '${e.toUpperCase()}()'. Expected ${t}, received ${r}`,n)}}const b=(e,t)=>{switch(e.dataType){case"date":case"datetime":return l(e.value.getTime()===t.value.getTime());default:return l(e.value===t.value)}},x=(e,t,r)=>l(e.value.substr(t.value-1,r.value)),T=(e,t)=>x(e,l(1),t);var $=Object.freeze({__proto__:null,sf$or:(...e)=>{const t=e.map(e=>e.value).reduce((e,t)=>e||t);return l(t)},sf$equal:b,sf$unequal:(e,t)=>l(!b(e,t).value),sf$greaterThan:(e,t)=>l(e.value>t.value),sf$greaterThanOrEqual:(e,t)=>l(e.value>=t.value),sf$lessThan:(e,t)=>l(e.value<t.value),sf$lessThanOrEqual:(e,t)=>l(e.value<=t.value),sf$addmonths:(e,t)=>c(((e,t)=>{const r=e.getUTCMonth()+t,n=new Date(Date.UTC(e.getUTCFullYear(),r,e.getUTCDate()));return e.getUTCDate()!==n.getUTCDate()&&n.setUTCDate(0),n})(e.value,t.value)),sf$date:(e,t,r)=>c(e.value,t.value,r.value),sf$datevalue:e=>c(new Date(Date.parse(e.value))),sf$datetimevalue:e=>p(Date.parse(`${e.value}Z`)),sf$day:e=>l(e.value.getUTCDate()),sf$hour:e=>l(e.value.getUTCHours()),sf$millisecond:e=>l(e.value.getUTCMilliseconds()),sf$minute:e=>l(e.value.getUTCMinutes()),sf$month:e=>l(e.value.getUTCMonth()+1),sf$now:()=>p((new Date).getTime()),sf$second:e=>l(e.value.getUTCSeconds()),sf$timenow:()=>d((new Date).getTime()%864e5),sf$timevalue:e=>(e=>{try{return r.parse(e)}catch(e){if(e instanceof r.SyntaxError)return l(null);throw e}})(e.value),sf$today:()=>c(new Date),sf$weekday:e=>l(e.value.getUTCDay()+1),sf$year:e=>l(e.value.getUTCFullYear()),sf$and:(...e)=>{const t=e.map(e=>e.value).reduce((e,t)=>e&&t);return l(t)},sf$blankvalue:(e,t)=>"null"===e.dataType||""===e.value||null===e.value||void 0===e.value||"multipicklist"===e.dataType&&!e.value.length?t:e,sf$case:(e,...t)=>{const r=t.length-1;if(r<=0){const e={function:"case",expected:4,received:r+2};throw new y(`Incorrect number of parameters for function '${e.function.toUpperCase()}()'. Expected ${e.expected}+, received ${e.received}`,e)}if(r%2!=0){const e={function:"case",expected:r+1,received:r+2};throw new y(`Incorrect number of parameters for function '${e.function.toUpperCase()}()'. Expected ${e.expected}, received ${e.received}`,e)}for(let n=0;n<r;n+=2)if(b(t[n],e).value)return t[n+1];return t[r]},sf$if:(e,t,r)=>e.value?t:r,sf$isblank:e=>l("null"===e.dataType||""===e.value||null===e.value||void 0===e.value||"multipicklist"===e.dataType&&!e.value.length),sf$isnull:e=>{h.throwError("isnull")},sf$isnumber:e=>{h.throwError("isnumber")},sf$not:e=>l(!e.value),sf$nullvalue:(e,t)=>{h.throwError("nullvalue")},sf$add:(e,t)=>{switch([e.dataType,t.dataType].join(" ")){case"date number":return c(v(e.value,t.value));case"number date":return c(v(t.value,e.value));case"time number":return d(e.value.getTime()+t.value);case"number time":return d(e.value+t.value.getTime());case"datetime number":return p(v(e.value,t.value));case"number datetime":return p(v(t.value,e.value));case"number number":case"text text":return l(e.value+t.value);default:y.throwWrongType("add","number",t.dataType)}},sf$subtract:(e,t)=>{switch([e.dataType,t.dataType].join(" ")){case"date number":return c(v(e.value,-1*t.value));case"time number":return d(e.value.getTime()+-1*t.value);case"datetime number":return p(v(e.value,-1*t.value));case"date date":case"datetime datetime":return l((r=e.value,n=t.value,(r.getTime()-n.getTime())/a));case"time time":return l(e.value.getTime()-t.value.getTime());case"number number":case"text text":return l(e.value-t.value);default:y.throwWrongType("subtract","number",t.dataType)}var r,n},sf$multiply:(e,t)=>l(e.value*t.value),sf$divide:(e,t)=>l(e.value/t.value),sf$exponentiate:(e,t)=>l(e.value**t.value),sf$abs:e=>l(Math.abs(e.value)),sf$ceiling:e=>e.value<0?l(-1*Math.ceil(-1*e.value)):l(Math.ceil(e.value)),sf$distance:(e,t,r)=>{const n=r.value;if("km"!==n&&"mi"!==n){throw new y(`Incorrect parameter value for function 'DISTANCE()'. Expected 'mi'/'km', received '${n}'`,{function:"distance",expected:["km","mi"],received:n})}const[a,u]=e.value,[i,o]=t.value;if(a===i&&u===o)return l(0);const s=a*Math.PI/180,c=i*Math.PI/180,p=(i-a)*Math.PI/180,d=(o-u)*Math.PI/180,f=Math.sin(p/2)*Math.sin(p/2)+Math.cos(s)*Math.cos(c)*Math.sin(d/2)*Math.sin(d/2),v=6371009*(2*Math.atan2(Math.sqrt(f),Math.sqrt(1-f)))/1e3;return l("mi"===n?v/1.609344:v)},sf$exp:e=>l(Math.exp(e.value)),sf$floor:e=>e.value<0?l(-1*Math.floor(-1*e.value)):l(Math.floor(e.value)),sf$geolocation:(e,t)=>((e,t)=>({type:"literal",dataType:"geolocation",value:[e,t],options:{}}))(e.value,t.value),sf$ln:e=>l(Math.log(e.value)),sf$log:e=>l(Math.log10(e.value)),sf$max:(...e)=>{const t=e.map(e=>e.value);return l(Math.max(...t))},sf$mceiling:e=>l(Math.ceil(e.value)),sf$mfloor:e=>l(Math.floor(e.value)),sf$min:(...e)=>{const t=e.map(e=>e.value);return l(Math.min(...t))},sf$mod:(e,t)=>l(e.value%t.value),sf$round:(e,t)=>l(u(e.value,t.value)),sf$sqrt:e=>l(Math.sqrt(e.value)),sf$begins:(e,t)=>l(e.value.startsWith(t.value)),sf$br:()=>l("\n"),sf$casesafeid:e=>{let t="";return[0,1,2].forEach(r=>{let n=0;[0,1,2,3,4].forEach(t=>{const a=e.value[5*r+t];a.toUpperCase()===a&&a>="A"&&a<="Z"&&(n+=1<<t)}),t+="ABCDEFGHIJKLMNOPQRSTUVWXYZ012345"[n]}),l(e.value+t)},sf$concat:(e,t)=>l(e.value+t.value),sf$contains:(e,t)=>l(e.value.includes(t.value)),sf$find:(e,t,r=l(1))=>{if(r.value<=0||""===e.value)return l(0);const n=t.value.substring(r.value-1);return l(n.indexOf(e.value)+1)},sf$getsessionid:()=>l("00D3z000001eRlg!AQMAQC3Y4aM9sFux6SRWhyFcOUKin4taGaBxNMU8TN_R_1R0Y7ArI95eSyzQZVIlrnV_unTbmwHZlXex8xhlXz2kXZNP49Fa"),sf$hyperlink:(e,t,r=null)=>{const n=r?` target="${r.value}"`:"";return l(`<a href="${e.value}"${n}>${t.value}</a>`)},sf$image:(e,t,r=null,n=null)=>{const a=r?` height="${r.value}"`:"",u=n?` width="${n.value}"`:"";return l(`<img src="${e.value}" alt="${t.value}"${a}${u}/>`)},sf$includes:(e,t)=>l(e.value.includes(t.value)),sf$ispickval:(e,t)=>l(e.value===t.value),sf$mid:x,sf$left:T,sf$len:e=>l(e.value.length),sf$lower:(e,t)=>l(e.value.toLowerCase()),sf$lpad:(e,t,r)=>{if(null==r)return e;if(t.value<e.value.length)return T(e,t);const n=r.value.repeat(t.value);return l((n+e.value).slice(-t.value))},sf$right:(e,t)=>l(e.value.substr(e.value.length-t.value)),sf$rpad:(e,t,r)=>{if(null==r)return e;if(t.value<e.value.length)return T(e,t);const n=r.value.repeat(t.value);return l((e.value+n).substr(0,t.value))},sf$substitute:(e,t,r)=>l(e.value.replace(new RegExp(t.value.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"g"),r.value)),sf$text:e=>"text"===e.dataType?e:"datetime"===e.dataType?l(m(e).replace("T"," ").replace(/\.\d{3}/,"")):l(m(e)),sf$trim:e=>l(e.value.trim()),sf$upper:(e,t)=>l(e.value.toUpperCase()),sf$value:e=>{const t=parseFloat(e.value);return l(t||null)},sf$currencyrate:e=>{h.throwError("currencyrate")},sf$regex:(e,t)=>{const r=new RegExp(`^${t.value}$`);return l(null!=r.exec(e.value))}});const C=e=>t=>r=>{r.length<e&&y.throwIncorrectNumberOfArguments(t,e,r.length)},w=e=>t=>r=>{r.length>e&&y.throwIncorrectNumberOfArguments(t,e,r.length)},A=(...e)=>t=>r=>{r.map((t,r)=>[t.dataType,e[r]||e[e.length-1]]).forEach(([e,r])=>{"null"!==e&&(Array.isArray(r)?-1===r.indexOf(e)&&y.throwWrongType(t,r,e):e!==r&&y.throwWrongType(t,r,e))})},k=()=>e=>t=>{t.length>0&&t.filter(e=>"null"!==e.dataType).reduce((t,r)=>(t.dataType!==r.dataType&&y.throwWrongType(e,t.dataType,r.dataType),r))};class E extends n{constructor(e,t){super(e,"NoFunctionError",t)}}const M={abs:{validations:[C(1),w(1),A("number")],returnType:"number"},add:{validations:[C(2),w(2),A(["number","text","date","datetime","time"],["number","text","date","datetime","time"])],returnType:["number","text","date","datetime","time"]},addmonths:{validations:[C(2),w(2),A(["date","datetime"],["number"])],returnType:["date","datetime"]},and:{validations:[C(1),A("checkbox")],returnType:"checkbox"},begins:{validations:[C(2),w(2),A("text","text")],returnType:"checkbox"},blankvalue:{validations:[C(2),w(2),A(["text","number","date","datetime","geolocation"]),k()],returnType:["text","number","date","datetime","geolocation"]},br:{validations:[C(0),w(0)],returnType:"text"},case:{validations:[C(4),A(["text","number","picklist","date","datetime"]),e=>t=>{const r="picklist"===t[0].dataType?"text":t[0].dataType,n=t.filter((e,r)=>r%2==1&&r!==t.length-1).find(e=>e.dataType!==r);n&&y.throwWrongType(e,r,n.dataType)}],returnType:["text","number","date","datetime"]},casesafeid:{validations:[C(1),w(1),A("text")],returnType:"text"},ceiling:{validations:[C(1),w(1),A("number")],returnType:"number"},contains:{validations:[C(2),w(2),A("text","text")],returnType:"checkbox"},currencyrate:{validations:[C(1),w(1),A("text")],returnType:"text"},date:{validations:[C(3),w(3),A("number","number","number")],returnType:"date"},datetimevalue:{validations:[C(1),w(1),A("text","date","datetime")],returnType:"datetime"},datevalue:{validations:[C(1),w(1),A(["text","date","datetime"])],returnType:"date"},day:{validations:[C(1),w(1),A("date")],returnType:"number"},distance:{validations:[C(3),w(3),A("geolocation","geolocation","text")],returnType:"number"},divide:{validations:[C(2),w(2),A("number","number")],returnType:"number"},equal:{validations:[C(2),w(2),A(["text","number","date","datetime","checkbox"]),k()],returnType:"checkbox"},exp:{validations:[C(1),w(1),A("number")],returnType:"number"},exponentiate:{validations:[C(2),w(2),A("number","number")],returnType:"number"},find:{validations:[C(2),w(3),A("text","text","number")],returnType:"number"},floor:{validations:[C(1),w(1),A("number")],returnType:"number"},geolocation:{validations:[C(2),w(2),A("number","number")],returnType:"geolocation"},getsessionid:{validations:[C(0),w(0)],returnType:"text"},greaterThan:{validations:[C(2),w(2),A(["number","date","datetime"]),k()],returnType:"checkbox"},greaterThanOrEqual:{validations:[C(2),w(2),A(["number","date","datetime"])],returnType:"checkbox"},hour:{validations:[C(1),w(1),A("datetime")],returnType:"number"},hyperlink:{validations:[C(2),w(3),A("text","text","text")],returnType:"text"},if:{validations:[C(3),w(3),A("checkbox",["text","number","date","datetime"],["text","number","date","datetime"])],returnType:["text","number","date","datetime"]},image:{validations:[C(2),w(4),A("text","text","number","number")],returnType:"text"},includes:{validations:[C(2),w(2),A("multipicklist","text")],returnType:"checkbox"},isblank:{validations:[C(1),w(1),A(["text","number","date","datetime","picklist","multipicklist","geolocation"])],returnType:"checkbox"},isnull:{validations:[C(1),w(1),A(["text","number"])],returnType:"checkbox"},ispickval:{validations:[C(2),w(2),A("picklist","text")],returnType:"checkbox"},isnumber:{validations:[C(1),w(1),A("text")],returnType:"checkbox"},left:{validations:[C(2),w(2),A("text","number")],returnType:"text"},len:{validations:[C(1),w(1),A("text")],returnType:"number"},lessThan:{validations:[C(2),w(2),A(["number","date","datetime"]),k()],returnType:"checkbox"},lessThanOrEqual:{validations:[C(2),w(2),A(["number","date","datetime"]),k()],returnType:"checkbox"},ln:{validations:[C(1),w(1),A("number")],returnType:"number"},log:{validations:[C(1),w(1),A("number")],returnType:"checkbox"},lower:{validations:[C(1),w(1),A("text")],returnType:"text"},lpad:{validations:[C(2),w(3),A("text","number","text")],returnType:"text"},max:{validations:[C(1),A("number")],returnType:"number"},mceiling:{validations:[C(1),w(1),A("number")],returnType:"number"},mfloor:{validations:[C(1),w(1),A("number")],returnType:"number"},mid:{validations:[C(3),w(3),A("text","number","number")],returnType:"number"},millisecond:{validations:[C(1),w(1),A("datetime")],returnType:"number"},min:{validations:[C(1),A("number")],returnType:"number"},minute:{validations:[C(1),w(1),A("datetime")],returnType:"number"},mod:{validations:[C(2),w(2),A("number","number")],returnType:"number"},month:{validations:[C(1),w(1),A("date")],returnType:"number"},multiply:{validations:[C(2),w(2),A("number","number")],returnType:"number"},not:{validations:[C(1),w(1),A("checkbox")],returnType:"checkbox"},now:{validations:[C(0),w(0)],returnType:"datetime"},nullvalue:{validations:[C(2),w(2),A(["text","number"],["text","number"])],returnType:["text","number"]},or:{validations:[C(1),A("checkbox")],returnType:"checkbox"},regex:{validations:[C(2),w(2),A("text","text")],returnType:"text"},right:{validations:[C(2),w(2),A("text","number")],returnType:"text"},round:{validations:[C(2),w(2),A("number","number")],returnType:"number"},rpad:{validations:[C(2),w(3),A("text","number","text")],returnType:"text"},second:{validations:[C(1),w(1),A("datetime")],returnType:"number"},sqrt:{validations:[C(1),w(1),A("number")],returnType:"number"},subtract:{validations:[C(2),w(2),A(["number","date","datetime","time"],["number","date","datetime","time"])],returnType:["number","date","datetime","time"]},substitute:{validations:[C(3),w(3),A("text","text","text")],returnType:"text"},text:{validations:[C(1),w(1),A(["number","date","datetime","picklist","time"])],returnType:"text"},timenow:{validations:[C(0),w(0)],returnType:"time"},timevalue:{validations:[C(1),w(1),A("text")],returnType:"time"},today:{validations:[C(0),w(0)],returnType:"date"},trim:{validations:[C(1),w(1),A("text")],returnType:"text"},unequal:{validations:[C(2),w(2),A(["text","number","date","datetime","checkbox"]),k()],returnType:"checkbox"},upper:{validations:[C(1),w(1),A("text")],returnType:"text"},value:{validations:[C(1),w(1),A("text")],returnType:"number"},weekday:{validations:[C(1),w(1),A("date")],returnType:"number"},year:{validations:[C(1),w(1),A("date")],returnType:"number"}};class U extends n{constructor(e,t){super(e,"ReferenceError",t)}}const S=e=>{switch(e.type){case"callExpression":return t=e.id,r=e.arguments.map(e=>S(e)),f(()=>{const e=r.find(e=>"error"===e.type);if(e)return e;const n=M[t];if(n)return n.validations.forEach(e=>e(t)(r)),$[`sf$${t}`](...r);throw new E(`Unknown function ${t.toUpperCase()}. Check spelling.`,{function:t})});case"identifier":throw new U(`Field ${e.name} does not exist. Check spelling.`,{identifier:e.name});default:return e}var t,r},F=e=>{try{return t.parse(null==e?"":e.trim())}catch(e){if(e instanceof t.SyntaxError)return s("SyntaxError","Syntax error.",{});throw e}},D=(e,t=[])=>{switch(e.type){case"callExpression":return e.arguments.map(e=>D(e,t)).reduce((e,t)=>e.concat(t),[]);case"identifier":return t.concat(e.name);default:return t}},O=(e,t)=>"callExpression"===e.type?{type:"callExpression",id:e.id,arguments:e.arguments.map(e=>O(e,t))}:"identifier"===e.type&&t[e.name]?{...t[e.name],type:"literal"}:e;e.extract=e=>{if(null==e||""===e.trim())return[];const t=F(e);return D(t).reduce((e,t)=>(e.indexOf(t)<0&&e.push(t),e),[])},e.parse=(e,t={})=>{if(null==e||""===e.trim())return l("");const r=F(e),n=Object.keys(t).reduce((e,r)=>{return{...e,[r]:(n=t[r],{...n,value:o(n.dataType,n.value,n.options)})};var n},{});return(e=>f(()=>S(e)))(O(r,n))},e.toString=e=>m(e),Object.defineProperty(e,"__esModule",{value:!0})});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@steedos/formula",
|
|
3
|
-
"version": "3.0.0-beta.
|
|
3
|
+
"version": "3.0.0-beta.71",
|
|
4
4
|
"description": "Salesforce Formula Parser",
|
|
5
5
|
"main": "lib/formulon.js",
|
|
6
6
|
"files": [
|
|
@@ -46,5 +46,5 @@
|
|
|
46
46
|
"publishConfig": {
|
|
47
47
|
"access": "public"
|
|
48
48
|
},
|
|
49
|
-
"gitHead": "
|
|
49
|
+
"gitHead": "32cf4e8cafda54a3e30a46a6506eaa021fa25fb7"
|
|
50
50
|
}
|