@steedos/formula 2.2.18 → 2.2.19
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.js +5 -5
- package/lib/formulon.lwc.min.js +1 -1
- package/lib/formulon.min.js +1 -1
- package/package.json +2 -2
package/lib/formulon.js
CHANGED
|
@@ -3695,10 +3695,10 @@ const build = (formula) => {
|
|
|
3695
3695
|
|
|
3696
3696
|
const traverse = (ast) => handleFormulonError(() => traverseAndThrow(ast));
|
|
3697
3697
|
|
|
3698
|
-
const extract = (ast, state = []) => {
|
|
3698
|
+
const extract$1 = (ast, state = []) => {
|
|
3699
3699
|
switch (ast.type) {
|
|
3700
3700
|
case 'callExpression':
|
|
3701
|
-
return ast.arguments.map((arg) => extract(arg, state)).reduce((a, b) => a.concat(b), []);
|
|
3701
|
+
return ast.arguments.map((arg) => extract$1(arg, state)).reduce((a, b) => a.concat(b), []);
|
|
3702
3702
|
case 'identifier':
|
|
3703
3703
|
return state.concat(ast.name);
|
|
3704
3704
|
default:
|
|
@@ -3743,17 +3743,17 @@ const parse = (formula, substitutions = {}) => {
|
|
|
3743
3743
|
return traverse(replace(ast, coercedSubstitions));
|
|
3744
3744
|
};
|
|
3745
3745
|
|
|
3746
|
-
const extract
|
|
3746
|
+
const extract = (formula) => {
|
|
3747
3747
|
if (formula == null || formula.trim() === '') {
|
|
3748
3748
|
return [];
|
|
3749
3749
|
}
|
|
3750
3750
|
|
|
3751
3751
|
const ast = build(formula);
|
|
3752
|
-
return arrayUnique(extract(ast));
|
|
3752
|
+
return arrayUnique(extract$1(ast));
|
|
3753
3753
|
};
|
|
3754
3754
|
|
|
3755
3755
|
const toString = (literal) => formatLiteral(literal);
|
|
3756
3756
|
|
|
3757
|
-
exports.extract = extract
|
|
3757
|
+
exports.extract = extract;
|
|
3758
3758
|
exports.parse = parse;
|
|
3759
3759
|
exports.toString = toString;
|
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:Ce},i=Ce,o=ye("(",!1),l=ye(")",!1),s=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(Pe(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(Pe(e,a,n))}return r.pop()}([e,t].flat(2))},c=ye("^",!1),p=ye("*",!1),d=ye("/",!1),f="+",v=ye("+",!1),m="-",h=ye("-",!1),g="<=",y=ye("<=",!1),b=">=",x=ye(">=",!1),T="<>",$=ye("<>",!1),C=ye("<",!1),w=ye(">",!1),A="==",k=ye("==",!1),E=ye("=",!1),M="!=",U=ye("!=",!1),S="&&",F=ye("&&",!1),D="||",O=ye("||",!1),I=ye("&",!1),N=ye("!",!1),q=",",j=ye(",",!1),R=/^[A-Za-z]/,W=be([["A","Z"],["a","z"]],!1,!1),Z=ye("_",!1),_=ye("$",!1),L=ye(".",!1),Y=function(e){return function(e){return{type:"literal",value:e.join(""),dataType:"text",options:{length:e.length}}}(e)},z=ye("0",!1),P=/^[0-9]/,Q=be([["0","9"]],!1,!1),X=/^[1-9]/,H=be([["1","9"]],!1,!1),V=ye("true",!0),B=ye("false",!0),G=ye("null",!0),K=ye("\\",!1),J=ye("'",!1),ee=ye('"',!1),te={type:"any"},re=/^[\n\r\u2028\u2029]/,ne=be(["\n","\r","\u2028","\u2029"],!1,!1),ae=ye("\t",!1),ue=ye("\v",!1),ie=ye("\f",!1),oe=ye(" ",!1),le=ye(" ",!1),se=ye("",!1),ce=ye("\ufeff",!1),pe=0,de=0,fe=[{line:1,column:1}],ve=0,me=[],he=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 ge(){return t.substring(de,pe)}function ye(e,t){return{type:"literal",text:e,ignoreCase:t}}function be(e,t,r){return{type:"class",parts:e,inverted:t,ignoreCase:r}}function xe(e){var r,n=fe[e];if(n)return n;for(r=e-1;!fe[r];)r--;for(n={line:(n=fe[r]).line,column:n.column};r<e;)10===t.charCodeAt(r)?(n.line++,n.column=1):n.column++,r++;return fe[e]=n,n}function Te(e,t){var r=xe(e),n=xe(t);return{start:{offset:e,line:r.line,column:r.column},end:{offset:t,line:n.line,column:n.column}}}function $e(e){pe<ve||(pe>ve&&(ve=pe,me=[]),me.push(e))}function Ce(){return we()}function we(){var e;return(e=Ue())===a&&(e=function(){var e,r;e=pe,function(){var e;33===t.charCodeAt(pe)?(e="!",pe++):(e=a,0===he&&$e(N));return e}()!==a&&Le()!==a&&(r=we())!==a?(de=e,e={type:"callExpression",id:"not",arguments:[r]}):(pe=e,e=a);return e}())===a&&(e=ke())===a&&(e=Fe())===a&&(e=Ie()),e}function Ae(){var e,r,n,u;return(e=ke())===a&&(e=Fe())===a&&(e=Ie())===a&&(e=pe,40===t.charCodeAt(pe)?(r="(",pe++):(r=a,0===he&&$e(o)),r!==a&&Le()!==a&&(n=Ee())!==a&&Le()!==a?(41===t.charCodeAt(pe)?(u=")",pe++):(u=a,0===he&&$e(l)),u!==a?(de=e,e=r=n):(pe=e,e=a)):(pe=e,e=a)),e}function ke(){var e,r,n,u;return e=pe,(r=function(){var e,r,n;e=pe,r=[],R.test(t.charAt(pe))?(n=t.charAt(pe),pe++):(n=a,0===he&&$e(W));if(n!==a)for(;n!==a;)r.push(n),R.test(t.charAt(pe))?(n=t.charAt(pe),pe++):(n=a,0===he&&$e(W));else r=a;r!==a&&(de=e,r=r.join("").toLowerCase());return e=r}())!==a&&Le()!==a&&(n=function(){var e,r,n,u,i;e=pe,40===t.charCodeAt(pe)?(r="(",pe++):(r=a,0===he&&$e(o));r!==a&&Le()!==a?(n=pe,(u=function(){var e,r,n,u,i;e=pe,r=[],n=pe,(u=we())!==a&&Le()!==a?(44===t.charCodeAt(pe)?(i=q,pe++):(i=a,0===he&&$e(j)),i===a&&(i=null),i!==a&&Le()!==a?(de=n,n=u=u):(pe=n,n=a)):(pe=n,n=a);if(n!==a)for(;n!==a;)r.push(n),n=pe,(u=we())!==a&&Le()!==a?(44===t.charCodeAt(pe)?(i=q,pe++):(i=a,0===he&&$e(j)),i===a&&(i=null),i!==a&&Le()!==a?(de=n,n=u=u):(pe=n,n=a)):(pe=n,n=a);else r=a;r!==a&&(de=e,r=r);return e=r}())!==a&&(i=Le())!==a?n=u=[u,i]:(pe=n,n=a),n===a&&(n=null),n!==a?(41===t.charCodeAt(pe)?(u=")",pe++):(u=a,0===he&&$e(l)),u!==a?(de=e,e=r=n):(pe=e,e=a)):(pe=e,e=a)):(pe=e,e=a);return e}())!==a?(de=e,e=r={type:"callExpression",id:r,arguments:(u=n,null!==u?u[0]:[])}):(pe=e,e=a),e}function Ee(){var e,t,r,n;if(e=pe,(t=Ae())!==a)if(Le()!==a){for(r=[],n=Me();n!==a;)r.push(n),n=Me();r!==a?(de=e,e=t=s(t,r)):(pe=e,e=a)}else pe=e,e=a;else pe=e,e=a;return e}function Me(){var e,r,n,u,i;return e=pe,Le()!==a&&(r=function(){var e;94===t.charCodeAt(pe)?(e="^",pe++):(e=a,0===he&&$e(c));e===a&&(42===t.charCodeAt(pe)?(e="*",pe++):(e=a,0===he&&$e(p)),e===a&&(47===t.charCodeAt(pe)?(e="/",pe++):(e=a,0===he&&$e(d)),e===a&&(43===t.charCodeAt(pe)?(e=f,pe++):(e=a,0===he&&$e(v)),e===a&&(45===t.charCodeAt(pe)?(e=m,pe++):(e=a,0===he&&$e(h))))));return e}())!==a&&Le()!==a&&(n=Ae())!==a?(de=e,u=r,i=n,e=[Object.assign({type:"operator"},ze[u]),i]):(pe=e,e=a),e}function Ue(){var e,r,n,u;return e=pe,(r=Se())!==a&&Le()!==a&&(n=function(){var e;t.substr(pe,2)===S?(e=S,pe+=2):(e=a,0===he&&$e(F));e===a&&(t.substr(pe,2)===D?(e=D,pe+=2):(e=a,0===he&&$e(O)));return e}())!==a&&Le()!==a&&(u=Ue())!==a?(de=e,e=r=function(e,t,r){var n;switch(t){case"||":n="or";break;case"&&":n="and"}return{type:"callExpression",id:n,arguments:[e,r]}}(r,n,u)):(pe=e,e=a),e===a&&(e=Se()),e}function Se(){var e,r,n,u;return e=pe,(r=Ee())!==a&&Le()!==a?((n=function(){var e;t.substr(pe,2)===g?(e=g,pe+=2):(e=a,0===he&&$e(y));e===a&&(t.substr(pe,2)===b?(e=b,pe+=2):(e=a,0===he&&$e(x)),e===a&&(t.substr(pe,2)===T?(e=T,pe+=2):(e=a,0===he&&$e($)),e===a&&(60===t.charCodeAt(pe)?(e="<",pe++):(e=a,0===he&&$e(C)),e===a&&(62===t.charCodeAt(pe)?(e=">",pe++):(e=a,0===he&&$e(w)),e===a&&(t.substr(pe,2)===A?(e=A,pe+=2):(e=a,0===he&&$e(k)),e===a&&(61===t.charCodeAt(pe)?(e="=",pe++):(e=a,0===he&&$e(E)),e===a&&(t.substr(pe,2)===M?(e=M,pe+=2):(e=a,0===he&&$e(U)))))))));return e}())===a&&(n=function(){var e;38===t.charCodeAt(pe)?(e="&",pe++):(e=a,0===he&&$e(I));return e}()),n!==a&&Le()!==a&&(u=Se())!==a?(de=e,e=r=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]}}(r,n,u)):(pe=e,e=a)):(pe=e,e=a),e===a&&(e=Ee()),e}function Fe(){var e,t,r;return e=pe,t=pe,he++,r=function(){var e;(e=je())===a&&(e=Re());return e}(),he--,r===a?t=void 0:(pe=t,t=a),t!==a&&(r=function(){var e,t,r,n;if(e=pe,(t=De())!==a){for(r=[],n=Oe();n!==a;)r.push(n),n=Oe();r!==a?(de=e,e=t={type:"identifier",name:t+r.join("")}):(pe=e,e=a)}else pe=e,e=a;return e}())!==a?(de=e,e=t=r):(pe=e,e=a),e}function De(){var e;return 95===t.charCodeAt(pe)?(e="_",pe++):(e=a,0===he&&$e(Z)),e===a&&(36===t.charCodeAt(pe)?(e="$",pe++):(e=a,0===he&&$e(_)),e===a&&(R.test(t.charAt(pe))?(e=t.charAt(pe),pe++):(e=a,0===he&&$e(W)))),e}function Oe(){var e;return(e=De())===a&&(46===t.charCodeAt(pe)?(e=".",pe++):(e=a,0===he&&$e(L)),e===a&&(e=qe())),e}function Ie(){var e;return(e=function(){var e,t,r;if(e=pe,Ze()!==a){for(t=[],(r=We())===a&&(r=_e());r!==a;)t.push(r),(r=We())===a&&(r=_e());t!==a&&(r=Ze())!==a?(de=e,e=Y(t)):(pe=e,e=a)}else pe=e,e=a;if(e===a)if(e=pe,_e()!==a){for(t=[],(r=We())===a&&(r=Ze());r!==a;)t.push(r),(r=We())===a&&(r=Ze());t!==a&&(r=_e())!==a?(de=e,e=Y(t)):(pe=e,e=a)}else pe=e,e=a;return e}())===a&&(e=function(){var e,r,n,u,i,o;e=pe,r=pe,(n=Le())!==a?(43===t.charCodeAt(pe)?(u=f,pe++):(u=a,0===he&&$e(v)),u!==a?r=n=[n,u]:(pe=r,r=a)):(pe=r,r=a);r===a&&(r=pe,45===t.charCodeAt(pe)?(n=m,pe++):(n=a,0===he&&$e(h)),n!==a&&(u=Le())!==a?r=n=[n,u]:(pe=r,r=a));r===a&&(r=null);if(r!==a)if((n=Ne())!==a)if(46===t.charCodeAt(pe)?(u=".",pe++):(u=a,0===he&&$e(L)),u!==a){for(i=[],o=qe();o!==a;)i.push(o),o=qe();i!==a?(de=e,l=ge().replace(/[\+\-]/g,"").split("."),e=r={type:"literal",value:parseFloat(ge()),dataType:"number",options:{length:l[0].length,scale:l[1].length}}):(pe=e,e=a)}else pe=e,e=a;else pe=e,e=a;else pe=e,e=a;var l;e===a&&(e=pe,r=pe,(n=Le())!==a?(43===t.charCodeAt(pe)?(u=f,pe++):(u=a,0===he&&$e(v)),u!==a?r=n=[n,u]:(pe=r,r=a)):(pe=r,r=a),r===a&&(r=pe,45===t.charCodeAt(pe)?(n=m,pe++):(n=a,0===he&&$e(h)),n!==a&&(u=Le())!==a?r=n=[n,u]:(pe=r,r=a)),r===a&&(r=null),r!==a&&(n=Ne())!==a?(de=e,e=r={type:"literal",value:parseInt(ge()),dataType:"number",options:{length:ge().replace(/[\+\-]/g,"").length,scale:0}}):(pe=e,e=a));return e}())===a&&(e=je())===a&&(e=Re()),e}function Ne(){var e,r,n,u;if(48===t.charCodeAt(pe)?(e="0",pe++):(e=a,0===he&&$e(z)),e===a)if(e=pe,(r=function(){var e;X.test(t.charAt(pe))?(e=t.charAt(pe),pe++):(e=a,0===he&&$e(H));return e}())!==a){for(n=[],u=qe();u!==a;)n.push(u),u=qe();n!==a?e=r=[r,n]:(pe=e,e=a)}else pe=e,e=a;return e}function qe(){var e;return P.test(t.charAt(pe))?(e=t.charAt(pe),pe++):(e=a,0===he&&$e(Q)),e}function je(){var e,r;return e=pe,"true"===t.substr(pe,4).toLowerCase()?(r=t.substr(pe,4),pe+=4):(r=a,0===he&&$e(V)),r!==a&&(de=e,r={type:"literal",value:!0,dataType:"checkbox",options:{}}),(e=r)===a&&(e=pe,"false"===t.substr(pe,5).toLowerCase()?(r=t.substr(pe,5),pe+=5):(r=a,0===he&&$e(B)),r!==a&&(de=e,r={type:"literal",value:!1,dataType:"checkbox",options:{}}),e=r),e}function Re(){var e,r;return e=pe,"null"===t.substr(pe,4).toLowerCase()?(r=t.substr(pe,4),pe+=4):(r=a,0===he&&$e(G)),r!==a&&(de=e,r={type:"literal",value:null,dataType:"null",options:{}}),e=r}function We(){var e,r,n;return e=pe,r=pe,he++,(n=function(){var e;(e=Ze())===a&&(e=_e());return e}())===a&&(92===t.charCodeAt(pe)?(n="\\",pe++):(n=a,0===he&&$e(K))),he--,n===a?r=void 0:(pe=r,r=a),r!==a&&(n=function(){var e;t.length>pe?(e=t.charAt(pe),pe++):(e=a,0===he&&$e(te));return e}())!==a?(de=e,e=r=ge()):(pe=e,e=a),e}function Ze(){var e;return 39===t.charCodeAt(pe)?(e="'",pe++):(e=a,0===he&&$e(J)),e}function _e(){var e;return 34===t.charCodeAt(pe)?(e='"',pe++):(e=a,0===he&&$e(ee)),e}function Le(){var e,t;for(e=[],t=Ye();t!==a;)e.push(t),t=Ye();return e}function Ye(){var e;return 9===t.charCodeAt(pe)?(e="\t",pe++):(e=a,0===he&&$e(ae)),e===a&&(e=function(){var e;return re.test(t.charAt(pe))?(e=t.charAt(pe),pe++):(e=a,0===he&&$e(ne)),e}())===a&&(11===t.charCodeAt(pe)?(e="\v",pe++):(e=a,0===he&&$e(ue)),e===a&&(12===t.charCodeAt(pe)?(e="\f",pe++):(e=a,0===he&&$e(ie)),e===a&&(32===t.charCodeAt(pe)?(e=" ",pe++):(e=a,0===he&&$e(oe)),e===a&&(160===t.charCodeAt(pe)?(e=" ",pe++):(e=a,0===he&&$e(le)),e===a&&(8203===t.charCodeAt(pe)?(e="",pe++):(e=a,0===he&&$e(se)),e===a&&(65279===t.charCodeAt(pe)?(e="\ufeff",pe++):(e=a,0===he&&$e(ce)))))))),e}const ze={"^":{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 Pe(e,t,r){return{type:"callExpression",id:e.functionName,arguments:[t,r]}}if((n=i())!==a&&pe===t.length)return n;throw n!==a&&pe<t.length&&$e({type:"end"}),Qe=me,Xe=ve<t.length?t.charAt(ve):null,He=ve<t.length?Te(ve,ve+1):Te(ve,ve),new e(e.buildMessage(Qe,Xe),Qe,Xe,He);var Qe,Xe,He}}}(),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:k},s=k,c=$(":",!1),p=$(".",!1),d=function(e,t,r,n){return function(e,t,r,n){e>23&&T("hour part needs to be under 24");t>59&&T("minute part needs to be under 60");r>59&&T("second part needs to be under 60");n>999&&T("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:{}}},f=function(){return parseInt(t.substring(g,h))},v=/^[0-9]/,m={type:"class",parts:[["0","9"]],inverted:!1,ignoreCase:!1},h=0,g=0,y=[{line:1,column:1}],b=0,x=[];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 T(t,r){throw function(t,r){return new e(t,null,null,r)}(t,r=void 0!==r?r:w(g,h))}function $(e,t){return{type:"literal",text:e,ignoreCase:t}}function C(e){var r,n=y[e];if(n)return n;for(r=e-1;!y[r];)r--;for(n={line:(n=y[r]).line,column:n.column};r<e;)10===t.charCodeAt(r)?(n.line++,n.column=1):n.column++,r++;return y[e]=n,n}function w(e,t){var r=C(e),n=C(t);return{start:{offset:e,line:r.line,column:r.column},end:{offset:t,line:n.line,column:n.column}}}function A(e){h<b||(h>b&&(b=h,x=[]),x.push(e))}function k(){var e,r,n,a,u,i,l,s;return e=h,(r=function(){var e;e=h,E()!==o&&E()!==o?(g=e,e=f()):(h=e,e=o);return e}())!==o?(58===t.charCodeAt(h)?(n=":",h++):(n=o,A(c)),n!==o&&(a=function(){var e;e=h,E()!==o&&E()!==o?(g=e,e=f()):(h=e,e=o);return e}())!==o?(58===t.charCodeAt(h)?(u=":",h++):(u=o,A(c)),u!==o&&(i=function(){var e;e=h,E()!==o&&E()!==o?(g=e,e=f()):(h=e,e=o);return e}())!==o?(46===t.charCodeAt(h)?(l=".",h++):(l=o,A(p)),l!==o&&(s=function(){var e;e=h,E()!==o&&E()!==o&&E()!==o?(g=e,e=f()):(h=e,e=o);return e}())!==o?(g=e,e=r=d(r,a,i,s)):(h=e,e=o)):(h=e,e=o)):(h=e,e=o)):(h=e,e=o),e}function E(){var e;return v.test(t.charAt(h))?(e=t.charAt(h),h++):(e=o,A(m)),e}if((n=s())!==o&&h===t.length)return n;throw n!==o&&h<t.length&&A({type:"end"}),a=x,u=b<t.length?t.charAt(b):null,i=b<t.length?w(b,b+1):w(b,b),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=(e,t)=>{if(e<0)return-1*n(-1*e,t);const r=10**t;return Math.round(e*r)/r},a=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}},u=(e,t,r)=>{switch(e){case"number":return"number"==typeof t?n(t,r.scale):null;case"text":return t.substring(0,r.length);default:return t}},i=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:a(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}'`)}},o=(e,t,r)=>({type:"error",errorType:e,message:t,...r}),l=(e,t,r)=>e instanceof Date?l(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate()):{type:"literal",dataType:"date",value:new Date(Date.UTC(e,t-1,r)),options:{}},s=e=>({type:"literal",dataType:"datetime",value:new Date(e),options:{}}),c=e=>({type:"literal",dataType:"time",value:new Date(e),options:{}}),p=e=>{try{return e()}catch(e){if(e instanceof r)return o(e.errorType,e.message,e.options);throw e}},d=(e,t)=>new Date(e.getTime()+864e5*t),f=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":return e.value.toString();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 v extends r{constructor(e,t){super(e,"NotImplementedError",t)}static throwError(e){throw new v(`Function ${e} not implemented yet.`,{name:e})}}const m=e=>Array.isArray(e)?e.map((e=>m(e))).join(", "):"string"!=typeof e?"":e.charAt(0).toUpperCase()+e.slice(1);class h 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 h(`Incorrect parameter type for function '${e.toUpperCase()}()'. Expected ${m(t)}, received ${m(a)}`,n)}static throwIncorrectNumberOfArguments(e,t,r){const n={function:e,expected:t,received:r};throw new h(`Incorrect number of parameters for function '${e.toUpperCase()}()'. Expected ${t}, received ${r}`,n)}}const g=(e,t)=>{switch(e.dataType){case"date":case"datetime":return i(e.value.getTime()===t.value.getTime());default:return i(e.value===t.value)}},y=(e,t,r)=>i(e.value.substr(t.value-1,r.value)),b=(e,t)=>y(e,i(1),t);var x=Object.freeze({__proto__:null,sf$or:(...e)=>{const t=e.map((e=>e.value)).reduce(((e,t)=>e||t));return i(t)},sf$equal:g,sf$unequal:(e,t)=>i(!g(e,t).value),sf$greaterThan:(e,t)=>i(e.value>t.value),sf$greaterThanOrEqual:(e,t)=>i(e.value>=t.value),sf$lessThan:(e,t)=>i(e.value<t.value),sf$lessThanOrEqual:(e,t)=>i(e.value<=t.value),sf$addmonths:(e,t)=>l(((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)=>l(e.value,t.value,r.value),sf$datevalue:e=>l(new Date(Date.parse(e.value))),sf$datetimevalue:e=>s(Date.parse(`${e.value}Z`)),sf$day:e=>i(e.value.getUTCDate()),sf$hour:e=>i(e.value.getUTCHours()),sf$millisecond:e=>i(e.value.getUTCMilliseconds()),sf$minute:e=>i(e.value.getUTCMinutes()),sf$month:e=>i(e.value.getUTCMonth()+1),sf$now:()=>s((new Date).getTime()),sf$second:e=>i(e.value.getUTCSeconds()),sf$timenow:()=>c((new Date).getTime()%864e5),sf$timevalue:e=>(e=>{try{return t.parse(e)}catch(e){if(e instanceof t.SyntaxError)return i(null);throw e}})(e.value),sf$today:()=>l(new Date),sf$weekday:e=>i(e.value.getUTCDay()+1),sf$year:e=>i(e.value.getUTCFullYear()),sf$and:(...e)=>{const t=e.map((e=>e.value)).reduce(((e,t)=>e&&t));return i(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 h(`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 h(`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(g(t[n],e).value)return t[n+1];return t[r]},sf$if:(e,t,r)=>e.value?t:r,sf$isblank:e=>i("null"===e.dataType||""===e.value||null===e.value||void 0===e.value||"multipicklist"===e.dataType&&!e.value.length),sf$isnull:e=>{v.throwError("isnull")},sf$isnumber:e=>{v.throwError("isnumber")},sf$not:e=>i(!e.value),sf$nullvalue:(e,t)=>{v.throwError("nullvalue")},sf$add:(e,t)=>{switch([e.dataType,t.dataType].join(" ")){case"date number":return l(d(e.value,t.value));case"number date":return l(d(t.value,e.value));case"time number":return c(e.value.getTime()+t.value);case"number time":return c(e.value+t.value.getTime());case"datetime number":return s(d(e.value,t.value));case"number datetime":return s(d(t.value,e.value));case"number number":case"text text":return i(e.value+t.value);default:h.throwWrongType("add","number",t.dataType)}},sf$subtract:(e,t)=>{switch([e.dataType,t.dataType].join(" ")){case"date number":return l(d(e.value,-1*t.value));case"time number":return c(e.value.getTime()+-1*t.value);case"datetime number":return s(d(e.value,-1*t.value));case"date date":case"datetime datetime":return i((r=e.value,n=t.value,(r.getTime()-n.getTime())/864e5));case"time time":return i(e.value.getTime()-t.value.getTime());case"number number":case"text text":return i(e.value-t.value);default:h.throwWrongType("subtract","number",t.dataType)}var r,n},sf$multiply:(e,t)=>i(e.value*t.value),sf$divide:(e,t)=>i(e.value/t.value),sf$exponentiate:(e,t)=>i(e.value**t.value),sf$abs:e=>i(Math.abs(e.value)),sf$ceiling:e=>e.value<0?i(-1*Math.ceil(-1*e.value)):i(Math.ceil(e.value)),sf$distance:(e,t,r)=>{const n=r.value;if("km"!==n&&"mi"!==n){throw new h(`Incorrect parameter value for function 'DISTANCE()'. Expected 'mi'/'km', received '${n}'`,{function:"distance",expected:["km","mi"],received:n})}const[a,u]=e.value,[o,l]=t.value;if(a===o&&u===l)return i(0);const s=a*Math.PI/180,c=o*Math.PI/180,p=(o-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 i("mi"===n?v/1.609344:v)},sf$exp:e=>i(Math.exp(e.value)),sf$floor:e=>e.value<0?i(-1*Math.floor(-1*e.value)):i(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=>i(Math.log(e.value)),sf$log:e=>i(Math.log10(e.value)),sf$max:(...e)=>{const t=e.map((e=>e.value));return i(Math.max(...t))},sf$mceiling:e=>i(Math.ceil(e.value)),sf$mfloor:e=>i(Math.floor(e.value)),sf$min:(...e)=>{const t=e.map((e=>e.value));return i(Math.min(...t))},sf$mod:(e,t)=>i(e.value%t.value),sf$round:(e,t)=>i(n(e.value,t.value)),sf$sqrt:e=>i(Math.sqrt(e.value)),sf$begins:(e,t)=>i(e.value.startsWith(t.value)),sf$br:()=>i("\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]})),i(e.value+t)},sf$concat:(e,t)=>i(e.value+t.value),sf$contains:(e,t)=>i(e.value.includes(t.value)),sf$find:(e,t,r=i(1))=>{if(r.value<=0||""===e.value)return i(0);const n=t.value.substring(r.value-1);return i(n.indexOf(e.value)+1)},sf$getsessionid:()=>i("00D3z000001eRlg!AQMAQC3Y4aM9sFux6SRWhyFcOUKin4taGaBxNMU8TN_R_1R0Y7ArI95eSyzQZVIlrnV_unTbmwHZlXex8xhlXz2kXZNP49Fa"),sf$hyperlink:(e,t,r=null)=>{const n=r?` target="${r.value}"`:"";return i(`<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 i(`<img src="${e.value}" alt="${t.value}"${a}${u}/>`)},sf$includes:(e,t)=>i(e.value.includes(t.value)),sf$ispickval:(e,t)=>i(e.value===t.value),sf$mid:y,sf$left:b,sf$len:e=>i(e.value.length),sf$lower:(e,t)=>i(e.value.toLowerCase()),sf$lpad:(e,t,r)=>{if(null==r)return e;if(t.value<e.value.length)return b(e,t);const n=r.value.repeat(t.value);return i((n+e.value).slice(-t.value))},sf$right:(e,t)=>i(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 b(e,t);const n=r.value.repeat(t.value);return i((e.value+n).substr(0,t.value))},sf$substitute:(e,t,r)=>i(e.value.replace(new RegExp(t.value.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"g"),r.value)),sf$text:e=>"text"===e.dataType?e:"datetime"===e.dataType?i(f(e).replace("T"," ").replace(/\.\d{3}/,"")):i(f(e)),sf$trim:e=>i(e.value.trim()),sf$upper:(e,t)=>i(e.value.toUpperCase()),sf$value:e=>{const t=parseFloat(e.value);return i(t||null)},sf$currencyrate:e=>{v.throwError("currencyrate")},sf$regex:(e,t)=>{const r=new RegExp(`^${t.value}$`);return i(null!=r.exec(e.value))}});const T=e=>t=>r=>{r.length<e&&h.throwIncorrectNumberOfArguments(t,e,r.length)},$=e=>t=>r=>{r.length>e&&h.throwIncorrectNumberOfArguments(t,e,r.length)},C=(...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)&&h.throwWrongType(t,r,e):e!==r&&h.throwWrongType(t,r,e))}))},w=()=>e=>t=>{t.length>0&&t.filter((e=>"null"!==e.dataType)).reduce(((t,r)=>(t.dataType!==r.dataType&&h.throwWrongType(e,t.dataType,r.dataType),r)))};class A extends r{constructor(e,t){super(e,"NoFunctionError",t)}}const k={abs:{validations:[T(1),$(1),C("number")],returnType:"number"},add:{validations:[T(2),$(2),C(["number","text","date","datetime","time"],["number","text","date","datetime","time"])],returnType:["number","text","date","datetime","time"]},addmonths:{validations:[T(2),$(2),C(["date","datetime"],["number"])],returnType:["date","datetime"]},and:{validations:[T(1),C("checkbox")],returnType:"checkbox"},begins:{validations:[T(2),$(2),C("text","text")],returnType:"checkbox"},blankvalue:{validations:[T(2),$(2),C(["text","number","date","datetime","geolocation"]),w()],returnType:["text","number","date","datetime","geolocation"]},br:{validations:[T(0),$(0)],returnType:"text"},case:{validations:[T(4),C(["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&&h.throwWrongType(e,r,n.dataType)}],returnType:["text","number","date","datetime"]},casesafeid:{validations:[T(1),$(1),C("text")],returnType:"text"},ceiling:{validations:[T(1),$(1),C("number")],returnType:"number"},contains:{validations:[T(2),$(2),C("text","text")],returnType:"checkbox"},currencyrate:{validations:[T(1),$(1),C("text")],returnType:"text"},date:{validations:[T(3),$(3),C("number","number","number")],returnType:"date"},datetimevalue:{validations:[T(1),$(1),C("text","date","datetime")],returnType:"datetime"},datevalue:{validations:[T(1),$(1),C(["text","date","datetime"])],returnType:"date"},day:{validations:[T(1),$(1),C("date")],returnType:"number"},distance:{validations:[T(3),$(3),C("geolocation","geolocation","text")],returnType:"number"},divide:{validations:[T(2),$(2),C("number","number")],returnType:"number"},equal:{validations:[T(2),$(2),C(["text","number","date","datetime","checkbox"]),w()],returnType:"checkbox"},exp:{validations:[T(1),$(1),C("number")],returnType:"number"},exponentiate:{validations:[T(2),$(2),C("number","number")],returnType:"number"},find:{validations:[T(2),$(3),C("text","text","number")],returnType:"number"},floor:{validations:[T(1),$(1),C("number")],returnType:"number"},geolocation:{validations:[T(2),$(2),C("number","number")],returnType:"geolocation"},getsessionid:{validations:[T(0),$(0)],returnType:"text"},greaterThan:{validations:[T(2),$(2),C(["number","date","datetime"]),w()],returnType:"checkbox"},greaterThanOrEqual:{validations:[T(2),$(2),C(["number","date","datetime"])],returnType:"checkbox"},hour:{validations:[T(1),$(1),C("datetime")],returnType:"number"},hyperlink:{validations:[T(2),$(3),C("text","text","text")],returnType:"text"},if:{validations:[T(3),$(3),C("checkbox",["text","number","date","datetime"],["text","number","date","datetime"])],returnType:["text","number","date","datetime"]},image:{validations:[T(2),$(4),C("text","text","number","number")],returnType:"text"},includes:{validations:[T(2),$(2),C("multipicklist","text")],returnType:"checkbox"},isblank:{validations:[T(1),$(1),C(["text","number","date","datetime","picklist","multipicklist","geolocation"])],returnType:"checkbox"},isnull:{validations:[T(1),$(1),C(["text","number"])],returnType:"checkbox"},ispickval:{validations:[T(2),$(2),C("picklist","text")],returnType:"checkbox"},isnumber:{validations:[T(1),$(1),C("text")],returnType:"checkbox"},left:{validations:[T(2),$(2),C("text","number")],returnType:"text"},len:{validations:[T(1),$(1),C("text")],returnType:"number"},lessThan:{validations:[T(2),$(2),C(["number","date","datetime"]),w()],returnType:"checkbox"},lessThanOrEqual:{validations:[T(2),$(2),C(["number","date","datetime"]),w()],returnType:"checkbox"},ln:{validations:[T(1),$(1),C("number")],returnType:"number"},log:{validations:[T(1),$(1),C("number")],returnType:"checkbox"},lower:{validations:[T(1),$(1),C("text")],returnType:"text"},lpad:{validations:[T(2),$(3),C("text","number","text")],returnType:"text"},max:{validations:[T(1),C("number")],returnType:"number"},mceiling:{validations:[T(1),$(1),C("number")],returnType:"number"},mfloor:{validations:[T(1),$(1),C("number")],returnType:"number"},mid:{validations:[T(3),$(3),C("text","number","number")],returnType:"number"},millisecond:{validations:[T(1),$(1),C("datetime")],returnType:"number"},min:{validations:[T(1),C("number")],returnType:"number"},minute:{validations:[T(1),$(1),C("datetime")],returnType:"number"},mod:{validations:[T(2),$(2),C("number","number")],returnType:"number"},month:{validations:[T(1),$(1),C("date")],returnType:"number"},multiply:{validations:[T(2),$(2),C("number","number")],returnType:"number"},not:{validations:[T(1),$(1),C("checkbox")],returnType:"checkbox"},now:{validations:[T(0),$(0)],returnType:"datetime"},nullvalue:{validations:[T(2),$(2),C(["text","number"],["text","number"])],returnType:["text","number"]},or:{validations:[T(1),C("checkbox")],returnType:"checkbox"},regex:{validations:[T(2),$(2),C("text","text")],returnType:"text"},right:{validations:[T(2),$(2),C("text","number")],returnType:"text"},round:{validations:[T(2),$(2),C("number","number")],returnType:"number"},rpad:{validations:[T(2),$(3),C("text","number","text")],returnType:"text"},second:{validations:[T(1),$(1),C("datetime")],returnType:"number"},sqrt:{validations:[T(1),$(1),C("number")],returnType:"number"},subtract:{validations:[T(2),$(2),C(["number","date","datetime","time"],["number","date","datetime","time"])],returnType:["number","date","datetime","time"]},substitute:{validations:[T(3),$(3),C("text","text","text")],returnType:"text"},text:{validations:[T(1),$(1),C(["number","date","datetime","picklist","time"])],returnType:"text"},timenow:{validations:[T(0),$(0)],returnType:"time"},timevalue:{validations:[T(1),$(1),C("text")],returnType:"time"},today:{validations:[T(0),$(0)],returnType:"date"},trim:{validations:[T(1),$(1),C("text")],returnType:"text"},unequal:{validations:[T(2),$(2),C(["text","number","date","datetime","checkbox"]),w()],returnType:"checkbox"},upper:{validations:[T(1),$(1),C("text")],returnType:"text"},value:{validations:[T(1),$(1),C("text")],returnType:"number"},weekday:{validations:[T(1),$(1),C("date")],returnType:"number"},year:{validations:[T(1),$(1),C("date")],returnType:"number"}};class E extends r{constructor(e,t){super(e,"ReferenceError",t)}}const M=e=>{switch(e.type){case"callExpression":return t=e.id,r=e.arguments.map((e=>M(e))),p((()=>{const e=r.find((e=>"error"===e.type));if(e)return e;const n=k[t];if(n)return n.validations.forEach((e=>e(t)(r))),x[`sf$${t}`](...r);throw new A(`Unknown function ${t.toUpperCase()}. Check spelling.`,{function:t})}));case"identifier":throw new E(`Field ${e.name} does not exist. Check spelling.`,{identifier:e.name});default:return e}var t,r},U=t=>{try{return e.parse(null==t?"":t.trim())}catch(t){if(t instanceof e.SyntaxError)return o("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}},F=(e,t)=>"callExpression"===e.type?{type:"callExpression",id:e.id,arguments:e.arguments.map((e=>F(e,t)))}:"identifier"===e.type&&t[e.name]?{...t[e.name],type:"literal"}:e,D=(e,t={})=>{if(null==e||""===e.trim())return i("");const r=U(e),n=Object.keys(t).reduce(((e,r)=>{return{...e,[r]:(n=t[r],{...n,value:u(n.dataType,n.value,n.options)})};var n}),{});return(e=>p((()=>M(e))))(F(r,n))},O=e=>{if(null==e||""===e.trim())return[];const t=U(e);return S(t).reduce(((e,t)=>(e.indexOf(t)<0&&e.push(t),e)),[])},I=e=>f(e);export{O as extract,D as parse,I 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)}))}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:Ce},i=Ce,o=ye("(",!1),l=ye(")",!1),s=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(Pe(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(Pe(e,a,n))}return r.pop()}([e,t].flat(2))},c=ye("^",!1),p=ye("*",!1),d=ye("/",!1),f="+",v=ye("+",!1),m="-",h=ye("-",!1),g="<=",y=ye("<=",!1),b=">=",x=ye(">=",!1),T="<>",$=ye("<>",!1),C=ye("<",!1),w=ye(">",!1),A="==",k=ye("==",!1),E=ye("=",!1),M="!=",U=ye("!=",!1),F="&&",S=ye("&&",!1),D="||",O=ye("||",!1),I=ye("&",!1),N=ye("!",!1),q=",",j=ye(",",!1),R=/^[A-Za-z]/,W=be([["A","Z"],["a","z"]],!1,!1),Z=ye("_",!1),_=ye("$",!1),L=ye(".",!1),Y=function(e){return function(e){return{type:"literal",value:e.join(""),dataType:"text",options:{length:e.length}}}(e)},z=ye("0",!1),P=/^[0-9]/,Q=be([["0","9"]],!1,!1),X=/^[1-9]/,H=be([["1","9"]],!1,!1),V=ye("true",!0),B=ye("false",!0),G=ye("null",!0),K=ye("\\",!1),J=ye("'",!1),ee=ye('"',!1),te={type:"any"},re=/^[\n\r\u2028\u2029]/,ne=be(["\n","\r","\u2028","\u2029"],!1,!1),ae=ye("\t",!1),ue=ye("\v",!1),ie=ye("\f",!1),oe=ye(" ",!1),le=ye(" ",!1),se=ye("",!1),ce=ye("\ufeff",!1),pe=0,de=0,fe=[{line:1,column:1}],ve=0,me=[],he=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 ge(){return t.substring(de,pe)}function ye(e,t){return{type:"literal",text:e,ignoreCase:t}}function be(e,t,r){return{type:"class",parts:e,inverted:t,ignoreCase:r}}function xe(e){var r,n=fe[e];if(n)return n;for(r=e-1;!fe[r];)r--;for(n={line:(n=fe[r]).line,column:n.column};r<e;)10===t.charCodeAt(r)?(n.line++,n.column=1):n.column++,r++;return fe[e]=n,n}function Te(e,t){var r=xe(e),n=xe(t);return{start:{offset:e,line:r.line,column:r.column},end:{offset:t,line:n.line,column:n.column}}}function $e(e){pe<ve||(pe>ve&&(ve=pe,me=[]),me.push(e))}function Ce(){return we()}function we(){var e;return(e=Ue())===a&&(e=function(){var e,r,n;e=pe,r=function(){var e;33===t.charCodeAt(pe)?(e="!",pe++):(e=a,0===he&&$e(N));return e}(),r!==a&&Le()!==a&&(n=we())!==a?(de=e,e=r={type:"callExpression",id:"not",arguments:[n]}):(pe=e,e=a);return e}())===a&&(e=ke())===a&&(e=Se())===a&&(e=Ie()),e}function Ae(){var e,r,n,u;return(e=ke())===a&&(e=Se())===a&&(e=Ie())===a&&(e=pe,40===t.charCodeAt(pe)?(r="(",pe++):(r=a,0===he&&$e(o)),r!==a&&Le()!==a&&(n=Ee())!==a&&Le()!==a?(41===t.charCodeAt(pe)?(u=")",pe++):(u=a,0===he&&$e(l)),u!==a?(de=e,e=r=n):(pe=e,e=a)):(pe=e,e=a)),e}function ke(){var e,r,n,u;return e=pe,r=function(){var e,r,n;e=pe,r=[],R.test(t.charAt(pe))?(n=t.charAt(pe),pe++):(n=a,0===he&&$e(W));if(n!==a)for(;n!==a;)r.push(n),R.test(t.charAt(pe))?(n=t.charAt(pe),pe++):(n=a,0===he&&$e(W));else r=a;r!==a&&(de=e,r=r.join("").toLowerCase());return e=r}(),r!==a&&Le()!==a?(n=function(){var e,r,n,u,i;e=pe,40===t.charCodeAt(pe)?(r="(",pe++):(r=a,0===he&&$e(o));r!==a&&Le()!==a?(n=pe,u=function(){var e,r,n,u,i;e=pe,r=[],n=pe,(u=we())!==a&&Le()!==a?(44===t.charCodeAt(pe)?(i=q,pe++):(i=a,0===he&&$e(j)),i===a&&(i=null),i!==a&&Le()!==a?(de=n,n=u=u):(pe=n,n=a)):(pe=n,n=a);if(n!==a)for(;n!==a;)r.push(n),n=pe,(u=we())!==a&&Le()!==a?(44===t.charCodeAt(pe)?(i=q,pe++):(i=a,0===he&&$e(j)),i===a&&(i=null),i!==a&&Le()!==a?(de=n,n=u=u):(pe=n,n=a)):(pe=n,n=a);else r=a;r!==a&&(de=e,r=r);return e=r}(),u!==a&&(i=Le())!==a?n=u=[u,i]:(pe=n,n=a),n===a&&(n=null),n!==a?(41===t.charCodeAt(pe)?(u=")",pe++):(u=a,0===he&&$e(l)),u!==a?(de=e,e=r=n):(pe=e,e=a)):(pe=e,e=a)):(pe=e,e=a);return e}(),n!==a?(de=e,e=r={type:"callExpression",id:r,arguments:(u=n,null!==u?u[0]:[])}):(pe=e,e=a)):(pe=e,e=a),e}function Ee(){var e,t,r,n;if(e=pe,(t=Ae())!==a)if(Le()!==a){for(r=[],n=Me();n!==a;)r.push(n),n=Me();r!==a?(de=e,e=t=s(t,r)):(pe=e,e=a)}else pe=e,e=a;else pe=e,e=a;return e}function Me(){var e,r,n,u,i;return e=pe,Le()!==a?(r=function(){var e;94===t.charCodeAt(pe)?(e="^",pe++):(e=a,0===he&&$e(c));e===a&&(42===t.charCodeAt(pe)?(e="*",pe++):(e=a,0===he&&$e(p)),e===a&&(47===t.charCodeAt(pe)?(e="/",pe++):(e=a,0===he&&$e(d)),e===a&&(43===t.charCodeAt(pe)?(e=f,pe++):(e=a,0===he&&$e(v)),e===a&&(45===t.charCodeAt(pe)?(e=m,pe++):(e=a,0===he&&$e(h))))));return e}(),r!==a&&Le()!==a&&(n=Ae())!==a?(de=e,u=r,i=n,e=[Object.assign({type:"operator"},ze[u]),i]):(pe=e,e=a)):(pe=e,e=a),e}function Ue(){var e,r,n,u;return e=pe,(r=Fe())!==a&&Le()!==a?(n=function(){var e;t.substr(pe,2)===F?(e=F,pe+=2):(e=a,0===he&&$e(S));e===a&&(t.substr(pe,2)===D?(e=D,pe+=2):(e=a,0===he&&$e(O)));return e}(),n!==a&&Le()!==a&&(u=Ue())!==a?(de=e,e=r=function(e,t,r){var n;switch(t){case"||":n="or";break;case"&&":n="and"}return{type:"callExpression",id:n,arguments:[e,r]}}(r,n,u)):(pe=e,e=a)):(pe=e,e=a),e===a&&(e=Fe()),e}function Fe(){var e,r,n,u;return e=pe,(r=Ee())!==a&&Le()!==a?(n=function(){var e;t.substr(pe,2)===g?(e=g,pe+=2):(e=a,0===he&&$e(y));e===a&&(t.substr(pe,2)===b?(e=b,pe+=2):(e=a,0===he&&$e(x)),e===a&&(t.substr(pe,2)===T?(e=T,pe+=2):(e=a,0===he&&$e($)),e===a&&(60===t.charCodeAt(pe)?(e="<",pe++):(e=a,0===he&&$e(C)),e===a&&(62===t.charCodeAt(pe)?(e=">",pe++):(e=a,0===he&&$e(w)),e===a&&(t.substr(pe,2)===A?(e=A,pe+=2):(e=a,0===he&&$e(k)),e===a&&(61===t.charCodeAt(pe)?(e="=",pe++):(e=a,0===he&&$e(E)),e===a&&(t.substr(pe,2)===M?(e=M,pe+=2):(e=a,0===he&&$e(U)))))))));return e}(),n===a&&(n=function(){var e;38===t.charCodeAt(pe)?(e="&",pe++):(e=a,0===he&&$e(I));return e}()),n!==a&&Le()!==a&&(u=Fe())!==a?(de=e,e=r=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]}}(r,n,u)):(pe=e,e=a)):(pe=e,e=a),e===a&&(e=Ee()),e}function Se(){var e,t,r;return e=pe,t=pe,he++,r=function(){var e;(e=je())===a&&(e=Re());return e}(),he--,r===a?t=void 0:(pe=t,t=a),t!==a?(r=function(){var e,t,r,n;if(e=pe,(t=De())!==a){for(r=[],n=Oe();n!==a;)r.push(n),n=Oe();r!==a?(de=e,e=t={type:"identifier",name:t+r.join("")}):(pe=e,e=a)}else pe=e,e=a;return e}(),r!==a?(de=e,e=t=r):(pe=e,e=a)):(pe=e,e=a),e}function De(){var e;return 95===t.charCodeAt(pe)?(e="_",pe++):(e=a,0===he&&$e(Z)),e===a&&(36===t.charCodeAt(pe)?(e="$",pe++):(e=a,0===he&&$e(_)),e===a&&(R.test(t.charAt(pe))?(e=t.charAt(pe),pe++):(e=a,0===he&&$e(W)))),e}function Oe(){var e;return(e=De())===a&&(46===t.charCodeAt(pe)?(e=".",pe++):(e=a,0===he&&$e(L)),e===a&&(e=qe())),e}function Ie(){var e;return(e=function(){var e,t,r;if(e=pe,Ze()!==a){for(t=[],(r=We())===a&&(r=_e());r!==a;)t.push(r),(r=We())===a&&(r=_e());t!==a&&(r=Ze())!==a?(de=e,e=Y(t)):(pe=e,e=a)}else pe=e,e=a;if(e===a)if(e=pe,_e()!==a){for(t=[],(r=We())===a&&(r=Ze());r!==a;)t.push(r),(r=We())===a&&(r=Ze());t!==a&&(r=_e())!==a?(de=e,e=Y(t)):(pe=e,e=a)}else pe=e,e=a;return e}())===a&&(e=function(){var e,r,n,u,i,o;e=pe,r=pe,(n=Le())!==a?(43===t.charCodeAt(pe)?(u=f,pe++):(u=a,0===he&&$e(v)),u!==a?r=n=[n,u]:(pe=r,r=a)):(pe=r,r=a);r===a&&(r=pe,45===t.charCodeAt(pe)?(n=m,pe++):(n=a,0===he&&$e(h)),n!==a&&(u=Le())!==a?r=n=[n,u]:(pe=r,r=a));r===a&&(r=null);if(r!==a)if((n=Ne())!==a)if(46===t.charCodeAt(pe)?(u=".",pe++):(u=a,0===he&&$e(L)),u!==a){for(i=[],o=qe();o!==a;)i.push(o),o=qe();i!==a?(de=e,l=ge().replace(/[\+\-]/g,"").split("."),e=r={type:"literal",value:parseFloat(ge()),dataType:"number",options:{length:l[0].length,scale:l[1].length}}):(pe=e,e=a)}else pe=e,e=a;else pe=e,e=a;else pe=e,e=a;var l;e===a&&(e=pe,r=pe,(n=Le())!==a?(43===t.charCodeAt(pe)?(u=f,pe++):(u=a,0===he&&$e(v)),u!==a?r=n=[n,u]:(pe=r,r=a)):(pe=r,r=a),r===a&&(r=pe,45===t.charCodeAt(pe)?(n=m,pe++):(n=a,0===he&&$e(h)),n!==a&&(u=Le())!==a?r=n=[n,u]:(pe=r,r=a)),r===a&&(r=null),r!==a&&(n=Ne())!==a?(de=e,e=r={type:"literal",value:parseInt(ge()),dataType:"number",options:{length:ge().replace(/[\+\-]/g,"").length,scale:0}}):(pe=e,e=a));return e}())===a&&(e=je())===a&&(e=Re()),e}function Ne(){var e,r,n,u;if(48===t.charCodeAt(pe)?(e="0",pe++):(e=a,0===he&&$e(z)),e===a)if(e=pe,r=function(){var e;X.test(t.charAt(pe))?(e=t.charAt(pe),pe++):(e=a,0===he&&$e(H));return e}(),r!==a){for(n=[],u=qe();u!==a;)n.push(u),u=qe();n!==a?e=r=[r,n]:(pe=e,e=a)}else pe=e,e=a;return e}function qe(){var e;return P.test(t.charAt(pe))?(e=t.charAt(pe),pe++):(e=a,0===he&&$e(Q)),e}function je(){var e,r;return e=pe,"true"===t.substr(pe,4).toLowerCase()?(r=t.substr(pe,4),pe+=4):(r=a,0===he&&$e(V)),r!==a&&(de=e,r={type:"literal",value:!0,dataType:"checkbox",options:{}}),(e=r)===a&&(e=pe,"false"===t.substr(pe,5).toLowerCase()?(r=t.substr(pe,5),pe+=5):(r=a,0===he&&$e(B)),r!==a&&(de=e,r={type:"literal",value:!1,dataType:"checkbox",options:{}}),e=r),e}function Re(){var e,r;return e=pe,"null"===t.substr(pe,4).toLowerCase()?(r=t.substr(pe,4),pe+=4):(r=a,0===he&&$e(G)),r!==a&&(de=e,r={type:"literal",value:null,dataType:"null",options:{}}),e=r}function We(){var e,r,n;return e=pe,r=pe,he++,n=function(){var e;(e=Ze())===a&&(e=_e());return e}(),n===a&&(92===t.charCodeAt(pe)?(n="\\",pe++):(n=a,0===he&&$e(K))),he--,n===a?r=void 0:(pe=r,r=a),r!==a?(n=function(){var e;t.length>pe?(e=t.charAt(pe),pe++):(e=a,0===he&&$e(te));return e}(),n!==a?(de=e,e=r=ge()):(pe=e,e=a)):(pe=e,e=a),e}function Ze(){var e;return 39===t.charCodeAt(pe)?(e="'",pe++):(e=a,0===he&&$e(J)),e}function _e(){var e;return 34===t.charCodeAt(pe)?(e='"',pe++):(e=a,0===he&&$e(ee)),e}function Le(){var e,t;for(e=[],t=Ye();t!==a;)e.push(t),t=Ye();return e}function Ye(){var e;return 9===t.charCodeAt(pe)?(e="\t",pe++):(e=a,0===he&&$e(ae)),e===a&&(e=function(){var e;return re.test(t.charAt(pe))?(e=t.charAt(pe),pe++):(e=a,0===he&&$e(ne)),e}())===a&&(11===t.charCodeAt(pe)?(e="\v",pe++):(e=a,0===he&&$e(ue)),e===a&&(12===t.charCodeAt(pe)?(e="\f",pe++):(e=a,0===he&&$e(ie)),e===a&&(32===t.charCodeAt(pe)?(e=" ",pe++):(e=a,0===he&&$e(oe)),e===a&&(160===t.charCodeAt(pe)?(e=" ",pe++):(e=a,0===he&&$e(le)),e===a&&(8203===t.charCodeAt(pe)?(e="",pe++):(e=a,0===he&&$e(se)),e===a&&(65279===t.charCodeAt(pe)?(e="\ufeff",pe++):(e=a,0===he&&$e(ce)))))))),e}const ze={"^":{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 Pe(e,t,r){return{type:"callExpression",id:e.functionName,arguments:[t,r]}}if((n=i())!==a&&pe===t.length)return n;throw n!==a&&pe<t.length&&$e({type:"end"}),Qe=me,Xe=ve<t.length?t.charAt(ve):null,He=ve<t.length?Te(ve,ve+1):Te(ve,ve),new e(e.buildMessage(Qe,Xe),Qe,Xe,He);var Qe,Xe,He}}}(),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:k},s=k,c=$(":",!1),p=$(".",!1),d=function(e,t,r,n){return function(e,t,r,n){e>23&&T("hour part needs to be under 24");t>59&&T("minute part needs to be under 60");r>59&&T("second part needs to be under 60");n>999&&T("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:{}}},f=function(){return parseInt(t.substring(g,h))},v=/^[0-9]/,m={type:"class",parts:[["0","9"]],inverted:!1,ignoreCase:!1},h=0,g=0,y=[{line:1,column:1}],b=0,x=[];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 T(t,r){throw function(t,r){return new e(t,null,null,r)}(t,r=void 0!==r?r:w(g,h))}function $(e,t){return{type:"literal",text:e,ignoreCase:t}}function C(e){var r,n=y[e];if(n)return n;for(r=e-1;!y[r];)r--;for(n={line:(n=y[r]).line,column:n.column};r<e;)10===t.charCodeAt(r)?(n.line++,n.column=1):n.column++,r++;return y[e]=n,n}function w(e,t){var r=C(e),n=C(t);return{start:{offset:e,line:r.line,column:r.column},end:{offset:t,line:n.line,column:n.column}}}function A(e){h<b||(h>b&&(b=h,x=[]),x.push(e))}function k(){var e,r,n,a,u,i,l,s;return e=h,r=function(){var e;e=h,E()!==o&&E()!==o?(g=e,e=f()):(h=e,e=o);return e}(),r!==o?(58===t.charCodeAt(h)?(n=":",h++):(n=o,A(c)),n!==o?(a=function(){var e;e=h,E()!==o&&E()!==o?(g=e,e=f()):(h=e,e=o);return e}(),a!==o?(58===t.charCodeAt(h)?(u=":",h++):(u=o,A(c)),u!==o?(i=function(){var e;e=h,E()!==o&&E()!==o?(g=e,e=f()):(h=e,e=o);return e}(),i!==o?(46===t.charCodeAt(h)?(l=".",h++):(l=o,A(p)),l!==o?(s=function(){var e;e=h,E()!==o&&E()!==o&&E()!==o?(g=e,e=f()):(h=e,e=o);return e}(),s!==o?(g=e,e=r=d(r,a,i,s)):(h=e,e=o)):(h=e,e=o)):(h=e,e=o)):(h=e,e=o)):(h=e,e=o)):(h=e,e=o)):(h=e,e=o),e}function E(){var e;return v.test(t.charAt(h))?(e=t.charAt(h),h++):(e=o,A(m)),e}if((n=s())!==o&&h===t.length)return n;throw n!==o&&h<t.length&&A({type:"end"}),a=x,u=b<t.length?t.charAt(b):null,i=b<t.length?w(b,b+1):w(b,b),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=(e,t)=>{if(e<0)return-1*n(-1*e,t);const r=10**t;return Math.round(e*r)/r},a=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}},u=(e,t,r)=>{switch(e){case"number":return"number"==typeof t?n(t,r.scale):null;case"text":return t.substring(0,r.length);default:return t}},i=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:a(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}'`)}},o=(e,t,r)=>({type:"error",errorType:e,message:t,...r}),l=(e,t,r)=>e instanceof Date?l(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate()):{type:"literal",dataType:"date",value:new Date(Date.UTC(e,t-1,r)),options:{}},s=e=>({type:"literal",dataType:"datetime",value:new Date(e),options:{}}),c=e=>({type:"literal",dataType:"time",value:new Date(e),options:{}}),p=e=>{try{return e()}catch(e){if(e instanceof r)return o(e.errorType,e.message,e.options);throw e}},d=(e,t)=>new Date(e.getTime()+864e5*t),f=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 v extends r{constructor(e,t){super(e,"NotImplementedError",t)}static throwError(e){throw new v(`Function ${e} not implemented yet.`,{name:e})}}const m=e=>Array.isArray(e)?e.map((e=>m(e))).join(", "):"string"!=typeof e?"":e.charAt(0).toUpperCase()+e.slice(1);class h 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 h(`Incorrect parameter type for function '${e.toUpperCase()}()'. Expected ${m(t)}, received ${m(a)}`,n)}static throwIncorrectNumberOfArguments(e,t,r){const n={function:e,expected:t,received:r};throw new h(`Incorrect number of parameters for function '${e.toUpperCase()}()'. Expected ${t}, received ${r}`,n)}}const g=(e,t)=>{switch(e.dataType){case"date":case"datetime":return i(e.value.getTime()===t.value.getTime());default:return i(e.value===t.value)}},y=(e,t,r)=>i(e.value.substr(t.value-1,r.value)),b=(e,t)=>y(e,i(1),t);var x=Object.freeze({__proto__:null,sf$or:(...e)=>{const t=e.map((e=>e.value)).reduce(((e,t)=>e||t));return i(t)},sf$equal:g,sf$unequal:(e,t)=>i(!g(e,t).value),sf$greaterThan:(e,t)=>i(e.value>t.value),sf$greaterThanOrEqual:(e,t)=>i(e.value>=t.value),sf$lessThan:(e,t)=>i(e.value<t.value),sf$lessThanOrEqual:(e,t)=>i(e.value<=t.value),sf$addmonths:(e,t)=>l(((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)=>l(e.value,t.value,r.value),sf$datevalue:e=>l(new Date(Date.parse(e.value))),sf$datetimevalue:e=>s(Date.parse(`${e.value}Z`)),sf$day:e=>i(e.value.getUTCDate()),sf$hour:e=>i(e.value.getUTCHours()),sf$millisecond:e=>i(e.value.getUTCMilliseconds()),sf$minute:e=>i(e.value.getUTCMinutes()),sf$month:e=>i(e.value.getUTCMonth()+1),sf$now:()=>s((new Date).getTime()),sf$second:e=>i(e.value.getUTCSeconds()),sf$timenow:()=>c((new Date).getTime()%864e5),sf$timevalue:e=>(e=>{try{return t.parse(e)}catch(e){if(e instanceof t.SyntaxError)return i(null);throw e}})(e.value),sf$today:()=>l(new Date),sf$weekday:e=>i(e.value.getUTCDay()+1),sf$year:e=>i(e.value.getUTCFullYear()),sf$and:(...e)=>{const t=e.map((e=>e.value)).reduce(((e,t)=>e&&t));return i(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 h(`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 h(`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(g(t[n],e).value)return t[n+1];return t[r]},sf$if:(e,t,r)=>e.value?t:r,sf$isblank:e=>i("null"===e.dataType||""===e.value||null===e.value||void 0===e.value||"multipicklist"===e.dataType&&!e.value.length),sf$isnull:e=>{v.throwError("isnull")},sf$isnumber:e=>{v.throwError("isnumber")},sf$not:e=>i(!e.value),sf$nullvalue:(e,t)=>{v.throwError("nullvalue")},sf$add:(e,t)=>{switch([e.dataType,t.dataType].join(" ")){case"date number":return l(d(e.value,t.value));case"number date":return l(d(t.value,e.value));case"time number":return c(e.value.getTime()+t.value);case"number time":return c(e.value+t.value.getTime());case"datetime number":return s(d(e.value,t.value));case"number datetime":return s(d(t.value,e.value));case"number number":case"text text":return i(e.value+t.value);default:h.throwWrongType("add","number",t.dataType)}},sf$subtract:(e,t)=>{switch([e.dataType,t.dataType].join(" ")){case"date number":return l(d(e.value,-1*t.value));case"time number":return c(e.value.getTime()+-1*t.value);case"datetime number":return s(d(e.value,-1*t.value));case"date date":case"datetime datetime":return i((r=e.value,n=t.value,(r.getTime()-n.getTime())/864e5));case"time time":return i(e.value.getTime()-t.value.getTime());case"number number":case"text text":return i(e.value-t.value);default:h.throwWrongType("subtract","number",t.dataType)}var r,n},sf$multiply:(e,t)=>i(e.value*t.value),sf$divide:(e,t)=>i(e.value/t.value),sf$exponentiate:(e,t)=>i(e.value**t.value),sf$abs:e=>i(Math.abs(e.value)),sf$ceiling:e=>e.value<0?i(-1*Math.ceil(-1*e.value)):i(Math.ceil(e.value)),sf$distance:(e,t,r)=>{const n=r.value;if("km"!==n&&"mi"!==n){throw new h(`Incorrect parameter value for function 'DISTANCE()'. Expected 'mi'/'km', received '${n}'`,{function:"distance",expected:["km","mi"],received:n})}const[a,u]=e.value,[o,l]=t.value;if(a===o&&u===l)return i(0);const s=a*Math.PI/180,c=o*Math.PI/180,p=(o-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 i("mi"===n?v/1.609344:v)},sf$exp:e=>i(Math.exp(e.value)),sf$floor:e=>e.value<0?i(-1*Math.floor(-1*e.value)):i(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=>i(Math.log(e.value)),sf$log:e=>i(Math.log10(e.value)),sf$max:(...e)=>{const t=e.map((e=>e.value));return i(Math.max(...t))},sf$mceiling:e=>i(Math.ceil(e.value)),sf$mfloor:e=>i(Math.floor(e.value)),sf$min:(...e)=>{const t=e.map((e=>e.value));return i(Math.min(...t))},sf$mod:(e,t)=>i(e.value%t.value),sf$round:(e,t)=>i(n(e.value,t.value)),sf$sqrt:e=>i(Math.sqrt(e.value)),sf$begins:(e,t)=>i(e.value.startsWith(t.value)),sf$br:()=>i("\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]})),i(e.value+t)},sf$concat:(e,t)=>i(e.value+t.value),sf$contains:(e,t)=>i(e.value.includes(t.value)),sf$find:(e,t,r=i(1))=>{if(r.value<=0||""===e.value)return i(0);const n=t.value.substring(r.value-1);return i(n.indexOf(e.value)+1)},sf$getsessionid:()=>i("00D3z000001eRlg!AQMAQC3Y4aM9sFux6SRWhyFcOUKin4taGaBxNMU8TN_R_1R0Y7ArI95eSyzQZVIlrnV_unTbmwHZlXex8xhlXz2kXZNP49Fa"),sf$hyperlink:(e,t,r=null)=>{const n=r?` target="${r.value}"`:"";return i(`<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 i(`<img src="${e.value}" alt="${t.value}"${a}${u}/>`)},sf$includes:(e,t)=>i(e.value.includes(t.value)),sf$ispickval:(e,t)=>i(e.value===t.value),sf$mid:y,sf$left:b,sf$len:e=>i(e.value.length),sf$lower:(e,t)=>i(e.value.toLowerCase()),sf$lpad:(e,t,r)=>{if(null==r)return e;if(t.value<e.value.length)return b(e,t);const n=r.value.repeat(t.value);return i((n+e.value).slice(-t.value))},sf$right:(e,t)=>i(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 b(e,t);const n=r.value.repeat(t.value);return i((e.value+n).substr(0,t.value))},sf$substitute:(e,t,r)=>i(e.value.replace(new RegExp(t.value.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"g"),r.value)),sf$text:e=>"text"===e.dataType?e:"datetime"===e.dataType?i(f(e).replace("T"," ").replace(/\.\d{3}/,"")):i(f(e)),sf$trim:e=>i(e.value.trim()),sf$upper:(e,t)=>i(e.value.toUpperCase()),sf$value:e=>{const t=parseFloat(e.value);return i(t||null)},sf$currencyrate:e=>{v.throwError("currencyrate")},sf$regex:(e,t)=>{const r=new RegExp(`^${t.value}$`);return i(null!=r.exec(e.value))}});const T=e=>t=>r=>{r.length<e&&h.throwIncorrectNumberOfArguments(t,e,r.length)},$=e=>t=>r=>{r.length>e&&h.throwIncorrectNumberOfArguments(t,e,r.length)},C=(...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)&&h.throwWrongType(t,r,e):e!==r&&h.throwWrongType(t,r,e))}))},w=()=>e=>t=>{t.length>0&&t.filter((e=>"null"!==e.dataType)).reduce(((t,r)=>(t.dataType!==r.dataType&&h.throwWrongType(e,t.dataType,r.dataType),r)))};class A extends r{constructor(e,t){super(e,"NoFunctionError",t)}}const k={abs:{validations:[T(1),$(1),C("number")],returnType:"number"},add:{validations:[T(2),$(2),C(["number","text","date","datetime","time"],["number","text","date","datetime","time"])],returnType:["number","text","date","datetime","time"]},addmonths:{validations:[T(2),$(2),C(["date","datetime"],["number"])],returnType:["date","datetime"]},and:{validations:[T(1),C("checkbox")],returnType:"checkbox"},begins:{validations:[T(2),$(2),C("text","text")],returnType:"checkbox"},blankvalue:{validations:[T(2),$(2),C(["text","number","date","datetime","geolocation"]),w()],returnType:["text","number","date","datetime","geolocation"]},br:{validations:[T(0),$(0)],returnType:"text"},case:{validations:[T(4),C(["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&&h.throwWrongType(e,r,n.dataType)}],returnType:["text","number","date","datetime"]},casesafeid:{validations:[T(1),$(1),C("text")],returnType:"text"},ceiling:{validations:[T(1),$(1),C("number")],returnType:"number"},contains:{validations:[T(2),$(2),C("text","text")],returnType:"checkbox"},currencyrate:{validations:[T(1),$(1),C("text")],returnType:"text"},date:{validations:[T(3),$(3),C("number","number","number")],returnType:"date"},datetimevalue:{validations:[T(1),$(1),C("text","date","datetime")],returnType:"datetime"},datevalue:{validations:[T(1),$(1),C(["text","date","datetime"])],returnType:"date"},day:{validations:[T(1),$(1),C("date")],returnType:"number"},distance:{validations:[T(3),$(3),C("geolocation","geolocation","text")],returnType:"number"},divide:{validations:[T(2),$(2),C("number","number")],returnType:"number"},equal:{validations:[T(2),$(2),C(["text","number","date","datetime","checkbox"]),w()],returnType:"checkbox"},exp:{validations:[T(1),$(1),C("number")],returnType:"number"},exponentiate:{validations:[T(2),$(2),C("number","number")],returnType:"number"},find:{validations:[T(2),$(3),C("text","text","number")],returnType:"number"},floor:{validations:[T(1),$(1),C("number")],returnType:"number"},geolocation:{validations:[T(2),$(2),C("number","number")],returnType:"geolocation"},getsessionid:{validations:[T(0),$(0)],returnType:"text"},greaterThan:{validations:[T(2),$(2),C(["number","date","datetime"]),w()],returnType:"checkbox"},greaterThanOrEqual:{validations:[T(2),$(2),C(["number","date","datetime"])],returnType:"checkbox"},hour:{validations:[T(1),$(1),C("datetime")],returnType:"number"},hyperlink:{validations:[T(2),$(3),C("text","text","text")],returnType:"text"},if:{validations:[T(3),$(3),C("checkbox",["text","number","date","datetime"],["text","number","date","datetime"])],returnType:["text","number","date","datetime"]},image:{validations:[T(2),$(4),C("text","text","number","number")],returnType:"text"},includes:{validations:[T(2),$(2),C("multipicklist","text")],returnType:"checkbox"},isblank:{validations:[T(1),$(1),C(["text","number","date","datetime","picklist","multipicklist","geolocation"])],returnType:"checkbox"},isnull:{validations:[T(1),$(1),C(["text","number"])],returnType:"checkbox"},ispickval:{validations:[T(2),$(2),C("picklist","text")],returnType:"checkbox"},isnumber:{validations:[T(1),$(1),C("text")],returnType:"checkbox"},left:{validations:[T(2),$(2),C("text","number")],returnType:"text"},len:{validations:[T(1),$(1),C("text")],returnType:"number"},lessThan:{validations:[T(2),$(2),C(["number","date","datetime"]),w()],returnType:"checkbox"},lessThanOrEqual:{validations:[T(2),$(2),C(["number","date","datetime"]),w()],returnType:"checkbox"},ln:{validations:[T(1),$(1),C("number")],returnType:"number"},log:{validations:[T(1),$(1),C("number")],returnType:"checkbox"},lower:{validations:[T(1),$(1),C("text")],returnType:"text"},lpad:{validations:[T(2),$(3),C("text","number","text")],returnType:"text"},max:{validations:[T(1),C("number")],returnType:"number"},mceiling:{validations:[T(1),$(1),C("number")],returnType:"number"},mfloor:{validations:[T(1),$(1),C("number")],returnType:"number"},mid:{validations:[T(3),$(3),C("text","number","number")],returnType:"number"},millisecond:{validations:[T(1),$(1),C("datetime")],returnType:"number"},min:{validations:[T(1),C("number")],returnType:"number"},minute:{validations:[T(1),$(1),C("datetime")],returnType:"number"},mod:{validations:[T(2),$(2),C("number","number")],returnType:"number"},month:{validations:[T(1),$(1),C("date")],returnType:"number"},multiply:{validations:[T(2),$(2),C("number","number")],returnType:"number"},not:{validations:[T(1),$(1),C("checkbox")],returnType:"checkbox"},now:{validations:[T(0),$(0)],returnType:"datetime"},nullvalue:{validations:[T(2),$(2),C(["text","number"],["text","number"])],returnType:["text","number"]},or:{validations:[T(1),C("checkbox")],returnType:"checkbox"},regex:{validations:[T(2),$(2),C("text","text")],returnType:"text"},right:{validations:[T(2),$(2),C("text","number")],returnType:"text"},round:{validations:[T(2),$(2),C("number","number")],returnType:"number"},rpad:{validations:[T(2),$(3),C("text","number","text")],returnType:"text"},second:{validations:[T(1),$(1),C("datetime")],returnType:"number"},sqrt:{validations:[T(1),$(1),C("number")],returnType:"number"},subtract:{validations:[T(2),$(2),C(["number","date","datetime","time"],["number","date","datetime","time"])],returnType:["number","date","datetime","time"]},substitute:{validations:[T(3),$(3),C("text","text","text")],returnType:"text"},text:{validations:[T(1),$(1),C(["number","date","datetime","picklist","time"])],returnType:"text"},timenow:{validations:[T(0),$(0)],returnType:"time"},timevalue:{validations:[T(1),$(1),C("text")],returnType:"time"},today:{validations:[T(0),$(0)],returnType:"date"},trim:{validations:[T(1),$(1),C("text")],returnType:"text"},unequal:{validations:[T(2),$(2),C(["text","number","date","datetime","checkbox"]),w()],returnType:"checkbox"},upper:{validations:[T(1),$(1),C("text")],returnType:"text"},value:{validations:[T(1),$(1),C("text")],returnType:"number"},weekday:{validations:[T(1),$(1),C("date")],returnType:"number"},year:{validations:[T(1),$(1),C("date")],returnType:"number"}};class E extends r{constructor(e,t){super(e,"ReferenceError",t)}}const M=e=>{switch(e.type){case"callExpression":return t=e.id,r=e.arguments.map((e=>M(e))),p((()=>{const e=r.find((e=>"error"===e.type));if(e)return e;const n=k[t];if(n)return n.validations.forEach((e=>e(t)(r))),x[`sf$${t}`](...r);throw new A(`Unknown function ${t.toUpperCase()}. Check spelling.`,{function:t})}));case"identifier":throw new E(`Field ${e.name} does not exist. Check spelling.`,{identifier:e.name});default:return e}var t,r},U=t=>{try{return e.parse(null==t?"":t.trim())}catch(t){if(t instanceof e.SyntaxError)return o("SyntaxError","Syntax error.",{});throw t}},F=(e,t=[])=>{switch(e.type){case"callExpression":return e.arguments.map((e=>F(e,t))).reduce(((e,t)=>e.concat(t)),[]);case"identifier":return t.concat(e.name);default:return t}},S=(e,t)=>"callExpression"===e.type?{type:"callExpression",id:e.id,arguments:e.arguments.map((e=>S(e,t)))}:"identifier"===e.type&&t[e.name]?{...t[e.name],type:"literal"}:e,D=(e,t={})=>{if(null==e||""===e.trim())return i("");const r=U(e),n=Object.keys(t).reduce(((e,r)=>{return{...e,[r]:(n=t[r],{...n,value:u(n.dataType,n.value,n.options)})};var n}),{});return(e=>p((()=>M(e))))(S(r,n))},O=e=>{if(null==e||""===e.trim())return[];const t=U(e);return F(t).reduce(((e,t)=>(e.indexOf(t)<0&&e.push(t),e)),[])},I=e=>f(e);export{O as extract,D as parse,I 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:Ce},i=Ce,o=ye("(",!1),l=ye(")",!1),s=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(ze(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(ze(e,a,n))}return r.pop()}([e,t].flat(2))},c=ye("^",!1),p=ye("*",!1),d=ye("/",!1),f="+",v=ye("+",!1),m="-",h=ye("-",!1),g="<=",y=ye("<=",!1),b=">=",x=ye(">=",!1),T="<>",$=ye("<>",!1),C=ye("<",!1),w=ye(">",!1),A="==",k=ye("==",!1),E=ye("=",!1),M="!=",U=ye("!=",!1),S="&&",F=ye("&&",!1),D="||",O=ye("||",!1),I=ye("&",!1),j=ye("!",!1),N=",",q=ye(",",!1),R=/^[A-Za-z]/,_=be([["A","Z"],["a","z"]],!1,!1),W=ye("_",!1),Z=ye("$",!1),L=ye(".",!1),P=function(e){return function(e){return{type:"literal",value:e.join(""),dataType:"text",options:{length:e.length}}}(e)},Y=ye("0",!1),z=/^[0-9]/,Q=be([["0","9"]],!1,!1),X=/^[1-9]/,H=be([["1","9"]],!1,!1),V=ye("true",!0),B=ye("false",!0),G=ye("null",!0),K=ye("\\",!1),J=ye("'",!1),ee=ye('"',!1),te={type:"any"},re=/^[\n\r\u2028\u2029]/,ne=be(["\n","\r","\u2028","\u2029"],!1,!1),ae=ye("\t",!1),ue=ye("\v",!1),ie=ye("\f",!1),oe=ye(" ",!1),le=ye(" ",!1),se=ye("",!1),ce=ye("\ufeff",!1),pe=0,de=0,fe=[{line:1,column:1}],ve=0,me=[],he=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 ge(){return t.substring(de,pe)}function ye(e,t){return{type:"literal",text:e,ignoreCase:t}}function be(e,t,r){return{type:"class",parts:e,inverted:t,ignoreCase:r}}function xe(e){var r,n=fe[e];if(n)return n;for(r=e-1;!fe[r];)r--;for(n={line:(n=fe[r]).line,column:n.column};r<e;)10===t.charCodeAt(r)?(n.line++,n.column=1):n.column++,r++;return fe[e]=n,n}function Te(e,t){var r=xe(e),n=xe(t);return{start:{offset:e,line:r.line,column:r.column},end:{offset:t,line:n.line,column:n.column}}}function $e(e){pe<ve||(pe>ve&&(ve=pe,me=[]),me.push(e))}function Ce(){return we()}function we(){var e;return(e=Ue())===a&&(e=function(){var e,r;e=pe,function(){var e;33===t.charCodeAt(pe)?(e="!",pe++):(e=a,0===he&&$e(j));return e}()!==a&&Le()!==a&&(r=we())!==a?(de=e,e={type:"callExpression",id:"not",arguments:[r]}):(pe=e,e=a);return e}())===a&&(e=ke())===a&&(e=Fe())===a&&(e=Ie()),e}function Ae(){var e,r,n,u;return(e=ke())===a&&(e=Fe())===a&&(e=Ie())===a&&(e=pe,40===t.charCodeAt(pe)?(r="(",pe++):(r=a,0===he&&$e(o)),r!==a&&Le()!==a&&(n=Ee())!==a&&Le()!==a?(41===t.charCodeAt(pe)?(u=")",pe++):(u=a,0===he&&$e(l)),u!==a?(de=e,e=r=n):(pe=e,e=a)):(pe=e,e=a)),e}function ke(){var e,r,n,u;return e=pe,(r=function(){var e,r,n;e=pe,r=[],R.test(t.charAt(pe))?(n=t.charAt(pe),pe++):(n=a,0===he&&$e(_));if(n!==a)for(;n!==a;)r.push(n),R.test(t.charAt(pe))?(n=t.charAt(pe),pe++):(n=a,0===he&&$e(_));else r=a;r!==a&&(de=e,r=r.join("").toLowerCase());return e=r}())!==a&&Le()!==a&&(n=function(){var e,r,n,u,i;e=pe,40===t.charCodeAt(pe)?(r="(",pe++):(r=a,0===he&&$e(o));r!==a&&Le()!==a?(n=pe,(u=function(){var e,r,n,u,i;e=pe,r=[],n=pe,(u=we())!==a&&Le()!==a?(44===t.charCodeAt(pe)?(i=N,pe++):(i=a,0===he&&$e(q)),i===a&&(i=null),i!==a&&Le()!==a?(de=n,n=u=u):(pe=n,n=a)):(pe=n,n=a);if(n!==a)for(;n!==a;)r.push(n),n=pe,(u=we())!==a&&Le()!==a?(44===t.charCodeAt(pe)?(i=N,pe++):(i=a,0===he&&$e(q)),i===a&&(i=null),i!==a&&Le()!==a?(de=n,n=u=u):(pe=n,n=a)):(pe=n,n=a);else r=a;r!==a&&(de=e,r=r);return e=r}())!==a&&(i=Le())!==a?n=u=[u,i]:(pe=n,n=a),n===a&&(n=null),n!==a?(41===t.charCodeAt(pe)?(u=")",pe++):(u=a,0===he&&$e(l)),u!==a?(de=e,e=r=n):(pe=e,e=a)):(pe=e,e=a)):(pe=e,e=a);return e}())!==a?(de=e,e=r={type:"callExpression",id:r,arguments:(u=n,null!==u?u[0]:[])}):(pe=e,e=a),e}function Ee(){var e,t,r,n;if(e=pe,(t=Ae())!==a)if(Le()!==a){for(r=[],n=Me();n!==a;)r.push(n),n=Me();r!==a?(de=e,e=t=s(t,r)):(pe=e,e=a)}else pe=e,e=a;else pe=e,e=a;return e}function Me(){var e,r,n,u,i;return e=pe,Le()!==a&&(r=function(){var e;94===t.charCodeAt(pe)?(e="^",pe++):(e=a,0===he&&$e(c));e===a&&(42===t.charCodeAt(pe)?(e="*",pe++):(e=a,0===he&&$e(p)),e===a&&(47===t.charCodeAt(pe)?(e="/",pe++):(e=a,0===he&&$e(d)),e===a&&(43===t.charCodeAt(pe)?(e=f,pe++):(e=a,0===he&&$e(v)),e===a&&(45===t.charCodeAt(pe)?(e=m,pe++):(e=a,0===he&&$e(h))))));return e}())!==a&&Le()!==a&&(n=Ae())!==a?(de=e,u=r,i=n,e=[Object.assign({type:"operator"},Ye[u]),i]):(pe=e,e=a),e}function Ue(){var e,r,n,u;return e=pe,(r=Se())!==a&&Le()!==a&&(n=function(){var e;t.substr(pe,2)===S?(e=S,pe+=2):(e=a,0===he&&$e(F));e===a&&(t.substr(pe,2)===D?(e=D,pe+=2):(e=a,0===he&&$e(O)));return e}())!==a&&Le()!==a&&(u=Ue())!==a?(de=e,e=r=function(e,t,r){var n;switch(t){case"||":n="or";break;case"&&":n="and"}return{type:"callExpression",id:n,arguments:[e,r]}}(r,n,u)):(pe=e,e=a),e===a&&(e=Se()),e}function Se(){var e,r,n,u;return e=pe,(r=Ee())!==a&&Le()!==a?((n=function(){var e;t.substr(pe,2)===g?(e=g,pe+=2):(e=a,0===he&&$e(y));e===a&&(t.substr(pe,2)===b?(e=b,pe+=2):(e=a,0===he&&$e(x)),e===a&&(t.substr(pe,2)===T?(e=T,pe+=2):(e=a,0===he&&$e($)),e===a&&(60===t.charCodeAt(pe)?(e="<",pe++):(e=a,0===he&&$e(C)),e===a&&(62===t.charCodeAt(pe)?(e=">",pe++):(e=a,0===he&&$e(w)),e===a&&(t.substr(pe,2)===A?(e=A,pe+=2):(e=a,0===he&&$e(k)),e===a&&(61===t.charCodeAt(pe)?(e="=",pe++):(e=a,0===he&&$e(E)),e===a&&(t.substr(pe,2)===M?(e=M,pe+=2):(e=a,0===he&&$e(U)))))))));return e}())===a&&(n=function(){var e;38===t.charCodeAt(pe)?(e="&",pe++):(e=a,0===he&&$e(I));return e}()),n!==a&&Le()!==a&&(u=Se())!==a?(de=e,e=r=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]}}(r,n,u)):(pe=e,e=a)):(pe=e,e=a),e===a&&(e=Ee()),e}function Fe(){var e,t,r;return e=pe,t=pe,he++,r=function(){var e;(e=qe())===a&&(e=Re());return e}(),he--,r===a?t=void 0:(pe=t,t=a),t!==a&&(r=function(){var e,t,r,n;if(e=pe,(t=De())!==a){for(r=[],n=Oe();n!==a;)r.push(n),n=Oe();r!==a?(de=e,e=t={type:"identifier",name:t+r.join("")}):(pe=e,e=a)}else pe=e,e=a;return e}())!==a?(de=e,e=t=r):(pe=e,e=a),e}function De(){var e;return 95===t.charCodeAt(pe)?(e="_",pe++):(e=a,0===he&&$e(W)),e===a&&(36===t.charCodeAt(pe)?(e="$",pe++):(e=a,0===he&&$e(Z)),e===a&&(R.test(t.charAt(pe))?(e=t.charAt(pe),pe++):(e=a,0===he&&$e(_)))),e}function Oe(){var e;return(e=De())===a&&(46===t.charCodeAt(pe)?(e=".",pe++):(e=a,0===he&&$e(L)),e===a&&(e=Ne())),e}function Ie(){var e;return(e=function(){var e,t,r;if(e=pe,We()!==a){for(t=[],(r=_e())===a&&(r=Ze());r!==a;)t.push(r),(r=_e())===a&&(r=Ze());t!==a&&(r=We())!==a?(de=e,e=P(t)):(pe=e,e=a)}else pe=e,e=a;if(e===a)if(e=pe,Ze()!==a){for(t=[],(r=_e())===a&&(r=We());r!==a;)t.push(r),(r=_e())===a&&(r=We());t!==a&&(r=Ze())!==a?(de=e,e=P(t)):(pe=e,e=a)}else pe=e,e=a;return e}())===a&&(e=function(){var e,r,n,u,i,o;e=pe,r=pe,(n=Le())!==a?(43===t.charCodeAt(pe)?(u=f,pe++):(u=a,0===he&&$e(v)),u!==a?r=n=[n,u]:(pe=r,r=a)):(pe=r,r=a);r===a&&(r=pe,45===t.charCodeAt(pe)?(n=m,pe++):(n=a,0===he&&$e(h)),n!==a&&(u=Le())!==a?r=n=[n,u]:(pe=r,r=a));r===a&&(r=null);if(r!==a)if((n=je())!==a)if(46===t.charCodeAt(pe)?(u=".",pe++):(u=a,0===he&&$e(L)),u!==a){for(i=[],o=Ne();o!==a;)i.push(o),o=Ne();i!==a?(de=e,l=ge().replace(/[\+\-]/g,"").split("."),e=r={type:"literal",value:parseFloat(ge()),dataType:"number",options:{length:l[0].length,scale:l[1].length}}):(pe=e,e=a)}else pe=e,e=a;else pe=e,e=a;else pe=e,e=a;var l;e===a&&(e=pe,r=pe,(n=Le())!==a?(43===t.charCodeAt(pe)?(u=f,pe++):(u=a,0===he&&$e(v)),u!==a?r=n=[n,u]:(pe=r,r=a)):(pe=r,r=a),r===a&&(r=pe,45===t.charCodeAt(pe)?(n=m,pe++):(n=a,0===he&&$e(h)),n!==a&&(u=Le())!==a?r=n=[n,u]:(pe=r,r=a)),r===a&&(r=null),r!==a&&(n=je())!==a?(de=e,e=r={type:"literal",value:parseInt(ge()),dataType:"number",options:{length:ge().replace(/[\+\-]/g,"").length,scale:0}}):(pe=e,e=a));return e}())===a&&(e=qe())===a&&(e=Re()),e}function je(){var e,r,n,u;if(48===t.charCodeAt(pe)?(e="0",pe++):(e=a,0===he&&$e(Y)),e===a)if(e=pe,(r=function(){var e;X.test(t.charAt(pe))?(e=t.charAt(pe),pe++):(e=a,0===he&&$e(H));return e}())!==a){for(n=[],u=Ne();u!==a;)n.push(u),u=Ne();n!==a?e=r=[r,n]:(pe=e,e=a)}else pe=e,e=a;return e}function Ne(){var e;return z.test(t.charAt(pe))?(e=t.charAt(pe),pe++):(e=a,0===he&&$e(Q)),e}function qe(){var e,r;return e=pe,"true"===t.substr(pe,4).toLowerCase()?(r=t.substr(pe,4),pe+=4):(r=a,0===he&&$e(V)),r!==a&&(de=e,r={type:"literal",value:!0,dataType:"checkbox",options:{}}),(e=r)===a&&(e=pe,"false"===t.substr(pe,5).toLowerCase()?(r=t.substr(pe,5),pe+=5):(r=a,0===he&&$e(B)),r!==a&&(de=e,r={type:"literal",value:!1,dataType:"checkbox",options:{}}),e=r),e}function Re(){var e,r;return e=pe,"null"===t.substr(pe,4).toLowerCase()?(r=t.substr(pe,4),pe+=4):(r=a,0===he&&$e(G)),r!==a&&(de=e,r={type:"literal",value:null,dataType:"null",options:{}}),e=r}function _e(){var e,r,n;return e=pe,r=pe,he++,(n=function(){var e;(e=We())===a&&(e=Ze());return e}())===a&&(92===t.charCodeAt(pe)?(n="\\",pe++):(n=a,0===he&&$e(K))),he--,n===a?r=void 0:(pe=r,r=a),r!==a&&(n=function(){var e;t.length>pe?(e=t.charAt(pe),pe++):(e=a,0===he&&$e(te));return e}())!==a?(de=e,e=r=ge()):(pe=e,e=a),e}function We(){var e;return 39===t.charCodeAt(pe)?(e="'",pe++):(e=a,0===he&&$e(J)),e}function Ze(){var e;return 34===t.charCodeAt(pe)?(e='"',pe++):(e=a,0===he&&$e(ee)),e}function Le(){var e,t;for(e=[],t=Pe();t!==a;)e.push(t),t=Pe();return e}function Pe(){var e;return 9===t.charCodeAt(pe)?(e="\t",pe++):(e=a,0===he&&$e(ae)),e===a&&(e=function(){var e;return re.test(t.charAt(pe))?(e=t.charAt(pe),pe++):(e=a,0===he&&$e(ne)),e}())===a&&(11===t.charCodeAt(pe)?(e="\v",pe++):(e=a,0===he&&$e(ue)),e===a&&(12===t.charCodeAt(pe)?(e="\f",pe++):(e=a,0===he&&$e(ie)),e===a&&(32===t.charCodeAt(pe)?(e=" ",pe++):(e=a,0===he&&$e(oe)),e===a&&(160===t.charCodeAt(pe)?(e=" ",pe++):(e=a,0===he&&$e(le)),e===a&&(8203===t.charCodeAt(pe)?(e="",pe++):(e=a,0===he&&$e(se)),e===a&&(65279===t.charCodeAt(pe)?(e="\ufeff",pe++):(e=a,0===he&&$e(ce)))))))),e}const Ye={"^":{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 ze(e,t,r){return{type:"callExpression",id:e.functionName,arguments:[t,r]}}if((n=i())!==a&&pe===t.length)return n;throw n!==a&&pe<t.length&&$e({type:"end"}),Qe=me,Xe=ve<t.length?t.charAt(ve):null,He=ve<t.length?Te(ve,ve+1):Te(ve,ve),new e(e.buildMessage(Qe,Xe),Qe,Xe,He);var Qe,Xe,He}}}(),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:k},s=k,c=$(":",!1),p=$(".",!1),d=function(e,t,r,n){return function(e,t,r,n){e>23&&T("hour part needs to be under 24");t>59&&T("minute part needs to be under 60");r>59&&T("second part needs to be under 60");n>999&&T("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:{}}},f=function(){return parseInt(t.substring(g,h))},v=/^[0-9]/,m={type:"class",parts:[["0","9"]],inverted:!1,ignoreCase:!1},h=0,g=0,y=[{line:1,column:1}],b=0,x=[];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 T(t,r){throw function(t,r){return new e(t,null,null,r)}(t,r=void 0!==r?r:w(g,h))}function $(e,t){return{type:"literal",text:e,ignoreCase:t}}function C(e){var r,n=y[e];if(n)return n;for(r=e-1;!y[r];)r--;for(n={line:(n=y[r]).line,column:n.column};r<e;)10===t.charCodeAt(r)?(n.line++,n.column=1):n.column++,r++;return y[e]=n,n}function w(e,t){var r=C(e),n=C(t);return{start:{offset:e,line:r.line,column:r.column},end:{offset:t,line:n.line,column:n.column}}}function A(e){h<b||(h>b&&(b=h,x=[]),x.push(e))}function k(){var e,r,n,a,u,i,l,s;return e=h,(r=function(){var e;e=h,E()!==o&&E()!==o?(g=e,e=f()):(h=e,e=o);return e}())!==o?(58===t.charCodeAt(h)?(n=":",h++):(n=o,A(c)),n!==o&&(a=function(){var e;e=h,E()!==o&&E()!==o?(g=e,e=f()):(h=e,e=o);return e}())!==o?(58===t.charCodeAt(h)?(u=":",h++):(u=o,A(c)),u!==o&&(i=function(){var e;e=h,E()!==o&&E()!==o?(g=e,e=f()):(h=e,e=o);return e}())!==o?(46===t.charCodeAt(h)?(l=".",h++):(l=o,A(p)),l!==o&&(s=function(){var e;e=h,E()!==o&&E()!==o&&E()!==o?(g=e,e=f()):(h=e,e=o);return e}())!==o?(g=e,e=r=d(r,a,i,s)):(h=e,e=o)):(h=e,e=o)):(h=e,e=o)):(h=e,e=o),e}function E(){var e;return v.test(t.charAt(h))?(e=t.charAt(h),h++):(e=o,A(m)),e}if((n=s())!==o&&h===t.length)return n;throw n!==o&&h<t.length&&A({type:"end"}),a=x,u=b<t.length?t.charAt(b):null,i=b<t.length?w(b,b+1):w(b,b),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":return e.value.toString();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)}))}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:Ce},i=Ce,o=ye("(",!1),l=ye(")",!1),s=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(ze(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(ze(e,a,n))}return r.pop()}([e,t].flat(2))},c=ye("^",!1),p=ye("*",!1),d=ye("/",!1),f="+",v=ye("+",!1),m="-",h=ye("-",!1),g="<=",y=ye("<=",!1),b=">=",x=ye(">=",!1),T="<>",$=ye("<>",!1),C=ye("<",!1),w=ye(">",!1),A="==",k=ye("==",!1),E=ye("=",!1),M="!=",U=ye("!=",!1),S="&&",F=ye("&&",!1),D="||",O=ye("||",!1),I=ye("&",!1),j=ye("!",!1),N=",",q=ye(",",!1),R=/^[A-Za-z]/,_=be([["A","Z"],["a","z"]],!1,!1),W=ye("_",!1),Z=ye("$",!1),L=ye(".",!1),P=function(e){return function(e){return{type:"literal",value:e.join(""),dataType:"text",options:{length:e.length}}}(e)},Y=ye("0",!1),z=/^[0-9]/,Q=be([["0","9"]],!1,!1),X=/^[1-9]/,H=be([["1","9"]],!1,!1),V=ye("true",!0),B=ye("false",!0),G=ye("null",!0),K=ye("\\",!1),J=ye("'",!1),ee=ye('"',!1),te={type:"any"},re=/^[\n\r\u2028\u2029]/,ne=be(["\n","\r","\u2028","\u2029"],!1,!1),ae=ye("\t",!1),ue=ye("\v",!1),ie=ye("\f",!1),oe=ye(" ",!1),le=ye(" ",!1),se=ye("",!1),ce=ye("\ufeff",!1),pe=0,de=0,fe=[{line:1,column:1}],ve=0,me=[],he=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 ge(){return t.substring(de,pe)}function ye(e,t){return{type:"literal",text:e,ignoreCase:t}}function be(e,t,r){return{type:"class",parts:e,inverted:t,ignoreCase:r}}function xe(e){var r,n=fe[e];if(n)return n;for(r=e-1;!fe[r];)r--;for(n={line:(n=fe[r]).line,column:n.column};r<e;)10===t.charCodeAt(r)?(n.line++,n.column=1):n.column++,r++;return fe[e]=n,n}function Te(e,t){var r=xe(e),n=xe(t);return{start:{offset:e,line:r.line,column:r.column},end:{offset:t,line:n.line,column:n.column}}}function $e(e){pe<ve||(pe>ve&&(ve=pe,me=[]),me.push(e))}function Ce(){return we()}function we(){var e;return(e=Ue())===a&&(e=function(){var e,r,n;e=pe,r=function(){var e;33===t.charCodeAt(pe)?(e="!",pe++):(e=a,0===he&&$e(j));return e}(),r!==a&&Le()!==a&&(n=we())!==a?(de=e,e=r={type:"callExpression",id:"not",arguments:[n]}):(pe=e,e=a);return e}())===a&&(e=ke())===a&&(e=Fe())===a&&(e=Ie()),e}function Ae(){var e,r,n,u;return(e=ke())===a&&(e=Fe())===a&&(e=Ie())===a&&(e=pe,40===t.charCodeAt(pe)?(r="(",pe++):(r=a,0===he&&$e(o)),r!==a&&Le()!==a&&(n=Ee())!==a&&Le()!==a?(41===t.charCodeAt(pe)?(u=")",pe++):(u=a,0===he&&$e(l)),u!==a?(de=e,e=r=n):(pe=e,e=a)):(pe=e,e=a)),e}function ke(){var e,r,n,u;return e=pe,r=function(){var e,r,n;e=pe,r=[],R.test(t.charAt(pe))?(n=t.charAt(pe),pe++):(n=a,0===he&&$e(_));if(n!==a)for(;n!==a;)r.push(n),R.test(t.charAt(pe))?(n=t.charAt(pe),pe++):(n=a,0===he&&$e(_));else r=a;r!==a&&(de=e,r=r.join("").toLowerCase());return e=r}(),r!==a&&Le()!==a?(n=function(){var e,r,n,u,i;e=pe,40===t.charCodeAt(pe)?(r="(",pe++):(r=a,0===he&&$e(o));r!==a&&Le()!==a?(n=pe,u=function(){var e,r,n,u,i;e=pe,r=[],n=pe,(u=we())!==a&&Le()!==a?(44===t.charCodeAt(pe)?(i=N,pe++):(i=a,0===he&&$e(q)),i===a&&(i=null),i!==a&&Le()!==a?(de=n,n=u=u):(pe=n,n=a)):(pe=n,n=a);if(n!==a)for(;n!==a;)r.push(n),n=pe,(u=we())!==a&&Le()!==a?(44===t.charCodeAt(pe)?(i=N,pe++):(i=a,0===he&&$e(q)),i===a&&(i=null),i!==a&&Le()!==a?(de=n,n=u=u):(pe=n,n=a)):(pe=n,n=a);else r=a;r!==a&&(de=e,r=r);return e=r}(),u!==a&&(i=Le())!==a?n=u=[u,i]:(pe=n,n=a),n===a&&(n=null),n!==a?(41===t.charCodeAt(pe)?(u=")",pe++):(u=a,0===he&&$e(l)),u!==a?(de=e,e=r=n):(pe=e,e=a)):(pe=e,e=a)):(pe=e,e=a);return e}(),n!==a?(de=e,e=r={type:"callExpression",id:r,arguments:(u=n,null!==u?u[0]:[])}):(pe=e,e=a)):(pe=e,e=a),e}function Ee(){var e,t,r,n;if(e=pe,(t=Ae())!==a)if(Le()!==a){for(r=[],n=Me();n!==a;)r.push(n),n=Me();r!==a?(de=e,e=t=s(t,r)):(pe=e,e=a)}else pe=e,e=a;else pe=e,e=a;return e}function Me(){var e,r,n,u,i;return e=pe,Le()!==a?(r=function(){var e;94===t.charCodeAt(pe)?(e="^",pe++):(e=a,0===he&&$e(c));e===a&&(42===t.charCodeAt(pe)?(e="*",pe++):(e=a,0===he&&$e(p)),e===a&&(47===t.charCodeAt(pe)?(e="/",pe++):(e=a,0===he&&$e(d)),e===a&&(43===t.charCodeAt(pe)?(e=f,pe++):(e=a,0===he&&$e(v)),e===a&&(45===t.charCodeAt(pe)?(e=m,pe++):(e=a,0===he&&$e(h))))));return e}(),r!==a&&Le()!==a&&(n=Ae())!==a?(de=e,u=r,i=n,e=[Object.assign({type:"operator"},Ye[u]),i]):(pe=e,e=a)):(pe=e,e=a),e}function Ue(){var e,r,n,u;return e=pe,(r=Se())!==a&&Le()!==a?(n=function(){var e;t.substr(pe,2)===S?(e=S,pe+=2):(e=a,0===he&&$e(F));e===a&&(t.substr(pe,2)===D?(e=D,pe+=2):(e=a,0===he&&$e(O)));return e}(),n!==a&&Le()!==a&&(u=Ue())!==a?(de=e,e=r=function(e,t,r){var n;switch(t){case"||":n="or";break;case"&&":n="and"}return{type:"callExpression",id:n,arguments:[e,r]}}(r,n,u)):(pe=e,e=a)):(pe=e,e=a),e===a&&(e=Se()),e}function Se(){var e,r,n,u;return e=pe,(r=Ee())!==a&&Le()!==a?(n=function(){var e;t.substr(pe,2)===g?(e=g,pe+=2):(e=a,0===he&&$e(y));e===a&&(t.substr(pe,2)===b?(e=b,pe+=2):(e=a,0===he&&$e(x)),e===a&&(t.substr(pe,2)===T?(e=T,pe+=2):(e=a,0===he&&$e($)),e===a&&(60===t.charCodeAt(pe)?(e="<",pe++):(e=a,0===he&&$e(C)),e===a&&(62===t.charCodeAt(pe)?(e=">",pe++):(e=a,0===he&&$e(w)),e===a&&(t.substr(pe,2)===A?(e=A,pe+=2):(e=a,0===he&&$e(k)),e===a&&(61===t.charCodeAt(pe)?(e="=",pe++):(e=a,0===he&&$e(E)),e===a&&(t.substr(pe,2)===M?(e=M,pe+=2):(e=a,0===he&&$e(U)))))))));return e}(),n===a&&(n=function(){var e;38===t.charCodeAt(pe)?(e="&",pe++):(e=a,0===he&&$e(I));return e}()),n!==a&&Le()!==a&&(u=Se())!==a?(de=e,e=r=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]}}(r,n,u)):(pe=e,e=a)):(pe=e,e=a),e===a&&(e=Ee()),e}function Fe(){var e,t,r;return e=pe,t=pe,he++,r=function(){var e;(e=qe())===a&&(e=Re());return e}(),he--,r===a?t=void 0:(pe=t,t=a),t!==a?(r=function(){var e,t,r,n;if(e=pe,(t=De())!==a){for(r=[],n=Oe();n!==a;)r.push(n),n=Oe();r!==a?(de=e,e=t={type:"identifier",name:t+r.join("")}):(pe=e,e=a)}else pe=e,e=a;return e}(),r!==a?(de=e,e=t=r):(pe=e,e=a)):(pe=e,e=a),e}function De(){var e;return 95===t.charCodeAt(pe)?(e="_",pe++):(e=a,0===he&&$e(W)),e===a&&(36===t.charCodeAt(pe)?(e="$",pe++):(e=a,0===he&&$e(Z)),e===a&&(R.test(t.charAt(pe))?(e=t.charAt(pe),pe++):(e=a,0===he&&$e(_)))),e}function Oe(){var e;return(e=De())===a&&(46===t.charCodeAt(pe)?(e=".",pe++):(e=a,0===he&&$e(L)),e===a&&(e=Ne())),e}function Ie(){var e;return(e=function(){var e,t,r;if(e=pe,We()!==a){for(t=[],(r=_e())===a&&(r=Ze());r!==a;)t.push(r),(r=_e())===a&&(r=Ze());t!==a&&(r=We())!==a?(de=e,e=P(t)):(pe=e,e=a)}else pe=e,e=a;if(e===a)if(e=pe,Ze()!==a){for(t=[],(r=_e())===a&&(r=We());r!==a;)t.push(r),(r=_e())===a&&(r=We());t!==a&&(r=Ze())!==a?(de=e,e=P(t)):(pe=e,e=a)}else pe=e,e=a;return e}())===a&&(e=function(){var e,r,n,u,i,o;e=pe,r=pe,(n=Le())!==a?(43===t.charCodeAt(pe)?(u=f,pe++):(u=a,0===he&&$e(v)),u!==a?r=n=[n,u]:(pe=r,r=a)):(pe=r,r=a);r===a&&(r=pe,45===t.charCodeAt(pe)?(n=m,pe++):(n=a,0===he&&$e(h)),n!==a&&(u=Le())!==a?r=n=[n,u]:(pe=r,r=a));r===a&&(r=null);if(r!==a)if((n=je())!==a)if(46===t.charCodeAt(pe)?(u=".",pe++):(u=a,0===he&&$e(L)),u!==a){for(i=[],o=Ne();o!==a;)i.push(o),o=Ne();i!==a?(de=e,l=ge().replace(/[\+\-]/g,"").split("."),e=r={type:"literal",value:parseFloat(ge()),dataType:"number",options:{length:l[0].length,scale:l[1].length}}):(pe=e,e=a)}else pe=e,e=a;else pe=e,e=a;else pe=e,e=a;var l;e===a&&(e=pe,r=pe,(n=Le())!==a?(43===t.charCodeAt(pe)?(u=f,pe++):(u=a,0===he&&$e(v)),u!==a?r=n=[n,u]:(pe=r,r=a)):(pe=r,r=a),r===a&&(r=pe,45===t.charCodeAt(pe)?(n=m,pe++):(n=a,0===he&&$e(h)),n!==a&&(u=Le())!==a?r=n=[n,u]:(pe=r,r=a)),r===a&&(r=null),r!==a&&(n=je())!==a?(de=e,e=r={type:"literal",value:parseInt(ge()),dataType:"number",options:{length:ge().replace(/[\+\-]/g,"").length,scale:0}}):(pe=e,e=a));return e}())===a&&(e=qe())===a&&(e=Re()),e}function je(){var e,r,n,u;if(48===t.charCodeAt(pe)?(e="0",pe++):(e=a,0===he&&$e(Y)),e===a)if(e=pe,r=function(){var e;X.test(t.charAt(pe))?(e=t.charAt(pe),pe++):(e=a,0===he&&$e(H));return e}(),r!==a){for(n=[],u=Ne();u!==a;)n.push(u),u=Ne();n!==a?e=r=[r,n]:(pe=e,e=a)}else pe=e,e=a;return e}function Ne(){var e;return z.test(t.charAt(pe))?(e=t.charAt(pe),pe++):(e=a,0===he&&$e(Q)),e}function qe(){var e,r;return e=pe,"true"===t.substr(pe,4).toLowerCase()?(r=t.substr(pe,4),pe+=4):(r=a,0===he&&$e(V)),r!==a&&(de=e,r={type:"literal",value:!0,dataType:"checkbox",options:{}}),(e=r)===a&&(e=pe,"false"===t.substr(pe,5).toLowerCase()?(r=t.substr(pe,5),pe+=5):(r=a,0===he&&$e(B)),r!==a&&(de=e,r={type:"literal",value:!1,dataType:"checkbox",options:{}}),e=r),e}function Re(){var e,r;return e=pe,"null"===t.substr(pe,4).toLowerCase()?(r=t.substr(pe,4),pe+=4):(r=a,0===he&&$e(G)),r!==a&&(de=e,r={type:"literal",value:null,dataType:"null",options:{}}),e=r}function _e(){var e,r,n;return e=pe,r=pe,he++,n=function(){var e;(e=We())===a&&(e=Ze());return e}(),n===a&&(92===t.charCodeAt(pe)?(n="\\",pe++):(n=a,0===he&&$e(K))),he--,n===a?r=void 0:(pe=r,r=a),r!==a?(n=function(){var e;t.length>pe?(e=t.charAt(pe),pe++):(e=a,0===he&&$e(te));return e}(),n!==a?(de=e,e=r=ge()):(pe=e,e=a)):(pe=e,e=a),e}function We(){var e;return 39===t.charCodeAt(pe)?(e="'",pe++):(e=a,0===he&&$e(J)),e}function Ze(){var e;return 34===t.charCodeAt(pe)?(e='"',pe++):(e=a,0===he&&$e(ee)),e}function Le(){var e,t;for(e=[],t=Pe();t!==a;)e.push(t),t=Pe();return e}function Pe(){var e;return 9===t.charCodeAt(pe)?(e="\t",pe++):(e=a,0===he&&$e(ae)),e===a&&(e=function(){var e;return re.test(t.charAt(pe))?(e=t.charAt(pe),pe++):(e=a,0===he&&$e(ne)),e}())===a&&(11===t.charCodeAt(pe)?(e="\v",pe++):(e=a,0===he&&$e(ue)),e===a&&(12===t.charCodeAt(pe)?(e="\f",pe++):(e=a,0===he&&$e(ie)),e===a&&(32===t.charCodeAt(pe)?(e=" ",pe++):(e=a,0===he&&$e(oe)),e===a&&(160===t.charCodeAt(pe)?(e=" ",pe++):(e=a,0===he&&$e(le)),e===a&&(8203===t.charCodeAt(pe)?(e="",pe++):(e=a,0===he&&$e(se)),e===a&&(65279===t.charCodeAt(pe)?(e="\ufeff",pe++):(e=a,0===he&&$e(ce)))))))),e}const Ye={"^":{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 ze(e,t,r){return{type:"callExpression",id:e.functionName,arguments:[t,r]}}if((n=i())!==a&&pe===t.length)return n;throw n!==a&&pe<t.length&&$e({type:"end"}),Qe=me,Xe=ve<t.length?t.charAt(ve):null,He=ve<t.length?Te(ve,ve+1):Te(ve,ve),new e(e.buildMessage(Qe,Xe),Qe,Xe,He);var Qe,Xe,He}}}(),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:k},s=k,c=$(":",!1),p=$(".",!1),d=function(e,t,r,n){return function(e,t,r,n){e>23&&T("hour part needs to be under 24");t>59&&T("minute part needs to be under 60");r>59&&T("second part needs to be under 60");n>999&&T("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:{}}},f=function(){return parseInt(t.substring(g,h))},v=/^[0-9]/,m={type:"class",parts:[["0","9"]],inverted:!1,ignoreCase:!1},h=0,g=0,y=[{line:1,column:1}],b=0,x=[];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 T(t,r){throw function(t,r){return new e(t,null,null,r)}(t,r=void 0!==r?r:w(g,h))}function $(e,t){return{type:"literal",text:e,ignoreCase:t}}function C(e){var r,n=y[e];if(n)return n;for(r=e-1;!y[r];)r--;for(n={line:(n=y[r]).line,column:n.column};r<e;)10===t.charCodeAt(r)?(n.line++,n.column=1):n.column++,r++;return y[e]=n,n}function w(e,t){var r=C(e),n=C(t);return{start:{offset:e,line:r.line,column:r.column},end:{offset:t,line:n.line,column:n.column}}}function A(e){h<b||(h>b&&(b=h,x=[]),x.push(e))}function k(){var e,r,n,a,u,i,l,s;return e=h,r=function(){var e;e=h,E()!==o&&E()!==o?(g=e,e=f()):(h=e,e=o);return e}(),r!==o?(58===t.charCodeAt(h)?(n=":",h++):(n=o,A(c)),n!==o?(a=function(){var e;e=h,E()!==o&&E()!==o?(g=e,e=f()):(h=e,e=o);return e}(),a!==o?(58===t.charCodeAt(h)?(u=":",h++):(u=o,A(c)),u!==o?(i=function(){var e;e=h,E()!==o&&E()!==o?(g=e,e=f()):(h=e,e=o);return e}(),i!==o?(46===t.charCodeAt(h)?(l=".",h++):(l=o,A(p)),l!==o?(s=function(){var e;e=h,E()!==o&&E()!==o&&E()!==o?(g=e,e=f()):(h=e,e=o);return e}(),s!==o?(g=e,e=r=d(r,a,i,s)):(h=e,e=o)):(h=e,e=o)):(h=e,e=o)):(h=e,e=o)):(h=e,e=o)):(h=e,e=o)):(h=e,e=o),e}function E(){var e;return v.test(t.charAt(h))?(e=t.charAt(h),h++):(e=o,A(m)),e}if((n=s())!==o&&h===t.length)return n;throw n!==o&&h<t.length&&A({type:"end"}),a=x,u=b<t.length?t.charAt(b):null,i=b<t.length?w(b,b+1):w(b,b),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": "2.2.
|
|
3
|
+
"version": "2.2.19",
|
|
4
4
|
"description": "Salesforce Formula Parser",
|
|
5
5
|
"main": "lib/formulon.js",
|
|
6
6
|
"files": [
|
|
@@ -54,5 +54,5 @@
|
|
|
54
54
|
"publishConfig": {
|
|
55
55
|
"access": "public"
|
|
56
56
|
},
|
|
57
|
-
"gitHead": "
|
|
57
|
+
"gitHead": "952067d4517fd07335b75c63fec4700f18db73ec"
|
|
58
58
|
}
|