@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
6 lines (5 loc) • 34.3 kB
JavaScript
/*
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
See https://js.arcgis.com/4.33/esri/copyright.txt for details.
*/
import{neverAbortedSignal as e,toSymbolId as n}from"./arcadeEnvironment.js";import{ArcadeModule as t}from"./ArcadeModule.js";import{ArcadeModuleLoader as r}from"./ArcadeModuleLoader.js";import{getNestedOptionalValue as l,geometryMember as o,getGeometryKeys as a}from"./containerUtils.js";import i from"./Dictionary.js";import{ArcadeCompilationError as s,ExecutionErrorCodes as u,ArcadeExecutionError as c,ArcadeUncompilableError as p}from"./executionError.js";import d from"./Feature.js";import{NativeFunction as f,ArcadeFunction as m,ScopeMarshalledFunction as g,wrapModuleScopedResponse as h}from"./FunctionWrapper.js";import{p as y,R as w,I as v,v as b,q as $,r as S,i as x,s as F,j as C,k as M,u as A,w as O,x as k,y as I,z as j,h as N,n as E}from"../chunks/languageUtils.js";import{addFunctionDeclaration as B}from"./treeAnalysis.js";import{A as R}from"../chunks/aiServices.js";import{A as _}from"../chunks/array.js";import{registerFunctions as D}from"./functions/date.js";import{registerFunctions as G}from"./functions/feature.js";import{registerFunctions as L}from"./functions/geometry.js";import{registerFunctions as U}from"./functions/geomsync.js";import{registerFunctions as K}from"./functions/maths.js";import{registerFunctions as P}from"./functions/stats.js";import{registerFunctions as W}from"./functions/string.js";import{neverReached as V}from"../core/compilerUtils.js";import{isPromiseLike as T}from"../core/promiseUtils.js";import Z from"../geometry/Geometry.js";import q from"../geometry/SpatialReference.js";import{isString as z,isArray as J,isNumber as Y,isBoolean as H,isGraphic as Q}from"../support/guards.js";function X(e){return e.symbols.symbolCounter++,`_T${e.symbols.symbolCounter}`}function ee(e){return e.symbols.symbolCounter++,`_Tvar${e.symbols.symbolCounter}`}function ne(e,n,t,r=u.InvalidIdentifier){const l=e.localScope?.variables.get(n);if(null!=l)return{type:"local",var:l};if(e.globalScope.provided.has(n))return{type:"global",var:n};const o=e.globalScope.variables.get(n);if(null!=o)return{type:"global",var:o};if(null!=e.localScope){const r=e.undeclaredGlobalsInFunctions.get(n);if(null!=r)return{type:"undeclared-global",var:r.mangledName};const l={mangledName:X(e),node:t};return e.undeclaredGlobalsInFunctions.set(n,l),{type:"undeclared-global",var:l.mangledName}}throw new s(null,r,t)}function te(e,n){if(null!=e.localScope){let t=e.localScope?.variables.get(n);return null==t&&(t=X(e),e.localScope.variables.set(n,t),e.mangleMap[n]=t),{type:"local",var:t}}if(e.globalScope.provided.has(n))return{type:"global",var:n};let t=e.globalScope.variables.get(n);if(null!=t)return{type:"global",var:t};if(e.undeclaredGlobalsInFunctions.has(n)){const t=e.undeclaredGlobalsInFunctions.get(n).mangledName;return e.globalScope.variables.set(n,t),e.mangleMap[n]=t,e.undeclaredGlobalsInFunctions.delete(n),{type:"resolved-undeclared-global",var:t}}return t=X(e),e.globalScope.variables.set(n,t),e.mangleMap[n]=t,{type:"global",var:t}}class re extends m{constructor(e,n){super(),this.paramCount=n,this.fn=e}createFunction(e){return(...n)=>{if(n.length!==this.paramCount)throw new c(e,u.WrongNumberOfParameters,null);return this.fn(...n)}}call(e,n){return this.fn(...n.arguments)}marshalledCall(e,n,t,r){return r(e,n,((n,l,o)=>{o=o.map((n=>!x(n)||n instanceof g?n:h(n,e,r)));const a=this.call(t,{arguments:o});return T(a)?a.then((e=>h(e,t,r))):a}))}}function le(e,n,t){try{return t(e,null,n.arguments)}catch(r){throw r}}function oe(e,n){switch(n.type){case"AssignmentExpression":return he(e,n);case"UpdateExpression":return me(e,n);case"TemplateLiteral":return je(e,n);case"Identifier":return Be(e,n);case"MemberExpression":return Oe(e,n);case"Literal":return null===n.value||void 0===n.value?"null":JSON.stringify(n.value);case"CallExpression":return Re(e,n);case"UnaryExpression":return ke(e,n);case"BinaryExpression":return Ne(e,n);case"LogicalExpression":return Ee(e,n);case"ArrayExpression":return Ie(e,n);case"ObjectExpression":return ie(e,n);default:throw new s(null,u.Unrecognized,n)}}function ae(e,n){switch(n.type){case"EmptyStatement":return"lc.voidOperation";case"VariableDeclaration":return Me(e,n);case"BlockStatement":return be(e,n);case"FunctionDeclaration":return Ce(e,n);case"ImportDeclaration":return Se(e,n);case"ExportNamedDeclaration":return xe(e,n);case"ReturnStatement":return $e(e,n);case"IfStatement":return ve(e,n);case"ExpressionStatement":return ye(e,n);case"BreakStatement":return"break";case"ContinueStatement":return"continue";case"ForStatement":return fe(e,n);case"ForInStatement":return pe(e,n);case"ForOfStatement":return de(e,n);case"WhileStatement":return ge(e,n);default:throw new s(null,u.Unrecognized,n)}}function ie(e,n){let t="lang.dictionary([";for(let r=0;r<n.properties.length;r++){const l=n.properties[r];let o;"Identifier"===l.key.type?(Fe(l.key.name),o="'"+l.key.name+"'"):o=oe(e,l.key);r>0&&(t+=","),t+="lang.strCheck("+o+",'ObjectExpression'),lang.aCheck("+oe(e,l.value)+", 'ObjectExpression')"}return t+="])",t}function se(e,n,t,r,l=(e,n)=>`${e} = ${n}`){const o=ee(e),a=ee(e);return[`var ${o} = ${t};`,`for (var ${a} = 0; ${a} < ${o}; ${a}++) {`,` ${l(n,a)}`,` ${ae(e,r)}`,"}","lastStatement = lc.voidOperation;"].join("\n")}function ue(e,n,t,r,l=e=>e){const o=ee(e),a=ee(e);return[`var ${o} = ${t};`,`for (var ${a} of ${o}) {`,` ${n} = ${l(a)};`,` ${ae(e,r)}`,"}","lastStatement = lc.voidOperation;"].join("\n")}function ce(e,n,t,r){const l=ee(e);return[`var ${l} = ${t}.iterator(runtimeCtx.abortSignal);`,`while ((${n} = lang.graphicToFeature(yield ${l}.next(), ${t}, runtimeCtx)) != null) {`,` ${ae(e,r)}`,"}","lastStatement = lc.voidOperation;"].join("\n")}function pe(e,t){const r=ee(e);let l="var "+r+" = "+oe(e,t.right)+";\n";"VariableDeclaration"===t.left.type&&(l+=ae(e,t.left));const o=n("VariableDeclaration"===t.left.type?t.left.declarations[0].id:t.left);Fe(o);const a=ne(e,o,t.left);let i;switch(a.type){case"local":i=`lscope['${a.var}']`;break;case"global":i=`gscope['${a.var}']`;break;case"undeclared-global":i=`gscope['${a.var}']`,l+="lang.chkAssig('"+a.var+"',runtimeCtx); \n";break;default:throw V(a.type),new s(null,u.NeverReach,t.left)}return l+="if ("+r+"===null) { lastStatement = lc.voidOperation; }\n ",l+="else if (lc.isArray("+r+") || lc.isString("+r+")) {\n",l+=se(e,i,`${r}.length`,t.body),l+="}\n",l+="else if (lc.isImmutableArray("+r+")) {\n",l+=se(e,i,`${r}.length()`,t.body),l+="}\n",l+="else if (( "+r+" instanceof lang.Dictionary) || lc.isDictionaryLike("+r+")) {\n",l+=ue(e,i,`${r}.keys()`,t.body),l+="}\n",e.isAsync&&(l+="else if (lc.isFeatureSet("+r+")) {\n",l+=ce(e,i,r,t.body),l+="}\n"),l+=`else if (lc.isGeometry(${r})) {\n`,l+=ue(e,i,`lang.getGeometryKeys(${r})`,t.body),l+="}\n",l+="else { lastStatement = lc.voidOperation; } \n",l}function de(e,t){const r=ee(e);let l="var "+r+" = "+oe(e,t.right)+";\n";"VariableDeclaration"===t.left.type&&(l+=ae(e,t.left));const o=n("VariableDeclaration"===t.left.type?t.left.declarations[0].id:t.left);Fe(o);const a=ne(e,o,t.left);let i;switch(a.type){case"local":i=`lscope['${a.var}']`;break;case"global":i=`gscope['${a.var}']`;break;case"undeclared-global":i=`gscope['${a.var}']`,l+="lang.chkAssig('"+a.var+"',runtimeCtx); \n";break;default:throw V(a.type),new s(null,u.NeverReach,t.left)}return l+="if ("+r+"===null) { lastStatement = lc.voidOperation; }\n ",l+="else if (lc.isArray("+r+") || lc.isString("+r+")) {\n",l+=se(e,i,`${r}.length`,t.body,((e,n)=>[`if (${n} >= ${r}.length) {`,` lang.error('${u.OutOfBounds}');`,"}",`${e} = ${r}[${n}];`].join("\n"))),l+="}\n",l+="else if (lc.isImmutableArray("+r+")) {\n",l+=se(e,i,`${r}.length()`,t.body,((e,n)=>`${e} = ${r}.get(${n});`)),l+="}\n",l+="else if (( "+r+" instanceof lang.Dictionary) || lc.isDictionaryLike("+r+")) {\n",l+=ue(e,i,`${r}.keys()`,t.body,(e=>`lang.entry(${e}, ${r}.field(${e}))`)),l+="}\n",e.isAsync&&(l+="else if (lc.isFeatureSet("+r+")) {\n",l+=ce(e,i,r,t.body),l+="}\n"),l+=`else if (lc.isGeometry(${r})) {\n`,l+=ue(e,i,`lang.getGeometryKeys(${r})`,t.body,(e=>`lang.entry(${e}, lang.geometryMember(${r}, ${e}, runtimeCtx, null, 1))`)),l+="}\n",l+="else { lastStatement = lc.voidOperation; } \n",l}function fe(e,n){let t="lastStatement = lc.voidOperation; \n";null!==n.init&&("VariableDeclaration"===n.init.type?t+=ae(e,n.init):t+=oe(e,n.init)+"; ");const r=ee(e),l=ee(e);return t+="var "+r+" = true; ",t+="\n do { ",null!==n.update&&(t+=" if ("+r+"===false) {\n "+oe(e,n.update)+" \n}\n "+r+"=false; \n"),null!==n.test&&(t+="var "+l+" = "+oe(e,n.test)+"; ",t+="if ("+l+"===false) { break; } else if ("+l+"!==true) { lang.error('"+u.BooleanConditionRequired+"'); }\n"),t+=ae(e,n.body),null!==n.update&&(t+="\n "+oe(e,n.update)),t+="\n"+r+" = true; \n} while(true); lastStatement = lc.voidOperation; ",t}function me(e,t){if("CallExpression"===t.argument.type)throw new s(null,u.NeverReach,t);let r;if("MemberExpression"===t.argument.type){const n=oe(e,t.argument.object);return!0===t.argument.computed?r=oe(e,t.argument.property):(Fe(t.argument.property.name),r="'"+t.argument.property.name+"'"),"lang.memberupdate("+n+","+r+",'"+t.operator+"',"+t.prefix+")"}const l=n(t.argument);Fe(l);const o=ne(e,l,t.argument);switch(o.type){case"local":return`lang.update(lscope, '${o.var}', '${t.operator}', ${t.prefix})`;case"global":return`lang.update(gscope, '${o.var}', '${t.operator}', ${t.prefix})`;case"undeclared-global":return`lang.update(gscope, lang.chkAssig('${o.var}',runtimeCtx), '${t.operator}', ${t.prefix})`;default:throw V(o.type),new s(null,u.NeverReach,t.argument)}}function ge(e,n){let t="lastStatement = lc.voidOperation; \n";const r=ee(e);return t+=`\n var ${r} = true;\n do {\n ${r} = ${oe(e,n.test)};\n if (${r}==false) {\n break;\n }\n if (${r}!==true) {\n lang.error('${u.BooleanConditionRequired}');\n }\n ${ae(e,n.body)}\n }\n while (${r} !== false);\n lastStatement = lc.voidOperation;\n `,t}function he(e,t){const r=oe(e,t.right);if("MemberExpression"===t.left.type){let n;const l=oe(e,t.left.object);return!0===t.left.computed?n=oe(e,t.left.property):(n="'"+t.left.property.name+"'",Fe(t.left.property.name)),"lang.assignmember("+l+","+n+",'"+t.operator+"',"+r+")"}const l=n(t.left);Fe(l);const o=ne(e,l,t.left);switch(o.type){case"local":return`lscope['${o.var}']=lang.assign(${r},'${t.operator}', lscope['${o.var}'])`;case"global":return`gscope['${o.var}']=lang.assign(${r},'${t.operator}', gscope['${o.var}'])`;case"undeclared-global":return`gscope[lang.chkAssig('${o.var}',runtimeCtx)]=lang.assign(${r},'${t.operator}', gscope['${o.var}'])`;default:throw V(o.type),new s(null,u.NeverReach,t.left)}}function ye(e,n){return"AssignmentExpression"===n.expression.type?"lastStatement = lc.voidOperation; "+oe(e,n.expression)+"; \n ":"lastStatement = "+oe(e,n.expression)+"; "}function we(e,n){return"BlockStatement"===n.type?ae(e,n):"ReturnStatement"===n.type||"BreakStatement"===n.type||"ContinueStatement"===n.type?ae(e,n)+"; ":"ExpressionStatement"===n.type?ae(e,n):ae(e,n)+"; "}function ve(e,n){return`if (lang.mustBoolean(${oe(e,n.test)}, runtimeCtx) === true) {\n ${we(e,n.consequent)}\n } `+(null!==n.alternate?"IfStatement"===n.alternate.type?" else "+ve(e,n.alternate):` else {\n ${we(e,n.alternate)}\n }\n`:" else {\n lastStatement = lc.voidOperation;\n }\n")}function be(e,n){let t="";for(let r=0;r<n.body.length;r++)"EmptyStatement"!==n.body[r].type&&("ReturnStatement"===n.body[r].type||"BreakStatement"===n.body[r].type||"ContinueStatement"===n.body[r].type?t+=ae(e,n.body[r])+"; \n":t+=ae(e,n.body[r])+" \n");return t}function $e(e,n){if(null===n.argument)return"return lc.voidOperation";return"return "+oe(e,n.argument)}function Se(e,t){const r=n(t.specifiers[0].local);Fe(r);const l=e.libraryResolver?.loadLibrary(r),o=X(e);void 0===e.moduleFactory[l.uri]&&(e.moduleFactory[l.uri]=en(l.syntax,{moduleFactory:e.moduleFactory,libraryResolver:e.libraryResolver},e.isAsync)),e.moduleFactoryMap[o]=l.uri;let a="";a=e.isAsync?"(yield lang.loadModule('"+o+"', runtimeCtx) ); ":"lang.loadModule('"+o+"', runtimeCtx); ";const i=te(e,r);switch(i.type){case"global":return`gscope['${i.var}']=${a}`;case"resolved-undeclared-global":return`gscope[lang.setAssig('${i.var}', runtimeCtx)]=${a}`;default:throw new s(null,u.NeverReach,t.specifiers[0].local)}}function xe(e,t){const r=ae(e,t.declaration);if("FunctionDeclaration"===t.declaration.type)e.exports[n(t.declaration.id)]="function";else if("VariableDeclaration"===t.declaration.type)for(const l of t.declaration.declarations)e.exports[n(l.id)]="variable";return r}function Fe(e){if("iif"===e)throw new p;if("decode"===e)throw new p;if("when"===e)throw new p;if("defaultvalue"===e)throw new p}function Ce(e,t){const r=n(t.id);Fe(r);const l=te(e,r),o={isAsync:e.isAsync,exports:e.exports,undeclaredGlobalsInFunctions:e.undeclaredGlobalsInFunctions,moduleFactory:e.moduleFactory,moduleFactoryMap:e.moduleFactoryMap,libraryResolver:e.libraryResolver,symbols:e.symbols,mangleMap:e.mangleMap,localScope:{variables:new Map},depthCounter:e.depthCounter,globalScope:e.globalScope};let a="new lang.UserDefinedCompiledFunction( lang.functionDepthchecker(function() { var lastStatement = lc.voidOperation; \n var lscope = runtimeCtx.localStack[runtimeCtx.localStack.length-1];\n";for(let i=0;i<t.params.length;i++){const e=n(t.params[i]);Fe(e);const r=te(o,e);if("local"!==r.type)throw new s(null,u.NeverReach,t.params[i]);a+=`lscope['${r.var}']=arguments[${i.toString()}];\n`}switch(!0===e.isAsync?(a+="return lang.__awaiter(this, void 0, void 0, function* () {\n",a+=be(o,t.body)+"\n return lastStatement; ",a+="}); }",a+=", runtimeCtx),"+t.params.length+")",a+="\n lastStatement = lc.voidOperation; \n"):(a+=be(o,t.body)+"\n return lastStatement; }, runtimeCtx),"+t.params.length+")",a+="\n lastStatement = lc.voidOperation; \n"),l.type){case"global":return`gscope['${l.var}']=${a}`;case"resolved-undeclared-global":return`gscope[lang.setAssig('${l.var}', runtimeCtx)]=${a}`;default:throw new s(null,u.NeverReach,t.id)}}function Me(e,n){const t=[];for(let r=0;r<n.declarations.length;r++)t.push(Ae(e,n.declarations[r]));return t.join("\n")+" \n lastStatement= lc.voidOperation; \n"}function Ae(e,t){const r=null===t.init?"null":oe(e,t.init),l=n(t.id);Fe(l);const o=te(e,l);switch(o.type){case"local":return`lscope['${o.var}']=${r};`;case"global":return`gscope['${o.var}']=${r};`;case"resolved-undeclared-global":return`gscope[lang.setAssig('${o.var}', runtimeCtx)]=${r};`;default:throw V(o.type),new s(null,u.NeverReach,t.id)}}function Oe(e,n){try{let t;return!0===n.computed?t=oe(e,n.property):(Fe(n.property.name),t="'"+n.property.name+"'"),"lang.member("+oe(e,n.object)+","+t+")"}catch(t){throw t}}function ke(e,n){try{return"lang.unary("+oe(e,n.argument)+",'"+n.operator+"')"}catch(t){throw t}}function Ie(e,n){try{const t=[];for(let r=0;r<n.elements.length;r++)"Literal"===n.elements[r].type?t.push(oe(e,n.elements[r])):t.push("lang.aCheck("+oe(e,n.elements[r])+",'ArrayExpression')");return"["+t.join(",")+"]"}catch(t){throw t}}function je(e,n){try{const t=[];let r=0;for(const l of n.quasis)t.push(l.value?JSON.stringify(l.value.cooked):JSON.stringify("")),!1===l.tail&&(t.push(n.expressions[r]?"lang.castString(lang.aCheck("+oe(e,n.expressions[r])+", 'TemplateLiteral'))":""),r++);return"(["+t.join(",")+"]).join('')"}catch(t){throw t}}function Ne(e,n){try{return"lang.binary("+oe(e,n.left)+","+oe(e,n.right)+",'"+n.operator+"')"}catch(t){throw t}}function Ee(e,n){try{if("AssignmentExpression"===n.left.type||"UpdateExpression"===n.left.type)throw new s(null,u.LogicalExpressionOnlyBoolean,n);if("AssignmentExpression"===n.right.type||"UpdateExpression"===n.right.type)throw new s(null,u.LogicalExpressionOnlyBoolean,n);if("&&"===n.operator||"||"===n.operator)return"(lang.logicalCheck("+oe(e,n.left)+") "+n.operator+" lang.logicalCheck("+oe(e,n.right)+"))";throw new s(null,u.LogicExpressionOrAnd,null)}catch(t){throw t}}function Be(e,t){const r=n(t);Fe(r);const l=ne(e,r,t);switch(l.type){case"local":return`lscope['${l.var}']`;case"global":return`gscope['${l.var}']`;case"undeclared-global":return`gscope[lang.chkAssig('${l.var}',runtimeCtx)]`;default:throw V(l.type),new s(null,u.NeverReach,t)}}function Re(e,t){try{if("MemberExpression"===t.callee.type){let n;!0===t.callee.computed?n=oe(e,t.callee.property):(Fe(t.callee.property.name),n="'"+t.callee.property.name+"'");let r="[";for(let l=0;l<t.arguments.length;l++)l>0&&(r+=", "),r+=oe(e,t.arguments[l]);return r+="]",e.isAsync?"(yield lang.callModuleFunction("+oe(e,t.callee.object)+","+r+","+n+",runtimeCtx))":"lang.callModuleFunction("+oe(e,t.callee.object)+","+r+","+n+",runtimeCtx)"}if("Identifier"!==t.callee.type)throw new s(null,u.FunctionNotFound,t);const r=n(t.callee);if("iif"===r)return _e(e,t);if("when"===r)return Ge(e,t);if("defaultvalue"===r)return De(e,t);if("decode"===r)return Le(e,t);const l=ne(e,r,t.callee,u.FunctionNotFound);let o;switch(l.type){case"local":o=`lscope['${l.var}']`;break;case"global":o=`gscope['${l.var}']`;break;case"undeclared-global":o=`gscope[lang.chkAssig('${l.var}',runtimeCtx)]`;break;default:throw V(l.type),new s(null,u.NeverReach,t.callee)}let a="[";for(let n=0;n<t.arguments.length;n++)n>0&&(a+=", "),a+=oe(e,t.arguments[n]);return a+="]",e.isAsync?"(yield lang.callfunc("+o+","+a+",runtimeCtx) )":"lang.callfunc("+o+","+a+",runtimeCtx)"}catch(r){throw r}}function _e(e,n){try{if(3!==n.arguments.length)throw new s(null,u.WrongNumberOfParameters,n);const t=ee(e);return`${e.isAsync?"(yield (function() { \n return lang.__awaiter(this, void 0, void 0, function* () {":"function() {"}\n var ${t} = ${oe(e,n.arguments[0])};\n\n if (${t} === true) {\n return ${oe(e,n.arguments[1])};\n }\n else if (${t} === false) {\n return ${oe(e,n.arguments[2])};\n }\n else {\n lang.error('ExecutionErrorCodes.BooleanConditionRequired');\n }\n ${e.isAsync?"})}()))":"}()"}`}catch(t){throw t}}function De(e,n){try{if(n.arguments.length<2||n.arguments.length>3)throw new s(null,u.WrongNumberOfParameters,n);const t=ee(e),r=ee(e);return 3===n.arguments.length?`${e.isAsync?"(yield (function() { \n return lang.__awaiter(this, void 0, void 0, function* () {":"function() {"}\n var ${t} = ${oe(e,n.arguments[0])};\n var ${r} = ${oe(e,n.arguments[1])};\n ${t} = lang.getNestedOptionalValue(${t}, ${r});\n return ${t} != null && ${t} !== "" ? ${t} : ${oe(e,n.arguments[2])};\n ${e.isAsync?"})}()))":"}()"}`:`${e.isAsync?"(yield (function() { \n return lang.__awaiter(this, void 0, void 0, function* () {":"function() {"}\n var ${t} = ${oe(e,n.arguments[0])};\n if (${t} === null) {\n return ${oe(e,n.arguments[1])};\n }\n if (${t} === "") {\n return ${oe(e,n.arguments[1])};\n }\n if (${t} === undefined) {\n return ${oe(e,n.arguments[1])};\n }\n return ${t};\n ${e.isAsync?"})}()))":"}()"}`}catch(t){throw t}}function Ge(e,n){try{if(n.arguments.length<3)throw new s(null,u.WrongNumberOfParameters,n);if(n.arguments.length%2==0)throw new s(null,u.WrongNumberOfParameters,n);const t=ee(e);let r="var ";for(let l=0;l<n.arguments.length-1;l+=2)r+=`${t} = lang.mustBoolean(${oe(e,n.arguments[l])}, runtimeCtx);\n if (${t} === true ) {\n return ${oe(e,n.arguments[l+1])}\n }\n`;return`${e.isAsync?"(yield (function() { \n return lang.__awaiter(this, void 0, void 0, function* () {":"function() {"}\n ${r}\n return ${oe(e,n.arguments[n.arguments.length-1])}\n ${e.isAsync?"})}()))":"}()"}`}catch(t){throw t}}function Le(e,n){try{if(n.arguments.length<2)throw new s(null,u.WrongNumberOfParameters,n);if(2===n.arguments.length)return`(${oe(e,n.arguments[1])})`;if((n.arguments.length-1)%2==0)throw new s(null,u.WrongNumberOfParameters,n);const t=ee(e),r=ee(e);let l="var ";for(let o=1;o<n.arguments.length-1;o+=2)l+=`${r} = ${oe(e,n.arguments[o])};\n if (lang.binary(${r}, ${t}, "==") === true ) {\n return ${oe(e,n.arguments[o+1])}\n }\n`;return`${e.isAsync?"(yield (function() { \n return lang.__awaiter(this, void 0, void 0, function* () {":"function() {"}\n var ${t} = ${oe(e,n.arguments[0])};\n ${l}\n return ${oe(e,n.arguments[n.arguments.length-1])}\n ${e.isAsync?"})}()))":"}()"}`}catch(t){throw t}}function Ue(e,n){try{return le(e,n,((e,n)=>{throw new c(e,u.Unrecognized,n)}))}catch(t){throw t}}function Ke(e){const n=function(){this._SymbolsMap=new Set(["textformatting","infinity","pi"]),this.textformatting=i.textFormatting()};n.prototype=Object.create(null),n.provided=new Set(["textformatting","infinity","pi"]),n.prototype.infinity=Number.POSITIVE_INFINITY,n.prototype.pi=Math.PI;for(const[t,r]of Object.entries(e))n.prototype[t]=new f(r),n.provided.add(t);return n}function Pe(){const e=Object.create(null);D(e,le),W(e,le),G(e,le,ze),K(e,le),L(e,le),P(e,le),e.iif=Ue,e.decode=Ue,e.when=Ue,e.defaultvalue=Ue;const n=Ke(e);U(e,le);return{ScopeSync:Ke(e),ScopeAsync:n}}const{ScopeSync:We,ScopeAsync:Ve}=Pe();function Te(e,n){const t={mode:n,compiled:!0,functions:Object.create(null),signatures:[],standardFunction:le,standardFunctionAsync:le,evaluateIdentifier:ze};for(const r of e)r.registerFunctions(t);if("sync"===n)for(const[r,l]of Object.entries(t.functions))We.prototype[r]=new f(l),We.provided.add(r);else for(const[r,l]of Object.entries(t.functions))Ve.prototype[r]=new f(l),Ve.provided.add(r);for(const r of t.signatures)B(r,n)}function Ze(e,n,t){const r=new Set(e?Ve.provided:We.provided);for(const l in t)r.add(l);for(const l in n)r.add(l);return r}function qe(e,n,t,r){const l=e?new Ve:new We;for(const o in t)l[o]=t[o],l._SymbolsMap.add(o);for(const o in n){const e=n[o];l._SymbolsMap.add(o),Q(e)?l[o]=d.createFromGraphic(e,r??null):l[o]=e}return l}function ze(e,n){const t=n.name;if("_SymbolsMap"===t)throw new c(e,u.InvalidIdentifier,null);if(e.localStack.length>0){const n=e.localStack[e.localStack.length-1];if(!t.toLowerCase().startsWith("_t")&&void 0!==n[t])return n[t];const r=e.mangleMap[t];if(void 0!==r&&void 0!==n[r])return n[r]}if(!t.toLowerCase().startsWith("_t")&&void 0!==e.globalScope[t])return e.globalScope[t];if(e.globalScope._SymbolsMap.has(t))return e.globalScope[t];const r=e.mangleMap[t];return void 0!==r?e.globalScope[r]:void 0}Te([_],"sync"),Te([_],"async"),Te([R],"async");const Je={isNumber:e=>Y(e),isArray:e=>J(e),isImmutableArray:e=>C(e),isDictionaryLike:e=>F(e),isString:e=>z(e),isDictionary:e=>E(e),isGeometry:e=>N(e),getGeometryKeys:e=>a(e),geometryMember:(e,n,t,r,l=1)=>o(e,n,t,r,l),error(e){throw new c(null,e,null)},__awaiter(e,n,t,r){const l=r.apply(e,n||[]);let o=l.next();for(;!o.done&&!T(o.value);)o=l.next(o.value);return o.done?o.value:new Promise(((e,n)=>{function t(r){for(;!r.done;){if(T(r.value))return void Promise.resolve(r.value).then((e=>{try{t(l.next(e))}catch(r){n(r)}}),(e=>{try{t(l.throw(e))}catch(r){n(r)}}));try{r=l.next(r.value)}catch(o){return void n(o)}}e(r.value)}t(o)}))},functionDepthchecker:(e,n)=>function(){if(n.depthCounter.depth++,n.localStack.push({}),n.depthCounter.depth>64)throw new c(null,u.MaximumCallDepth,null);const t=e.apply(this,arguments);return T(t)?t.then((e=>(n.depthCounter.depth--,n.localStack.length=n.localStack.length-1,e))):(n.depthCounter.depth--,n.localStack.length=n.localStack.length-1,t)},chkAssig(e,n){if(void 0===n.gdefs[e])throw new c(n,u.InvalidIdentifier,null);return e},mustBoolean(e,n){if(!0===e||!1===e)return e;throw new c(n,u.BooleanConditionRequired,null)},setAssig:(e,n)=>(n.gdefs[e]=1,e),castString:e=>O(e),aCheck(e,n){if(x(e)){if("ArrayExpression"===n)throw new c(null,u.NoFunctionInArray,null);if("ObjectExpression"===n)throw new c(null,u.NoFunctionInDictionary,null);throw new c(null,u.NoFunctionInTemplateLiteral,null)}return e===b?null:e},Dictionary:i,Feature:d,UserDefinedCompiledFunction:re,dictionary(e){const n=Object.create(null),t=new Map;for(let l=0;l<e.length;l+=2){if(x(e[l+1]))throw new c(null,u.NoFunctionInDictionary,null);if(!1===z(e[l]))throw new c(null,u.KeyMustBeString,null);let r=e[l].toString();const o=r.toLowerCase();t.has(o)?r=t.get(o):t.set(o,r),e[l+1]===b?n[r]=null:n[r]=e[l+1]}const r=new i(n);return r.immutable=!1,r},entry:(e,n)=>i.containerEntry(e,n),strCheck(e){if(!1===z(e))throw new c(null,u.KeyMustBeString,null);return e},unary(e,n){if(H(e)){if("!"===n)return!e;if("-"===n)return-1*A(e);if("+"===n)return 1*A(e);if("~"===n)return~A(e);throw new c(null,u.UnsupportedUnaryOperator,null)}if("-"===n)return-1*A(e);if("+"===n)return 1*A(e);if("~"===n)return~A(e);throw new c(null,u.UnsupportedUnaryOperator,null)},logicalCheck(e){if(!1===H(e))throw new c(null,u.LogicExpressionOrAnd,null);return e},logical(e,n,t){if(H(e)&&H(n))switch(t){case"||":return e||n;case"&&":return e&&n;default:throw new c(null,u.LogicExpressionOrAnd,null)}throw new c(null,u.LogicExpressionOrAnd,null)},binary(e,n,t){switch(t){case"|":case"<<":case">>":case">>>":case"^":case"&":return j(A(e),A(n),t);case"==":case"=":return I(e,n);case"!=":return!I(e,n);case"<":case">":case"<=":case">=":return k(e,n,t);case"+":return z(e)||z(n)?O(e)+O(n):A(e)+A(n);case"-":return A(e)-A(n);case"*":return A(e)*A(n);case"/":return A(e)/A(n);case"%":return A(e)%A(n);default:throw new c(null,u.UnsupportedOperator,null)}},assign(e,n,t){switch(n){case"=":return e===b?null:e;case"/=":return A(t)/A(e);case"*=":return A(t)*A(e);case"-=":return A(t)-A(e);case"+=":return z(t)||z(e)?O(t)+O(e):A(t)+A(e);case"%=":return A(t)%A(e);default:throw new c(null,u.UnsupportedOperator,null)}},update(e,n,t,r){const l=A(e[n]);return e[n]="++"===t?l+1:l-1,!1===r?l:"++"===t?l+1:l-1},graphicToFeature:(e,n,t)=>null===e?null:d.createFromGraphicLikeObject(e.geometry,e.attributes,n,t.timeZone),memberupdate(e,n,t,r){let l;if(J(e)){if(!Y(n))throw new c(null,u.ArrayAccessorMustBeNumber,null);if(n<0&&(n=e.length+n),n<0||n>=e.length)throw new c(null,u.OutOfBounds,null);l=A(e[n]),e[n]="++"===t?l+1:l-1}else if(e instanceof i){if(!1===z(n))throw new c(null,u.KeyAccessorMustBeString,null);if(!0!==e.hasField(n))throw new c(null,u.FieldNotFound,null,{key:n});l=A(e.field(n)),e.setField(n,"++"===t?l+1:l-1)}else if(M(e)){if(!1===z(n))throw new c(null,u.KeyAccessorMustBeString,null);if(!0!==e.hasField(n))throw new c(null,u.FieldNotFound,null);l=A(e.field(n)),e.setField(n,"++"===t?l+1:l-1)}else{if(C(e))throw new c(null,u.Immutable,null);if(!(e instanceof Xe))throw new c(null,u.InvalidIdentifier,null);if(!1===z(n))throw new c(null,u.ModuleAccessorMustBeString,null);if(!0!==e.hasGlobal(n))throw new c(null,u.ModuleExportNotFound,null);l=A(e.global(n)),e.setGlobal(n,"++"===t?l+1:l-1)}return!1===r?l:"++"===t?l+1:l-1},assignmember(e,n,t,r){if(J(e)){if(!Y(n))throw new c(null,u.ArrayAccessorMustBeNumber,null);if(n<0&&(n=e.length+n),n<0||n>e.length)throw new c(null,u.OutOfBounds,null);if(n===e.length){if("="!==t)throw new c(null,u.OutOfBounds,null);e[n]=this.assign(r,t,e[n])}else e[n]=this.assign(r,t,e[n])}else if(e instanceof i){if(!1===z(n))throw new c(null,u.KeyAccessorMustBeString,null);if(!0===e.hasField(n))e.setField(n,this.assign(r,t,e.field(n)));else{if("="!==t)throw new c(null,u.FieldNotFound,null);e.setField(n,this.assign(r,t,null))}}else if(M(e)){if(!1===z(n))throw new c(null,u.KeyAccessorMustBeString,null);if(!0===e.hasField(n))e.setField(n,this.assign(r,t,e.field(n)));else{if("="!==t)throw new c(null,u.FieldNotFound,null);e.setField(n,this.assign(r,t,null))}}else{if(C(e))throw new c(null,u.Immutable,null);if(!(e instanceof Xe))throw new c(null,u.InvalidIdentifier,null);if(!1===z(n))throw new c(null,u.ModuleAccessorMustBeString,null);if(!e.hasGlobal(n))throw new c(null,u.ModuleExportNotFound,null);e.setGlobal(n,this.assign(r,t,e.global(n)))}},member(e,n){if(null===e)throw new c(null,u.MemberOfNull,null);if(e instanceof i||F(e)){if(z(n))return e.field(n);throw new c(null,u.InvalidMemberAccessKey,null)}if(e instanceof Z){if(z(n))return o(e,n,null,null);throw new c(null,u.InvalidMemberAccessKey,null)}if(J(e)){if(Y(n)&&isFinite(n)&&Math.floor(n)===n){if(n<0&&(n=e.length+n),n>=e.length||n<0)throw new c(null,u.OutOfBounds,null);return e[n]}throw new c(null,u.InvalidMemberAccessKey,null)}if(z(e)){if(Y(n)&&isFinite(n)&&Math.floor(n)===n){if(n<0&&(n=e.length+n),n>=e.length||n<0)throw new c(null,u.OutOfBounds,null);return e[n]}throw new c(null,u.InvalidMemberAccessKey,null)}if(C(e)){if(Y(n)&&isFinite(n)&&Math.floor(n)===n){if(n<0&&(n=e.length()+n),n>=e.length()||n<0)throw new c(null,u.OutOfBounds,null);return e.get(n)}throw new c(null,u.InvalidMemberAccessKey,null)}if(e instanceof Xe){if(z(n))return e.global(n);throw new c(null,u.InvalidMemberAccessKey,null)}throw new c(null,u.InvalidMemberAccessKey,null)},callfunc:(e,n,t)=>e.call(t,{arguments:n,preparsed:!0}),loadModule(e,n){const t=n.moduleFactoryMap[e];if(n.moduleSingletons[t])return n.moduleSingletons[t];const r=n.moduleFactory[t]({moduleSingletons:n.moduleSingletons,depthCounter:n.depthCounter,lrucache:n.lrucache,interceptor:n.interceptor,services:n.services,console:n.console,abortSignal:n.abortSignal,timeZone:n.timeZone??null,spatialReference:n.spatialReference});return n.moduleSingletons[t]=r,r},callModuleFunction(e,n,t,r){if(!(e instanceof Xe))throw new c(null,u.FunctionNotFound,null);const l=e.global(t);if(!1===x(l))throw new c(null,u.CallNonFunction,null);return l.call(r,{preparsed:!0,arguments:n})},getNestedOptionalValue:(e,n)=>l(e,n)};function Ye(e){console.log(e)}function He(n,t,l=!1){null==t&&(t={vars:{},customfunctions:{}});let o=null;n.usesModules&&(o=new r(null,n.loadedModules));const a={isAsync:l,globalScope:{provided:Ze(l,t.vars,t.customfunctions),variables:new Map},moduleFactory:{},moduleFactoryMap:{},undeclaredGlobalsInFunctions:new Map,libraryResolver:o,localScope:null,mangleMap:{},depthCounter:{depth:1},exports:{},symbols:{symbolCounter:0}};let i=be(a,n);""===i&&(i="lc.voidOperation; "),a.undeclaredGlobalsInFunctions.size>0&&a.undeclaredGlobalsInFunctions.forEach((e=>{throw new s(null,u.InvalidIdentifier,e.node)}));let p="";p=l?"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"+i+"\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 "+i+"\n return lastStatement; } \n return this.postProcess(mainBody()); ";const d=a.moduleFactory,f=a.moduleFactoryMap,m=a.exports,g={};let h;for(h in m)g[h]=a.mangleMap[h]??h;const F={lc:y,lang:Je,mangles:a.mangleMap,postProcess(e){if(e instanceof w&&(e=e.value),e instanceof v&&(e=e.value),e===b&&(e=null),e===$)throw new c(null,u.IllegalResult,null);if(e===S)throw new c(null,u.IllegalResult,null);if(x(e))throw new c(null,u.IllegalResult,null);return e},prepare(n,t){const r=n.spatialReference??q.WebMercator,l=qe(t,n.vars,n.customfunctions,n.timeZone);return{localStack:[],moduleFactory:d,moduleFactoryMap:f,mangleMap:this.mangles,moduleSingletons:{},exports:m,gdefs:{},exportmangle:g,spatialReference:r,globalScope:l,abortSignal:n.abortSignal??e,services:n.services,console:n.console??Ye,lrucache:n.lrucache,timeZone:n.timeZone??null,interceptor:n.interceptor,depthCounter:{depth:1}}}};return new Function("context",p).bind(F)}async function Qe(){return Te([await import("./functions/geomasync.js")],"async"),!0}class Xe extends t{constructor(e){super(),this.moduleContext=e}hasGlobal(e){return void 0===this.moduleContext.exports[e]&&(e=e.toLowerCase()),void 0!==this.moduleContext.exports[e]}setGlobal(e,n){const t=this.moduleContext.globalScope,r=e.toLowerCase();if(x(n))throw new c(null,u.AssignModuleFunction,null);t[this.moduleContext.exportmangle[r]]=n}global(e){const n=this.moduleContext.globalScope,t=e.toLowerCase(),r=n[this.moduleContext.exportmangle[t]];if(void 0===r)throw new c(null,u.InvalidIdentifier,null);if(x(r)&&!(r instanceof g)){const e=new g;return e.fn=r,e.parameterEvaluator=le,e.context=this.moduleContext,n[this.moduleContext.exportmangle[t]]=e,e}return r}}function en(n,t,l){const o={isAsync:l,moduleFactory:t.moduleFactory,moduleFactoryMap:{},libraryResolver:new r(null,n.loadedModules),globalScope:{provided:Ze(l,null,null),variables:new Map},localScope:null,mangleMap:{},undeclaredGlobalsInFunctions:new Map,depthCounter:{depth:1},exports:{},symbols:{symbolCounter:0}};let a=be(o,n);""===a&&(a="lc.voidOperation; ");let i="";i=l?"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"+a+"\n return lastStatement; }); } \n yield mainBody(); \n return this.prepareModule(runtimeCtx); }); ":"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 "+a+"\n return lastStatement; } \n mainBody(); \n return this.prepareModule(runtimeCtx); ";const s=o.moduleFactory,u=o.moduleFactoryMap,c=o.exports,p={};let d;for(d in c)p[d]=o.mangleMap[d]??d;const f={lc:y,lang:Je,mangles:o.mangleMap,prepareModule:e=>new Xe(e),prepare(n,t){const r=n.spatialReference??q.WebMercator,l=qe(t,null,null,n.timeZone);return{localStack:[],exports:c,exportmangle:p,gdefs:{},moduleFactory:s,moduleFactoryMap:u,moduleSingletons:n.moduleSingletons,mangleMap:this.mangles,spatialReference:r,globalScope:l,abortSignal:n.abortSignal??e,services:n.services,console:n.console??Ye,lrucache:n.lrucache,timeZone:n.timeZone??null,interceptor:n.interceptor,depthCounter:n.depthCounter}}};return new Function("context",i).bind(f)}export{re as UserDefinedCompiledFunction,He as compileScript,Qe as enableAsyncSupport,Te as extend};