12345 |
- /*
- All material copyright ESRI, All Rights Reserved, unless otherwise specified.
- See https://js.arcgis.com/4.24/esri/copyright.txt for details.
- */
- import e from"./ArcadePortal.js";import t from"./Attachment.js";import n from"./Dictionary.js";import r from"./Feature.js";import o from"./ImmutablePathArray.js";import a from"./ImmutablePointArray.js";import{p as l,i as s,m as i,N as c,l as u,f as p,n as f,o as m,v as h,h as g,b as y,q as d,r as S,a as w,s as b,S as E,u as v,R as N,I as M,w as I,x as O,j as x,y as T,z as _,A as C}from"../chunks/languageUtils.js";import{addFunctionDeclaration as R,findFieldLiterals as A,findExpectedFieldLiterals as U,validateScript as F,referencesMember as P,referencesFunction as k,nodeErrorMessage as j}from"./treeAnalysis.js";import{A as D}from"../chunks/array.js";import{registerFunctions as L}from"./functions/date.js";import{registerFunctions as B}from"./functions/geometry.js";import{registerFunctions as Y}from"./functions/geomsync.js";import{registerFunctions as V}from"./functions/maths.js";import{registerFunctions as G}from"./functions/stats.js";import{registerFunctions as z}from"./functions/string.js";import{isPromiseLike as q}from"../core/promiseUtils.js";import J from"../geometry/Extent.js";import Z from"../geometry/Geometry.js";import H from"../geometry/Multipoint.js";import W from"../geometry/Point.js";import K from"../geometry/Polygon.js";import X from"../geometry/Polyline.js";import Q from"../geometry/SpatialReference.js";function $(e,t){const n=[];for(let r=0;r<t.arguments.length;r++)n.push(te(e,t.arguments[r]));return n}function ee(e,t,n){try{return n(e,null,t.arguments)}catch(r){throw r}}function te(e,t){try{switch(t.type){case"EmptyStatement":return"lc.voidOperation";case"VariableDeclarator":return ge(e,t);case"VariableDeclaration":return he(e,t);case"BlockStatement":return pe(e,t);case"FunctionDeclaration":return me(e,t);case"ReturnStatement":return fe(e,t);case"IfStatement":return ue(e,t);case"ExpressionStatement":return ie(e,t);case"AssignmentExpression":return se(e,t);case"UpdateExpression":return le(e,t);case"BreakStatement":return"break";case"ContinueStatement":return"continue";case"TemplateLiteral":return Ee(e,t);case"TemplateElement":return JSON.stringify(t.value?t.value.cooked:"");case"ForStatement":return ae(e,t);case"ForInStatement":return oe(e,t);case"Identifier":return Me(e,t);case"MemberExpression":return Se(e,t);case"Literal":return null===t.value||void 0===t.value?"null":JSON.stringify(t.value);case"ThisExpression":case"ConditionalExpression":case"Array":throw new Error(j(t,"RUNTIME","NOTSUPPORTED"));case"CallExpression":return Ie(e,t);case"UnaryExpression":return we(e,t);case"BinaryExpression":return ve(e,t);case"LogicalExpression":return Ne(e,t);case"ArrayExpression":return be(e,t);case"ObjectExpression":return ne(e,t);case"Property":return re(e,t);default:throw new Error(j(t,"RUNTIME","UNREOGNISED"))}}catch(n){throw n}}function ne(e,t){let n="lang.dictionary([";for(let r=0;r<t.properties.length;r++){const o=t.properties[r];r>0&&(n+=","),n+="lang.strCheck("+("Identifier"===o.key.type?"'"+o.key.name+"'":te(e,o.key))+",'ObjectExpression'),lang.aCheck("+te(e,o.value)+", 'ObjectExpression')"}return n+="])",n}function re(e,t){throw new Error("Should not get here")}function oe(e,t){const n=Pe(e),r=Pe(e),o=Pe(e);let a="var "+n+" = "+te(e,t.right)+";\n";"VariableDeclaration"===t.left.type&&(a+=te(e,t.left));let l="VariableDeclaration"===t.left.type?t.left.declarations[0].id.name:t.left.name;l=l.toLowerCase();let s="";return null!==e.localScope&&(void 0!==e.localScope[l]?s="lscope['"+l+"']":void 0!==e.localScope._SymbolsMap[l]&&(s="lscope['"+e.localScope._SymbolsMap[l]+"']")),""===s&&(void 0!==e.globalScope[l]?s="gscope['"+l+"']":void 0!==e.globalScope._SymbolsMap[l]&&(s="gscope['"+e.globalScope._SymbolsMap[l]+"']")),a+="if ("+n+"===null) { lastStatement = lc.voidOperation; }\n ",a+="else if (lc.isArray("+n+") || lc.isString("+n+")) {",a+="var "+r+"="+n+".length; \n",a+="for(var "+o+"=0; "+o+"<"+r+"; "+o+"++) {\n",a+=s+"="+o+";\n",a+=te(e,t.body),a+="\n}\n",a+=" lastStatement = lc.voidOperation; \n",a+=" \n}\n",a+="else if (lc.isImmutableArray("+n+")) {",a+="var "+r+"="+n+".length(); \n",a+="for(var "+o+"=0; "+o+"<"+r+"; "+o+"++) {\n",a+=s+"="+o+";\n",a+=te(e,t.body),a+="\n}\n",a+=" lastStatement = lc.voidOperation; \n",a+=" \n}\n",a+="else if (( "+n+" instanceof lang.Dictionary) || ( "+n+" instanceof lang.Feature)) {",a+="var "+r+"="+n+".keys(); \n",a+="for(var "+o+"=0; "+o+"<"+r+".length; "+o+"++) {\n",a+=s+"="+r+"["+o+"];\n",a+=te(e,t.body),a+="\n}\n",a+=" lastStatement = lc.voidOperation; \n",a+=" \n}\n",e.isAsync&&(a+="else if (lc.isFeatureSet("+n+")) {",a+="var "+r+"="+n+".iterator(runtimeCtx.abortSignal); \n",a+="for(var "+o+"=lang. graphicToFeature( yield "+r+".next(),"+n+"); "+o+"!=null; "+o+"=lang. graphicToFeature( yield "+r+".next(),"+n+")) {\n",a+=s+"="+o+";\n",a+=te(e,t.body),a+="\n}\n",a+=" lastStatement = lc.voidOperation; \n",a+=" \n}\n"),a+="else { lastStatement = lc.voidOperation; } \n",a}function ae(e,t){let n="lastStatement = lc.voidOperation; \n";null!==t.init&&(n+=te(e,t.init)+"; ");const r=Pe(e),o=Pe(e);return n+="var "+r+" = true; ",n+="\n do { ",null!==t.update&&(n+=" if ("+r+"===false) {\n "+te(e,t.update)+" \n}\n "+r+"=false; \n"),null!==t.test&&(n+="var "+o+" = "+te(e,t.test)+"; ",n+="if ("+o+"===false) { break; } else if ("+o+"!==true) { lang.error({type: '"+t.type+"'},'RUNTIME','CANNOT_USE_NONBOOLEAN_IN_CONDITION'); }\n"),n+=te(e,t.body),null!==t.update&&(n+="\n "+te(e,t.update)),n+="\n"+r+" = true; \n} while(true); lastStatement = lc.voidOperation; ",n}function le(e,t){let n=null,r="";if("MemberExpression"===t.argument.type)return n=te(e,t.argument.object),r=!0===t.argument.computed?te(e,t.argument.property):"'"+t.argument.property.name+"'","lang.memberupdate("+n+","+r+",'"+t.operator+"',"+t.prefix+")";if(n=t.argument.name.toLowerCase(),null!==e.localScope){if(void 0!==e.localScope[n])return"lang.update(lscope, '"+n+"','"+t.operator+"',"+t.prefix+")";if(void 0!==e.localScope._SymbolsMap[n])return"lang.update(lscope, '"+e.localScope._SymbolsMap[n]+"','"+t.operator+"',"+t.prefix+")"}if(void 0!==e.globalScope[n])return"lang.update(gscope, '"+n+"','"+t.operator+"',"+t.prefix+")";if(void 0!==e.globalScope._SymbolsMap[n])return"lang.update(gscope, '"+e.globalScope._SymbolsMap[n]+"','"+t.operator+"',"+t.prefix+")";throw new Error("Variable not recognised")}function se(e,t){const n=te(e,t.right);let r=null,o="";if("MemberExpression"===t.left.type)return r=te(e,t.left.object),o=!0===t.left.computed?te(e,t.left.property):"'"+t.left.property.name+"'","lang.assignmember("+r+","+o+",'"+t.operator+"',"+n+")";if(r=t.left.name.toLowerCase(),null!==e.localScope){if(void 0!==e.localScope[r])return"lscope['"+r+"']=lang.assign("+n+",'"+t.operator+"', lscope['"+r+"'])";if(void 0!==e.localScope._SymbolsMap[r])return"lscope['"+e.localScope._SymbolsMap[r]+"']=lang.assign("+n+",'"+t.operator+"', lscope['"+e.localScope._SymbolsMap[r]+"'])"}if(void 0!==e.globalScope[r])return"gscope['"+r+"']=lang.assign("+n+",'"+t.operator+"', gscope['"+r+"'])";if(void 0!==e.globalScope._SymbolsMap[r])return"gscope['"+e.globalScope._SymbolsMap[r]+"']=lang.assign("+n+",'"+t.operator+"', gscope['"+e.globalScope._SymbolsMap[r]+"'])";throw new Error("Variable not recognised")}function ie(e,t){return"AssignmentExpression"===t.expression.type?"lastStatement = lc.voidOperation; "+te(e,t.expression)+"; \n ":(t.expression.type,"lastStatement = "+te(e,t.expression)+"; ")}function ce(e,t){return"BlockStatement"===t.type?te(e,t):"ReturnStatement"===t.type||"BreakStatement"===t.type||"ContinueStatement"===t.type?te(e,t)+"; ":"UpdateExpression"===t.type?"lastStatement = "+te(e,t)+"; ":"ExpressionStatement"===t.type?te(e,t):"ObjectExpression"===t.type?"lastStatement = "+te(e,t)+"; ":te(e,t)+"; "}function ue(e,t){if("AssignmentExpression"===t.test.type||"UpdateExpression"===t.test.type)throw new Error(j(t.test,"RUNTIME","CANNOT_USE_ASSIGNMENT_IN_CONDITION"));const n=te(e,t.test),r=Pe(e);let o="var "+r+" = "+n+";\n if ("+r+" === true) {\n"+ce(e,t.consequent)+"\n }\n";return null!==t.alternate?o+="else if ("+r+"===false) { \n"+ce(e,t.alternate)+"}\n":o+="else if ("+r+"===false) { \n lastStatement = lc.voidOperation;\n }\n",o+="else { lang.error({type: '"+t.type+"'},'RUNTIME','CANNOT_USE_NONBOOLEAN_IN_CONDITION'); \n}\n",o}function pe(e,t){let n="";for(let r=0;r<t.body.length;r++)"ReturnStatement"===t.body[r].type||"BreakStatement"===t.body[r].type||"ContinueStatement"===t.body[r].type?n+=te(e,t.body[r])+"; \n":"UpdateExpression"===t.body[r].type||"ObjectExpression"===t.body[r].type?n+="lastStatement = "+te(e,t.body[r])+"; \n":n+=te(e,t.body[r])+" \n";return n}function fe(e,t){if(null===t.argument)return"return lc.voidOperation";return"return "+te(e,t.argument)}function me(e,t){const n=t.id.name.toLowerCase(),r={isAsync:e.isAsync,spatialReference:e.spatialReference,console:e.console,lrucache:e.lrucache,interceptor:e.interceptor,services:e.services,symbols:e.symbols,mangleMap:e.mangleMap,localScope:{_SymbolsMap:{}},depthCounter:e.depthCounter+1,globalScope:e.globalScope};if(r.depthCounter>64)throw new Error("Exceeded maximum function depth");let o="new lc.SizzleFunction( lang.functionDepthchecker(function() { var lastStatement = lc.voidOperation; \n var lscope = runtimeCtx.localStack[runtimeCtx.localStack.length-1];\n";for(let a=0;a<t.params.length;a++){const n=t.params[a].name.toLowerCase(),l=Fe(e);r.localScope._SymbolsMap[n]=l,r.mangleMap[n]=l,o+="lscope['"+l+"']=arguments["+a.toString()+"];\n"}if(!0===e.isAsync?(o+="return lang.__awaiter(this, void 0, void 0, function* () {\n",o+=pe(r,t.body)+"\n return lastStatement; ",o+="}); }",o+=", runtimeCtx),"+t.params.length+")",o+="\n lastStatement = lc.voidOperation; \n"):(o+=pe(r,t.body)+"\n return lastStatement; }, runtimeCtx),"+t.params.length+")",o+="\n lastStatement = lc.voidOperation; \n"),void 0!==e.globalScope[n])return"gscope['"+n+"']="+o;if(void 0!==e.globalScope._SymbolsMap[n])return"gscope['"+e.globalScope._SymbolsMap[n]+"']="+o;{const t=Fe(e);return e.globalScope._SymbolsMap[n]=t,e.mangleMap[n]=t,"gscope['"+t+"']="+o}}function he(e,t){const n=[];for(let r=0;r<t.declarations.length;r++)n.push(te(e,t.declarations[r]));return n.join("\n")+" \n lastStatement= lc.voidOperation; \n"}function ge(e,t){let n=null===t.init?null:te(e,t.init);n===h&&(n=null);const r=t.id.name.toLowerCase();if(null!==e.localScope){if(void 0!==e.localScope[r])return"lscope['"+r+"']="+n+"; ";if(void 0!==e.localScope._SymbolsMap[r])return"lscope['"+e.localScope._SymbolsMap[r]+"']="+n+"; ";{const t=Fe(e);return e.localScope._SymbolsMap[r]=t,e.mangleMap[r]=t,"lscope['"+t+"']="+n+"; "}}if(void 0!==e.globalScope[r])return"gscope['"+r+"']="+n+"; ";if(void 0!==e.globalScope._SymbolsMap[r])return"gscope['"+e.globalScope._SymbolsMap[r]+"']="+n+"; ";{const t=Fe(e);return e.globalScope._SymbolsMap[r]=t,e.mangleMap[r]=t,"gscope['"+t+"']="+n+"; "}}let ye=0;function de(e,t,r){let l;switch(t=t.toLowerCase()){case"hasz":{const t=e.hasZ;return void 0!==t&&t}case"hasm":{const t=e.hasM;return void 0!==t&&t}case"spatialreference":{let t=e.spatialReference._arcadeCacheId;if(void 0===t){let n=!0;Object.freeze&&Object.isFrozen(e.spatialReference)&&(n=!1),n&&(ye++,e.spatialReference._arcadeCacheId=ye,t=ye)}const r=new n({wkt:e.spatialReference.wkt,wkid:e.spatialReference.wkid});return void 0!==t&&(r._arcadeCacheId="SPREF"+t.toString()),r}}switch(e.type){case"extent":switch(t){case"xmin":case"xmax":case"ymin":case"ymax":case"zmin":case"zmax":case"mmin":case"mmax":{const n=e[t];return void 0!==n?n:null}case"type":return"Extent"}break;case"polygon":switch(t){case"rings":l=e.cache._arcadeCacheId,void 0===l&&(ye++,l=ye,e.cache._arcadeCacheId=l);return new o(e.rings,e.spatialReference,!0===e.hasZ,!0===e.hasM,l);case"type":return"Polygon"}break;case"point":switch(t){case"x":case"y":case"z":case"m":return void 0!==e[t]?e[t]:null;case"type":return"Point"}break;case"polyline":switch(t){case"paths":l=e.cache._arcadeCacheId,void 0===l&&(ye++,l=ye,e.cache._arcadeCacheId=l);return new o(e.paths,e.spatialReference,!0===e.hasZ,!0===e.hasM,l);case"type":return"Polyline"}break;case"multipoint":switch(t){case"points":l=e.cache._arcadeCacheId,void 0===l&&(ye++,l=ye,e.cache._arcadeCacheId=l);return new a(e.points,e.spatialReference,!0===e.hasZ,!0===e.hasM,l,1);case"type":return"Multipoint"}}throw new Error(j(r,"RUNTIME","PROPERTYNOTFOUND"))}function Se(e,t){try{let n;return n=!0===t.computed?te(e,t.property):"'"+t.property.name+"'","lang.member("+te(e,t.object)+","+n+")"}catch(n){throw n}}function we(e,t){try{return"lang.unary("+te(e,t.argument)+",'"+t.operator+"')"}catch(n){throw n}}function be(e,t){try{const n=[];for(let r=0;r<t.elements.length;r++)"Literal"===t.elements[r].type?n.push(te(e,t.elements[r])):n.push("lang.aCheck("+te(e,t.elements[r])+",'ArrayExpression')");return"["+n.join(",")+"]"}catch(n){throw n}}function Ee(e,t){try{const n=[];let r=0;for(const o of t.quasis)n.push(o.value?JSON.stringify(o.value.cooked):JSON.stringify("")),!1===o.tail&&(n.push(t.expressions[r]?"lang.castString(lang.aCheck("+te(e,t.expressions[r])+", 'TemplateLiteral'))":""),r++);return"(["+n.join(",")+"]).join('')"}catch(n){throw n}}function ve(e,t){try{return"lang.binary("+te(e,t.left)+","+te(e,t.right)+",'"+t.operator+"')"}catch(n){throw n}}function Ne(e,t){try{if("AssignmentExpression"===t.left.type||"UpdateExpression"===t.left.type)throw new Error(j(t.left,"RUNTIME","CANNOT_USE_ASSIGNMENT_IN_CONDITION"));if("AssignmentExpression"===t.right.type||"UpdateExpression"===t.right.type)throw new Error(j(t.right,"RUNTIME","CANNOT_USE_ASSIGNMENT_IN_CONDITION"));if("&&"===t.operator||"||"===t.operator)return"(lang.logicalCheck("+te(e,t.left)+") "+t.operator+" lang.logicalCheck("+te(e,t.right)+"))";throw new Error(j(t,"RUNTIME","ONLYORORAND"))}catch(n){throw n}}function Me(e,t){try{const n=t.name.toLowerCase();if(null!==e.localScope){if(void 0!==e.localScope[n])return"lscope['"+n+"']";if(void 0!==e.localScope._SymbolsMap[n])return"lscope['"+e.localScope._SymbolsMap[n]+"']"}if(void 0!==e.globalScope[n])return"gscope['"+n+"']";if(void 0!==e.globalScope._SymbolsMap[n])return"gscope['"+e.globalScope._SymbolsMap[n]+"']";throw new Error(j(t,"RUNTIME","VARIABLENOTFOUND"))}catch(n){throw n}}function Ie(e,t){try{if("Identifier"!==t.callee.type)throw new Error(j(t,"RUNTIME","ONLYNODESSUPPORTED"));const n=t.callee.name.toLowerCase();let r="";if(null!==e.localScope&&(void 0!==e.localScope[n]?r="lscope['"+n+"']":void 0!==e.localScope._SymbolsMap[n]&&(r="lscope['"+e.localScope._SymbolsMap[n]+"']")),""===r&&(void 0!==e.globalScope[n]?r="gscope['"+n+"']":void 0!==e.globalScope._SymbolsMap[n]&&(r="gscope['"+e.globalScope._SymbolsMap[n]+"']")),""!==r){let n="[";for(let r=0;r<t.arguments.length;r++)r>0&&(n+=", "),n+=te(e,t.arguments[r]);return n+="]",e.isAsync?"(yield lang.callfunc("+r+","+n+",runtimeCtx) )":"lang.callfunc("+r+","+n+",runtimeCtx)"}throw new Error(j(t,"RUNTIME","NOTFOUND"))}catch(n){throw n}}const Oe={};function xe(r){return null===r?"":u(r)||f(r)?"Array":x(r)?"Date":y(r)?"String":s(r)?"Boolean":w(r)?"Number":r instanceof t?"Attachment":r instanceof e?"Portal":r instanceof n?"Dictionary":b(r)?"Feature":r instanceof W?"Point":r instanceof K?"Polygon":r instanceof X?"Polyline":r instanceof H?"Multipoint":r instanceof J?"Extent":m(r)?"Function":T(r)?"FeatureSet":_(r)?"FeatureSetCollection":r===h?"":"number"==typeof r&&isNaN(r)?"Number":"Unrecognised Type"}function Te(e,t,n,r){try{const o=t[n];if(i(o,r))return t[n+1];{const o=t.length-n;return 1===o?t[n]:2===o?null:3===o?t[n+2]:Te(e,t,n+2,r)}}catch(o){throw o}}function _e(e,t,n,r){try{if(!0===r)return t[n+1];if(3===t.length-n)return t[n+2];{const r=t[n+2];if(!1===s(r))throw new Error("WHEN needs boolean test conditions");return _e(e,t,n+2,r)}}catch(o){throw o}}function Ce(e,t){const n=e.length,r=Math.floor(n/2);return 0===n?[]:1===n?[e[0]]:Re(Ce(e.slice(0,r),t),Ce(e.slice(r,n),t),t)}function Re(e,t,n){const r=[];for(;e.length>0||t.length>0;)if(e.length>0&&t.length>0){let o=n(e[0],t[0]);isNaN(o)&&(o=0),o<=0?(r.push(e[0]),e=e.slice(1)):(r.push(t[0]),t=t.slice(1))}else e.length>0?(r.push(e[0]),e=e.slice(1)):t.length>0&&(r.push(t[0]),t=t.slice(1));return r}async function Ae(e,t){const n=e.length,r=Math.floor(n/2);if(0===n)return[];if(1===n)return[e[0]];const o=[await Ae(e.slice(0,r),t),await Ae(e.slice(r,n),t)];return Ue(o[0],o[1],t,[])}async function Ue(e,t,n,r){const o=r;if(!(e.length>0||t.length>0))return r;if(e.length>0&&t.length>0){let a=await n(e[0],t[0]);return isNaN(a)&&(a=1),a<=0?(o.push(e[0]),e=e.slice(1)):(o.push(t[0]),t=t.slice(1)),Ue(e,t,n,r)}return e.length>0?(o.push(e[0]),Ue(e=e.slice(1),t,n,r)):t.length>0?(o.push(t[0]),Ue(e,t=t.slice(1),n,r)):void 0}function Fe(e){return e.symbols.symbolCounter++,"_T"+e.symbols.symbolCounter.toString()}function Pe(e){return e.symbols.symbolCounter++,"_Tvar"+e.symbols.symbolCounter.toString()}L(Oe,ee),z(Oe,ee),V(Oe,ee),B(Oe,ee),G(Oe,ee),Oe.typeof=function(e,t){return ee(e,t,(function(e,t,n){l(n,1,1);const r=xe(n[0]);if("Unrecognised Type"===r)throw new Error("Unrecognised Type");return r}))},Oe.iif=function(e,t){try{return ee(e,t,(function(e,t,n){if(l(n,3,3),!1===s(n[0]))throw new Error("IF Function must have a boolean test condition");return n[0]?n[1]:n[2]}))}catch(n){throw n}},Oe.decode=function(e,t){try{return ee(e,t,(function(t,n,r){if(r.length<2)throw new Error("Missing Parameters");if(2===r.length)return r[1];{if((r.length-1)%2==0)throw new Error("Must have a default value result.");const t=r[0];return Te(e,r,1,t)}}))}catch(n){throw n}},Oe.when=function(e,t){try{return ee(e,t,(function(t,n,r){if(r.length<3)throw new Error("Missing Parameters");if(r.length%2==0)throw new Error("Must have a default value result.");const o=r[0];if(!1===s(o))throw new Error("WHEN needs boolean test conditions");return _e(e,r,0,o)}))}catch(n){throw n}},Oe.top=function(e,t){return ee(e,t,(function(e,t,n){if(l(n,2,2),u(n[0]))return p(n[1])>=n[0].length?n[0].slice(0):n[0].slice(0,p(n[1]));if(f(n[0]))return p(n[1])>=n[0].length()?n[0].slice(0):n[0].slice(0,p(n[1]));throw new Error("Top cannot accept this parameter type")}))},Oe.first=function(e,t){return ee(e,t,(function(e,t,n){return l(n,1,1),u(n[0])?0===n[0].length?null:n[0][0]:f(n[0])?0===n[0].length()?null:n[0].get(0):null}))},Oe.sort=function(e,t){return ee(e,t,(function(t,n,r){l(r,1,2);let o=r[0];if(f(o)&&(o=o.toArray()),!1===u(o))throw new Error("Illegal Argument");if(r.length>1){if(!1===m(r[1]))throw new Error("Illegal Argument");let n=o;const a=function(e,n){return Xe.callfunc(r[1],[e,n],t)};return e.isAsync?Ae(n,a):(n=Ce(n,(function(e,t){return a(e,t)})),n)}{let e=o;if(0===e.length)return[];const t={};for(let o=0;o<e.length;o++){const n=xe(e[o]);""!==n&&(t[n]=!0)}if(!0===t.Array||!0===t.Dictionary||!0===t.Feature||!0===t.Point||!0===t.Polygon||!0===t.Polyline||!0===t.Multipoint||!0===t.Extent||!0===t.Function)return e.slice(0);let n=0,r="";for(const o in t)n++,r=o;return e=n>1||"String"===r?Ce(e,(function(e,t){if(null==e||e===h)return null==t||t===h?0:1;if(null==t||t===h)return-1;const n=g(e),r=g(t);return n<r?-1:n===r?0:1})):"Number"===r?Ce(e,(function(e,t){return e-t})):"Boolean"===r?Ce(e,(function(e,t){return e===t?0:t?-1:1})):"Date"===r?Ce(e,(function(e,t){return t-e})):e.slice(0),e}}))};const ke={};for(const tt in Oe)ke[tt]=new c(Oe[tt]);Y(Oe,ee);for(const tt in Oe)Oe[tt]=new c(Oe[tt]);const je=function(){};je.prototype=Oe;const De=function(){};function Le(e,t,n){const r={};e||(e={}),n||(n={}),r._SymbolsMap={},r.textformatting=1,r.infinity=1,r.pi=1;for(const o in t)r[o]=1;for(const o in n)r[o]=1;for(const o in e)r[o]=1;return r}function Be(e,t,o){const a=o?new De:new je;e||(e={}),t||(t={});const l=new n({newline:"\n",tab:"\t",singlequote:"'",doublequote:'"',forwardslash:"/",backwardslash:"\\"});l.immutable=!1,a._SymbolsMap={textformatting:1,infinity:1,pi:1},a.textformatting=l,a.infinity=Number.POSITIVE_INFINITY,a.pi=Math.PI;for(const n in t)a[n]=t[n],a._SymbolsMap[n]=1;for(const n in e)a._SymbolsMap[n]=1,e[n]&&"esri.Graphic"===e[n].declaredClass?a[n]=r.createFromGraphic(e[n]):a[n]=e[n];return a}De.prototype=ke;const Ye={fixSpatialReference:C,parseArguments:$,standardFunction:ee};function Ve(e,t){const n={mode:t,compiled:!0,functions:{},signatures:[],standardFunction:ee,standardFunctionAsync:ee,evaluateIdentifier:We};for(let r=0;r<e.length;r++)e[r].registerFunctions(n);if("sync"===t){for(const e in n.functions)Oe[e]=new c(n.functions[e]),je.prototype[e]=Oe[e];for(let e=0;e<n.signatures.length;e++)R(n.signatures[e],"sync")}else{for(const e in n.functions)ke[e]=new c(n.functions[e]),De.prototype[e]=ke[e];for(let e=0;e<n.signatures.length;e++)R(n.signatures[e],"async")}}function Ge(e,t){return e(t)}function ze(e,t){return A(e)}function qe(e){return U(e)}function Je(e,t){return F(e,t,"sync")}function Ze(e,t){return P(e,t)}function He(e,t){return k(e,t)}function We(e,t){const n=t.name;if("_SymbolsMap"===n)throw new Error("Illegal");if(e.localStack.length>0){if("_t"!==n.substr(0,2).toLowerCase()&&void 0!==e.localStack[e.localStack.length-1][n])return e.localStack[e.localStack.length-1][n];const t=e.mangleMap[n];if(void 0!==t&&void 0!==e.localStack[e.localStack.length-1][t])return e.localStack[e.localStack.length-1][t]}if("_t"!==n.substr(0,2).toLowerCase()&&void 0!==e.globalScope[n])return e.globalScope[n];if(1===e.globalScope._SymbolsMap[n])return e.globalScope[n];const r=e.mangleMap[n];return void 0!==r?e.globalScope[r]:void 0}Ve([D],"sync"),Ve([D],"async");let Ke=0;const Xe={error(e,t,n){throw new Error(j(e,t,n))},__awaiter:(e,t,n,r)=>new Promise(((n,o)=>{function a(e){try{s(r.next(e))}catch(t){o(t)}}function l(e){try{s(r.throw(e))}catch(t){o(t)}}function s(e){e.done?n(e.value):e.value&&e.value.then?e.value.then(a,l):(Ke++,Ke%100==0?setTimeout((()=>{Ke=0,a(e.value)}),0):a(e.value))}s((r=r.apply(e,t||[])).next())})),functionDepthchecker:(e,t)=>function(){if(t.depthCounter++,t.localStack.push([]),t.depthCounter>64)throw new Error("Exceeded maximum function depth");const n=e.apply(this,arguments);return q(n)?n.then((e=>(t.depthCounter--,t.localStack.length=t.localStack.length-1,e))):(t.depthCounter--,t.localStack.length=t.localStack.length-1,n)},castString:e=>g(e),aCheck(e,t){if(m(e))throw new Error(j({type:t},"RUNTIME","FUNCTIONCONTEXTILLEGAL"));return e===h?null:e},Dictionary:n,Feature:r,dictionary(e){const t={};for(let n=0;n<e.length;n+=2){if(m(e[n+1]))throw new Error("Illegal Argument");if(!1===y(e[n]))throw new Error("Illegal Argument");e[n+1]===h?t[e[n].toString()]=null:t[e[n].toString()]=e[n+1]}const r=new n(t);return r.immutable=!1,r},strCheck(e){if(!1===y(e))throw new Error("Illegal Argument");return e},unary(e,t){if(s(e)){if("!"===t)return!e;if("-"===t)return-1*p(e);if("+"===t)return 1*p(e);if("~"===t)return~p(e);throw new Error(j({type:"UnaryExpression",operator:t,prefix:null,argument:null},"RUNTIME","NOTSUPPORTEDUNARYOPERATOR"))}if("-"===t)return-1*p(e);if("+"===t)return 1*p(e);if("~"===t)return~p(e);throw new Error(j({type:"UnaryExpression",operator:t,prefix:null,argument:null},"RUNTIME","NOTSUPPORTEDUNARYOPERATOR"))},logicalCheck(e){if(!1===s(e)){throw new Error(j({type:"LogicalExpression",operator:null,left:null,right:null},"RUNTIME","ONLYORORAND"))}return e},logical(e,t,n){if(s(e)&&s(t))switch(n){case"||":return e||t;case"&&":return e&&t;default:throw new Error(j({type:"LogicalExpression",operator:null,left:null,right:null},"RUNTIME","ONLYORORAND"))}throw new Error(j({type:"LogicalExpression",operator:null,left:null,right:null},"RUNTIME","ONLYORORAND"))},binary(e,t,n){switch(n){case"|":case"<<":case">>":case">>>":case"^":case"&":return S(p(e),p(t),n);case"==":case"=":return i(e,t);case"!=":return!i(e,t);case"<":case">":case"<=":case">=":return d(e,t,n);case"+":return y(e)||y(t)?g(e)+g(t):p(e)+p(t);case"-":return p(e)-p(t);case"*":return p(e)*p(t);case"/":return p(e)/p(t);case"%":return p(e)%p(t);default:throw new Error(j({type:"BinaryExpression",operator:n,left:e,right:t},"RUNTIME","OPERATORNOTRECOGNISED"))}},assign(e,t,n){switch(t){case"=":return e===h?null:e;case"/=":return p(n)/p(e);case"*=":return p(n)*p(e);case"-=":return p(n)-p(e);case"+=":return y(n)||y(e)?g(n)+g(e):p(n)+p(e);case"%=":return p(n)%p(e);default:throw new Error(j({type:"AssignmentExpression",operator:t,left:null,right:null},"RUNTIME","OPERATORNOTRECOGNISED"))}},update(e,t,n,r){const o=p(e[t]);return e[t]="++"===n?o+1:o-1,!1===r?o:"++"===n?o+1:o-1},graphicToFeature:(e,t)=>null===e?null:r.createFromGraphicLikeObject(e.geometry,e.attributes,t),memberupdate(e,t,r,o){let a;if(u(e)){if(!w(t))throw new Error("Invalid Parameter");if(t<0&&(t=e.length+t),t<0||t>=e.length)throw new Error("Assignment outside of array bounds");a=p(e[t]),e[t]="++"===r?a+1:a-1}else if(e instanceof n){if(!1===y(t))throw new Error("Dictionary accessor must be a string");if(!0!==e.hasField(t))throw new Error("Invalid Parameter");a=p(e.field(t)),e.setField(t,"++"===r?a+1:a-1)}else{if(!b(e))throw f(e)?new Error("Array is Immutable"):new Error("Invalid Parameter");if(!1===y(t))throw new Error("Feature accessor must be a string");if(!0!==e.hasField(t))throw new Error("Invalid Parameter");a=p(e.field(t)),e.setField(t,"++"===r?a+1:a-1)}return!1===o?a:"++"===r?a+1:a-1},assignmember(e,t,r,o){if(u(e)){if(!w(t))throw new Error("Invalid Parameter");if(t<0&&(t=e.length+t),t<0||t>e.length)throw new Error("Assignment outside of array bounds");if(t===e.length){if("="!==r)throw new Error("Invalid Parameter");e[t]=this.assign(o,r,e[t])}else e[t]=this.assign(o,r,e[t])}else if(e instanceof n){if(!1===y(t))throw new Error("Dictionary accessor must be a string");if(!0===e.hasField(t))e.setField(t,this.assign(o,r,e.field(t)));else{if("="!==r)throw new Error("Invalid Parameter");e.setField(t,this.assign(o,r,null))}}else{if(!b(e))throw f(e)?new Error("Array is Immutable"):new Error("Invalid Parameter");if(!1===y(t))throw new Error("Feature accessor must be a string");if(!0===e.hasField(t))e.setField(t,this.assign(o,r,e.field(t)));else{if("="!==r)throw new Error("Invalid Parameter");e.setField(t,this.assign(o,r,null))}}},member(e,t){if(null===e){throw new Error(j({type:"MemberExpression",object:null,property:null,computed:null},"RUNTIME","NOTFOUND"))}if(e instanceof n||b(e)){if(y(t))return e.field(t);throw new Error(j({type:"MemberExpression",object:null,property:null,computed:null},"RUNTIME","INVALIDTYPE"))}if(e instanceof Z){if(y(t))return de(e,t,"MemberExpression");throw new Error(j({type:"MemberExpression",object:null,property:null,computed:null},"RUNTIME","INVALIDTYPE"))}if(u(e)){if(w(t)&&isFinite(t)&&Math.floor(t)===t){if(t<0&&(t=e.length+t),t>=e.length||t<0){throw new Error(j({type:"MemberExpression",object:null,property:null,computed:null},"RUNTIME","OUTOFBOUNDS"))}return e[t]}throw new Error(j({type:"MemberExpression",object:null,property:null,computed:null},"RUNTIME","INVALIDTYPE"))}if(y(e)){if(w(t)&&isFinite(t)&&Math.floor(t)===t){if(t<0&&(t=e.length+t),t>=e.length||t<0){throw new Error(j({type:"MemberExpression",object:null,property:null,computed:null},"RUNTIME","OUTOFBOUNDS"))}return e[t]}throw new Error(j({type:"MemberExpression",object:null,property:null,computed:null},"RUNTIME","INVALIDTYPE"))}if(f(e)){if(w(t)&&isFinite(t)&&Math.floor(t)===t){if(t<0&&(t=e.length()+t),t>=e.length()||t<0){throw new Error(j({type:"MemberExpression",object:null,property:null,computed:null},"RUNTIME","OUTOFBOUNDS"))}return e.get(t)}throw new Error(j({type:"MemberExpression",object:null,property:null,computed:null},"RUNTIME","INVALIDTYPE"))}throw new Error(j({type:"MemberExpression",object:null,property:null,computed:null},"RUNTIME","INVALIDTYPE"))},callfunc(e,t,n){return e instanceof c?e.fn(n,{arguments:t,preparsed:!0}):e instanceof E?e.fn.apply(this,t):e.apply(this,t)}};function Qe(e){console.log(e)}function $e(e,t=null,n=!1){null===t&&(t={vars:{},customfunctions:{}});const r={isAsync:n,globalScope:Le(t.vars,n?ke:Oe,t.customfunctions),localScope:null,mangleMap:{},console:Qe,lrucache:t.lrucache,interceptor:t.interceptor,services:t.services,symbols:{symbolCounter:0}};let o=te(r,e.body[0].body);""===o&&(o="lc.voidOperation; ");let a="";a=n?"var runtimeCtx=this.prepare(context, true);\n var lc = this.lc; var lang = this.lang; var gscope=runtimeCtx.globalScope; \nreturn lang.__awaiter(this, void 0, void 0, function* () {\n\n function mainBody() {\n var lastStatement=lc.voidOperation;\n return lang.__awaiter(this, void 0, void 0, function* () {\n"+o+"\n return lastStatement; }); } \n return this.postProcess(yield mainBody()); }); ":"var runtimeCtx=this.prepare(context, false);\n var lc = this.lc; var lang = this.lang; var gscope=runtimeCtx.globalScope; \n function mainBody() {\n var lastStatement=lc.voidOperation;\n "+o+"\n return lastStatement; } \n return this.postProcess(mainBody()); ";const l={lc:v,lang:Xe,mangles:r.mangleMap,postProcess(e){if(e instanceof N&&(e=e.value),e instanceof M&&(e=e.value),e===h&&(e=null),e===I)throw new Error("Cannot return BREAK");if(e===O)throw new Error("Cannot return CONTINUE");if(m(e))throw new Error("Cannot return FUNCTION");return e},prepare(e,t){let n=e.spatialReference;null==n&&(n=new Q({wkid:102100}));const r=Be(e.vars,e.customfunctions,t);return{localStack:[],isAsync:t,mangleMap:this.mangles,spatialReference:n,globalScope:r,abortSignal:void 0===e.abortSignal||null===e.abortSignal?{aborted:!1}:e.abortSignal,localScope:null,services:e.services,console:e.console?e.console:Qe,lrucache:e.lrucache,interceptor:e.interceptor,symbols:{symbolCounter:0},depthCounter:1}}};return new Function("context","spatialReference",a).bind(l)}async function et(){return Ve([await import("./functions/geomasync.js")],"async"),!0}export{$e as compileScript,et as enableAsyncSupport,Ge as executeScript,Ve as extend,qe as extractExpectedFieldLiterals,ze as extractFieldLiterals,Ye as functionHelper,He as referencesFunction,Ze as referencesMember,Je as validateScript};
|