@arcgis/core 4.34.0-next.28 → 4.34.0-next.29
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/applications/Components/featureUtils.d.ts +6 -0
- package/applications/Components/featureUtils.js +5 -0
- package/arcade/arcade.js +1 -1
- package/arcade/arcadeAsyncRuntime.js +1 -1
- package/arcade/arcadeCompiler.js +1 -1
- package/arcade/arcadeRuntime.js +1 -1
- package/arcade/functions/feature.js +1 -1
- package/arcade/functions/track.js +5 -0
- package/arcade/treeAnalysis.js +1 -1
- package/arcade.js +1 -1
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/086f3bc5938bf9a37274.js +1 -0
- package/assets/esri/core/workers/chunks/{7e5d3735a9c718591d64.js → 22f38cad0213f2112394.js} +1 -1
- package/assets/esri/core/workers/chunks/{746c78e1c84f9612d69b.js → 2f54776ff86f397adc55.js} +1 -1
- package/assets/esri/core/workers/chunks/{edfd8b482182803b44ca.js → 2fdf457786d2d5d7414f.js} +1 -1
- package/assets/esri/core/workers/chunks/5192f38682f1f9be7da0.js +1 -0
- package/assets/esri/core/workers/chunks/{7ee50f75914d8d650af4.js → 63cb3dcd359e96733b1b.js} +1 -1
- package/assets/esri/core/workers/chunks/{e49a95f2126ef9a994d3.js → 6ccd6171d3c572883034.js} +1 -1
- package/assets/esri/core/workers/chunks/89999baefa341bd3329c.js +1 -0
- package/assets/esri/core/workers/chunks/{629a924e99d5d6eb1998.js → 90a9b618058dc41294de.js} +1 -1
- package/assets/esri/core/workers/chunks/98f6d4ea026ed96fd3f3.js +1 -0
- package/assets/esri/core/workers/chunks/d3b1d1c389d70919fb02.js +1 -0
- package/assets/esri/core/workers/chunks/db81d881805f6f92a2e4.js +1 -0
- package/assets/esri/core/workers/chunks/e89698fc404379627349.js +1 -0
- package/assets/esri/core/workers/chunks/{0254ef9fb7f8ebb25304.js → ecc15622d6c434ea842b.js} +1 -1
- package/assets/esri/core/workers/chunks/{aa781b28dbe457427afc.js → fb71e533995c54cd806f.js} +1 -1
- package/assets/esri/libs/parquet/pkg/bundle_bg.wasm +0 -0
- package/chunks/GeodeticDistanceCalculator-Ce-woMPw.js +1 -1
- package/chunks/OperatorGeodesicBuffer.js +1 -1
- package/chunks/OperatorGeodeticArea.js +1 -1
- package/chunks/OperatorGeodeticLength.js +1 -1
- package/chunks/OperatorProximityGeodesic.js +1 -1
- package/chunks/OperatorShapePreservingLength.js +1 -1
- package/chunks/OperatorShapePreservingProject.js +1 -1
- package/chunks/Terrain.glsl.js +11 -11
- package/chunks/UnitFactory.js +1 -1
- package/chunks/arcade.js +1 -1
- package/chunks/bundle.js +1 -1
- package/config.js +1 -1
- package/geometry/operators/gx/operatorGeodeticDistance.js +1 -1
- package/interfaces.d.ts +80 -2
- package/kernel.js +1 -1
- package/layers/IntegratedMesh3DTilesLayer.js +1 -1
- package/layers/ParquetLayer.js +1 -1
- package/layers/graphics/sources/ParquetSource.js +1 -1
- package/layers/orientedImagery/core/ExposurePoint.js +1 -1
- package/layers/orientedImagery/transformations/imageToWorld.js +1 -1
- package/layers/orientedImagery/transformations/rectifyMapPoint.js +1 -1
- package/layers/orientedImagery/transformations/utils.js +1 -1
- package/layers/orientedImagery/transformations/worldToImage.js +1 -1
- package/layers/support/ParquetEncodingWkb.js +1 -1
- package/layers/support/layerUtils.js +1 -1
- package/layers/support/parquetUtils.js +1 -1
- package/libs/parquet/parquet.js +1 -1
- package/package.json +2 -2
- package/support/arcadeUtils.js +1 -1
- package/support/revision.js +1 -1
- package/views/2d/layers/FeatureLayerView2D.js +1 -1
- package/views/2d/layers/features/layerAdapters/ParquetLayerAdapter.js +1 -1
- package/views/2d/layers/features/processor/FeatureUpdateStrategy.js +1 -1
- package/views/2d/layers/features/sources/FeatureSource.js +1 -1
- package/views/2d/layers/features/sources/strategies/ALoadStrategy.js +1 -1
- package/views/2d/layers/features/sources/strategies/ParquetSnapshotLoadStrategy.js +5 -0
- package/views/2d/layers/features/sources/strategies/ParquetTileLoadStrategy.js +5 -0
- package/views/2d/layers/features/sources/strategies/chunks/FeatureSourceEndChunk.js +5 -0
- package/views/2d/layers/features/sources/strategies/chunks/ParquetSourceChunk.js +5 -0
- package/views/2d/layers/features/sources/strategies/chunks/SourceChunkStore.js +1 -1
- package/views/2d/layers/features/support/FeatureSetReader.js +1 -1
- package/views/2d/layers/features/support/FeatureSetReaderParquet.js +1 -1
- package/views/2d/layers/features/support/XZOrder.js +5 -0
- package/views/3d/terrain/TerrainRenderer.js +1 -1
- package/views/3d/webgl-engine/shaders/{ReadShadowMapConfiguration.js → ReceiveShadowsConfiguration.js} +1 -1
- package/views/draw/support/ConnectedReshapeManager.js +5 -0
- package/views/draw/support/Reshape.js +1 -1
- package/views/draw/support/layerUtils.js +1 -1
- package/widgets/Feature/support/arcadeFeatureUtils.js +1 -1
- package/widgets/Feature/support/featureUtils.js +1 -1
- package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
- package/widgets/OrientedImageryViewer/adapters/view/MapViewAdapter.js +1 -1
- package/widgets/OrientedImageryViewer/components/ImageViewer.js +1 -1
- package/widgets/OrientedImageryViewer/components/ImageViewerViewModel.js +1 -1
- package/widgets/OrientedImageryViewer/constants.js +1 -1
- package/widgets/OrientedImageryViewer/navigation/NavigationManager.js +1 -1
- package/widgets/PanoramicViewer/PanoramicViewerViewModel.js +1 -1
- package/widgets/PanoramicViewer.js +1 -1
- package/widgets/UtilityNetworkTrace/UtilityNetworkTraceViewModel.js +1 -1
- package/assets/esri/core/workers/chunks/16ff0bf4cb74f478ec1e.js +0 -1
- package/assets/esri/core/workers/chunks/1aff43dad2302677b4f4.js +0 -1
- package/assets/esri/core/workers/chunks/c6be02d2dff6e0734dab.js +0 -1
- package/assets/esri/core/workers/chunks/c8719205518e97131375.js +0 -1
- package/views/2d/layers/features/sources/strategies/ParquetLoadStrategy.js +0 -5
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import "../../interfaces";
|
|
2
|
+
|
|
3
|
+
export const findRelatedLayer: __esri.featureUtils["findRelatedLayer"];
|
|
4
|
+
export const isFeatureSupportedLayer: __esri.featureUtils["isFeatureSupportedLayer"];
|
|
5
|
+
export const isRelatableFeatureSupportedLayer: __esri.featureUtils["isRelatableFeatureSupportedLayer"];
|
|
6
|
+
export const isRelatableLayer: __esri.featureUtils["isRelatableLayer"];
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/*
|
|
2
|
+
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
|
+
See https://js.arcgis.com/4.34/esri/copyright.txt for details.
|
|
4
|
+
*/
|
|
5
|
+
import{findRelatedLayer as e,isRelatableFeatureSupportedLayer as a,isRelatableLayer as t,isFeatureSupportedLayer as r}from"../../widgets/Feature/support/featureUtils.js";const s=e,p=a,i=t,o=r;export{s as findRelatedLayer,o as isFeatureSupportedLayer,p as isRelatableFeatureSupportedLayer,i as isRelatableLayer};
|
package/arcade/arcade.js
CHANGED
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.34/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import"./arcadeCompiler.js";import"./ArcadeModuleResolver.js";import"./arcadeRuntime.js";import"./executionError.js";import"./parser.js";import"./treeAnalysis.js";import"./functions/geomsync.js";import"../core/has.js";import"../core/maybe.js";export{_ as _loadScriptDependenciesImpl,c as compileScript,
|
|
5
|
+
import"./arcadeCompiler.js";import"./arcadeEnvironment.js";import"./ArcadeModuleResolver.js";import"./arcadeRuntime.js";import"./executionError.js";import"./parser.js";import"./treeAnalysis.js";import"./functions/geomsync.js";import"./functions/track.js";import"../core/has.js";import"../core/maybe.js";export{_ as _loadScriptDependenciesImpl,c as compileScript,q as enableAsyncSupport,t as enableAsyncSupportImpl,d as enableFeatureSetSupport,x as enableFeatureSetSupportImpl,b as enableGeometrySupport,o as enableGeometrySupportImpl,e as executeScript,j as extend,a as extractExpectedFieldLiterals,n as extractFieldLiterals,f as featureSetUtils,v as isAsyncEnabled,u as isFeatureSetSupportEnabled,w as isGeometryEnabled,C as loadDependentModules,l as loadScriptDependencies,y as loadTrackGeometryOperators,k as parseAndExecuteScript,p as parseScript,m as referencesFunction,r as referencesMember,A as scriptIsAsync,g as scriptTouchesGeometry,z as scriptUsesFeatureSet,h as scriptUsesGeometryEngine,B as scriptUsesModules,s as scriptUsesTrack,D as scriptUsesViewProperties}from"../chunks/arcade.js";
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.34/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{neverAbortedSignal as e,toSymbolId as t}from"./arcadeEnvironment.js";import{ArcadeModule as n}from"./ArcadeModule.js";import{ArcadeModuleLoader as r}from"./ArcadeModuleLoader.js";import{getNestedOptionalValue as o,geometryMember as a,getGeometryKeys as i}from"./containerUtils.js";import l from"./Dictionary.js";import{ArcadeExecutionError as s,ensureArcadeExecutionError as c}from"./executionError.js";import u from"./Feature.js";import{NativeFunction as f,ScopeMarshalledFunction as p,ArcadeFunction as w,wrapModuleScopedResponse as d}from"./FunctionWrapper.js";import{R as h,I as g,A as m,i as y,q as b,r as v,v as S,B as x,u as F,w as I,x as M,y as O,z as j,s as k,j as R,k as C,m as A,h as N}from"../chunks/languageUtils.js";import{addFunctionDeclaration as E}from"./treeAnalysis.js";import{A as B}from"../chunks/aiServices.js";import{A as D}from"../chunks/array.js";import{registerFunctions as K}from"./functions/date.js";import{registerFunctions as U}from"./functions/feature.js";import{registerFunctions as Z}from"./functions/geomasync.js";import{registerFunctions as G}from"./functions/geometry.js";import{registerFunctions as L}from"./functions/maths.js";import{registerFunctions as q}from"./functions/stats.js";import{registerFunctions as P}from"./functions/string.js";import"../core/has.js";import W from"../geometry/Geometry.js";import z from"../geometry/SpatialReference.js";import{isGraphic as V,isBoolean as T,isString as _,isArray as Y,isNumber as H}from"../support/guards.js";async function J(e,t){const n=[];for(let r=0;r<t.arguments.length;r++)n.push(await ne(e,t.arguments[r]));return n}async function Q(e,t,n){if(!0===t.preparsed)return n(e,null,t.arguments);return n(e,t,await J(e,t))}class X extends w{constructor(e,t){super(),this.definition=null,this.context=null,this.definition=e,this.context=t}createFunction(e){return(...t)=>{const n={spatialReference:this.context.spatialReference,console:this.context.console,lrucache:this.context.lrucache,timeZone:this.context.timeZone??null,exports:this.context.exports,libraryResolver:this.context.libraryResolver,interceptor:this.context.interceptor,services:this.context.services,abortSignal:this.context.abortSignal,localScope:{},depthCounter:{depth:e.depthCounter+1},globalScope:this.context.globalScope};if(n.depthCounter.depth>64)throw new s(e,"MaximumCallDepth",null);return $(this.definition,n,t,null)}}call(e,t){return te(e,t,(n,r,o)=>{const a={spatialReference:e.spatialReference,services:e.services,console:e.console,libraryResolver:e.libraryResolver,exports:e.exports,lrucache:e.lrucache,timeZone:e.timeZone??null,interceptor:e.interceptor,localScope:{},abortSignal:e.abortSignal,globalScope:e.globalScope,depthCounter:{depth:e.depthCounter.depth+1}};if(a.depthCounter.depth>64)throw new s(e,"MaximumCallDepth",t);return $(this.definition,a,o,t)})}marshalledCall(e,t,n,r){return r(e,t,async(o,a,i)=>{const l={spatialReference:e.spatialReference,services:e.services,globalScope:n.globalScope,depthCounter:{depth:e.depthCounter.depth+1},libraryResolver:e.libraryResolver,exports:e.exports,console:e.console,abortSignal:e.abortSignal,lrucache:e.lrucache,timeZone:e.timeZone??null,interceptor:e.interceptor,localScope:{}};return i=i.map(t=>!y(t)||t instanceof p?t:d(t,e,r)),d(await $(this.definition,l,i,t),n,r)})}}async function $(e,n,r,o){const a=e.body;if(r.length!==e.params.length)throw new s(n,"WrongNumberOfParameters",null);for(let l=0;l<r.length;l++){const o=e.params[l];"Identifier"===o.type&&null!=n.localScope&&(n.localScope[t(o)]={value:r[l]})}const i=await re(n,a);if(i instanceof h)return i.value;if(i===b)throw new s(n,"UnexpectedToken",o);if(i===v)throw new s(n,"UnexpectedToken",o);return i instanceof g?i.value:i}class ee extends n{constructor(e){super(),this.source=e}global(e){const n=this.executingContext.globalScope[t(e)];if(y(n.value)&&!(n.value instanceof p)){const r=new p;return r.fn=n.value,r.parameterEvaluator=te,r.context=this.executingContext,this.executingContext.globalScope[t(e)]={value:r},r}return n.value}setGlobal(e,n){if(y(n))throw new s(null,"AssignModuleFunction",null);this.executingContext.globalScope[t(e)]={value:n}}hasGlobal(e){return void 0===this.executingContext.exports[e]&&(e=t(e)),void 0!==this.executingContext.exports[e]}async loadModule(t){const n=t.spatialReference??z.WebMercator;this.moduleScope=ze(null,null,t.timeZone),this.executingContext={spatialReference:n,services:t.services,libraryResolver:new r(t.libraryResolver._moduleSingletons,this.source.syntax.loadedModules),exports:{},abortSignal:t.abortSignal??e,globalScope:this.moduleScope,console:t.console??Ve,lrucache:t.lrucache,timeZone:t.timeZone??null,interceptor:t.interceptor,localScope:null,depthCounter:{depth:1}},await be(this.executingContext,this.source.syntax)}}async function te(e,t,n){if(!0===t.preparsed)return n(e,null,t.arguments);return n(e,t,await J(e,t))}async function ne(e,t){t.breakpoint&&await t.breakpoint();try{switch(t.type){case"UpdateExpression":return await de(e,t);case"AssignmentExpression":return await ge(e,t);case"TemplateLiteral":return await Be(e,t);case"Identifier":return Ne(e,t);case"MemberExpression":return await je(e,t);case"Literal":return t.value;case"CallExpression":return await Ee(e,t);case"UnaryExpression":return await ke(e,t);case"BinaryExpression":return await Ce(e,t);case"LogicalExpression":return await Ae(e,t);case"ArrayExpression":return await Re(e,t);case"ObjectExpression":return await oe(e,t);default:throw new s(e,"Unrecognized",t)}}catch(n){throw c(e,t,n)}}async function re(e,t){t.breakpoint&&await t.breakpoint();try{switch(t.type){case"ImportDeclaration":return await Fe(e,t);case"ExportNamedDeclaration":return await Ie(e,t);case"VariableDeclaration":return await Me(e,t,0);case"BlockStatement":return await be(e,t);case"FunctionDeclaration":return await xe(e,t);case"ReturnStatement":return await Se(e,t);case"IfStatement":return await ye(e,t);case"ExpressionStatement":return await me(e,t);case"ForStatement":return await ie(e,t);case"WhileStatement":return await ae(e,t);case"ForInStatement":return await pe(e,t);case"ForOfStatement":return await we(e,t);case"BreakStatement":return b;case"EmptyStatement":return S;case"ContinueStatement":return v;default:throw new s(e,"Unrecognized",t)}}catch(n){throw c(e,t,n)}}async function oe(e,t){const n=[];for(let i=0;i<t.properties.length;i++){const r=t.properties[i],o=await ne(e,r.value),a="Identifier"===r.key.type?r.key.name:await ne(e,r.key);n[i]={key:a,value:o}}const r=Object.create(null),o=new Map;for(let i=0;i<n.length;i++){const a=n[i];if(y(a.value))throw new s(e,"NoFunctionInDictionary",t);if(!1===_(a.key))throw new s(e,"KeyMustBeString",t);let l=a.key.toString();const c=l.toLowerCase();o.has(c)?l=o.get(c):o.set(c,l),a.value===S?r[l]=null:r[l]=a.value}const a=new l(r);return a.immutable=!1,a}async function ae(e,t){let n=await ne(e,t.test);if(!1===n)return S;if(!0!==n)throw new s(e,"BooleanConditionRequired",t);for(;!0===n;){const r=await re(e,t.body);if(r===b)break;if(r instanceof h)return r;if(n=await ne(e,t.test),!0!==n&&!1!==n)throw new s(e,"BooleanConditionRequired",t)}return S}async function ie(e,t){try{for(null!==t.init&&("VariableDeclaration"===t.init.type?await re(e,t.init):await ne(e,t.init));;){if(null!==t.test){const n=await ne(e,t.test);if(!0===e.abortSignal?.aborted)throw new s(e,"Cancelled",t);if(!1===n)break;if(!0!==n)throw new s(e,"BooleanConditionRequired",t)}const n=await re(e,t.body);if(n===b)break;if(n instanceof h)return n;null!==t.update&&await ne(e,t.update)}return S}catch(n){throw n}}async function le(e,t,n,r,o="i"){const a=n.length;for(let i=0;i<a;i++){if("k"===o){if(i>=n.length)throw new s(e,"OutOfBounds",t);r.value=n[i]}else r.value=i;const a=await re(e,t.body);if(a===b)break;if(a instanceof h)return a}return S}async function se(e,t,n,r,o="i"){const a=n.length();for(let i=0;i<a;i++){r.value="k"===o?n.get(i):i;const a=await re(e,t.body);if(a===b)break;if(a instanceof h)return a}return S}async function ce(e,t,n,r){const o=n.iterator(e.abortSignal);let a;for(;null!=(a=await o.next());){const o=u.createFromGraphicLikeObject(a.geometry,a.attributes,n,e.timeZone);o._underlyingGraphic=a,r.value=o;const i=await re(e,t.body);if(i===b)break;if(i instanceof h)return i}return S}async function ue(e,t,n,r){for(const o of n.keys()){const a=n.field(o);r.value=l.containerEntry(o,a);const i=await re(e,t.body);if(i===b)break;if(i instanceof h)return i}return S}async function fe(e,t,n,r){for(const o of i(n)){const i=a(n,o,e,t,1);r.value=l.containerEntry(o,i);const s=await re(e,t.body);if(s===b)break;if(s instanceof h)return s}return S}async function pe(e,n){const r=await ne(e,n.right);"VariableDeclaration"===n.left.type&&await re(e,n.left);const o=t("VariableDeclaration"===n.left.type?n.left.declarations[0].id:n.left);let a=null;if(null!=e.localScope&&void 0!==e.localScope[o]&&(a=e.localScope[o]),null===a&&void 0!==e.globalScope[o]){const t=e.globalScope[o].value;a=e.globalScope[o]={value:t}}if(null===a)throw new s(e,"InvalidIdentifier",n);return Y(r)||_(r)?await le(e,n,r,a):R(r)?await se(e,n,r,a):r instanceof l||k(r)?await le(e,n,r.keys(),a,"k"):A(r)?await ce(e,n,r,a):N(r)?await le(e,n,i(r),a,"k"):S}async function we(e,n){const r=await ne(e,n.right);"VariableDeclaration"===n.left.type&&await re(e,n.left);const o=t("VariableDeclaration"===n.left.type?n.left.declarations[0].id:n.left);let a=null;if(null!=e.localScope&&void 0!==e.localScope[o]&&(a=e.localScope[o]),null===a&&void 0!==e.globalScope[o]){const t=e.globalScope[o].value;a=e.globalScope[o]={value:t}}if(null===a)throw new s(e,"InvalidIdentifier",n);return Y(r)||_(r)?await le(e,n,r,a,"k"):R(r)?await se(e,n,r,a,"k"):r instanceof l||k(r)?await ue(e,n,r,a):A(r)?await ce(e,n,r,a):N(r)?await fe(e,n,r,a):S}async function de(e,n){const r=n.argument;if("CallExpression"===r.type)throw new s(e,"NeverReach",n);if("MemberExpression"===r.type){const t=await ne(e,r.object);let o,a;if(!0===r.computed)o=await ne(e,r.property);else{if("Identifier"!==r.property.type)throw new s(e,"Unrecognized",n);o=r.property.name}if(Y(t)){if(!H(o))throw new s(e,"ArrayAccessMustBeNumber",n);if(o<0&&(o=t.length+o),o<0||o>=t.length)throw new s(e,"OutOfBounds",n);a=F(t[o]),t[o]="++"===n.operator?a+1:a-1}else if(t instanceof l){if(!1===_(o))throw new s(e,"KeyAccessorMustBeString",n);if(!0!==t.hasField(o))throw new s(e,"FieldNotFound",n,{key:o});a=F(t.field(o)),t.setField(o,"++"===n.operator?a+1:a-1)}else if(t instanceof ee){if(!1===_(o))throw new s(e,"ModuleAccessorMustBeString",n);if(!0!==t.hasGlobal(o))throw new s(e,"ModuleExportNotFound",n);a=F(t.global(o)),t.setGlobal(o,"++"===n.operator?a+1:a-1)}else{if(!C(t))throw R(t)?new s(e,"Immutable",n):new s(e,"InvalidParameter",n);if(!1===_(o))throw new s(e,"KeyAccessorMustBeString",n);if(!0!==t.hasField(o))throw new s(e,"FieldNotFound",n,{key:o});a=F(t.field(o)),t.setField(o,"++"===n.operator?a+1:a-1)}return!1===n.prefix?a:"++"===n.operator?a+1:a-1}const o=t(r);let a;if(null!=e.localScope&&void 0!==e.localScope[o])return a=F(e.localScope[o].value),e.localScope[o]={value:"++"===n.operator?a+1:a-1},!1===n.prefix?a:"++"===n.operator?a+1:a-1;if(void 0!==e.globalScope[o])return a=F(e.globalScope[o].value),e.globalScope[o]={value:"++"===n.operator?a+1:a-1},!1===n.prefix?a:"++"===n.operator?a+1:a-1;throw new s(e,"InvalidIdentifier",n)}function he(e,t,n,r,o){switch(t){case"=":return e===S?null:e;case"/=":return F(n)/F(e);case"*=":return F(n)*F(e);case"-=":return F(n)-F(e);case"+=":return _(n)||_(e)?I(n)+I(e):F(n)+F(e);case"%=":return F(n)%F(e);default:throw new s(o,"UnsupportedOperator",r)}}async function ge(e,n){const r=n.left;if("MemberExpression"===r.type){const t=await ne(e,r.object);let o;if(!0===r.computed)o=await ne(e,r.property);else{if("Identifier"!==r.property.type)throw new s(e,"InvalidIdentifier",n);o=r.property.name}const a=await ne(e,n.right);if(Y(t)){if(!H(o))throw new s(e,"ArrayAccessMustBeNumber",n);if(o<0&&(o=t.length+o),o<0||o>t.length)throw new s(e,"OutOfBounds",n);if(o===t.length){if("="!==n.operator)throw new s(e,"OutOfBounds",n);t[o]=he(a,n.operator,t[o],n,e)}else t[o]=he(a,n.operator,t[o],n,e)}else if(t instanceof l){if(!1===_(o))throw new s(e,"KeyAccessorMustBeString",n);if(!0===t.hasField(o))t.setField(o,he(a,n.operator,t.field(o),n,e));else{if("="!==n.operator)throw new s(e,"FieldNotFound",n,{key:o});t.setField(o,he(a,n.operator,null,n,e))}}else if(t instanceof ee){if(!1===_(o))throw new s(e,"KeyAccessorMustBeString",n);if(!0!==t.hasGlobal(o))throw new s(e,"ModuleExportNotFound",n);t.setGlobal(o,he(a,n.operator,t.global(o),n,e))}else{if(!C(t))throw R(t)?new s(e,"Immutable",n):new s(e,"InvalidParameter",n);if(!1===_(o))throw new s(e,"KeyAccessorMustBeString",n);if(!0===t.hasField(o))t.setField(o,he(a,n.operator,t.field(o),n,e));else{if("="!==n.operator)throw new s(e,"FieldNotFound",n,{key:o});t.setField(o,he(a,n.operator,null,n,e))}}return S}const o=t(r);if(null!=e.localScope&&void 0!==e.localScope[o]){const t=await ne(e,n.right);return e.localScope[o]={value:he(t,n.operator,e.localScope[o].value,n,e)},S}if(void 0!==e.globalScope[o]){const t=await ne(e,n.right);return e.globalScope[o]={value:he(t,n.operator,e.globalScope[o].value,n,e)},S}throw new s(e,"InvalidIdentifier",n)}async function me(e,t){const n=await ne(e,t.expression);return n===S?S:new g(n)}async function ye(e,t){const n=await ne(e,t.test);if(!0===n)return re(e,t.consequent);if(!1===n)return null!==t.alternate?re(e,t.alternate):S;throw new s(e,"BooleanConditionRequired",t)}async function be(e,t){return ve(e,t,0)}async function ve(e,t,n){if(n>=t.body.length)return S;const r=await re(e,t.body[n]);return r instanceof h||r===b||r===v||n===t.body.length-1?r:ve(e,t,n+1)}async function Se(e,t){if(null===t.argument)return new h(S);const n=await ne(e,t.argument);return new h(n)}async function xe(e,n){const r=t(n.id);return e.globalScope[r]={value:new X(n,e)},S}async function Fe(e,n){const r=t(n.specifiers[0].local),o=e.libraryResolver.loadLibrary(r);let a;return e.libraryResolver._moduleSingletons?.has(o.uri)?a=e.libraryResolver._moduleSingletons.get(o.uri):(a=new ee(o),await a.loadModule(e),e.libraryResolver._moduleSingletons?.set(o.uri,a)),e.globalScope[r]={value:a},S}async function Ie(e,n){if(await re(e,n.declaration),"FunctionDeclaration"===n.declaration.type)e.exports[t(n.declaration.id)]="function";else if("VariableDeclaration"===n.declaration.type)for(const r of n.declaration.declarations)e.exports[t(r.id)]="variable";return S}async function Me(e,t,n){return n>=t.declarations.length?S:(await Oe(e,t.declarations[n]),n===t.declarations.length-1||await Me(e,t,n+1),S)}async function Oe(e,n){let r=null;if(r=null===n.init?null:await ne(e,n.init),null!==e.localScope){if(r===S&&(r=null),"Identifier"!==n.id.type)throw new s(e,"InvalidIdentifier",n);const o=t(n.id);return void(null!=e.localScope&&(e.localScope[o]={value:r}))}if("Identifier"!==n.id.type)throw new s(e,"InvalidIdentifier",n);const o=t(n.id);r===S&&(r=null),e.globalScope[o]={value:r}}async function je(e,t){const n=await ne(e,t.object);if(null===n)throw new s(e,"MemberOfNull",t);if(!1===t.computed){if("Identifier"===t.property.type){if(n instanceof l||k(n))return n.field(t.property.name);if(n instanceof W)return a(n,t.property.name,e,t);if(n instanceof ee){if(!n.hasGlobal(t.property.name))throw new s(e,"InvalidIdentifier",t);return n.global(t.property.name)}throw new s(e,"InvalidMemberAccessKey",t)}throw new s(e,"InvalidMemberAccessKey",t)}let r=await ne(e,t.property);if(n instanceof l||k(n)){if(_(r))return n.field(r);throw new s(e,"InvalidMemberAccessKey",t)}if(n instanceof ee){if(_(r))return n.global(r);throw new s(e,"InvalidMemberAccessKey",t)}if(n instanceof W){if(_(r))return a(n,r,e,t);throw new s(e,"InvalidMemberAccessKey",t)}if(Y(n)){if(H(r)&&isFinite(r)&&Math.floor(r)===r){if(r<0&&(r=n.length+r),r>=n.length||r<0)throw new s(e,"OutOfBounds",t);return n[r]}throw new s(e,"InvalidMemberAccessKey",t)}if(R(n)){if(H(r)&&isFinite(r)&&Math.floor(r)===r){if(r<0&&(r=n.length()+r),r>=n.length()||r<0)throw new s(e,"OutOfBounds",t);return n.get(r)}throw new s(e,"InvalidMemberAccessKey",t)}if(_(n)){if(H(r)&&isFinite(r)&&Math.floor(r)===r){if(r<0&&(r=n.length+r),r>=n.length||r<0)throw new s(e,"OutOfBounds",t);return n[r]}throw new s(e,"InvalidMemberAccessKey",t)}throw new s(e,"InvalidMemberAccessKey",t)}async function ke(e,t){const n=await ne(e,t.argument);if(T(n)){if("!"===t.operator)return!n;if("-"===t.operator)return-1*F(n);if("+"===t.operator)return 1*F(n);if("~"===t.operator)return~F(n);throw new s(e,"UnsupportUnaryOperator",t)}if("-"===t.operator)return-1*F(n);if("+"===t.operator)return 1*F(n);if("~"===t.operator)return~F(n);throw new s(e,"UnsupportUnaryOperator",t)}async function Re(e,t){const n=[];for(let r=0;r<t.elements.length;r++)n.push(await ne(e,t.elements[r]));for(let r=0;r<n.length;r++){if(y(n[r]))throw new s(e,"NoFunctionInArray",t);n[r]===S&&(n[r]=null)}return n}async function Ce(e,t){const n=await ne(e,t.left),r=await ne(e,t.right);switch(t.operator){case"|":case"<<":case">>":case">>>":case"^":case"&":return j(F(n),F(r),t.operator);case"==":return O(n,r);case"!=":return!O(n,r);case"<":case">":case"<=":case">=":return M(n,r,t.operator);case"+":return _(n)||_(r)?I(n)+I(r):F(n)+F(r);case"-":return F(n)-F(r);case"*":return F(n)*F(r);case"/":return F(n)/F(r);case"%":return F(n)%F(r);default:throw new s(e,"UnsupportedOperator",t)}}async function Ae(e,t){const n=await ne(e,t.left);if(!T(n))throw new s(e,"LogicalExpressionOnlyBoolean",t);switch(t.operator){case"||":{if(!0===n)return n;const r=await ne(e,t.right);if(T(r))return r;throw new s(e,"LogicExpressionOrAnd",t)}case"&&":{if(!1===n)return n;const r=await ne(e,t.right);if(T(r))return r;throw new s(e,"LogicExpressionOrAnd",t)}default:throw new s(e,"LogicExpressionOrAnd",t)}}function Ne(e,n){const r=t(n);if(null!=e.localScope&&void 0!==e.localScope[r])return e.localScope[r].value;if(void 0!==e.globalScope[r])return e.globalScope[r].value;throw new s(e,"InvalidIdentifier",n)}async function Ee(e,n){if("MemberExpression"===n.callee.type){const t=await ne(e,n.callee.object);if(!(t instanceof ee))throw new s(e,"FunctionNotFound",n);const r=!1===n.callee.computed?n.callee.property.name:await ne(e,n.callee.property);if(!t.hasGlobal(r))throw new s(e,"FunctionNotFound",n);const o=t.global(r);if(!y(o))throw new s(e,"CallNonFunction",n);return o.call(e,n)}if("Identifier"!==n.callee.type)throw new s(e,"FunctionNotFound",n);const r=t(n.callee);if(null!=e.localScope&&void 0!==e.localScope[r]){const t=e.localScope[r];if(y(t.value))return t.value.call(e,n);throw new s(e,"CallNonFunction",n)}if(void 0!==e.globalScope[r]){const t=e.globalScope[r];if(y(t.value))return t.value.call(e,n);throw new s(e,"CallNonFunction",n)}throw new s(e,"FunctionNotFound",n)}async function Be(e,t){let n="",r=0;for(const o of t.quasis)if(n+=o.value?o.value.cooked:"",!1===o.tail){if(t.expressions[r]){const o=await ne(e,t.expressions[r]);if(y(o))throw new s(e,"NoFunctionInTemplateLiteral",t);n+=I(o)}r++}return n}async function De(e,t){x(null===t.arguments?[]:t.arguments,3,3,e,t);const n=await ne(e,t.arguments[0]);if(!1===T(n))throw new s(e,"BooleanConditionRequired",t);return ne(e,n?t.arguments[1]:t.arguments[2])}async function Ke(e,t){x(null===t.arguments?[]:t.arguments,2,3,e,t);const n=await ne(e,t.arguments[0]);if(3===t.arguments.length){const r=await ne(e,t.arguments[1]),a=o(n,r);return null!=a&&""!==a?a:ne(e,t.arguments[2])}return null==n||""===n?ne(e,t.arguments[1]):n}async function Ue(e,t){if(t.arguments.length<2)throw new s(e,"WrongNumberOfParameters",t);if(2===t.arguments.length)return ne(e,t.arguments[1]);if((t.arguments.length-1)%2==0)throw new s(e,"WrongNumberOfParameters",t);return Ze(e,t,1,await ne(e,t.arguments[0]))}async function Ze(e,t,n,r){const o=await ne(e,t.arguments[n]);if(O(o,r))return ne(e,t.arguments[n+1]);const a=t.arguments.length-n;return 1===a?ne(e,t.arguments[n]):2===a?null:3===a?ne(e,t.arguments[n+2]):Ze(e,t,n+2,r)}async function Ge(e,t){if(t.arguments.length<3)throw new s(e,"WrongNumberOfParameters",t);if(t.arguments.length%2==0)throw new s(e,"WrongNumberOfParameters",t);const n=await ne(e,t.arguments[0]);if(!1===T(n))throw new s(e,"BooleanConditionRequired",t.arguments[0]);return Le(e,t,0,n)}async function Le(e,t,n,r){if(!0===r)return ne(e,t.arguments[n+1]);if(3===t.arguments.length-n)return ne(e,t.arguments[n+2]);const o=await ne(e,t.arguments[n+2]);if(!1===T(o))throw new s(e,"ModuleExportNotFound",t.arguments[n+2]);return Le(e,t,n+2,o)}function qe(){const e=Object.create(null);K(e,Q),P(e,Q),U(e,Q,Ne),L(e,Q),G(e,Q),q(e,Q),Z({functions:e,compiled:!1,signatures:null,evaluateIdentifier:null,mode:"async",standardFunction:Q,standardFunctionAsync:te}),e.iif=De,e.defaultvalue=Ke,e.decode=Ue,e.when=Ge;const t=function(){this.textformatting={value:l.textFormatting()}};t.prototype=Object.create(null),t.prototype.infinity=Object.freeze({value:Number.POSITIVE_INFINITY}),t.prototype.pi=Object.freeze({value:Math.PI});for(const[n,r]of Object.entries(e))t.prototype[n]=Object.freeze({value:new f(r)});return t}const Pe=qe();function We(e){const t={mode:"async",compiled:!1,functions:Object.create(null),signatures:[],standardFunction:Q,standardFunctionAsync:te,evaluateIdentifier:Ne};for(let n=0;n<e.length;n++)e[n].registerFunctions(t);for(const[n,r]of Object.entries(t.functions))Pe.prototype[n]=Object.freeze({value:new f(r)});for(let n=0;n<t.signatures.length;n++)E(t.signatures[n],"async")}function ze(e,t,n){const r=new Pe;null==e&&(e={}),null==t&&(t={});for(const o in t)r[o]={value:new f(t[o])};for(const o in e)r[o]={value:V(e[o])?u.createFromGraphic(e[o],n):e[o]};return r}function Ve(e){console.log(e)}async function Te(t,n){const o=n.spatialReference??z.WebMercator;let a=null;t.usesModules&&(a=new r(new Map,t.loadedModules));const i=ze(n.vars,n.customfunctions,n.timeZone),l={spatialReference:o,services:n.services,exports:{},libraryResolver:a,abortSignal:n.abortSignal??e,globalScope:i,console:n.console??Ve,timeZone:n.timeZone??null,lrucache:n.lrucache,interceptor:n.interceptor,localScope:null,depthCounter:{depth:1}},c=await be(l,t);if(c instanceof h||c instanceof g){const e=c.value;if(m(e))return null;if(y(e))throw new s(l,"IllegalResult",null);return e}if(m(c))return null;if(c===b)throw new s(l,"IllegalResult",null);if(c===v)throw new s(l,"IllegalResult",null);throw new s(l,"NeverReach",null)}We([D]),We([B]);export{Te as executeScript,We as extend};
|
|
5
|
+
import{neverAbortedSignal as e,toSymbolId as t}from"./arcadeEnvironment.js";import{ArcadeModule as n}from"./ArcadeModule.js";import{ArcadeModuleLoader as r}from"./ArcadeModuleLoader.js";import{getNestedOptionalValue as o,geometryMember as a,getGeometryKeys as i}from"./containerUtils.js";import l from"./Dictionary.js";import{ArcadeExecutionError as s,ensureArcadeExecutionError as c}from"./executionError.js";import u from"./Feature.js";import{NativeFunction as f,ScopeMarshalledFunction as p,ArcadeFunction as w,wrapModuleScopedResponse as d}from"./FunctionWrapper.js";import{R as h,I as g,A as m,i as y,q as b,r as v,v as S,B as x,u as F,w as I,x as k,y as M,z as O,s as j,j as R,k as C,m as A,h as N}from"../chunks/languageUtils.js";import{addFunctionDeclaration as E}from"./treeAnalysis.js";import{A as B}from"../chunks/aiServices.js";import{A as D}from"../chunks/array.js";import{registerFunctions as K}from"./functions/date.js";import{registerFunctions as U}from"./functions/feature.js";import{registerFunctions as Z}from"./functions/geomasync.js";import{registerFunctions as G}from"./functions/geometry.js";import{registerFunctions as L}from"./functions/maths.js";import{registerFunctions as q}from"./functions/stats.js";import{registerFunctions as P}from"./functions/string.js";import{registerFunctions as W}from"./functions/track.js";import"../core/has.js";import z from"../geometry/Geometry.js";import V from"../geometry/SpatialReference.js";import{isGraphic as T,isBoolean as _,isString as Y,isArray as H,isNumber as J}from"../support/guards.js";async function Q(e,t){const n=[];for(let r=0;r<t.arguments.length;r++)n.push(await re(e,t.arguments[r]));return n}async function X(e,t,n){if(!0===t.preparsed)return n(e,null,t.arguments);return n(e,t,await Q(e,t))}class $ extends w{constructor(e,t){super(),this.definition=null,this.context=null,this.definition=e,this.context=t}createFunction(e){return(...t)=>{const n={spatialReference:this.context.spatialReference,console:this.context.console,lrucache:this.context.lrucache,timeZone:this.context.timeZone??null,exports:this.context.exports,libraryResolver:this.context.libraryResolver,interceptor:this.context.interceptor,services:this.context.services,abortSignal:this.context.abortSignal,localScope:{},depthCounter:{depth:e.depthCounter+1},globalScope:this.context.globalScope,track:this.context.track};if(n.depthCounter.depth>64)throw new s(e,"MaximumCallDepth",null);return ee(this.definition,n,t,null)}}call(e,t){return ne(e,t,(n,r,o)=>{const a={spatialReference:e.spatialReference,services:e.services,console:e.console,libraryResolver:e.libraryResolver,exports:e.exports,lrucache:e.lrucache,timeZone:e.timeZone??null,interceptor:e.interceptor,localScope:{},abortSignal:e.abortSignal,globalScope:e.globalScope,depthCounter:{depth:e.depthCounter.depth+1},track:e.track};if(a.depthCounter.depth>64)throw new s(e,"MaximumCallDepth",t);return ee(this.definition,a,o,t)})}marshalledCall(e,t,n,r){return r(e,t,async(o,a,i)=>{const l={spatialReference:e.spatialReference,services:e.services,globalScope:n.globalScope,depthCounter:{depth:e.depthCounter.depth+1},libraryResolver:e.libraryResolver,exports:e.exports,console:e.console,abortSignal:e.abortSignal,lrucache:e.lrucache,timeZone:e.timeZone??null,interceptor:e.interceptor,localScope:{},track:e.track};return i=i.map(t=>!y(t)||t instanceof p?t:d(t,e,r)),d(await ee(this.definition,l,i,t),n,r)})}}async function ee(e,n,r,o){const a=e.body;if(r.length!==e.params.length)throw new s(n,"WrongNumberOfParameters",null);for(let l=0;l<r.length;l++){const o=e.params[l];"Identifier"===o.type&&null!=n.localScope&&(n.localScope[t(o)]={value:r[l]})}const i=await oe(n,a);if(i instanceof h)return i.value;if(i===b)throw new s(n,"UnexpectedToken",o);if(i===v)throw new s(n,"UnexpectedToken",o);return i instanceof g?i.value:i}class te extends n{constructor(e){super(),this.source=e}global(e){const n=this.executingContext.globalScope[t(e)];if(y(n.value)&&!(n.value instanceof p)){const r=new p;return r.fn=n.value,r.parameterEvaluator=ne,r.context=this.executingContext,this.executingContext.globalScope[t(e)]={value:r},r}return n.value}setGlobal(e,n){if(y(n))throw new s(null,"AssignModuleFunction",null);this.executingContext.globalScope[t(e)]={value:n}}hasGlobal(e){return void 0===this.executingContext.exports[e]&&(e=t(e)),void 0!==this.executingContext.exports[e]}async loadModule(t){const n=t.spatialReference??V.WebMercator;this.moduleScope=Ve(null,null,t.timeZone),this.executingContext={spatialReference:n,services:t.services,libraryResolver:new r(t.libraryResolver._moduleSingletons,this.source.syntax.loadedModules),exports:{},abortSignal:t.abortSignal??e,globalScope:this.moduleScope,console:t.console??Te,lrucache:t.lrucache,timeZone:t.timeZone??null,interceptor:t.interceptor,localScope:null,depthCounter:{depth:1},track:null},await ve(this.executingContext,this.source.syntax)}}async function ne(e,t,n){if(!0===t.preparsed)return n(e,null,t.arguments);return n(e,t,await Q(e,t))}async function re(e,t){t.breakpoint&&await t.breakpoint();try{switch(t.type){case"UpdateExpression":return await he(e,t);case"AssignmentExpression":return await me(e,t);case"TemplateLiteral":return await De(e,t);case"Identifier":return Ee(e,t);case"MemberExpression":return await je(e,t);case"Literal":return t.value;case"CallExpression":return await Be(e,t);case"UnaryExpression":return await Re(e,t);case"BinaryExpression":return await Ae(e,t);case"LogicalExpression":return await Ne(e,t);case"ArrayExpression":return await Ce(e,t);case"ObjectExpression":return await ae(e,t);default:throw new s(e,"Unrecognized",t)}}catch(n){throw c(e,t,n)}}async function oe(e,t){t.breakpoint&&await t.breakpoint();try{switch(t.type){case"ImportDeclaration":return await Ie(e,t);case"ExportNamedDeclaration":return await ke(e,t);case"VariableDeclaration":return await Me(e,t,0);case"BlockStatement":return await ve(e,t);case"FunctionDeclaration":return await Fe(e,t);case"ReturnStatement":return await xe(e,t);case"IfStatement":return await be(e,t);case"ExpressionStatement":return await ye(e,t);case"ForStatement":return await le(e,t);case"WhileStatement":return await ie(e,t);case"ForInStatement":return await we(e,t);case"ForOfStatement":return await de(e,t);case"BreakStatement":return b;case"EmptyStatement":return S;case"ContinueStatement":return v;default:throw new s(e,"Unrecognized",t)}}catch(n){throw c(e,t,n)}}async function ae(e,t){const n=[];for(let i=0;i<t.properties.length;i++){const r=t.properties[i],o=await re(e,r.value),a="Identifier"===r.key.type?r.key.name:await re(e,r.key);n[i]={key:a,value:o}}const r=Object.create(null),o=new Map;for(let i=0;i<n.length;i++){const a=n[i];if(y(a.value))throw new s(e,"NoFunctionInDictionary",t);if(!1===Y(a.key))throw new s(e,"KeyMustBeString",t);let l=a.key.toString();const c=l.toLowerCase();o.has(c)?l=o.get(c):o.set(c,l),a.value===S?r[l]=null:r[l]=a.value}const a=new l(r);return a.immutable=!1,a}async function ie(e,t){let n=await re(e,t.test);if(!1===n)return S;if(!0!==n)throw new s(e,"BooleanConditionRequired",t);for(;!0===n;){const r=await oe(e,t.body);if(r===b)break;if(r instanceof h)return r;if(n=await re(e,t.test),!0!==n&&!1!==n)throw new s(e,"BooleanConditionRequired",t)}return S}async function le(e,t){try{for(null!==t.init&&("VariableDeclaration"===t.init.type?await oe(e,t.init):await re(e,t.init));;){if(null!==t.test){const n=await re(e,t.test);if(!0===e.abortSignal?.aborted)throw new s(e,"Cancelled",t);if(!1===n)break;if(!0!==n)throw new s(e,"BooleanConditionRequired",t)}const n=await oe(e,t.body);if(n===b)break;if(n instanceof h)return n;null!==t.update&&await re(e,t.update)}return S}catch(n){throw n}}async function se(e,t,n,r,o="i"){const a=n.length;for(let i=0;i<a;i++){if("k"===o){if(i>=n.length)throw new s(e,"OutOfBounds",t);r.value=n[i]}else r.value=i;const a=await oe(e,t.body);if(a===b)break;if(a instanceof h)return a}return S}async function ce(e,t,n,r,o="i"){const a=n.length();for(let i=0;i<a;i++){r.value="k"===o?n.get(i):i;const a=await oe(e,t.body);if(a===b)break;if(a instanceof h)return a}return S}async function ue(e,t,n,r){const o=n.iterator(e.abortSignal);let a;for(;null!=(a=await o.next());){const o=u.createFromGraphicLikeObject(a.geometry,a.attributes,n,e.timeZone);o._underlyingGraphic=a,r.value=o;const i=await oe(e,t.body);if(i===b)break;if(i instanceof h)return i}return S}async function fe(e,t,n,r){for(const o of n.keys()){const a=n.field(o);r.value=l.containerEntry(o,a);const i=await oe(e,t.body);if(i===b)break;if(i instanceof h)return i}return S}async function pe(e,t,n,r){for(const o of i(n)){const i=a(n,o,e,t,1);r.value=l.containerEntry(o,i);const s=await oe(e,t.body);if(s===b)break;if(s instanceof h)return s}return S}async function we(e,n){const r=await re(e,n.right);"VariableDeclaration"===n.left.type&&await oe(e,n.left);const o=t("VariableDeclaration"===n.left.type?n.left.declarations[0].id:n.left);let a=null;if(null!=e.localScope&&void 0!==e.localScope[o]&&(a=e.localScope[o]),null===a&&void 0!==e.globalScope[o]){const t=e.globalScope[o].value;a=e.globalScope[o]={value:t}}if(null===a)throw new s(e,"InvalidIdentifier",n);return H(r)||Y(r)?await se(e,n,r,a):R(r)?await ce(e,n,r,a):r instanceof l||j(r)?await se(e,n,r.keys(),a,"k"):A(r)?await ue(e,n,r,a):N(r)?await se(e,n,i(r),a,"k"):S}async function de(e,n){const r=await re(e,n.right);"VariableDeclaration"===n.left.type&&await oe(e,n.left);const o=t("VariableDeclaration"===n.left.type?n.left.declarations[0].id:n.left);let a=null;if(null!=e.localScope&&void 0!==e.localScope[o]&&(a=e.localScope[o]),null===a&&void 0!==e.globalScope[o]){const t=e.globalScope[o].value;a=e.globalScope[o]={value:t}}if(null===a)throw new s(e,"InvalidIdentifier",n);return H(r)||Y(r)?await se(e,n,r,a,"k"):R(r)?await ce(e,n,r,a,"k"):r instanceof l||j(r)?await fe(e,n,r,a):A(r)?await ue(e,n,r,a):N(r)?await pe(e,n,r,a):S}async function he(e,n){const r=n.argument;if("CallExpression"===r.type)throw new s(e,"NeverReach",n);if("MemberExpression"===r.type){const t=await re(e,r.object);let o,a;if(!0===r.computed)o=await re(e,r.property);else{if("Identifier"!==r.property.type)throw new s(e,"Unrecognized",n);o=r.property.name}if(H(t)){if(!J(o))throw new s(e,"ArrayAccessMustBeNumber",n);if(o<0&&(o=t.length+o),o<0||o>=t.length)throw new s(e,"OutOfBounds",n);a=F(t[o]),t[o]="++"===n.operator?a+1:a-1}else if(t instanceof l){if(!1===Y(o))throw new s(e,"KeyAccessorMustBeString",n);if(!0!==t.hasField(o))throw new s(e,"FieldNotFound",n,{key:o});a=F(t.field(o)),t.setField(o,"++"===n.operator?a+1:a-1)}else if(t instanceof te){if(!1===Y(o))throw new s(e,"ModuleAccessorMustBeString",n);if(!0!==t.hasGlobal(o))throw new s(e,"ModuleExportNotFound",n);a=F(t.global(o)),t.setGlobal(o,"++"===n.operator?a+1:a-1)}else{if(!C(t))throw R(t)?new s(e,"Immutable",n):new s(e,"InvalidParameter",n);if(!1===Y(o))throw new s(e,"KeyAccessorMustBeString",n);if(!0!==t.hasField(o))throw new s(e,"FieldNotFound",n,{key:o});a=F(t.field(o)),t.setField(o,"++"===n.operator?a+1:a-1)}return!1===n.prefix?a:"++"===n.operator?a+1:a-1}const o=t(r);let a;if(null!=e.localScope&&void 0!==e.localScope[o])return a=F(e.localScope[o].value),e.localScope[o]={value:"++"===n.operator?a+1:a-1},!1===n.prefix?a:"++"===n.operator?a+1:a-1;if(void 0!==e.globalScope[o])return a=F(e.globalScope[o].value),e.globalScope[o]={value:"++"===n.operator?a+1:a-1},!1===n.prefix?a:"++"===n.operator?a+1:a-1;throw new s(e,"InvalidIdentifier",n)}function ge(e,t,n,r,o){switch(t){case"=":return e===S?null:e;case"/=":return F(n)/F(e);case"*=":return F(n)*F(e);case"-=":return F(n)-F(e);case"+=":return Y(n)||Y(e)?I(n)+I(e):F(n)+F(e);case"%=":return F(n)%F(e);default:throw new s(o,"UnsupportedOperator",r)}}async function me(e,n){const r=n.left;if("MemberExpression"===r.type){const t=await re(e,r.object);let o;if(!0===r.computed)o=await re(e,r.property);else{if("Identifier"!==r.property.type)throw new s(e,"InvalidIdentifier",n);o=r.property.name}const a=await re(e,n.right);if(H(t)){if(!J(o))throw new s(e,"ArrayAccessMustBeNumber",n);if(o<0&&(o=t.length+o),o<0||o>t.length)throw new s(e,"OutOfBounds",n);if(o===t.length){if("="!==n.operator)throw new s(e,"OutOfBounds",n);t[o]=ge(a,n.operator,t[o],n,e)}else t[o]=ge(a,n.operator,t[o],n,e)}else if(t instanceof l){if(!1===Y(o))throw new s(e,"KeyAccessorMustBeString",n);if(!0===t.hasField(o))t.setField(o,ge(a,n.operator,t.field(o),n,e));else{if("="!==n.operator)throw new s(e,"FieldNotFound",n,{key:o});t.setField(o,ge(a,n.operator,null,n,e))}}else if(t instanceof te){if(!1===Y(o))throw new s(e,"KeyAccessorMustBeString",n);if(!0!==t.hasGlobal(o))throw new s(e,"ModuleExportNotFound",n);t.setGlobal(o,ge(a,n.operator,t.global(o),n,e))}else{if(!C(t))throw R(t)?new s(e,"Immutable",n):new s(e,"InvalidParameter",n);if(!1===Y(o))throw new s(e,"KeyAccessorMustBeString",n);if(!0===t.hasField(o))t.setField(o,ge(a,n.operator,t.field(o),n,e));else{if("="!==n.operator)throw new s(e,"FieldNotFound",n,{key:o});t.setField(o,ge(a,n.operator,null,n,e))}}return S}const o=t(r);if(null!=e.localScope&&void 0!==e.localScope[o]){const t=await re(e,n.right);return e.localScope[o]={value:ge(t,n.operator,e.localScope[o].value,n,e)},S}if(void 0!==e.globalScope[o]){const t=await re(e,n.right);return e.globalScope[o]={value:ge(t,n.operator,e.globalScope[o].value,n,e)},S}throw new s(e,"InvalidIdentifier",n)}async function ye(e,t){const n=await re(e,t.expression);return n===S?S:new g(n)}async function be(e,t){const n=await re(e,t.test);if(!0===n)return oe(e,t.consequent);if(!1===n)return null!==t.alternate?oe(e,t.alternate):S;throw new s(e,"BooleanConditionRequired",t)}async function ve(e,t){return Se(e,t,0)}async function Se(e,t,n){if(n>=t.body.length)return S;const r=await oe(e,t.body[n]);return r instanceof h||r===b||r===v||n===t.body.length-1?r:Se(e,t,n+1)}async function xe(e,t){if(null===t.argument)return new h(S);const n=await re(e,t.argument);return new h(n)}async function Fe(e,n){const r=t(n.id);return e.globalScope[r]={value:new $(n,e)},S}async function Ie(e,n){const r=t(n.specifiers[0].local),o=e.libraryResolver.loadLibrary(r);let a;return e.libraryResolver._moduleSingletons?.has(o.uri)?a=e.libraryResolver._moduleSingletons.get(o.uri):(a=new te(o),await a.loadModule(e),e.libraryResolver._moduleSingletons?.set(o.uri,a)),e.globalScope[r]={value:a},S}async function ke(e,n){if(await oe(e,n.declaration),"FunctionDeclaration"===n.declaration.type)e.exports[t(n.declaration.id)]="function";else if("VariableDeclaration"===n.declaration.type)for(const r of n.declaration.declarations)e.exports[t(r.id)]="variable";return S}async function Me(e,t,n){return n>=t.declarations.length?S:(await Oe(e,t.declarations[n]),n===t.declarations.length-1||await Me(e,t,n+1),S)}async function Oe(e,n){let r=null;if(r=null===n.init?null:await re(e,n.init),null!==e.localScope){if(r===S&&(r=null),"Identifier"!==n.id.type)throw new s(e,"InvalidIdentifier",n);const o=t(n.id);return void(null!=e.localScope&&(e.localScope[o]={value:r}))}if("Identifier"!==n.id.type)throw new s(e,"InvalidIdentifier",n);const o=t(n.id);r===S&&(r=null),e.globalScope[o]={value:r}}async function je(e,t){const n=await re(e,t.object);if(null===n)throw new s(e,"MemberOfNull",t);if(!1===t.computed){if("Identifier"===t.property.type){if(n instanceof l||j(n))return n.field(t.property.name);if(n instanceof z)return a(n,t.property.name,e,t);if(n instanceof te){if(!n.hasGlobal(t.property.name))throw new s(e,"InvalidIdentifier",t);return n.global(t.property.name)}throw new s(e,"InvalidMemberAccessKey",t)}throw new s(e,"InvalidMemberAccessKey",t)}let r=await re(e,t.property);if(n instanceof l||j(n)){if(Y(r))return n.field(r);throw new s(e,"InvalidMemberAccessKey",t)}if(n instanceof te){if(Y(r))return n.global(r);throw new s(e,"InvalidMemberAccessKey",t)}if(n instanceof z){if(Y(r))return a(n,r,e,t);throw new s(e,"InvalidMemberAccessKey",t)}if(H(n)){if(J(r)&&isFinite(r)&&Math.floor(r)===r){if(r<0&&(r=n.length+r),r>=n.length||r<0)throw new s(e,"OutOfBounds",t);return n[r]}throw new s(e,"InvalidMemberAccessKey",t)}if(R(n)){if(J(r)&&isFinite(r)&&Math.floor(r)===r){if(r<0&&(r=n.length()+r),r>=n.length()||r<0)throw new s(e,"OutOfBounds",t);return n.get(r)}throw new s(e,"InvalidMemberAccessKey",t)}if(Y(n)){if(J(r)&&isFinite(r)&&Math.floor(r)===r){if(r<0&&(r=n.length+r),r>=n.length||r<0)throw new s(e,"OutOfBounds",t);return n[r]}throw new s(e,"InvalidMemberAccessKey",t)}throw new s(e,"InvalidMemberAccessKey",t)}async function Re(e,t){const n=await re(e,t.argument);if(_(n)){if("!"===t.operator)return!n;if("-"===t.operator)return-1*F(n);if("+"===t.operator)return 1*F(n);if("~"===t.operator)return~F(n);throw new s(e,"UnsupportUnaryOperator",t)}if("-"===t.operator)return-1*F(n);if("+"===t.operator)return 1*F(n);if("~"===t.operator)return~F(n);throw new s(e,"UnsupportUnaryOperator",t)}async function Ce(e,t){const n=[];for(let r=0;r<t.elements.length;r++)n.push(await re(e,t.elements[r]));for(let r=0;r<n.length;r++){if(y(n[r]))throw new s(e,"NoFunctionInArray",t);n[r]===S&&(n[r]=null)}return n}async function Ae(e,t){const n=await re(e,t.left),r=await re(e,t.right);switch(t.operator){case"|":case"<<":case">>":case">>>":case"^":case"&":return O(F(n),F(r),t.operator);case"==":return M(n,r);case"!=":return!M(n,r);case"<":case">":case"<=":case">=":return k(n,r,t.operator);case"+":return Y(n)||Y(r)?I(n)+I(r):F(n)+F(r);case"-":return F(n)-F(r);case"*":return F(n)*F(r);case"/":return F(n)/F(r);case"%":return F(n)%F(r);default:throw new s(e,"UnsupportedOperator",t)}}async function Ne(e,t){const n=await re(e,t.left);if(!_(n))throw new s(e,"LogicalExpressionOnlyBoolean",t);switch(t.operator){case"||":{if(!0===n)return n;const r=await re(e,t.right);if(_(r))return r;throw new s(e,"LogicExpressionOrAnd",t)}case"&&":{if(!1===n)return n;const r=await re(e,t.right);if(_(r))return r;throw new s(e,"LogicExpressionOrAnd",t)}default:throw new s(e,"LogicExpressionOrAnd",t)}}function Ee(e,n){const r=t(n);if(null!=e.localScope&&void 0!==e.localScope[r])return e.localScope[r].value;if(void 0!==e.globalScope[r])return e.globalScope[r].value;throw new s(e,"InvalidIdentifier",n)}async function Be(e,n){if("MemberExpression"===n.callee.type){const t=await re(e,n.callee.object);if(!(t instanceof te))throw new s(e,"FunctionNotFound",n);const r=!1===n.callee.computed?n.callee.property.name:await re(e,n.callee.property);if(!t.hasGlobal(r))throw new s(e,"FunctionNotFound",n);const o=t.global(r);if(!y(o))throw new s(e,"CallNonFunction",n);return o.call(e,n)}if("Identifier"!==n.callee.type)throw new s(e,"FunctionNotFound",n);const r=t(n.callee);if(null!=e.localScope&&void 0!==e.localScope[r]){const t=e.localScope[r];if(y(t.value))return t.value.call(e,n);throw new s(e,"CallNonFunction",n)}if(void 0!==e.globalScope[r]){const t=e.globalScope[r];if(y(t.value))return t.value.call(e,n);throw new s(e,"CallNonFunction",n)}throw new s(e,"FunctionNotFound",n)}async function De(e,t){let n="",r=0;for(const o of t.quasis)if(n+=o.value?o.value.cooked:"",!1===o.tail){if(t.expressions[r]){const o=await re(e,t.expressions[r]);if(y(o))throw new s(e,"NoFunctionInTemplateLiteral",t);n+=I(o)}r++}return n}async function Ke(e,t){x(null===t.arguments?[]:t.arguments,3,3,e,t);const n=await re(e,t.arguments[0]);if(!1===_(n))throw new s(e,"BooleanConditionRequired",t);return re(e,n?t.arguments[1]:t.arguments[2])}async function Ue(e,t){x(null===t.arguments?[]:t.arguments,2,3,e,t);const n=await re(e,t.arguments[0]);if(3===t.arguments.length){const r=await re(e,t.arguments[1]),a=o(n,r);return null!=a&&""!==a?a:re(e,t.arguments[2])}return null==n||""===n?re(e,t.arguments[1]):n}async function Ze(e,t){if(t.arguments.length<2)throw new s(e,"WrongNumberOfParameters",t);if(2===t.arguments.length)return re(e,t.arguments[1]);if((t.arguments.length-1)%2==0)throw new s(e,"WrongNumberOfParameters",t);return Ge(e,t,1,await re(e,t.arguments[0]))}async function Ge(e,t,n,r){const o=await re(e,t.arguments[n]);if(M(o,r))return re(e,t.arguments[n+1]);const a=t.arguments.length-n;return 1===a?re(e,t.arguments[n]):2===a?null:3===a?re(e,t.arguments[n+2]):Ge(e,t,n+2,r)}async function Le(e,t){if(t.arguments.length<3)throw new s(e,"WrongNumberOfParameters",t);if(t.arguments.length%2==0)throw new s(e,"WrongNumberOfParameters",t);const n=await re(e,t.arguments[0]);if(!1===_(n))throw new s(e,"BooleanConditionRequired",t.arguments[0]);return qe(e,t,0,n)}async function qe(e,t,n,r){if(!0===r)return re(e,t.arguments[n+1]);if(3===t.arguments.length-n)return re(e,t.arguments[n+2]);const o=await re(e,t.arguments[n+2]);if(!1===_(o))throw new s(e,"ModuleExportNotFound",t.arguments[n+2]);return qe(e,t,n+2,o)}function Pe(){const e=Object.create(null);K(e,X),P(e,X),U(e,X,Ee),L(e,X),G(e,X),q(e,X),W(e,X),Z({functions:e,compiled:!1,signatures:null,evaluateIdentifier:null,mode:"async",standardFunction:X,standardFunctionAsync:ne}),e.iif=Ke,e.defaultvalue=Ue,e.decode=Ze,e.when=Le;const t=function(){this.textformatting={value:l.textFormatting()}};t.prototype=Object.create(null),t.prototype.infinity=Object.freeze({value:Number.POSITIVE_INFINITY}),t.prototype.pi=Object.freeze({value:Math.PI});for(const[n,r]of Object.entries(e))t.prototype[n]=Object.freeze({value:new f(r)});return t}const We=Pe();function ze(e){const t={mode:"async",compiled:!1,functions:Object.create(null),signatures:[],standardFunction:X,standardFunctionAsync:ne,evaluateIdentifier:Ee};for(let n=0;n<e.length;n++)e[n].registerFunctions(t);for(const[n,r]of Object.entries(t.functions))We.prototype[n]=Object.freeze({value:new f(r)});for(let n=0;n<t.signatures.length;n++)E(t.signatures[n],"async")}function Ve(e,t,n){const r=new We;null==e&&(e={}),null==t&&(t={});for(const o in t)r[o]={value:new f(t[o])};for(const o in e)r[o]={value:T(e[o])?u.createFromGraphic(e[o],n):e[o]};return r}function Te(e){console.log(e)}async function _e(t,n){const o=n.spatialReference??V.WebMercator;let a=null;t.usesModules&&(a=new r(new Map,t.loadedModules));const i=Ve(n.vars,n.customfunctions,n.timeZone),l={spatialReference:o,services:n.services,exports:{},libraryResolver:a,abortSignal:n.abortSignal??e,globalScope:i,console:n.console??Te,timeZone:n.timeZone??null,lrucache:n.lrucache,interceptor:n.interceptor,localScope:null,depthCounter:{depth:1},track:n.track},c=await ve(l,t);if(c instanceof h||c instanceof g){const e=c.value;if(m(e))return null;if(y(e))throw new s(l,"IllegalResult",null);return e}if(m(c))return null;if(c===b)throw new s(l,"IllegalResult",null);if(c===v)throw new s(l,"IllegalResult",null);throw new s(l,"NeverReach",null)}ze([D]),ze([B]);export{_e as executeScript,ze as extend};
|
package/arcade/arcadeCompiler.js
CHANGED
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.34/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
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,ArcadeExecutionError as u,ArcadeUncompilableError as c}from"./executionError.js";import p from"./Feature.js";import{NativeFunction as d,ArcadeFunction as f,ScopeMarshalledFunction as m,wrapModuleScopedResponse as g}from"./FunctionWrapper.js";import{p as h,R as y,I as w,v,q as b,r as $,i as S,s as x,j as F,k as C,u as M,w as A,x as O,y as k,z as I,h as j,n as N}from"../chunks/languageUtils.js";import{addFunctionDeclaration as E}from"./treeAnalysis.js";import{A as B}from"../chunks/aiServices.js";import{A as R}from"../chunks/array.js";import{registerFunctions as _}from"./functions/date.js";import{registerFunctions as D}from"./functions/feature.js";import{registerFunctions as G}from"./functions/geometry.js";import{registerFunctions as L}from"./functions/geomsync.js";import{registerFunctions as U}from"./functions/maths.js";import{registerFunctions as K}from"./functions/stats.js";import{registerFunctions as P}from"./functions/string.js";import{neverReached as W}from"../core/compilerUtils.js";import{isPromiseLike as V}from"../core/promiseUtils.js";import T from"../geometry/Geometry.js";import Z from"../geometry/SpatialReference.js";import{isString as q,isArray as z,isNumber as J,isBoolean as Y,isGraphic as H}from"../support/guards.js";function Q(e){return e.symbols.symbolCounter++,`_T${e.symbols.symbolCounter}`}function X(e){return e.symbols.symbolCounter++,`_Tvar${e.symbols.symbolCounter}`}function ee(e,n,t,r="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:Q(e),node:t};return e.undeclaredGlobalsInFunctions.set(n,l),{type:"undeclared-global",var:l.mangledName}}throw new s(null,r,t)}function ne(e,n){if(null!=e.localScope){let t=e.localScope?.variables.get(n);return null==t&&(t=Q(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=Q(e),e.globalScope.variables.set(n,t),e.mangleMap[n]=t,{type:"global",var:t}}class te extends f{constructor(e,n){super(),this.paramCount=n,this.fn=e}createFunction(e){return(...n)=>{if(n.length!==this.paramCount)throw new u(e,"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=>!S(n)||n instanceof m?n:g(n,e,r));const a=this.call(t,{arguments:o});return V(a)?a.then(e=>g(e,t,r)):a})}}function re(e,n,t){try{return t(e,null,n.arguments)}catch(r){throw r}}function le(e,n){switch(n.type){case"AssignmentExpression":return ge(e,n);case"UpdateExpression":return fe(e,n);case"TemplateLiteral":return Ie(e,n);case"Identifier":return Ee(e,n);case"MemberExpression":return Ae(e,n);case"Literal":return null===n.value||void 0===n.value?"null":JSON.stringify(n.value);case"CallExpression":return Be(e,n);case"UnaryExpression":return Oe(e,n);case"BinaryExpression":return je(e,n);case"LogicalExpression":return Ne(e,n);case"ArrayExpression":return ke(e,n);case"ObjectExpression":return ae(e,n);default:throw new s(null,"Unrecognized",n)}}function oe(e,n){switch(n.type){case"EmptyStatement":return"lc.voidOperation";case"VariableDeclaration":return Ce(e,n);case"BlockStatement":return ve(e,n);case"FunctionDeclaration":return Fe(e,n);case"ImportDeclaration":return $e(e,n);case"ExportNamedDeclaration":return Se(e,n);case"ReturnStatement":return be(e,n);case"IfStatement":return we(e,n);case"ExpressionStatement":return he(e,n);case"BreakStatement":return"break";case"ContinueStatement":return"continue";case"ForStatement":return de(e,n);case"ForInStatement":return ce(e,n);case"ForOfStatement":return pe(e,n);case"WhileStatement":return me(e,n);default:throw new s(null,"Unrecognized",n)}}function ae(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?(xe(l.key.name),o="'"+l.key.name+"'"):o=le(e,l.key);r>0&&(t+=","),t+="lang.strCheck("+o+",'ObjectExpression'),lang.aCheck("+le(e,l.value)+", 'ObjectExpression')"}return t+="])",t}function ie(e,n,t,r,l=(e,n)=>`${e} = ${n}`){const o=X(e),a=X(e);return[`var ${o} = ${t};`,`for (var ${a} = 0; ${a} < ${o}; ${a}++) {`,` ${l(n,a)}`,` ${oe(e,r)}`,"}","lastStatement = lc.voidOperation;"].join("\n")}function se(e,n,t,r,l=e=>e){const o=X(e),a=X(e);return[`var ${o} = ${t};`,`for (var ${a} of ${o}) {`,` ${n} = ${l(a)};`,` ${oe(e,r)}`,"}","lastStatement = lc.voidOperation;"].join("\n")}function ue(e,n,t,r){const l=X(e);return[`var ${l} = ${t}.iterator(runtimeCtx.abortSignal);`,`while ((${n} = lang.graphicToFeature(yield ${l}.next(), ${t}, runtimeCtx)) != null) {`,` ${oe(e,r)}`,"}","lastStatement = lc.voidOperation;"].join("\n")}function ce(e,t){const r=X(e);let l="var "+r+" = "+le(e,t.right)+";\n";"VariableDeclaration"===t.left.type&&(l+=oe(e,t.left));const o=n("VariableDeclaration"===t.left.type?t.left.declarations[0].id:t.left);xe(o);const a=ee(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 W(a.type),new s(null,"NeverReach",t.left)}return l+="if ("+r+"===null) { lastStatement = lc.voidOperation; }\n ",l+="else if (lc.isArray("+r+") || lc.isString("+r+")) {\n",l+=ie(e,i,`${r}.length`,t.body),l+="}\n",l+="else if (lc.isImmutableArray("+r+")) {\n",l+=ie(e,i,`${r}.length()`,t.body),l+="}\n",l+="else if (( "+r+" instanceof lang.Dictionary) || lc.isDictionaryLike("+r+")) {\n",l+=se(e,i,`${r}.keys()`,t.body),l+="}\n",e.isAsync&&(l+="else if (lc.isFeatureSet("+r+")) {\n",l+=ue(e,i,r,t.body),l+="}\n"),l+=`else if (lc.isGeometry(${r})) {\n`,l+=se(e,i,`lang.getGeometryKeys(${r})`,t.body),l+="}\n",l+="else { lastStatement = lc.voidOperation; } \n",l}function pe(e,t){const r=X(e);let l="var "+r+" = "+le(e,t.right)+";\n";"VariableDeclaration"===t.left.type&&(l+=oe(e,t.left));const o=n("VariableDeclaration"===t.left.type?t.left.declarations[0].id:t.left);xe(o);const a=ee(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 W(a.type),new s(null,"NeverReach",t.left)}return l+="if ("+r+"===null) { lastStatement = lc.voidOperation; }\n ",l+="else if (lc.isArray("+r+") || lc.isString("+r+")) {\n",l+=ie(e,i,`${r}.length`,t.body,(e,n)=>[`if (${n} >= ${r}.length) {`," lang.error('OutOfBounds');","}",`${e} = ${r}[${n}];`].join("\n")),l+="}\n",l+="else if (lc.isImmutableArray("+r+")) {\n",l+=ie(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+=se(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+=ue(e,i,r,t.body),l+="}\n"),l+=`else if (lc.isGeometry(${r})) {\n`,l+=se(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 de(e,n){let t="lastStatement = lc.voidOperation; \n";null!==n.init&&("VariableDeclaration"===n.init.type?t+=oe(e,n.init):t+=le(e,n.init)+"; ");const r=X(e),l=X(e);return t+="var "+r+" = true; ",t+="\n do { ",null!==n.update&&(t+=" if ("+r+"===false) {\n "+le(e,n.update)+" \n}\n "+r+"=false; \n"),null!==n.test&&(t+="var "+l+" = "+le(e,n.test)+"; ",t+="if ("+l+"===false) { break; } else if ("+l+"!==true) { lang.error('BooleanConditionRequired'); }\n"),t+=oe(e,n.body),null!==n.update&&(t+="\n "+le(e,n.update)),t+="\n"+r+" = true; \n} while(true); lastStatement = lc.voidOperation; ",t}function fe(e,t){if("CallExpression"===t.argument.type)throw new s(null,"NeverReach",t);let r;if("MemberExpression"===t.argument.type){const n=le(e,t.argument.object);return!0===t.argument.computed?r=le(e,t.argument.property):(xe(t.argument.property.name),r="'"+t.argument.property.name+"'"),"lang.memberupdate("+n+","+r+",'"+t.operator+"',"+t.prefix+")"}const l=n(t.argument);xe(l);const o=ee(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 W(o.type),new s(null,"NeverReach",t.argument)}}function me(e,n){let t="lastStatement = lc.voidOperation; \n";const r=X(e);return t+=`\n var ${r} = true;\n do {\n ${r} = ${le(e,n.test)};\n if (${r}==false) {\n break;\n }\n if (${r}!==true) {\n lang.error('BooleanConditionRequired');\n }\n ${oe(e,n.body)}\n }\n while (${r} !== false);\n lastStatement = lc.voidOperation;\n `,t}function ge(e,t){const r=le(e,t.right);if("MemberExpression"===t.left.type){let n;const l=le(e,t.left.object);return!0===t.left.computed?n=le(e,t.left.property):(n="'"+t.left.property.name+"'",xe(t.left.property.name)),"lang.assignmember("+l+","+n+",'"+t.operator+"',"+r+")"}const l=n(t.left);xe(l);const o=ee(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 W(o.type),new s(null,"NeverReach",t.left)}}function he(e,n){return"AssignmentExpression"===n.expression.type?"lastStatement = lc.voidOperation; "+le(e,n.expression)+"; \n ":"lastStatement = "+le(e,n.expression)+"; "}function ye(e,n){return"BlockStatement"===n.type?oe(e,n):"ReturnStatement"===n.type||"BreakStatement"===n.type||"ContinueStatement"===n.type?oe(e,n)+"; ":"ExpressionStatement"===n.type?oe(e,n):oe(e,n)+"; "}function we(e,n){return`if (lang.mustBoolean(${le(e,n.test)}, runtimeCtx) === true) {\n ${ye(e,n.consequent)}\n } `+(null!==n.alternate?"IfStatement"===n.alternate.type?" else "+we(e,n.alternate):` else {\n ${ye(e,n.alternate)}\n }\n`:" else {\n lastStatement = lc.voidOperation;\n }\n")}function ve(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+=oe(e,n.body[r])+"; \n":t+=oe(e,n.body[r])+" \n");return t}function be(e,n){if(null===n.argument)return"return lc.voidOperation";return"return "+le(e,n.argument)}function $e(e,t){const r=n(t.specifiers[0].local);xe(r);const l=e.libraryResolver?.loadLibrary(r),o=Q(e);void 0===e.moduleFactory[l.uri]&&(e.moduleFactory[l.uri]=Xe(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=ne(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,"NeverReach",t.specifiers[0].local)}}function Se(e,t){const r=oe(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 xe(e){if("iif"===e)throw new c;if("decode"===e)throw new c;if("when"===e)throw new c;if("defaultvalue"===e)throw new c}function Fe(e,t){const r=n(t.id);xe(r);const l=ne(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]);xe(e);const r=ne(o,e);if("local"!==r.type)throw new s(null,"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+=ve(o,t.body)+"\n return lastStatement; ",a+="}); }",a+=", runtimeCtx),"+t.params.length+")",a+="\n lastStatement = lc.voidOperation; \n"):(a+=ve(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,"NeverReach",t.id)}}function Ce(e,n){const t=[];for(let r=0;r<n.declarations.length;r++)t.push(Me(e,n.declarations[r]));return t.join("\n")+" \n lastStatement= lc.voidOperation; \n"}function Me(e,t){const r=null===t.init?"null":le(e,t.init),l=n(t.id);xe(l);const o=ne(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 W(o.type),new s(null,"NeverReach",t.id)}}function Ae(e,n){try{let t;return!0===n.computed?t=le(e,n.property):(xe(n.property.name),t="'"+n.property.name+"'"),"lang.member("+le(e,n.object)+","+t+")"}catch(t){throw t}}function Oe(e,n){try{return"lang.unary("+le(e,n.argument)+",'"+n.operator+"')"}catch(t){throw t}}function ke(e,n){try{const t=[];for(let r=0;r<n.elements.length;r++)"Literal"===n.elements[r].type?t.push(le(e,n.elements[r])):t.push("lang.aCheck("+le(e,n.elements[r])+",'ArrayExpression')");return"["+t.join(",")+"]"}catch(t){throw t}}function Ie(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("+le(e,n.expressions[r])+", 'TemplateLiteral'))":""),r++);return"(["+t.join(",")+"]).join('')"}catch(t){throw t}}function je(e,n){try{return"lang.binary("+le(e,n.left)+","+le(e,n.right)+",'"+n.operator+"')"}catch(t){throw t}}function Ne(e,n){try{if("AssignmentExpression"===n.left.type||"UpdateExpression"===n.left.type)throw new s(null,"LogicalExpressionOnlyBoolean",n);if("AssignmentExpression"===n.right.type||"UpdateExpression"===n.right.type)throw new s(null,"LogicalExpressionOnlyBoolean",n);if("&&"===n.operator||"||"===n.operator)return"(lang.logicalCheck("+le(e,n.left)+") "+n.operator+" lang.logicalCheck("+le(e,n.right)+"))";throw new s(null,"LogicExpressionOrAnd",null)}catch(t){throw t}}function Ee(e,t){const r=n(t);xe(r);const l=ee(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 W(l.type),new s(null,"NeverReach",t)}}function Be(e,t){try{if("MemberExpression"===t.callee.type){let n;!0===t.callee.computed?n=le(e,t.callee.property):(xe(t.callee.property.name),n="'"+t.callee.property.name+"'");let r="[";for(let l=0;l<t.arguments.length;l++)l>0&&(r+=", "),r+=le(e,t.arguments[l]);return r+="]",e.isAsync?"(yield lang.callModuleFunction("+le(e,t.callee.object)+","+r+","+n+",runtimeCtx))":"lang.callModuleFunction("+le(e,t.callee.object)+","+r+","+n+",runtimeCtx)"}if("Identifier"!==t.callee.type)throw new s(null,"FunctionNotFound",t);const r=n(t.callee);if("iif"===r)return Re(e,t);if("when"===r)return De(e,t);if("defaultvalue"===r)return _e(e,t);if("decode"===r)return Ge(e,t);const l=ee(e,r,t.callee,"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 W(l.type),new s(null,"NeverReach",t.callee)}let a="[";for(let n=0;n<t.arguments.length;n++)n>0&&(a+=", "),a+=le(e,t.arguments[n]);return a+="]",e.isAsync?"(yield lang.callfunc("+o+","+a+",runtimeCtx) )":"lang.callfunc("+o+","+a+",runtimeCtx)"}catch(r){throw r}}function Re(e,n){try{if(3!==n.arguments.length)throw new s(null,"WrongNumberOfParameters",n);const t=X(e);return`${e.isAsync?"(yield (function() { \n return lang.__awaiter(this, void 0, void 0, function* () {":"function() {"}\n var ${t} = ${le(e,n.arguments[0])};\n\n if (${t} === true) {\n return ${le(e,n.arguments[1])};\n }\n else if (${t} === false) {\n return ${le(e,n.arguments[2])};\n }\n else {\n lang.error('ExecutionErrorCodes.BooleanConditionRequired');\n }\n ${e.isAsync?"})}()))":"}()"}`}catch(t){throw t}}function _e(e,n){try{if(n.arguments.length<2||n.arguments.length>3)throw new s(null,"WrongNumberOfParameters",n);const t=X(e),r=X(e);return 3===n.arguments.length?`${e.isAsync?"(yield (function() { \n return lang.__awaiter(this, void 0, void 0, function* () {":"function() {"}\n var ${t} = ${le(e,n.arguments[0])};\n var ${r} = ${le(e,n.arguments[1])};\n ${t} = lang.getNestedOptionalValue(${t}, ${r});\n return ${t} != null && ${t} !== "" ? ${t} : ${le(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} = ${le(e,n.arguments[0])};\n if (${t} === null) {\n return ${le(e,n.arguments[1])};\n }\n if (${t} === "") {\n return ${le(e,n.arguments[1])};\n }\n if (${t} === undefined) {\n return ${le(e,n.arguments[1])};\n }\n return ${t};\n ${e.isAsync?"})}()))":"}()"}`}catch(t){throw t}}function De(e,n){try{if(n.arguments.length<3)throw new s(null,"WrongNumberOfParameters",n);if(n.arguments.length%2==0)throw new s(null,"WrongNumberOfParameters",n);const t=X(e);let r="var ";for(let l=0;l<n.arguments.length-1;l+=2)r+=`${t} = lang.mustBoolean(${le(e,n.arguments[l])}, runtimeCtx);\n if (${t} === true ) {\n return ${le(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 ${le(e,n.arguments[n.arguments.length-1])}\n ${e.isAsync?"})}()))":"}()"}`}catch(t){throw t}}function Ge(e,n){try{if(n.arguments.length<2)throw new s(null,"WrongNumberOfParameters",n);if(2===n.arguments.length)return`(${le(e,n.arguments[1])})`;if((n.arguments.length-1)%2==0)throw new s(null,"WrongNumberOfParameters",n);const t=X(e),r=X(e);let l="var ";for(let o=1;o<n.arguments.length-1;o+=2)l+=`${r} = ${le(e,n.arguments[o])};\n if (lang.binary(${r}, ${t}, "==") === true ) {\n return ${le(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} = ${le(e,n.arguments[0])};\n ${l}\n return ${le(e,n.arguments[n.arguments.length-1])}\n ${e.isAsync?"})}()))":"}()"}`}catch(t){throw t}}function Le(e,n){try{return re(e,n,(e,n)=>{throw new u(e,"Unrecognized",n)})}catch(t){throw t}}function Ue(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 d(r),n.provided.add(t);return n}function Ke(){const e=Object.create(null);_(e,re),P(e,re),D(e,re,qe),U(e,re),G(e,re),K(e,re),e.iif=Le,e.decode=Le,e.when=Le,e.defaultvalue=Le;const n=Ue(e);L(e,re);return{ScopeSync:Ue(e),ScopeAsync:n}}const{ScopeSync:Pe,ScopeAsync:We}=Ke();function Ve(e,n){const t={mode:n,compiled:!0,functions:Object.create(null),signatures:[],standardFunction:re,standardFunctionAsync:re,evaluateIdentifier:qe};for(const r of e)r.registerFunctions(t);if("sync"===n)for(const[r,l]of Object.entries(t.functions))Pe.prototype[r]=new d(l),Pe.provided.add(r);else for(const[r,l]of Object.entries(t.functions))We.prototype[r]=new d(l),We.provided.add(r);for(const r of t.signatures)E(r,n)}function Te(e,n,t){const r=new Set(e?We.provided:Pe.provided);for(const l in t)r.add(l);for(const l in n)r.add(l);return r}function Ze(e,n,t,r){const l=e?new We:new Pe;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),H(e)?l[o]=p.createFromGraphic(e,r??null):l[o]=e}return l}function qe(e,n){const t=n.name;if("_SymbolsMap"===t)throw new u(e,"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}Ve([R],"sync"),Ve([R],"async"),Ve([B],"async");const ze={isNumber:e=>J(e),isArray:e=>z(e),isImmutableArray:e=>F(e),isDictionaryLike:e=>x(e),isString:e=>q(e),isDictionary:e=>N(e),isGeometry:e=>j(e),getGeometryKeys:e=>a(e),geometryMember:(e,n,t,r,l=1)=>o(e,n,t,r,l),error(e){throw new u(null,e,null)},__awaiter(e,n,t,r){const l=r.apply(e,n||[]);let o=l.next();for(;!o.done&&!V(o.value);)o=l.next(o.value);return o.done?o.value:new Promise((e,n)=>{function t(r){for(;!r.done;){if(V(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 u(null,"MaximumCallDepth",null);const t=e.apply(this,arguments);return V(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 u(n,"InvalidIdentifier",null);return e},mustBoolean(e,n){if(!0===e||!1===e)return e;throw new u(n,"BooleanConditionRequired",null)},setAssig:(e,n)=>(n.gdefs[e]=1,e),castString:e=>A(e),aCheck(e,n){if(S(e)){if("ArrayExpression"===n)throw new u(null,"NoFunctionInArray",null);if("ObjectExpression"===n)throw new u(null,"NoFunctionInDictionary",null);throw new u(null,"NoFunctionInTemplateLiteral",null)}return e===v?null:e},Dictionary:i,Feature:p,UserDefinedCompiledFunction:te,dictionary(e){const n=Object.create(null),t=new Map;for(let l=0;l<e.length;l+=2){if(S(e[l+1]))throw new u(null,"NoFunctionInDictionary",null);if(!1===q(e[l]))throw new u(null,"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]===v?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===q(e))throw new u(null,"KeyMustBeString",null);return e},unary(e,n){if(Y(e)){if("!"===n)return!e;if("-"===n)return-1*M(e);if("+"===n)return 1*M(e);if("~"===n)return~M(e);throw new u(null,"UnsupportUnaryOperator",null)}if("-"===n)return-1*M(e);if("+"===n)return 1*M(e);if("~"===n)return~M(e);throw new u(null,"UnsupportUnaryOperator",null)},logicalCheck(e){if(!1===Y(e))throw new u(null,"LogicExpressionOrAnd",null);return e},logical(e,n,t){if(Y(e)&&Y(n))switch(t){case"||":return e||n;case"&&":return e&&n;default:throw new u(null,"LogicExpressionOrAnd",null)}throw new u(null,"LogicExpressionOrAnd",null)},binary(e,n,t){switch(t){case"|":case"<<":case">>":case">>>":case"^":case"&":return I(M(e),M(n),t);case"==":case"=":return k(e,n);case"!=":return!k(e,n);case"<":case">":case"<=":case">=":return O(e,n,t);case"+":return q(e)||q(n)?A(e)+A(n):M(e)+M(n);case"-":return M(e)-M(n);case"*":return M(e)*M(n);case"/":return M(e)/M(n);case"%":return M(e)%M(n);default:throw new u(null,"UnsupportedOperator",null)}},assign(e,n,t){switch(n){case"=":return e===v?null:e;case"/=":return M(t)/M(e);case"*=":return M(t)*M(e);case"-=":return M(t)-M(e);case"+=":return q(t)||q(e)?A(t)+A(e):M(t)+M(e);case"%=":return M(t)%M(e);default:throw new u(null,"UnsupportedOperator",null)}},update(e,n,t,r){const l=M(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:p.createFromGraphicLikeObject(e.geometry,e.attributes,n,t.timeZone),memberupdate(e,n,t,r){let l;if(z(e)){if(!J(n))throw new u(null,"ArrayAccessMustBeNumber",null);if(n<0&&(n=e.length+n),n<0||n>=e.length)throw new u(null,"OutOfBounds",null);l=M(e[n]),e[n]="++"===t?l+1:l-1}else if(e instanceof i){if(!1===q(n))throw new u(null,"KeyAccessorMustBeString",null);if(!0!==e.hasField(n))throw new u(null,"FieldNotFound",null,{key:n});l=M(e.field(n)),e.setField(n,"++"===t?l+1:l-1)}else if(C(e)){if(!1===q(n))throw new u(null,"KeyAccessorMustBeString",null);if(!0!==e.hasField(n))throw new u(null,"FieldNotFound",null);l=M(e.field(n)),e.setField(n,"++"===t?l+1:l-1)}else{if(F(e))throw new u(null,"Immutable",null);if(!(e instanceof Qe))throw new u(null,"InvalidIdentifier",null);if(!1===q(n))throw new u(null,"ModuleAccessorMustBeString",null);if(!0!==e.hasGlobal(n))throw new u(null,"ModuleExportNotFound",null);l=M(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(z(e)){if(!J(n))throw new u(null,"ArrayAccessMustBeNumber",null);if(n<0&&(n=e.length+n),n<0||n>e.length)throw new u(null,"OutOfBounds",null);if(n===e.length){if("="!==t)throw new u(null,"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===q(n))throw new u(null,"KeyAccessorMustBeString",null);if(!0===e.hasField(n))e.setField(n,this.assign(r,t,e.field(n)));else{if("="!==t)throw new u(null,"FieldNotFound",null);e.setField(n,this.assign(r,t,null))}}else if(C(e)){if(!1===q(n))throw new u(null,"KeyAccessorMustBeString",null);if(!0===e.hasField(n))e.setField(n,this.assign(r,t,e.field(n)));else{if("="!==t)throw new u(null,"FieldNotFound",null);e.setField(n,this.assign(r,t,null))}}else{if(F(e))throw new u(null,"Immutable",null);if(!(e instanceof Qe))throw new u(null,"InvalidIdentifier",null);if(!1===q(n))throw new u(null,"ModuleAccessorMustBeString",null);if(!e.hasGlobal(n))throw new u(null,"ModuleExportNotFound",null);e.setGlobal(n,this.assign(r,t,e.global(n)))}},member(e,n){if(null===e)throw new u(null,"MemberOfNull",null);if(e instanceof i||x(e)){if(q(n))return e.field(n);throw new u(null,"InvalidMemberAccessKey",null)}if(e instanceof T){if(q(n))return o(e,n,null,null);throw new u(null,"InvalidMemberAccessKey",null)}if(z(e)){if(J(n)&&isFinite(n)&&Math.floor(n)===n){if(n<0&&(n=e.length+n),n>=e.length||n<0)throw new u(null,"OutOfBounds",null);return e[n]}throw new u(null,"InvalidMemberAccessKey",null)}if(q(e)){if(J(n)&&isFinite(n)&&Math.floor(n)===n){if(n<0&&(n=e.length+n),n>=e.length||n<0)throw new u(null,"OutOfBounds",null);return e[n]}throw new u(null,"InvalidMemberAccessKey",null)}if(F(e)){if(J(n)&&isFinite(n)&&Math.floor(n)===n){if(n<0&&(n=e.length()+n),n>=e.length()||n<0)throw new u(null,"OutOfBounds",null);return e.get(n)}throw new u(null,"InvalidMemberAccessKey",null)}if(e instanceof Qe){if(q(n))return e.global(n);throw new u(null,"InvalidMemberAccessKey",null)}throw new u(null,"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 Qe))throw new u(null,"FunctionNotFound",null);const l=e.global(t);if(!1===S(l))throw new u(null,"CallNonFunction",null);return l.call(r,{preparsed:!0,arguments:n})},getNestedOptionalValue:(e,n)=>l(e,n)};function Je(e){console.log(e)}function Ye(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:Te(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=ve(a,n);""===i&&(i="lc.voidOperation; "),a.undeclaredGlobalsInFunctions.size>0&&a.undeclaredGlobalsInFunctions.forEach(e=>{throw new s(null,"InvalidIdentifier",e.node)});let c="";c=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 p=a.moduleFactory,d=a.moduleFactoryMap,f=a.exports,m={};let g;for(g in f)m[g]=a.mangleMap[g]??g;const x={lc:h,lang:ze,mangles:a.mangleMap,postProcess(e){if(e instanceof y&&(e=e.value),e instanceof w&&(e=e.value),e===v&&(e=null),e===b)throw new u(null,"IllegalResult",null);if(e===$)throw new u(null,"IllegalResult",null);if(S(e))throw new u(null,"IllegalResult",null);return e},prepare(n,t){const r=n.spatialReference??Z.WebMercator,l=Ze(t,n.vars,n.customfunctions,n.timeZone);return{localStack:[],moduleFactory:p,moduleFactoryMap:d,mangleMap:this.mangles,moduleSingletons:{},exports:f,gdefs:{},exportmangle:m,spatialReference:r,globalScope:l,abortSignal:n.abortSignal??e,services:n.services,console:n.console??Je,lrucache:n.lrucache,timeZone:n.timeZone??null,interceptor:n.interceptor,depthCounter:{depth:1}}}};return new Function("context",c).bind(x)}async function He(){return Ve([await import("./functions/geomasync.js")],"async"),!0}class Qe 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(S(n))throw new u(null,"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 u(null,"InvalidIdentifier",null);if(S(r)&&!(r instanceof m)){const e=new m;return e.fn=r,e.parameterEvaluator=re,e.context=this.moduleContext,n[this.moduleContext.exportmangle[t]]=e,e}return r}}function Xe(n,t,l){const o={isAsync:l,moduleFactory:t.moduleFactory,moduleFactoryMap:{},libraryResolver:new r(null,n.loadedModules),globalScope:{provided:Te(l,null,null),variables:new Map},localScope:null,mangleMap:{},undeclaredGlobalsInFunctions:new Map,depthCounter:{depth:1},exports:{},symbols:{symbolCounter:0}};let a=ve(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:h,lang:ze,mangles:o.mangleMap,prepareModule:e=>new Qe(e),prepare(n,t){const r=n.spatialReference??Z.WebMercator,l=Ze(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??Je,lrucache:n.lrucache,timeZone:n.timeZone??null,interceptor:n.interceptor,depthCounter:n.depthCounter}}};return new Function("context",i).bind(f)}export{te as UserDefinedCompiledFunction,Ye as compileScript,He as enableAsyncSupport,Ve as extend};
|
|
5
|
+
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,ArcadeExecutionError as u,ArcadeUncompilableError as c}from"./executionError.js";import p from"./Feature.js";import{NativeFunction as d,ArcadeFunction as f,ScopeMarshalledFunction as m,wrapModuleScopedResponse as g}from"./FunctionWrapper.js";import{p as h,R as y,I as w,v,q as b,r as $,i as S,s as x,j as F,k as C,u as M,w as A,x as O,y as k,z as I,h as j,n as N}from"../chunks/languageUtils.js";import{addFunctionDeclaration as E}from"./treeAnalysis.js";import{A as B}from"../chunks/aiServices.js";import{A as R}from"../chunks/array.js";import{registerFunctions as _}from"./functions/date.js";import{registerFunctions as D}from"./functions/feature.js";import{registerFunctions as G}from"./functions/geometry.js";import{registerFunctions as L}from"./functions/geomsync.js";import{registerFunctions as U}from"./functions/maths.js";import{registerFunctions as K}from"./functions/stats.js";import{registerFunctions as P}from"./functions/string.js";import{registerFunctions as W}from"./functions/track.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="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 f{constructor(e,n){super(),this.paramCount=n,this.fn=e}createFunction(e){return(...n)=>{if(n.length!==this.paramCount)throw new u(e,"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=>!S(n)||n instanceof m?n:g(n,e,r));const a=this.call(t,{arguments:o});return T(a)?a.then(e=>g(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,"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,"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,"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,"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('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('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,"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,"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('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,"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,"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 c;if("decode"===e)throw new c;if("when"===e)throw new c;if("defaultvalue"===e)throw new c}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,"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,"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,"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,"LogicalExpressionOnlyBoolean",n);if("AssignmentExpression"===n.right.type||"UpdateExpression"===n.right.type)throw new s(null,"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,"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,"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,"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,"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,"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,"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,"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,"WrongNumberOfParameters",n);if(n.arguments.length%2==0)throw new s(null,"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,"WrongNumberOfParameters",n);if(2===n.arguments.length)return`(${oe(e,n.arguments[1])})`;if((n.arguments.length-1)%2==0)throw new s(null,"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 u(e,"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 d(r),n.provided.add(t);return n}function Pe(){const e=Object.create(null);_(e,le),P(e,le),D(e,le,ze),U(e,le),G(e,le),K(e,le),W(e,le),e.iif=Ue,e.decode=Ue,e.when=Ue,e.defaultvalue=Ue;const n=Ke(e);L(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 d(l),We.provided.add(r);else for(const[r,l]of Object.entries(t.functions))Ve.prototype[r]=new d(l),Ve.provided.add(r);for(const r of t.signatures)E(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]=p.createFromGraphic(e,r??null):l[o]=e}return l}function ze(e,n){const t=n.name;if("_SymbolsMap"===t)throw new u(e,"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([R],"sync"),Te([R],"async"),Te([B],"async");const Je={isNumber:e=>Y(e),isArray:e=>J(e),isImmutableArray:e=>F(e),isDictionaryLike:e=>x(e),isString:e=>z(e),isDictionary:e=>N(e),isGeometry:e=>j(e),getGeometryKeys:e=>a(e),geometryMember:(e,n,t,r,l=1)=>o(e,n,t,r,l),error(e){throw new u(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 u(null,"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 u(n,"InvalidIdentifier",null);return e},mustBoolean(e,n){if(!0===e||!1===e)return e;throw new u(n,"BooleanConditionRequired",null)},setAssig:(e,n)=>(n.gdefs[e]=1,e),castString:e=>A(e),aCheck(e,n){if(S(e)){if("ArrayExpression"===n)throw new u(null,"NoFunctionInArray",null);if("ObjectExpression"===n)throw new u(null,"NoFunctionInDictionary",null);throw new u(null,"NoFunctionInTemplateLiteral",null)}return e===v?null:e},Dictionary:i,Feature:p,UserDefinedCompiledFunction:re,dictionary(e){const n=Object.create(null),t=new Map;for(let l=0;l<e.length;l+=2){if(S(e[l+1]))throw new u(null,"NoFunctionInDictionary",null);if(!1===z(e[l]))throw new u(null,"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]===v?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 u(null,"KeyMustBeString",null);return e},unary(e,n){if(H(e)){if("!"===n)return!e;if("-"===n)return-1*M(e);if("+"===n)return 1*M(e);if("~"===n)return~M(e);throw new u(null,"UnsupportUnaryOperator",null)}if("-"===n)return-1*M(e);if("+"===n)return 1*M(e);if("~"===n)return~M(e);throw new u(null,"UnsupportUnaryOperator",null)},logicalCheck(e){if(!1===H(e))throw new u(null,"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 u(null,"LogicExpressionOrAnd",null)}throw new u(null,"LogicExpressionOrAnd",null)},binary(e,n,t){switch(t){case"|":case"<<":case">>":case">>>":case"^":case"&":return I(M(e),M(n),t);case"==":case"=":return k(e,n);case"!=":return!k(e,n);case"<":case">":case"<=":case">=":return O(e,n,t);case"+":return z(e)||z(n)?A(e)+A(n):M(e)+M(n);case"-":return M(e)-M(n);case"*":return M(e)*M(n);case"/":return M(e)/M(n);case"%":return M(e)%M(n);default:throw new u(null,"UnsupportedOperator",null)}},assign(e,n,t){switch(n){case"=":return e===v?null:e;case"/=":return M(t)/M(e);case"*=":return M(t)*M(e);case"-=":return M(t)-M(e);case"+=":return z(t)||z(e)?A(t)+A(e):M(t)+M(e);case"%=":return M(t)%M(e);default:throw new u(null,"UnsupportedOperator",null)}},update(e,n,t,r){const l=M(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:p.createFromGraphicLikeObject(e.geometry,e.attributes,n,t.timeZone),memberupdate(e,n,t,r){let l;if(J(e)){if(!Y(n))throw new u(null,"ArrayAccessMustBeNumber",null);if(n<0&&(n=e.length+n),n<0||n>=e.length)throw new u(null,"OutOfBounds",null);l=M(e[n]),e[n]="++"===t?l+1:l-1}else if(e instanceof i){if(!1===z(n))throw new u(null,"KeyAccessorMustBeString",null);if(!0!==e.hasField(n))throw new u(null,"FieldNotFound",null,{key:n});l=M(e.field(n)),e.setField(n,"++"===t?l+1:l-1)}else if(C(e)){if(!1===z(n))throw new u(null,"KeyAccessorMustBeString",null);if(!0!==e.hasField(n))throw new u(null,"FieldNotFound",null);l=M(e.field(n)),e.setField(n,"++"===t?l+1:l-1)}else{if(F(e))throw new u(null,"Immutable",null);if(!(e instanceof Xe))throw new u(null,"InvalidIdentifier",null);if(!1===z(n))throw new u(null,"ModuleAccessorMustBeString",null);if(!0!==e.hasGlobal(n))throw new u(null,"ModuleExportNotFound",null);l=M(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 u(null,"ArrayAccessMustBeNumber",null);if(n<0&&(n=e.length+n),n<0||n>e.length)throw new u(null,"OutOfBounds",null);if(n===e.length){if("="!==t)throw new u(null,"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 u(null,"KeyAccessorMustBeString",null);if(!0===e.hasField(n))e.setField(n,this.assign(r,t,e.field(n)));else{if("="!==t)throw new u(null,"FieldNotFound",null);e.setField(n,this.assign(r,t,null))}}else if(C(e)){if(!1===z(n))throw new u(null,"KeyAccessorMustBeString",null);if(!0===e.hasField(n))e.setField(n,this.assign(r,t,e.field(n)));else{if("="!==t)throw new u(null,"FieldNotFound",null);e.setField(n,this.assign(r,t,null))}}else{if(F(e))throw new u(null,"Immutable",null);if(!(e instanceof Xe))throw new u(null,"InvalidIdentifier",null);if(!1===z(n))throw new u(null,"ModuleAccessorMustBeString",null);if(!e.hasGlobal(n))throw new u(null,"ModuleExportNotFound",null);e.setGlobal(n,this.assign(r,t,e.global(n)))}},member(e,n){if(null===e)throw new u(null,"MemberOfNull",null);if(e instanceof i||x(e)){if(z(n))return e.field(n);throw new u(null,"InvalidMemberAccessKey",null)}if(e instanceof Z){if(z(n))return o(e,n,null,null);throw new u(null,"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 u(null,"OutOfBounds",null);return e[n]}throw new u(null,"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 u(null,"OutOfBounds",null);return e[n]}throw new u(null,"InvalidMemberAccessKey",null)}if(F(e)){if(Y(n)&&isFinite(n)&&Math.floor(n)===n){if(n<0&&(n=e.length()+n),n>=e.length()||n<0)throw new u(null,"OutOfBounds",null);return e.get(n)}throw new u(null,"InvalidMemberAccessKey",null)}if(e instanceof Xe){if(z(n))return e.global(n);throw new u(null,"InvalidMemberAccessKey",null)}throw new u(null,"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 u(null,"FunctionNotFound",null);const l=e.global(t);if(!1===S(l))throw new u(null,"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,"InvalidIdentifier",e.node)});let c="";c=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 p=a.moduleFactory,d=a.moduleFactoryMap,f=a.exports,m={};let g;for(g in f)m[g]=a.mangleMap[g]??g;const x={lc:h,lang:Je,mangles:a.mangleMap,postProcess(e){if(e instanceof y&&(e=e.value),e instanceof w&&(e=e.value),e===v&&(e=null),e===b)throw new u(null,"IllegalResult",null);if(e===$)throw new u(null,"IllegalResult",null);if(S(e))throw new u(null,"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:p,moduleFactoryMap:d,mangleMap:this.mangles,moduleSingletons:{},exports:f,gdefs:{},exportmangle:m,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},track:n.track}}};return new Function("context",c).bind(x)}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(S(n))throw new u(null,"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 u(null,"InvalidIdentifier",null);if(S(r)&&!(r instanceof m)){const e=new m;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:h,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,track:null}}};return new Function("context",i).bind(f)}export{re as UserDefinedCompiledFunction,He as compileScript,Qe as enableAsyncSupport,Te as extend};
|
package/arcade/arcadeRuntime.js
CHANGED
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.34/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{neverAbortedSignal as e,toSymbolId as t}from"./arcadeEnvironment.js";import{ArcadeModule as n}from"./ArcadeModule.js";import{ArcadeModuleLoader as r}from"./ArcadeModuleLoader.js";import{getNestedOptionalValue as o,getGeometryKeys as i,geometryMember as l}from"./containerUtils.js";import a from"./Dictionary.js";import{ArcadeExecutionError as s,ensureArcadeExecutionError as c}from"./executionError.js";import u from"./Feature.js";import{NativeFunction as f,ArcadeFunction as p,ScopeMarshalledFunction as h,wrapModuleScopedResponse as d}from"./FunctionWrapper.js";import{R as w,I as g,A as m,i as b,q as y,r as v,v as S,B as x,j as F,s as R,h as I,y as M,u as A,w as O,x as j,z as C,k as N}from"../chunks/languageUtils.js";import{addFunctionDeclaration as B}from"./treeAnalysis.js";import{A as E}from"../chunks/array.js";import{registerFunctions as k}from"./functions/date.js";import{registerFunctions as D}from"./functions/feature.js";import{registerFunctions as U}from"./functions/geometry.js";import{registerFunctions as K}from"./functions/geomsync.js";import{registerFunctions as Z}from"./functions/maths.js";import{registerFunctions as L}from"./functions/stats.js";import{registerFunctions as q}from"./functions/string.js";import"../core/has.js";import G from"../geometry/Geometry.js";import W from"../geometry/SpatialReference.js";import{isGraphic as z,isBoolean as P,isArray as V,isString as T,isNumber as _}from"../support/guards.js";class Y extends p{constructor(e,t){super(),this.definition=e,this.context=t}createFunction(e){return(...t)=>{const n={spatialReference:this.context.spatialReference,console:this.context.console,services:this.context.services,timeZone:this.context.timeZone??null,lrucache:this.context.lrucache,exports:this.context.exports,libraryResolver:this.context.libraryResolver,interceptor:this.context.interceptor,abortSignal:this.context.abortSignal,localScope:{},depthCounter:{depth:e.depthCounter.depth+1},globalScope:this.context.globalScope};if(n.depthCounter.depth>64)throw new s(e,"MaximumCallDepth",null);return H(this.definition,n,t,null)}}call(e,t){return X(e,t,(n,r,o)=>{const i={spatialReference:e.spatialReference,services:e.services,globalScope:e.globalScope,depthCounter:{depth:e.depthCounter.depth+1},libraryResolver:e.libraryResolver,exports:e.exports,timeZone:e.timeZone??null,console:e.console,lrucache:e.lrucache,interceptor:e.interceptor,abortSignal:e.abortSignal,localScope:{}};if(i.depthCounter.depth>64)throw new s(e,"MaximumCallDepth",t);return H(this.definition,i,o,t)})}marshalledCall(e,t,n,r){return r(e,t,(o,i,l)=>{const a={spatialReference:e.spatialReference,globalScope:n.globalScope,services:e.services,depthCounter:{depth:e.depthCounter.depth+1},libraryResolver:e.libraryResolver,exports:e.exports,console:e.console,timeZone:e.timeZone??null,lrucache:e.lrucache,interceptor:e.interceptor,abortSignal:e.abortSignal,localScope:{}};return l=l.map(t=>!b(t)||t instanceof h?t:d(t,e,r)),d(H(this.definition,a,l,t),n,r)})}}function H(e,n,r,o){try{const i=e.body;if(r.length!==e.params.length)throw new s(n,"WrongNumberOfParameters",o);if(null!=n.localScope)for(let o=0;o<r.length;o++)n.localScope[t(e.params[o])]={value:r[o]};const l=ee(n,i);if(l instanceof w)return l.value;if(l===y)throw new s(n,"UnexpectedToken",o);if(l===v)throw new s(n,"UnexpectedToken",o);return l instanceof g?l.value:l}catch(i){throw i}}class J extends n{constructor(e){super(),this.source=e}global(e){const n=this.executingContext.globalScope[t(e)];if(b(n.value)&&!(n.value instanceof h)){const r=new h;return r.fn=n.value,r.parameterEvaluator=X,r.context=this.executingContext,this.executingContext.globalScope[t(e)]={value:r},r}return n.value}setGlobal(e,n){if(b(n))throw new s(null,"AssignModuleFunction",null);this.executingContext.globalScope[t(e)]={value:n}}hasGlobal(e){return void 0===this.executingContext.exports[e]&&(e=t(e)),void 0!==this.executingContext.exports[e]}loadModule(t){const n=t.spatialReference??W.WebMercator;this.moduleScope=Ke(null,null,t.timeZone),this.executingContext={spatialReference:n,globalScope:this.moduleScope,localScope:null,libraryResolver:new r(t.libraryResolver._moduleSingletons,this.source.syntax.loadedModules),exports:{},services:t.services,console:t.console??Ze,timeZone:t.timeZone??null,lrucache:t.lrucache,interceptor:t.interceptor,abortSignal:e,depthCounter:{depth:1}},pe(this.executingContext,this.source.syntax)}}function Q(e,t){const n=[];for(let r=0;r<t.arguments.length;r++)n.push($(e,t.arguments[r]));return n}function X(e,t,n){try{return!0===t.preparsed?n(e,null,t.arguments):n(e,t,Q(e,t))}catch(r){throw r}}function $(e,t){try{switch(t.type){case"AssignmentExpression":return ce(e,t);case"UpdateExpression":return ae(e,t);case"TemplateLiteral":return Ie(e,t);case"Identifier":return Me(e,t);case"MemberExpression":return ye(e,t);case"Literal":return t.value;case"CallExpression":return Ae(e,t);case"UnaryExpression":return ve(e,t);case"BinaryExpression":return xe(e,t);case"LogicalExpression":return Fe(e,t);case"ArrayExpression":return Se(e,t);case"ObjectExpression":return te(e,t);default:throw new s(e,"Unrecognized",t)}}catch(n){throw c(e,t,n)}}function ee(e,t){switch(t.type){case"EmptyStatement":return S;case"VariableDeclaration":return me(e,t);case"ImportDeclaration":return we(e,t);case"ExportNamedDeclaration":return ge(e,t);case"BlockStatement":return pe(e,t);case"FunctionDeclaration":return de(e,t);case"ReturnStatement":return he(e,t);case"IfStatement":return fe(e,t);case"ExpressionStatement":return ue(e,t);case"BreakStatement":return y;case"ContinueStatement":return v;case"ForStatement":return oe(e,t);case"ForInStatement":return ne(e,t);case"ForOfStatement":return re(e,t);case"WhileStatement":return ie(e,t);default:throw new s(e,"Unrecognized",t)}}function te(e,t){const n=Object.create(null),r=new Map;for(let i=0;i<t.properties.length;i++){const o=t.properties[i],l="Identifier"===o.key.type?o.key.name:$(e,o.key),a=$(e,o.value);if(b(a))throw new s(e,"NoFunctionInDictionary",t);if(!1===T(l))throw new s(e,"KeyMustBeString",t);let c=l.toString();const u=c.toLowerCase();r.has(u)?c=r.get(u):r.set(u,c),n[c]=a===S?null:a}const o=new a(n);return o.immutable=!1,o}function ne(e,n){const r=$(e,n.right);"VariableDeclaration"===n.left.type&&me(e,n.left);const o=t("VariableDeclaration"===n.left.type?n.left.declarations[0].id:n.left);let l=null;if(null!=e.localScope&&void 0!==e.localScope[o]&&(l=e.localScope[o]),null===l&&void 0!==e.globalScope[o]){const t=e.globalScope[o].value;l=e.globalScope[o]={value:t}}if(null===l)throw new s(e,"InvalidIdentifier",n);if(V(r)||T(r)){const t=r.length;for(let r=0;r<t;r++){l.value=r;const t=ee(e,n.body);if(t===y)break;if(t instanceof w)return t}return S}if(F(r)){for(let t=0;t<r.length();t++){l.value=t;const r=ee(e,n.body);if(r===y)break;if(r instanceof w)return r}return S}if(r instanceof a||R(r)){const t=r.keys();for(let r=0;r<t.length;r++){l.value=t[r];const o=ee(e,n.body);if(o===y)break;if(o instanceof w)return o}return S}if(I(r)){for(const t of i(r)){l.value=t;const r=ee(e,n.body);if(r===y)break;if(r instanceof w)return r}return S}return S}function re(e,n){const r=$(e,n.right);"VariableDeclaration"===n.left.type&&ee(e,n.left);const o=t("VariableDeclaration"===n.left.type?n.left.declarations[0].id:n.left);let c=null;if(null!=e.localScope&&void 0!==e.localScope[o]&&(c=e.localScope[o]),null===c&&void 0!==e.globalScope[o]){const t=e.globalScope[o].value;c=e.globalScope[o]={value:t}}if(null===c)throw new s(e,"InvalidIdentifier",n);if(V(r)||T(r)){const t=r.length;for(let o=0;o<t;o++){if(o>=r.length)throw new s(e,"OutOfBounds",n);c.value=r[o];const t=ee(e,n.body);if(t===y)break;if(t instanceof w)return t}return S}if(F(r)){for(let t=0;t<r.length();t++){c.value=r.get(t);const o=ee(e,n.body);if(o===y)break;if(o instanceof w)return o}return S}if(r instanceof a||R(r)){for(const t of r.keys()){const o=r.field(t);c.value=a.containerEntry(t,o);const i=ee(e,n.body);if(i===y)break;if(i instanceof w)return i}return S}if(I(r)){for(const t of i(r)){const o=l(r,t,e,n,1);c.value=a.containerEntry(t,o);const i=ee(e,n.body);if(i===y)break;if(i instanceof w)return i}return S}return S}function oe(e,t){null!==t.init&&("VariableDeclaration"===t.init.type?ee(e,t.init):$(e,t.init));const n={testResult:!0,lastAction:S};do{le(e,t,n)}while(!0===n.testResult);return n.lastAction instanceof w?n.lastAction:S}function ie(e,t){const n={testResult:!0,lastAction:S};if(n.testResult=$(e,t.test),!1===n.testResult)return S;if(!0!==n.testResult)throw new s(e,"BooleanConditionRequired",t);for(;!0===n.testResult&&(n.lastAction=ee(e,t.body),n.lastAction!==y)&&!(n.lastAction instanceof w);)if(n.testResult=$(e,t.test),!0!==n.testResult&&!1!==n.testResult)throw new s(e,"BooleanConditionRequired",t);return n.lastAction instanceof w?n.lastAction:S}function le(e,t,n){if(null!==t.test){if(n.testResult=$(e,t.test),!1===n.testResult)return;if(!0!==n.testResult)throw new s(e,"BooleanConditionRequired",t)}n.lastAction=ee(e,t.body),n.lastAction!==y?n.lastAction instanceof w?n.testResult=!1:null!==t.update&&$(e,t.update):n.testResult=!1}function ae(e,n){if("CallExpression"===n.argument.type)throw new s(e,"NeverReach",n);let r;if("MemberExpression"===n.argument.type){const t=$(e,n.argument.object);let o;if(!0===n.argument.computed)o=$(e,n.argument.property);else{if("Identifier"!==n.argument.property.type)throw new s(e,"Unrecognized",n);o=n.argument.property.name}if(V(t)){if(!_(o))throw new s(e,"ArrayAccessMustBeNumber",n);if(o<0&&(o=t.length+o),o<0||o>=t.length)throw new s(e,"OutOfBounds",n);r=A(t[o]),t[o]="++"===n.operator?r+1:r-1}else if(t instanceof a){if(!1===T(o))throw new s(e,"KeyAccessorMustBeString",n);if(!0!==t.hasField(o))throw new s(e,"FieldNotFound",n);r=A(t.field(o)),t.setField(o,"++"===n.operator?r+1:r-1)}else if(N(t)){if(!1===T(o))throw new s(e,"KeyAccessorMustBeString",n);if(!0!==t.hasField(o))throw new s(e,"FieldNotFound",n);r=A(t.field(o)),t.setField(o,"++"===n.operator?r+1:r-1)}else{if(F(t))throw new s(e,"Immutable",n);if(!(t instanceof J))throw new s(e,"InvalidParameter",n);if(!1===T(o))throw new s(e,"ModuleAccessorMustBeString",n);if(!0!==t.hasGlobal(o))throw new s(e,"ModuleExportNotFound",n);r=A(t.global(o)),t.setGlobal(o,"++"===n.operator?r+1:r-1)}return!1===n.prefix?r:"++"===n.operator?r+1:r-1}const o=t(n.argument);if(null!=e.localScope&&void 0!==e.localScope[o])return r=A(e.localScope[o].value),e.localScope[o]={value:"++"===n.operator?r+1:r-1},!1===n.prefix?r:"++"===n.operator?r+1:r-1;if(void 0!==e.globalScope[o])return r=A(e.globalScope[o].value),e.globalScope[o]={value:"++"===n.operator?r+1:r-1},!1===n.prefix?r:"++"===n.operator?r+1:r-1;throw new s(e,"InvalidIdentifier",n)}function se(e,t,n,r,o){switch(t){case"=":return e===S?null:e;case"/=":return A(n)/A(e);case"*=":return A(n)*A(e);case"-=":return A(n)-A(e);case"+=":return T(n)||T(e)?O(n)+O(e):A(n)+A(e);case"%=":return A(n)%A(e);default:throw new s(o,"UnsupportedOperator",r)}}function ce(e,n){if("MemberExpression"===n.left.type){const t=$(e,n.left.object);let r;if(!0===n.left.computed)r=$(e,n.left.property);else{if("Identifier"!==n.left.property.type)throw new s(e,"InvalidIdentifier",n);r=n.left.property.name}const o=$(e,n.right);if(V(t)){if(!_(r))throw new s(e,"ArrayAccessMustBeNumber",n);if(r<0&&(r=t.length+r),r<0||r>t.length)throw new s(e,"OutOfBounds",n);if(r===t.length){if("="!==n.operator)throw new s(e,"OutOfBounds",n);t[r]=se(o,n.operator,t[r],n,e)}else t[r]=se(o,n.operator,t[r],n,e)}else if(t instanceof a){if(!1===T(r))throw new s(e,"KeyAccessorMustBeString",n);if(!0===t.hasField(r))t.setField(r,se(o,n.operator,t.field(r),n,e));else{if("="!==n.operator)throw new s(e,"FieldNotFound",n,{key:r});t.setField(r,se(o,n.operator,null,n,e))}}else if(N(t)){if(!1===T(r))throw new s(e,"KeyAccessorMustBeString",n);if(!0===t.hasField(r))t.setField(r,se(o,n.operator,t.field(r),n,e));else{if("="!==n.operator)throw new s(e,"FieldNotFound",n,{key:r});t.setField(r,se(o,n.operator,null,n,e))}}else{if(F(t))throw new s(e,"Immutable",n);if(!(t instanceof J))throw new s(e,"InvalidIdentifier",n);if(!1===T(r))throw new s(e,"ModuleAccessorMustBeString",n);if(!0!==t.hasGlobal(r))throw new s(e,"ModuleExportNotFound",n);t.setGlobal(r,se(o,n.operator,t.global(r),n,e))}return S}const r=t(n.left),o=$(e,n.right);if(null!=e.localScope&&void 0!==e.localScope[r])return e.localScope[r]={value:se(o,n.operator,e.localScope[r].value,n,e)},S;if(void 0!==e.globalScope[r])return e.globalScope[r]={value:se(o,n.operator,e.globalScope[r].value,n,e)},S;throw new s(e,"InvalidIdentifier",n)}function ue(e,t){const n=$(e,t.expression);return n===S?S:new g(n)}function fe(e,t){const n=$(e,t.test);if(!0===n)return ee(e,t.consequent);if(!1===n)return null!==t.alternate?ee(e,t.alternate):S;throw new s(e,"BooleanConditionRequired",t)}function pe(e,t){let n=S;for(let r=0;r<t.body.length;r++)if(n=ee(e,t.body[r]),n instanceof w||n===y||n===v)return n;return n}function he(e,t){if(null===t.argument)return new w(S);const n=$(e,t.argument);return new w(n)}function de(e,n){const r=t(n.id);return e.globalScope[r]={value:new Y(n,e)},S}function we(e,n){const r=t(n.specifiers[0].local),o=e.libraryResolver.loadLibrary(r);let i;return e.libraryResolver._moduleSingletons?.has(o.uri)?i=e.libraryResolver._moduleSingletons.get(o.uri):(i=new J(o),i.loadModule(e),e.libraryResolver._moduleSingletons?.set(o.uri,i)),e.globalScope[r]={value:i},S}function ge(e,n){if(ee(e,n.declaration),"FunctionDeclaration"===n.declaration.type)e.exports[t(n.declaration.id)]="function";else if("VariableDeclaration"===n.declaration.type)for(const r of n.declaration.declarations)e.exports[t(r.id)]="variable";return S}function me(e,t){for(let n=0;n<t.declarations.length;n++)be(e,t.declarations[n]);return S}function be(e,n){let r=null===n.init?null:$(e,n.init);if(r===S&&(r=null),"Identifier"!==n.id.type)throw new s(e,"InvalidIdentifier",n);const o=t(n.id);null!=e.localScope?e.localScope[o]={value:r}:e.globalScope[o]={value:r}}function ye(e,t){try{const n=$(e,t.object);if(null===n)throw new s(e,"MemberOfNull",t);if(!1===t.computed){if("Identifier"===t.property.type){if(n instanceof a||R(n))return n.field(t.property.name);if(n instanceof G)return l(n,t.property.name,e,t);if(n instanceof J){if(!n.hasGlobal(t.property.name))throw new s(e,"InvalidIdentifier",t);return n.global(t.property.name)}}throw new s(e,"InvalidMemberAccessKey",t)}let r=$(e,t.property);if(n instanceof a||R(n)){if(T(r))return n.field(r);throw new s(e,"InvalidMemberAccessKey",t)}if(n instanceof J){if(T(r))return n.global(r);throw new s(e,"InvalidMemberAccessKey",t)}if(n instanceof G){if(T(r))return l(n,r,e,t);throw new s(e,"InvalidMemberAccessKey",t)}if(V(n)){if(_(r)&&isFinite(r)&&Math.floor(r)===r){if(r<0&&(r=n.length+r),r>=n.length||r<0)throw new s(e,"OutOfBounds",t);return n[r]}throw new s(e,"InvalidMemberAccessKey",t)}if(T(n)){if(_(r)&&isFinite(r)&&Math.floor(r)===r){if(r<0&&(r=n.length+r),r>=n.length||r<0)throw new s(e,"OutOfBounds",t);return n[r]}throw new s(e,"InvalidMemberAccessKey",t)}if(F(n)){if(_(r)&&isFinite(r)&&Math.floor(r)===r){if(r<0&&(r=n.length()+r),r>=n.length()||r<0)throw new s(e,"OutOfBounds",t);return n.get(r)}throw new s(e,"InvalidMemberAccessKey",t)}throw new s(e,"InvalidMemberAccessKey",t)}catch(n){throw n}}function ve(e,t){try{const n=$(e,t.argument);if(P(n)){if("!"===t.operator)return!n;if("-"===t.operator)return-1*A(n);if("+"===t.operator)return 1*A(n);if("~"===t.operator)return~A(n);throw new s(e,"UnsupportUnaryOperator",t)}if("~"===t.operator)return~A(n);if("-"===t.operator)return-1*A(n);if("+"===t.operator)return 1*A(n);throw new s(e,"UnsupportUnaryOperator",t)}catch(n){throw n}}function Se(e,t){try{const n=[];for(let r=0;r<t.elements.length;r++){const o=$(e,t.elements[r]);if(b(o))throw new s(e,"NoFunctionInArray",t);o===S?n.push(null):n.push(o)}return n}catch(n){throw n}}function xe(e,t){try{const n=$(e,t.left),r=$(e,t.right);switch(t.operator){case"|":case"<<":case">>":case">>>":case"^":case"&":return C(A(n),A(r),t.operator);case"==":return M(n,r);case"!=":return!M(n,r);case"<":case">":case"<=":case">=":return j(n,r,t.operator);case"+":return T(n)||T(r)?O(n)+O(r):A(n)+A(r);case"-":return A(n)-A(r);case"*":return A(n)*A(r);case"/":return A(n)/A(r);case"%":return A(n)%A(r);default:throw new s(e,"UnsupportedOperator",t)}}catch(n){throw n}}function Fe(e,t){try{const n=$(e,t.left);if(P(n))switch(t.operator){case"||":{if(!0===n)return n;const r=$(e,t.right);if(P(r))return r;throw new s(e,"LogicExpressionOrAnd",t)}case"&&":{if(!1===n)return n;const r=$(e,t.right);if(P(r))return r;throw new s(e,"LogicExpressionOrAnd",t)}default:throw new s(e,"LogicExpressionOrAnd",t)}throw new s(e,"LogicalExpressionOnlyBoolean",t)}catch(n){throw n}}function Re(e,t,n){if(b(e))throw new s(t,"NoFunctionInTemplateLiteral",n);return e}function Ie(e,t){let n="",r=0;for(const o of t.quasis)if(n+=o.value?o.value.cooked:"",!1===o.tail){n+=t.expressions[r]?O(Re($(e,t.expressions[r]),e,t)):"",r++}return n}function Me(e,n){try{const r=t(n);if(null!=e.localScope&&void 0!==e.localScope[r])return e.localScope[r].value;if(void 0!==e.globalScope[r])return e.globalScope[r].value;throw new s(e,"InvalidIdentifier",n)}catch(r){throw r}}function Ae(e,n){try{if("MemberExpression"===n.callee.type){const t=$(e,n.callee.object);if(!(t instanceof J))throw new s(e,"FunctionNotFound",n);const r=!1===n.callee.computed?n.callee.property.name:$(e,n.callee.property);if(!t.hasGlobal(r))throw new s(e,"FunctionNotFound",n);const o=t.global(r);if(!b(o))throw new s(e,"CallNonFunction",n);return o.call(e,n)}if("Identifier"!==n.callee.type)throw new s(e,"FunctionNotFound",n);const r=t(n.callee);if(null!=e.localScope&&void 0!==e.localScope[r]){const t=e.localScope[r];if(b(t.value))return t.value.call(e,n);throw new s(e,"CallNonFunction",n)}if(void 0!==e.globalScope[r]){const t=e.globalScope[r];if(b(t.value))return t.value.call(e,n);throw new s(e,"CallNonFunction",n)}throw new s(e,"FunctionNotFound",n)}catch(r){throw r}}function Oe(e,t){try{if(!0===t.preparsed)throw new s(e,"NeverReach",t);const n=t.arguments;x(null===n?[]:n,3,3,e,t);const r=$(e,n[0]);if(!1===P(r))throw new s(e,"BooleanConditionRequired",t);return $(e,!0===r?n[1]:n[2])}catch(n){throw n}}function je(e,t){try{if(!0===t.preparsed)throw new s(e,"NeverReach",t);const n=t.arguments;x(null===n?[]:n,2,3,e,t);const r=$(e,n[0]);if(3===n.length){const t=$(e,n[1]),i=o(r,t);return null!=i&&""!==i?i:$(e,n[2])}return null===r||""===r||void 0===r?$(e,n[1]):r}catch(n){throw n}}function Ce(e,t){try{if(!0===t.preparsed)throw new s(e,"NeverReach",t);const n=t.arguments;if(n.length<2)throw new s(e,"WrongNumberOfParameters",t);if(2===n.length)return $(e,n[1]);{if((n.length-1)%2==0)throw new s(e,"WrongNumberOfParameters",t);const r=$(e,n[0]);return Ne(e,t,1,r)}}catch(n){throw n}}function Ne(e,t,n,r){try{const o=t.arguments,i=$(e,o[n]);if(M(i,r))return $(e,o[n+1]);{const i=o.length-n;return 1===i?$(e,o[n]):2===i?null:3===i?$(e,o[n+2]):Ne(e,t,n+2,r)}}catch(o){throw o}}function Be(e,t){try{if(!0===t.preparsed)throw new s(e,"NeverReach",t);const n=t.arguments;if(n.length<3)throw new s(e,"WrongNumberOfParameters",t);if(n.length%2==0)throw new s(e,"WrongNumberOfParameters",t);const r=$(e,n[0]);if(!1===P(r))throw new s(e,"BooleanConditionRequired",n[0]);return Ee(e,t,0,r)}catch(n){throw n}}function Ee(e,t,n,r){try{const o=t.arguments;if(!0===r)return $(e,o[n+1]);if(3===o.length-n)return $(e,o[n+2]);{const r=$(e,o[n+2]);if(!1===P(r))throw new s(e,"BooleanConditionRequired",o[n+2]);return Ee(e,t,n+2,r)}}catch(o){throw o}}function ke(){const e=Object.create(null);k(e,X),q(e,X),D(e,X,Me),Z(e,X),U(e,X),L(e,X),K(e,X),e.iif=Oe,e.defaultvalue=je,e.decode=Ce,e.when=Be;const t=function(){this.textformatting={value:a.textFormatting()}};t.prototype=Object.create(null),t.prototype.infinity=Object.freeze({value:Number.POSITIVE_INFINITY}),t.prototype.pi=Object.freeze({value:Math.PI});for(const[n,r]of Object.entries(e))t.prototype[n]=Object.freeze({value:new f(r)});return t}const De=ke();function Ue(e){const t={mode:"sync",compiled:!1,functions:Object.create(null),signatures:[],standardFunction:X,evaluateIdentifier:Me};for(let n=0;n<e.length;n++)e[n].registerFunctions(t);for(const[n,r]of Object.entries(t.functions))De.prototype[n]=Object.freeze({value:new f(r)});for(let n=0;n<t.signatures.length;n++)B(t.signatures[n],"sync")}function Ke(e,t,n){const r=new De;e||(e={}),t||(t={});for(const o in t)r[o]={value:new f(t[o])};for(const o in e)r[o]={value:z(e[o])?u.createFromGraphic(e[o],n):e[o]};return r}function Ze(e){console.log(e)}function Le(t,n){const o=n.spatialReference??W.WebMercator;let i=null;t.usesModules&&(i=new r(new Map,t.loadedModules));const l={spatialReference:o,globalScope:Ke(n.vars,n.customfunctions,n.timeZone),localScope:null,services:n.services,exports:{},libraryResolver:i,console:n.console??Ze,timeZone:n.timeZone??null,lrucache:n.lrucache,interceptor:n.interceptor,abortSignal:e,depthCounter:{depth:1}},a=pe(l,t);if(a instanceof w||a instanceof g){const e=a.value;if(m(e))return null;if(b(e))throw new s(l,"IllegalResult",null);return e}if(m(a))return null;if(a===y)throw new s(l,"IllegalResult",null);if(a===v)throw new s(l,"IllegalResult",null);throw new s(l,"NeverReach",null)}Ue([E]);export{Le as executeScript,Ue as extend};
|
|
5
|
+
import{neverAbortedSignal as e,toSymbolId as t}from"./arcadeEnvironment.js";import{ArcadeModule as n}from"./ArcadeModule.js";import{ArcadeModuleLoader as r}from"./ArcadeModuleLoader.js";import{getNestedOptionalValue as o,getGeometryKeys as i,geometryMember as l}from"./containerUtils.js";import a from"./Dictionary.js";import{ArcadeExecutionError as s,ensureArcadeExecutionError as c}from"./executionError.js";import u from"./Feature.js";import{NativeFunction as f,ArcadeFunction as p,ScopeMarshalledFunction as h,wrapModuleScopedResponse as d}from"./FunctionWrapper.js";import{R as w,I as g,A as m,i as b,q as y,r as v,v as S,B as x,j as F,s as R,h as I,y as M,u as A,w as O,x as j,z as C,k}from"../chunks/languageUtils.js";import{addFunctionDeclaration as N}from"./treeAnalysis.js";import{A as B}from"../chunks/array.js";import{registerFunctions as E}from"./functions/date.js";import{registerFunctions as D}from"./functions/feature.js";import{registerFunctions as U}from"./functions/geometry.js";import{registerFunctions as K}from"./functions/geomsync.js";import{registerFunctions as Z}from"./functions/maths.js";import{registerFunctions as L}from"./functions/stats.js";import{registerFunctions as q}from"./functions/string.js";import{registerFunctions as G}from"./functions/track.js";import"../core/has.js";import W from"../geometry/Geometry.js";import z from"../geometry/SpatialReference.js";import{isGraphic as P,isBoolean as V,isArray as T,isString as _,isNumber as Y}from"../support/guards.js";class H extends p{constructor(e,t){super(),this.definition=e,this.context=t}createFunction(e){return(...t)=>{const n={spatialReference:this.context.spatialReference,console:this.context.console,services:this.context.services,timeZone:this.context.timeZone??null,lrucache:this.context.lrucache,exports:this.context.exports,libraryResolver:this.context.libraryResolver,interceptor:this.context.interceptor,abortSignal:this.context.abortSignal,localScope:{},depthCounter:{depth:e.depthCounter.depth+1},globalScope:this.context.globalScope,track:this.context.track};if(n.depthCounter.depth>64)throw new s(e,"MaximumCallDepth",null);return J(this.definition,n,t,null)}}call(e,t){return $(e,t,(n,r,o)=>{const i={spatialReference:e.spatialReference,services:e.services,globalScope:e.globalScope,depthCounter:{depth:e.depthCounter.depth+1},libraryResolver:e.libraryResolver,exports:e.exports,timeZone:e.timeZone??null,console:e.console,lrucache:e.lrucache,interceptor:e.interceptor,abortSignal:e.abortSignal,localScope:{},track:e.track};if(i.depthCounter.depth>64)throw new s(e,"MaximumCallDepth",t);return J(this.definition,i,o,t)})}marshalledCall(e,t,n,r){return r(e,t,(o,i,l)=>{const a={spatialReference:e.spatialReference,globalScope:n.globalScope,services:e.services,depthCounter:{depth:e.depthCounter.depth+1},libraryResolver:e.libraryResolver,exports:e.exports,console:e.console,timeZone:e.timeZone??null,lrucache:e.lrucache,interceptor:e.interceptor,abortSignal:e.abortSignal,localScope:{},track:e.track};return l=l.map(t=>!b(t)||t instanceof h?t:d(t,e,r)),d(J(this.definition,a,l,t),n,r)})}}function J(e,n,r,o){try{const i=e.body;if(r.length!==e.params.length)throw new s(n,"WrongNumberOfParameters",o);if(null!=n.localScope)for(let o=0;o<r.length;o++)n.localScope[t(e.params[o])]={value:r[o]};const l=te(n,i);if(l instanceof w)return l.value;if(l===y)throw new s(n,"UnexpectedToken",o);if(l===v)throw new s(n,"UnexpectedToken",o);return l instanceof g?l.value:l}catch(i){throw i}}class Q extends n{constructor(e){super(),this.source=e}global(e){const n=this.executingContext.globalScope[t(e)];if(b(n.value)&&!(n.value instanceof h)){const r=new h;return r.fn=n.value,r.parameterEvaluator=$,r.context=this.executingContext,this.executingContext.globalScope[t(e)]={value:r},r}return n.value}setGlobal(e,n){if(b(n))throw new s(null,"AssignModuleFunction",null);this.executingContext.globalScope[t(e)]={value:n}}hasGlobal(e){return void 0===this.executingContext.exports[e]&&(e=t(e)),void 0!==this.executingContext.exports[e]}loadModule(t){const n=t.spatialReference??z.WebMercator;this.moduleScope=Ze(null,null,t.timeZone),this.executingContext={spatialReference:n,globalScope:this.moduleScope,localScope:null,libraryResolver:new r(t.libraryResolver._moduleSingletons,this.source.syntax.loadedModules),exports:{},services:t.services,console:t.console??Le,timeZone:t.timeZone??null,lrucache:t.lrucache,interceptor:t.interceptor,abortSignal:e,depthCounter:{depth:1},track:t.track},he(this.executingContext,this.source.syntax)}}function X(e,t){const n=[];for(let r=0;r<t.arguments.length;r++)n.push(ee(e,t.arguments[r]));return n}function $(e,t,n){try{return!0===t.preparsed?n(e,null,t.arguments):n(e,t,X(e,t))}catch(r){throw r}}function ee(e,t){try{switch(t.type){case"AssignmentExpression":return ue(e,t);case"UpdateExpression":return se(e,t);case"TemplateLiteral":return Me(e,t);case"Identifier":return Ae(e,t);case"MemberExpression":return ve(e,t);case"Literal":return t.value;case"CallExpression":return Oe(e,t);case"UnaryExpression":return Se(e,t);case"BinaryExpression":return Fe(e,t);case"LogicalExpression":return Re(e,t);case"ArrayExpression":return xe(e,t);case"ObjectExpression":return ne(e,t);default:throw new s(e,"Unrecognized",t)}}catch(n){throw c(e,t,n)}}function te(e,t){switch(t.type){case"EmptyStatement":return S;case"VariableDeclaration":return be(e,t);case"ImportDeclaration":return ge(e,t);case"ExportNamedDeclaration":return me(e,t);case"BlockStatement":return he(e,t);case"FunctionDeclaration":return we(e,t);case"ReturnStatement":return de(e,t);case"IfStatement":return pe(e,t);case"ExpressionStatement":return fe(e,t);case"BreakStatement":return y;case"ContinueStatement":return v;case"ForStatement":return ie(e,t);case"ForInStatement":return re(e,t);case"ForOfStatement":return oe(e,t);case"WhileStatement":return le(e,t);default:throw new s(e,"Unrecognized",t)}}function ne(e,t){const n=Object.create(null),r=new Map;for(let i=0;i<t.properties.length;i++){const o=t.properties[i],l="Identifier"===o.key.type?o.key.name:ee(e,o.key),a=ee(e,o.value);if(b(a))throw new s(e,"NoFunctionInDictionary",t);if(!1===_(l))throw new s(e,"KeyMustBeString",t);let c=l.toString();const u=c.toLowerCase();r.has(u)?c=r.get(u):r.set(u,c),n[c]=a===S?null:a}const o=new a(n);return o.immutable=!1,o}function re(e,n){const r=ee(e,n.right);"VariableDeclaration"===n.left.type&&be(e,n.left);const o=t("VariableDeclaration"===n.left.type?n.left.declarations[0].id:n.left);let l=null;if(null!=e.localScope&&void 0!==e.localScope[o]&&(l=e.localScope[o]),null===l&&void 0!==e.globalScope[o]){const t=e.globalScope[o].value;l=e.globalScope[o]={value:t}}if(null===l)throw new s(e,"InvalidIdentifier",n);if(T(r)||_(r)){const t=r.length;for(let r=0;r<t;r++){l.value=r;const t=te(e,n.body);if(t===y)break;if(t instanceof w)return t}return S}if(F(r)){for(let t=0;t<r.length();t++){l.value=t;const r=te(e,n.body);if(r===y)break;if(r instanceof w)return r}return S}if(r instanceof a||R(r)){const t=r.keys();for(let r=0;r<t.length;r++){l.value=t[r];const o=te(e,n.body);if(o===y)break;if(o instanceof w)return o}return S}if(I(r)){for(const t of i(r)){l.value=t;const r=te(e,n.body);if(r===y)break;if(r instanceof w)return r}return S}return S}function oe(e,n){const r=ee(e,n.right);"VariableDeclaration"===n.left.type&&te(e,n.left);const o=t("VariableDeclaration"===n.left.type?n.left.declarations[0].id:n.left);let c=null;if(null!=e.localScope&&void 0!==e.localScope[o]&&(c=e.localScope[o]),null===c&&void 0!==e.globalScope[o]){const t=e.globalScope[o].value;c=e.globalScope[o]={value:t}}if(null===c)throw new s(e,"InvalidIdentifier",n);if(T(r)||_(r)){const t=r.length;for(let o=0;o<t;o++){if(o>=r.length)throw new s(e,"OutOfBounds",n);c.value=r[o];const t=te(e,n.body);if(t===y)break;if(t instanceof w)return t}return S}if(F(r)){for(let t=0;t<r.length();t++){c.value=r.get(t);const o=te(e,n.body);if(o===y)break;if(o instanceof w)return o}return S}if(r instanceof a||R(r)){for(const t of r.keys()){const o=r.field(t);c.value=a.containerEntry(t,o);const i=te(e,n.body);if(i===y)break;if(i instanceof w)return i}return S}if(I(r)){for(const t of i(r)){const o=l(r,t,e,n,1);c.value=a.containerEntry(t,o);const i=te(e,n.body);if(i===y)break;if(i instanceof w)return i}return S}return S}function ie(e,t){null!==t.init&&("VariableDeclaration"===t.init.type?te(e,t.init):ee(e,t.init));const n={testResult:!0,lastAction:S};do{ae(e,t,n)}while(!0===n.testResult);return n.lastAction instanceof w?n.lastAction:S}function le(e,t){const n={testResult:!0,lastAction:S};if(n.testResult=ee(e,t.test),!1===n.testResult)return S;if(!0!==n.testResult)throw new s(e,"BooleanConditionRequired",t);for(;!0===n.testResult&&(n.lastAction=te(e,t.body),n.lastAction!==y)&&!(n.lastAction instanceof w);)if(n.testResult=ee(e,t.test),!0!==n.testResult&&!1!==n.testResult)throw new s(e,"BooleanConditionRequired",t);return n.lastAction instanceof w?n.lastAction:S}function ae(e,t,n){if(null!==t.test){if(n.testResult=ee(e,t.test),!1===n.testResult)return;if(!0!==n.testResult)throw new s(e,"BooleanConditionRequired",t)}n.lastAction=te(e,t.body),n.lastAction!==y?n.lastAction instanceof w?n.testResult=!1:null!==t.update&&ee(e,t.update):n.testResult=!1}function se(e,n){if("CallExpression"===n.argument.type)throw new s(e,"NeverReach",n);let r;if("MemberExpression"===n.argument.type){const t=ee(e,n.argument.object);let o;if(!0===n.argument.computed)o=ee(e,n.argument.property);else{if("Identifier"!==n.argument.property.type)throw new s(e,"Unrecognized",n);o=n.argument.property.name}if(T(t)){if(!Y(o))throw new s(e,"ArrayAccessMustBeNumber",n);if(o<0&&(o=t.length+o),o<0||o>=t.length)throw new s(e,"OutOfBounds",n);r=A(t[o]),t[o]="++"===n.operator?r+1:r-1}else if(t instanceof a){if(!1===_(o))throw new s(e,"KeyAccessorMustBeString",n);if(!0!==t.hasField(o))throw new s(e,"FieldNotFound",n);r=A(t.field(o)),t.setField(o,"++"===n.operator?r+1:r-1)}else if(k(t)){if(!1===_(o))throw new s(e,"KeyAccessorMustBeString",n);if(!0!==t.hasField(o))throw new s(e,"FieldNotFound",n);r=A(t.field(o)),t.setField(o,"++"===n.operator?r+1:r-1)}else{if(F(t))throw new s(e,"Immutable",n);if(!(t instanceof Q))throw new s(e,"InvalidParameter",n);if(!1===_(o))throw new s(e,"ModuleAccessorMustBeString",n);if(!0!==t.hasGlobal(o))throw new s(e,"ModuleExportNotFound",n);r=A(t.global(o)),t.setGlobal(o,"++"===n.operator?r+1:r-1)}return!1===n.prefix?r:"++"===n.operator?r+1:r-1}const o=t(n.argument);if(null!=e.localScope&&void 0!==e.localScope[o])return r=A(e.localScope[o].value),e.localScope[o]={value:"++"===n.operator?r+1:r-1},!1===n.prefix?r:"++"===n.operator?r+1:r-1;if(void 0!==e.globalScope[o])return r=A(e.globalScope[o].value),e.globalScope[o]={value:"++"===n.operator?r+1:r-1},!1===n.prefix?r:"++"===n.operator?r+1:r-1;throw new s(e,"InvalidIdentifier",n)}function ce(e,t,n,r,o){switch(t){case"=":return e===S?null:e;case"/=":return A(n)/A(e);case"*=":return A(n)*A(e);case"-=":return A(n)-A(e);case"+=":return _(n)||_(e)?O(n)+O(e):A(n)+A(e);case"%=":return A(n)%A(e);default:throw new s(o,"UnsupportedOperator",r)}}function ue(e,n){if("MemberExpression"===n.left.type){const t=ee(e,n.left.object);let r;if(!0===n.left.computed)r=ee(e,n.left.property);else{if("Identifier"!==n.left.property.type)throw new s(e,"InvalidIdentifier",n);r=n.left.property.name}const o=ee(e,n.right);if(T(t)){if(!Y(r))throw new s(e,"ArrayAccessMustBeNumber",n);if(r<0&&(r=t.length+r),r<0||r>t.length)throw new s(e,"OutOfBounds",n);if(r===t.length){if("="!==n.operator)throw new s(e,"OutOfBounds",n);t[r]=ce(o,n.operator,t[r],n,e)}else t[r]=ce(o,n.operator,t[r],n,e)}else if(t instanceof a){if(!1===_(r))throw new s(e,"KeyAccessorMustBeString",n);if(!0===t.hasField(r))t.setField(r,ce(o,n.operator,t.field(r),n,e));else{if("="!==n.operator)throw new s(e,"FieldNotFound",n,{key:r});t.setField(r,ce(o,n.operator,null,n,e))}}else if(k(t)){if(!1===_(r))throw new s(e,"KeyAccessorMustBeString",n);if(!0===t.hasField(r))t.setField(r,ce(o,n.operator,t.field(r),n,e));else{if("="!==n.operator)throw new s(e,"FieldNotFound",n,{key:r});t.setField(r,ce(o,n.operator,null,n,e))}}else{if(F(t))throw new s(e,"Immutable",n);if(!(t instanceof Q))throw new s(e,"InvalidIdentifier",n);if(!1===_(r))throw new s(e,"ModuleAccessorMustBeString",n);if(!0!==t.hasGlobal(r))throw new s(e,"ModuleExportNotFound",n);t.setGlobal(r,ce(o,n.operator,t.global(r),n,e))}return S}const r=t(n.left),o=ee(e,n.right);if(null!=e.localScope&&void 0!==e.localScope[r])return e.localScope[r]={value:ce(o,n.operator,e.localScope[r].value,n,e)},S;if(void 0!==e.globalScope[r])return e.globalScope[r]={value:ce(o,n.operator,e.globalScope[r].value,n,e)},S;throw new s(e,"InvalidIdentifier",n)}function fe(e,t){const n=ee(e,t.expression);return n===S?S:new g(n)}function pe(e,t){const n=ee(e,t.test);if(!0===n)return te(e,t.consequent);if(!1===n)return null!==t.alternate?te(e,t.alternate):S;throw new s(e,"BooleanConditionRequired",t)}function he(e,t){let n=S;for(let r=0;r<t.body.length;r++)if(n=te(e,t.body[r]),n instanceof w||n===y||n===v)return n;return n}function de(e,t){if(null===t.argument)return new w(S);const n=ee(e,t.argument);return new w(n)}function we(e,n){const r=t(n.id);return e.globalScope[r]={value:new H(n,e)},S}function ge(e,n){const r=t(n.specifiers[0].local),o=e.libraryResolver.loadLibrary(r);let i;return e.libraryResolver._moduleSingletons?.has(o.uri)?i=e.libraryResolver._moduleSingletons.get(o.uri):(i=new Q(o),i.loadModule(e),e.libraryResolver._moduleSingletons?.set(o.uri,i)),e.globalScope[r]={value:i},S}function me(e,n){if(te(e,n.declaration),"FunctionDeclaration"===n.declaration.type)e.exports[t(n.declaration.id)]="function";else if("VariableDeclaration"===n.declaration.type)for(const r of n.declaration.declarations)e.exports[t(r.id)]="variable";return S}function be(e,t){for(let n=0;n<t.declarations.length;n++)ye(e,t.declarations[n]);return S}function ye(e,n){let r=null===n.init?null:ee(e,n.init);if(r===S&&(r=null),"Identifier"!==n.id.type)throw new s(e,"InvalidIdentifier",n);const o=t(n.id);null!=e.localScope?e.localScope[o]={value:r}:e.globalScope[o]={value:r}}function ve(e,t){try{const n=ee(e,t.object);if(null===n)throw new s(e,"MemberOfNull",t);if(!1===t.computed){if("Identifier"===t.property.type){if(n instanceof a||R(n))return n.field(t.property.name);if(n instanceof W)return l(n,t.property.name,e,t);if(n instanceof Q){if(!n.hasGlobal(t.property.name))throw new s(e,"InvalidIdentifier",t);return n.global(t.property.name)}}throw new s(e,"InvalidMemberAccessKey",t)}let r=ee(e,t.property);if(n instanceof a||R(n)){if(_(r))return n.field(r);throw new s(e,"InvalidMemberAccessKey",t)}if(n instanceof Q){if(_(r))return n.global(r);throw new s(e,"InvalidMemberAccessKey",t)}if(n instanceof W){if(_(r))return l(n,r,e,t);throw new s(e,"InvalidMemberAccessKey",t)}if(T(n)){if(Y(r)&&isFinite(r)&&Math.floor(r)===r){if(r<0&&(r=n.length+r),r>=n.length||r<0)throw new s(e,"OutOfBounds",t);return n[r]}throw new s(e,"InvalidMemberAccessKey",t)}if(_(n)){if(Y(r)&&isFinite(r)&&Math.floor(r)===r){if(r<0&&(r=n.length+r),r>=n.length||r<0)throw new s(e,"OutOfBounds",t);return n[r]}throw new s(e,"InvalidMemberAccessKey",t)}if(F(n)){if(Y(r)&&isFinite(r)&&Math.floor(r)===r){if(r<0&&(r=n.length()+r),r>=n.length()||r<0)throw new s(e,"OutOfBounds",t);return n.get(r)}throw new s(e,"InvalidMemberAccessKey",t)}throw new s(e,"InvalidMemberAccessKey",t)}catch(n){throw n}}function Se(e,t){try{const n=ee(e,t.argument);if(V(n)){if("!"===t.operator)return!n;if("-"===t.operator)return-1*A(n);if("+"===t.operator)return 1*A(n);if("~"===t.operator)return~A(n);throw new s(e,"UnsupportUnaryOperator",t)}if("~"===t.operator)return~A(n);if("-"===t.operator)return-1*A(n);if("+"===t.operator)return 1*A(n);throw new s(e,"UnsupportUnaryOperator",t)}catch(n){throw n}}function xe(e,t){try{const n=[];for(let r=0;r<t.elements.length;r++){const o=ee(e,t.elements[r]);if(b(o))throw new s(e,"NoFunctionInArray",t);o===S?n.push(null):n.push(o)}return n}catch(n){throw n}}function Fe(e,t){try{const n=ee(e,t.left),r=ee(e,t.right);switch(t.operator){case"|":case"<<":case">>":case">>>":case"^":case"&":return C(A(n),A(r),t.operator);case"==":return M(n,r);case"!=":return!M(n,r);case"<":case">":case"<=":case">=":return j(n,r,t.operator);case"+":return _(n)||_(r)?O(n)+O(r):A(n)+A(r);case"-":return A(n)-A(r);case"*":return A(n)*A(r);case"/":return A(n)/A(r);case"%":return A(n)%A(r);default:throw new s(e,"UnsupportedOperator",t)}}catch(n){throw n}}function Re(e,t){try{const n=ee(e,t.left);if(V(n))switch(t.operator){case"||":{if(!0===n)return n;const r=ee(e,t.right);if(V(r))return r;throw new s(e,"LogicExpressionOrAnd",t)}case"&&":{if(!1===n)return n;const r=ee(e,t.right);if(V(r))return r;throw new s(e,"LogicExpressionOrAnd",t)}default:throw new s(e,"LogicExpressionOrAnd",t)}throw new s(e,"LogicalExpressionOnlyBoolean",t)}catch(n){throw n}}function Ie(e,t,n){if(b(e))throw new s(t,"NoFunctionInTemplateLiteral",n);return e}function Me(e,t){let n="",r=0;for(const o of t.quasis)if(n+=o.value?o.value.cooked:"",!1===o.tail){n+=t.expressions[r]?O(Ie(ee(e,t.expressions[r]),e,t)):"",r++}return n}function Ae(e,n){try{const r=t(n);if(null!=e.localScope&&void 0!==e.localScope[r])return e.localScope[r].value;if(void 0!==e.globalScope[r])return e.globalScope[r].value;throw new s(e,"InvalidIdentifier",n)}catch(r){throw r}}function Oe(e,n){try{if("MemberExpression"===n.callee.type){const t=ee(e,n.callee.object);if(!(t instanceof Q))throw new s(e,"FunctionNotFound",n);const r=!1===n.callee.computed?n.callee.property.name:ee(e,n.callee.property);if(!t.hasGlobal(r))throw new s(e,"FunctionNotFound",n);const o=t.global(r);if(!b(o))throw new s(e,"CallNonFunction",n);return o.call(e,n)}if("Identifier"!==n.callee.type)throw new s(e,"FunctionNotFound",n);const r=t(n.callee);if(null!=e.localScope&&void 0!==e.localScope[r]){const t=e.localScope[r];if(b(t.value))return t.value.call(e,n);throw new s(e,"CallNonFunction",n)}if(void 0!==e.globalScope[r]){const t=e.globalScope[r];if(b(t.value))return t.value.call(e,n);throw new s(e,"CallNonFunction",n)}throw new s(e,"FunctionNotFound",n)}catch(r){throw r}}function je(e,t){try{if(!0===t.preparsed)throw new s(e,"NeverReach",t);const n=t.arguments;x(null===n?[]:n,3,3,e,t);const r=ee(e,n[0]);if(!1===V(r))throw new s(e,"BooleanConditionRequired",t);return ee(e,!0===r?n[1]:n[2])}catch(n){throw n}}function Ce(e,t){try{if(!0===t.preparsed)throw new s(e,"NeverReach",t);const n=t.arguments;x(null===n?[]:n,2,3,e,t);const r=ee(e,n[0]);if(3===n.length){const t=ee(e,n[1]),i=o(r,t);return null!=i&&""!==i?i:ee(e,n[2])}return null===r||""===r||void 0===r?ee(e,n[1]):r}catch(n){throw n}}function ke(e,t){try{if(!0===t.preparsed)throw new s(e,"NeverReach",t);const n=t.arguments;if(n.length<2)throw new s(e,"WrongNumberOfParameters",t);if(2===n.length)return ee(e,n[1]);{if((n.length-1)%2==0)throw new s(e,"WrongNumberOfParameters",t);const r=ee(e,n[0]);return Ne(e,t,1,r)}}catch(n){throw n}}function Ne(e,t,n,r){try{const o=t.arguments,i=ee(e,o[n]);if(M(i,r))return ee(e,o[n+1]);{const i=o.length-n;return 1===i?ee(e,o[n]):2===i?null:3===i?ee(e,o[n+2]):Ne(e,t,n+2,r)}}catch(o){throw o}}function Be(e,t){try{if(!0===t.preparsed)throw new s(e,"NeverReach",t);const n=t.arguments;if(n.length<3)throw new s(e,"WrongNumberOfParameters",t);if(n.length%2==0)throw new s(e,"WrongNumberOfParameters",t);const r=ee(e,n[0]);if(!1===V(r))throw new s(e,"BooleanConditionRequired",n[0]);return Ee(e,t,0,r)}catch(n){throw n}}function Ee(e,t,n,r){try{const o=t.arguments;if(!0===r)return ee(e,o[n+1]);if(3===o.length-n)return ee(e,o[n+2]);{const r=ee(e,o[n+2]);if(!1===V(r))throw new s(e,"BooleanConditionRequired",o[n+2]);return Ee(e,t,n+2,r)}}catch(o){throw o}}function De(){const e=Object.create(null);E(e,$),q(e,$),D(e,$,Ae),Z(e,$),U(e,$),L(e,$),K(e,$),G(e,$),e.iif=je,e.defaultvalue=Ce,e.decode=ke,e.when=Be;const t=function(){this.textformatting={value:a.textFormatting()}};t.prototype=Object.create(null),t.prototype.infinity=Object.freeze({value:Number.POSITIVE_INFINITY}),t.prototype.pi=Object.freeze({value:Math.PI});for(const[n,r]of Object.entries(e))t.prototype[n]=Object.freeze({value:new f(r)});return t}const Ue=De();function Ke(e){const t={mode:"sync",compiled:!1,functions:Object.create(null),signatures:[],standardFunction:$,evaluateIdentifier:Ae};for(let n=0;n<e.length;n++)e[n].registerFunctions(t);for(const[n,r]of Object.entries(t.functions))Ue.prototype[n]=Object.freeze({value:new f(r)});for(let n=0;n<t.signatures.length;n++)N(t.signatures[n],"sync")}function Ze(e,t,n){const r=new Ue;e||(e={}),t||(t={});for(const o in t)r[o]={value:new f(t[o])};for(const o in e)r[o]={value:P(e[o])?u.createFromGraphic(e[o],n):e[o]};return r}function Le(e){console.log(e)}function qe(t,n){const o=n.spatialReference??z.WebMercator;let i=null;t.usesModules&&(i=new r(new Map,t.loadedModules));const l={spatialReference:o,globalScope:Ze(n.vars,n.customfunctions,n.timeZone),localScope:null,services:n.services,exports:{},libraryResolver:i,console:n.console??Le,timeZone:n.timeZone??null,lrucache:n.lrucache,interceptor:n.interceptor,abortSignal:e,depthCounter:{depth:1},track:n.track},a=he(l,t);if(a instanceof w||a instanceof g){const e=a.value;if(m(e))return null;if(b(e))throw new s(l,"IllegalResult",null);return e}if(m(a))return null;if(a===y)throw new s(l,"IllegalResult",null);if(a===v)throw new s(l,"IllegalResult",null);throw new s(l,"NeverReach",null)}Ke([B]);export{qe as executeScript,Ke as extend};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.34/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import e from"../Dictionary.js";import{ArcadeExecutionError as n}from"../executionError.js";import
|
|
5
|
+
import{ArcadeDate as e}from"../ArcadeDate.js";import{toSymbolId as r}from"../arcadeEnvironment.js";import t from"../Dictionary.js";import{ArcadeExecutionError as n}from"../executionError.js";import o from"../Feature.js";import{B as i,k as a,Q as u,w as s,K as d,S as m,T as c,v as f,U as l,V as p,e as y}from"../../chunks/languageUtils.js";import{layerFieldEsriConstants as v}from"../featureset/support/shared.js";import{SqlTimeStampOffset as w}from"../../core/sql/SqlTimestampOffset.js";import h from"../../core/sql/WhereClause.js";import{internalTimeReceivedField as b}from"../../layers/support/streamLayerUtils.js";import{isString as T,isNumber as j}from"../../support/guards.js";function I(e){const r=e?.fullSchema();return r?.datesInUnknownTimezone?"unknown":r?.dateFieldsTimeZone||"UTC"}function F(e){const r=e.fullSchema()?.fieldsIndex;return null==r&&e instanceof o?e.fieldsIndex:r}const g={getAttributeSQL(e,r){const t=e.field(r);if(null==t)return t;if(y(t)){const n=t.toDateTime(),o=F(e)?.get(r)?.type;return"esriFieldTypeTimestampOffset"===o||"timestamp-offset"===o?w.fromDateTime(n):n}return t}};function P(o,w,P){o.domain=function(e,r){return w(e,r,(o,m,c)=>{if(i(c,2,3,e,r),a(c[0])){const r=u(c[0],s(c[1]),void 0===c[2]?void 0:c[2]);return r&&r.domain?"coded-value"===r.domain.type||"codedValue"===r.domain.type?t.convertObjectToArcadeDictionary({type:"codedValue",name:r.domain.name,dataType:v[r.field.type],codedValues:r.domain.codedValues.map(e=>({name:e.name,code:e.code}))},d(e)):t.convertObjectToArcadeDictionary({type:"range",name:r.domain.name,dataType:v[r.field.type],min:r.domain.minValue,max:r.domain.maxValue},d(e)):null}throw new n(e,"InvalidParameter",r)})},o.domaincode=function(e,r){return w(e,r,(t,o,u)=>{if(i(u,2,4,e,r),a(u[0]))return m(u[0],s(u[1]),u[2],void 0===u[3]?void 0:u[3]);throw new n(e,"InvalidParameter",r)})},o.domainname=function(e,r){return w(e,r,(t,o,u)=>{if(i(u,2,4,e,r),a(u[0]))return c(u[0],s(u[1]),u[2],void 0===u[3]?void 0:u[3]);throw new n(e,"InvalidParameter",r)})},o.expects=function(e,r){return w(e,r,(t,o,i)=>{if(i.length<1)throw new n(e,"WrongNumberOfParameters",r);return f})},o.featureinfilter=function(e,r){return w(e,r,(e,r,t)=>{i(t,2,2,e,r);const[o,u]=t;if(null==o)return!1;if(""===u||null==u)return!0;if(!a(o)||!T(u))throw new n(e,"InvalidParameter",r);const s=h.create(u,{fieldsIndex:F(o),timeZone:I(o)}),d=s.getVariables();for(const n of d)s.parameters[n]=P(e,{name:n});return s.testFeature(o,g)})},o.gdbversion=function(e,r){return w(e,r,(t,o,u)=>{if(i(u,1,1,e,r),a(u[0]))return u[0].gdbVersion();throw new n(e,"InvalidParameter",r)})},o.schema=function(e,r){return w(e,r,(o,i,u)=>{if(a(u[0])){const r=l(u[0]);return r?t.convertObjectToArcadeDictionary(r,d(e)):null}throw new n(e,"InvalidParameter",r)})},o.subtypecode=function(e,r){return w(e,r,(t,o,u)=>{if(i(u,1,1,e,r),a(u[0])){const e=p(u[0]);if(!e)return null;if(e.subtypeField&&u[0].hasField(e.subtypeField)){const r=u[0].field(e.subtypeField);for(const t of e.subtypes)if(t.code===r)return t.code;return null}return null}throw new n(e,"InvalidParameter",r)})},o.subtypename=function(e,r){return w(e,r,(t,o,u)=>{if(i(u,1,1,e,r),a(u[0])){const e=p(u[0]);if(!e)return"";if(e.subtypeField&&u[0].hasField(e.subtypeField)){const r=u[0].field(e.subtypeField);for(const t of e.subtypes)if(t.code===r)return t.name;return""}return""}throw new n(e,"InvalidParameter",r)})},o.subtypes=function(e,r){return w(e,r,(o,u,s)=>{if(i(s,1,1,e,r),a(s[0])){const r=p(s[0]);return r?t.convertObjectToArcadeDictionary(r,d(e)):null}throw new n(e,"InvalidParameter",r)})},o[r("TimeReceived")]=function(r,t){return w(r,t,(r,t,o)=>{if(i(o,1,1,r,t),a(o[0])){if(o[0].hasField(b)){const t=o[0].field(b);return j(t)?e.epochToArcadeDate(t,r.timeZone??"system"):y(t)?t:null}return null}throw new n(r,"InvalidParameter",t)})}}export{P as registerFunctions};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/*
|
|
2
|
+
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
|
+
See https://js.arcgis.com/4.34/esri/copyright.txt for details.
|
|
4
|
+
*/
|
|
5
|
+
import{ArcadeDate as t}from"../ArcadeDate.js";import{toSymbolId as n}from"../arcadeEnvironment.js";import{ArcadeExecutionError as r}from"../executionError.js";import{B as e,u as o,w as a}from"../../chunks/languageUtils.js";let c;async function s(){null==c&&(c=await import("../../geometry/operators/geodeticDistanceOperator.js"),await c.load())}function i(t){const n=t.track;if(null==n)throw new r(t,"InvalidParameter",null);return n}function u(t,n,r,e){const o=Math.max(0,f(t,n)),a=Math.max(0,f(t,r));return t.observations.slice(o,a).map((t,n)=>e(t,n+o))}function f(t,n){return t.currentObservationIndex+n}function l(t,n){const e=f(t,n);if(e<0||e>=t.observations.length)throw new r(null,"InvalidParameter",null);return e}function d(t,n){const{stats:r}=t.observations[n];if(null!=r.totalDistance)return r.totalDistance;if(0===n)return r.totalDistance=0;let e,o=0;for(e=n-1;e>0;e--){const n=t.observations[e].stats;if(null!=n.totalDistance){o=n.totalDistance;break}}for(let a=e+1;a<=n;a++){const n=t.observations[a];o+=m(t,a),n.stats.totalDistance=o}return o}function m(t,n){const r=t.observations[n],e=r.stats;if(null!=e.distance)return e.distance;if(0===n)return e.distance=0;const o=t.observations[n-1];return e.distance=c.execute(o.feature.geometry(),r.feature.geometry())}function T(t,n){const r=t.observations[n],e=r.stats;if(null!=e.speed)return e.speed;if(0===n)return e.speed=0;const o=t.observations[n-1],a=r.endTime-o.startTime;if(a<=0)return e.speed=0;const c=m(t,n);return e.speed=c/(a/1e3)}function v(t,n){const r=t.observations[n],e=r.stats;if(null!=e.acceleration)return e.acceleration;if(0===n)return e.acceleration=0;const o=t.observations[n-1],a=r.endTime-o.startTime;if(a<=0)return e.acceleration=0;const c=T(t,n),s=T(t,n-1);return e.acceleration=(c-s)/(a/1e3)}function b(r,c){r[n("TrackIndex")]=function(t,n){return c(t,n,(t,n,r)=>(e(r,0,0,t,n),i(t).currentObservationIndex))},r[n("TrackWindow")]=function(t,n){return c(t,n,(t,n,r)=>{e(r,2,2,t,n);const a=o(r[0]),c=o(r[1]);return u(i(t),a,c,t=>t.feature)})},r[n("TrackFieldWindow")]=function(t,n){return c(t,n,(t,n,r)=>{e(r,3,3,t,n);const c=a(r[0]),s=o(r[1]),f=o(r[2]);return u(i(t),s,f,t=>t.feature.field(c))})},r[n("TrackGeometryWindow")]=function(t,n){return c(t,n,(t,n,r)=>{e(r,2,2,t,n);const a=o(r[0]),c=o(r[1]);return u(i(t),a,c,t=>t.feature.geometry())})},r[n("TrackStartTime")]=function(n,r){return c(n,r,(n,r,o)=>(e(o,0,0,n,r),t.epochToArcadeDate(i(n).observations[0].startTime,n.timeZone??"system")))},r[n("TrackCurrentTime")]=function(n,r){return c(n,r,(n,r,o)=>{e(o,0,0,n,r);const a=i(n);return t.epochToArcadeDate(a.observations[a.currentObservationIndex].startTime,n.timeZone??"system")})},r[n("TrackDuration")]=function(t,n){return c(t,n,(t,n,r)=>{e(r,0,0,t,n);const o=i(t);return o.observations[o.currentObservationIndex].startTime-o.observations[0].startTime})},r[n("TrackCurrentDistance")]=function(t,n){return c(t,n,(t,n,r)=>{e(r,0,0,t,n);const o=i(t);return d(o,o.currentObservationIndex)})},r[n("TrackDistanceAt")]=function(t,n){return c(t,n,(t,n,r)=>{e(r,1,1,t,n);const a=o(r[0]),c=i(t);return d(c,l(c,a))})},r[n("TrackDistanceWindow")]=function(t,n){return c(t,n,(t,n,r)=>{e(r,2,2,t,n);const a=o(r[0]),c=o(r[1]),s=i(t);return u(s,a,c,(t,n)=>d(s,n))})},r[n("TrackCurrentSpeed")]=function(t,n){return c(t,n,(t,n,r)=>{e(r,0,0,t,n);const o=i(t);return T(o,o.currentObservationIndex)})},r[n("TrackSpeedAt")]=function(t,n){return c(t,n,(t,n,r)=>{e(r,1,1,t,n);const a=o(r[0]),c=i(t);return T(c,l(c,a))})},r[n("TrackSpeedWindow")]=function(t,n){return c(t,n,(t,n,r)=>{e(r,2,2,t,n);const a=o(r[0]),c=o(r[1]),s=i(t);return u(s,a,c,(t,n)=>T(s,n))})},r[n("TrackCurrentAcceleration")]=function(t,n){return c(t,n,(t,n,r)=>{e(r,0,0,t,n);const o=i(t);return v(o,o.currentObservationIndex)})},r[n("TrackAccelerationAt")]=function(t,n){return c(t,n,(t,n,r)=>{e(r,1,1,t,n);const a=o(r[0]),c=i(t);return v(c,l(c,a))})},r[n("TrackAccelerationWindow")]=function(t,n){return c(t,n,(t,n,r)=>{e(r,2,2,t,n);const a=o(r[0]),c=o(r[1]),s=i(t);return u(s,a,c,(t,n)=>v(s,n))})}}export{c as geodeticDistance,s as loadOperators,b as registerFunctions};
|
package/arcade/treeAnalysis.js
CHANGED
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.34/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{toSymbolId as e}from"./arcadeEnvironment.js";import"../core/has.js";const n={all:{min:2,max:2},time:{min:0,max:4},dateonly:{min:0,max:3},getenvironment:{min:0,max:0},none:{min:2,max:2},any:{min:2,max:2},reduce:{min:2,max:3},map:{min:2,max:2},filter:{min:2,max:2},fromcodepoint:{min:1,max:-1},fromcharcode:{min:1,max:-1},tocodepoint:{min:1,max:2},tocharcode:{min:1,max:2},concatenate:{min:0,max:-1},expects:{min:1,max:-1},getfeatureset:{min:1,max:2},week:{min:1,max:2},fromjson:{min:1,max:1},length3d:{min:1,max:2},tohex:{min:1,max:1},hash:{min:1,max:1},timezone:{min:1,max:1},timezoneoffset:{min:1,max:1},changetimezone:{min:2,max:2},isoweek:{min:1,max:1},isoweekday:{min:1,max:1},hasvalue:{min:2,max:2},isomonth:{min:1,max:1},isoyear:{min:1,max:1},resize:{min:2,max:3},slice:{min:0,max:-1},splice:{min:0,max:-1},push:{min:2,max:2},pop:{min:1,max:1},includes:{min:2,max:2},array:{min:0,max:2},front:{min:1,max:1},back:{min:1,max:1},insert:{min:3,max:3},erase:{min:2,max:2},split:{min:2,max:4},guid:{min:0,max:1},standardizeguid:{min:2,max:2},today:{min:0,max:0},angle:{min:2,max:3},bearing:{min:2,max:3},urlencode:{min:1,max:1},now:{min:0,max:0},timestamp:{min:0,max:0},day:{min:1,max:1},month:{min:1,max:1},year:{min:1,max:1},hour:{min:1,max:1},second:{min:1,max:1},millisecond:{min:1,max:1},minute:{min:1,max:1},weekday:{min:1,max:1},toutc:{min:1,max:1},tolocal:{min:1,max:1},date:{min:0,max:8},datediff:{min:2,max:4},dateadd:{min:2,max:3},trim:{min:1,max:1},text:{min:1,max:2},left:{min:2,max:2},right:{min:2,max:2},mid:{min:2,max:3},upper:{min:1,max:1},proper:{min:1,max:2},lower:{min:1,max:1},find:{min:2,max:3},iif:{min:3,max:3},decode:{min:2,max:-1},when:{min:2,max:-1},defaultvalue:{min:2,max:3},isempty:{min:1,max:1},domaincode:{min:2,max:4},domainname:{min:2,max:4},polygon:{min:1,max:1},point:{min:1,max:1},polyline:{min:1,max:1},extent:{min:1,max:1},multipoint:{min:1,max:1},ringisclockwise:{min:1,max:1},geometry:{min:1,max:1},count:{min:0,max:-1},number:{min:1,max:2},acos:{min:1,max:1},asin:{min:1,max:1},atan:{min:1,max:1},atan2:{min:2,max:2},ceil:{min:1,max:2},floor:{min:1,max:2},round:{min:1,max:2},cos:{min:1,max:1},exp:{min:1,max:1},log:{min:1,max:1},min:{min:0,max:-1},constrain:{min:3,max:3},console:{min:0,max:-1},max:{min:0,max:-1},pow:{min:2,max:2},random:{min:0,max:0},sqrt:{min:1,max:1},sin:{min:1,max:1},tan:{min:1,max:1},abs:{min:1,max:1},isnan:{min:1,max:1},stdev:{min:0,max:-1},average:{min:0,max:-1},mean:{min:0,max:-1},sum:{min:0,max:-1},variance:{min:0,max:-1},distinct:{min:0,max:-1},first:{min:1,max:1},top:{min:2,max:2},boolean:{min:1,max:1},dictionary:{min:0,max:-1},typeof:{min:1,max:1},reverse:{min:1,max:1},replace:{min:3,max:4},sort:{min:1,max:2},feature:{min:1,max:-1},haskey:{min:2,max:2},indexof:{min:2,max:2},disjoint:{min:2,max:2},intersects:{min:2,max:2},touches:{min:2,max:2},crosses:{min:2,max:2},within:{min:2,max:2},contains:{min:2,max:2},overlaps:{min:2,max:2},equals:{min:2,max:2},relate:{min:3,max:3},intersection:{min:2,max:2},union:{min:1,max:2},difference:{min:2,max:2},symmetricdifference:{min:2,max:2},clip:{min:2,max:2},cut:{min:2,max:2},area:{min:1,max:2},areageodetic:{min:1,max:2},length:{min:1,max:2},lengthgeodetic:{min:1,max:2},distancegeodetic:{min:2,max:3},distance:{min:2,max:3},densify:{min:2,max:3},densifygeodetic:{min:2,max:3},generalize:{min:2,max:4},buffer:{min:2,max:3},buffergeodetic:{min:2,max:3},offset:{min:2,max:6},rotate:{min:2,max:3},issimple:{min:1,max:1},simplify:{min:1,max:1},convexhull:{min:1,max:1},centroid:{min:1,max:1},nearestcoordinate:{min:2,max:2},nearestvertex:{min:2,max:2},isselfintersecting:{min:1,max:1},multiparttosinglepart:{min:1,max:1},setgeometry:{min:2,max:2},portal:{min:1,max:1},getuser:{min:0,max:2},subtypes:{min:1,max:1},subtypecode:{min:1,max:1},subtypename:{min:1,max:1},domain:{min:2,max:3},convertdirection:{min:3,max:3},sqltimestamp:{min:1,max:3},schema:{min:1,max:1},measuretocoordinate:{min:2,max:2},distancetocoordinate:{min:2,max:2},pointtocoordinate:{min:2,max:2}},a={functionDefinitions:new Map,constantDefinitions:new Map},t={functionDefinitions:new Map,constantDefinitions:new Map};for(const k of["pi","infinity"])t.constantDefinitions.set(k,{type:"constant"}),a.constantDefinitions.set(k,{type:"constant"});t.constantDefinitions.set("textformatting",{type:"namespace",key:"textformatting",members:[{key:"backwardslash",type:"constant"},{key:"doublequote",type:"constant"},{key:"forwardslash",type:"constant"},{key:"tab",type:"constant"},{key:"singlequote",type:"constant"},{key:"newline",type:"constant"}]}),a.constantDefinitions.set("textformatting",{type:"namespace",key:"textformatting",members:[{key:"backwardslash",type:"constant"},{key:"tab",type:"constant"},{key:"singlequote",type:"constant"},{key:"doublequote",type:"constant"},{key:"forwardslash",type:"constant"},{key:"newline",type:"constant"}]});for(const k in n){const e=n[k];t.functionDefinitions.set(k,{overloads:[{type:"function",parametersInfo:{min:e.min,max:e.max}}]}),a.functionDefinitions.set(k,{overloads:[{type:"function",parametersInfo:{min:e.min,max:e.max}}]})}const i=new Set(["attachments","featureset","featuresetbyassociation","featuresetbyid","featuresetbyname","featuresetbyportalitem","featuresetbyrelationshipname","featuresetbyurl","filterbysubtypecode","getfeatureset","getfeaturesetinfo","getuser","knowledgegraphbyportalitem","querygraph"]),m=new Set(["translatetext"]),s=new Set(["area","areageodetic","buffer","buffergeodetic","centroid","clip","contains","convexhull","crosses","cut","densify","densifygeodetic","difference","disjoint","distance","distancegeodetic","distancetocoordinate","equals","generalize","intersection","intersects","isselfintersecting","issimple","length","length3d","lengthgeodetic","measuretocoordinate","multiparttosinglepart","nearestcoordinate","nearestvertex","offset","overlaps","pointtocoordinate","relate","rotate","simplify","symmetricdifference","touches","union","within"]);function o(e,n){const i="sync"===n?a:t;i.functionDefinitions.has(e.name.toLowerCase())?i.functionDefinitions.get(e.name.toLowerCase())?.overloads.push({type:"function",parametersInfo:{min:e.min,max:e.max}}):i.functionDefinitions.set(e.name.toLowerCase(),{overloads:[{type:"function",parametersInfo:{min:e.min,max:e.max}}]})}function r(e,n){if(e)for(const a of e)c(a,n)}function c(e,n){if(e&&!1!==n(e))switch(e.type){case"ImportDeclaration":r(e.specifiers,n),c(e.source,n);break;case"ExportNamedDeclaration":c(e.declaration,n);break;case"ArrayExpression":r(e.elements,n);break;case"AssignmentExpression":case"BinaryExpression":case"LogicalExpression":c(e.left,n),c(e.right,n);break;case"BlockStatement":case"Program":r(e.body,n);break;case"BreakStatement":case"ContinueStatement":case"EmptyStatement":case"Identifier":case"Literal":break;case"CallExpression":c(e.callee,n),r(e.arguments,n);break;case"ExpressionStatement":c(e.expression,n);break;case"ForInStatement":case"ForOfStatement":c(e.left,n),c(e.right,n),c(e.body,n);break;case"ForStatement":c(e.init,n),c(e.test,n),c(e.update,n),c(e.body,n);break;case"WhileStatement":c(e.test,n),c(e.body,n);break;case"FunctionDeclaration":c(e.id,n),r(e.params,n),c(e.body,n);break;case"IfStatement":c(e.test,n),c(e.consequent,n),c(e.alternate,n);break;case"MemberExpression":c(e.object,n),c(e.property,n);break;case"ObjectExpression":r(e.properties,n);break;case"Property":c(e.key,n),c(e.value,n);break;case"ReturnStatement":case"UnaryExpression":case"UpdateExpression":c(e.argument,n);break;case"VariableDeclaration":r(e.declarations,n);break;case"VariableDeclarator":c(e.id,n),c(e.init,n);break;case"TemplateLiteral":r(e.expressions,n),r(e.quasis,n)}}function x(e){return"Literal"===e?.type&&"string"==typeof e.value}function l(e,n){let a=!1;const t=n.toLowerCase();return c(e,e=>!a&&("Identifier"===e.type&&e.name&&e.name.toLowerCase()===t&&(a=!0),!0)),a}function u(n){const a=[];return c(n,n=>("ImportDeclaration"===n.type&&n.source&&n.source.value&&a.push({libname:e(n.specifiers[0].local),source:n.source.value}),!0)),a}function p(e,n){let a=!1;const t=n.toLowerCase();return c(e,e=>!a&&("CallExpression"!==e.type||"Identifier"!==e.callee.type||!e.callee.name||e.callee.name.toLowerCase()!==t||(a=!0,!1))),a}function f(n){const a=[];return c(n,n=>"MemberExpression"!==n.type||"Identifier"!==n.object.type||(("Identifier"===n.property.type||"Literal"===n.property.type&&"string"==typeof n.property.value)&&a.push({varId:e(n.object),memberId:e(n.property)}),!1)),a}function d(n){const a=[];return c(n,n=>{if("CallExpression"===n.type&&"Identifier"===n.callee.type)switch(e(n.callee)){case"expects":if(n.arguments.length>1){const[t,...i]=n.arguments;if("Identifier"===t?.type){const n=e(t);for(const e of i)x(e)&&a.push({varId:n,memberNamePattern:e.value})}}return!1;case"domainname":case"domaincode":case"domain":case"haskey":case"hasvalue":if(n.arguments.length>=2){const[t,i]=n.arguments;"Identifier"===t?.type&&x(i)&&a.push({varId:e(t),memberNamePattern:i.value})}return!0;case"defaultvalue":if(n.arguments.length>2){const[t,i]=n.arguments;"Identifier"===t?.type&&x(i)&&a.push({varId:e(t),memberNamePattern:i.value})}return!0;default:return!0}return"MemberExpression"!==n.type||"Identifier"!==n.object.type||(n.computed?!!x(n.property)&&(a.push({varId:e(n.object),memberNamePattern:n.property.value}),!1):(a.push({varId:e(n.object),memberNamePattern:n.property.name}),!1))}),a}function y(e,n){const a=[];if(void 0!==n.params&&null!==n.params)for(let t=0;t<n.params.length;t++)a.push("any");return{name:e,return:"any",params:a}}function g(e){const n=[];return c(e,e=>("CallExpression"===e.type&&"Identifier"===e.callee.type&&n.push(e.callee.name.toLowerCase()),!0)),n}function b(e,n=[]){let a=null;if(void 0===e.usesFeatureSet){null===a&&(a=g(e)),e.usesFeatureSet=!1;for(let n=0;n<a.length;n++)i.has(a[n])&&(e.usesFeatureSet=!0,e.isAsync=!0);if(!1===e.usesFeatureSet&&n&&n.length>0)for(const a of n)if(l(e,a)){e.usesFeatureSet=!0,e.isAsync=!0;break}}if(void 0===e.isAsync&&(null===a&&(a=g(e)),a.some(e=>m.has(e))&&(e.isAsync=!0)),void 0===e.usesModules){e.usesModules=!1;u(e).length>0&&(e.usesModules=!0)}if(void 0===e.usesGeometry){e.usesGeometry=!1,null===a&&(a=g(e));for(let n=0;n<a.length;n++)s.has(a[n])&&(e.usesGeometry=!0)}}function h(e){const n=g(e);for(let a=0;a<n.length;a++)if(i.has(n[a]))return!0;return!1}export{o as addFunctionDeclaration,y as extractFunctionDeclaration,d as findExpectedFieldLiterals,g as findFunctionCalls,f as findLiteralMemberAccesses,u as findModuleImports,b as findScriptDependencies,t as fullArcadeApiAsync,a as fullArcadeApiSync,p as referencesFunction,l as referencesMember,h as scriptUsesFeatureSet,c as walk};
|
|
5
|
+
import{toSymbolId as e}from"./arcadeEnvironment.js";import"../core/has.js";const n={all:{min:2,max:2},time:{min:0,max:4},dateonly:{min:0,max:3},getenvironment:{min:0,max:0},none:{min:2,max:2},any:{min:2,max:2},reduce:{min:2,max:3},map:{min:2,max:2},filter:{min:2,max:2},fromcodepoint:{min:1,max:-1},fromcharcode:{min:1,max:-1},tocodepoint:{min:1,max:2},tocharcode:{min:1,max:2},concatenate:{min:0,max:-1},expects:{min:1,max:-1},getfeatureset:{min:1,max:2},week:{min:1,max:2},fromjson:{min:1,max:1},length3d:{min:1,max:2},tohex:{min:1,max:1},hash:{min:1,max:1},timezone:{min:1,max:1},timezoneoffset:{min:1,max:1},changetimezone:{min:2,max:2},isoweek:{min:1,max:1},isoweekday:{min:1,max:1},hasvalue:{min:2,max:2},isomonth:{min:1,max:1},isoyear:{min:1,max:1},resize:{min:2,max:3},slice:{min:0,max:-1},splice:{min:0,max:-1},push:{min:2,max:2},pop:{min:1,max:1},includes:{min:2,max:2},array:{min:0,max:2},front:{min:1,max:1},back:{min:1,max:1},insert:{min:3,max:3},erase:{min:2,max:2},split:{min:2,max:4},guid:{min:0,max:1},standardizeguid:{min:2,max:2},today:{min:0,max:0},angle:{min:2,max:3},bearing:{min:2,max:3},urlencode:{min:1,max:1},now:{min:0,max:0},timestamp:{min:0,max:0},day:{min:1,max:1},month:{min:1,max:1},year:{min:1,max:1},hour:{min:1,max:1},second:{min:1,max:1},millisecond:{min:1,max:1},minute:{min:1,max:1},weekday:{min:1,max:1},toutc:{min:1,max:1},tolocal:{min:1,max:1},date:{min:0,max:8},datediff:{min:2,max:4},dateadd:{min:2,max:3},trim:{min:1,max:1},text:{min:1,max:2},left:{min:2,max:2},right:{min:2,max:2},mid:{min:2,max:3},upper:{min:1,max:1},proper:{min:1,max:2},lower:{min:1,max:1},find:{min:2,max:3},iif:{min:3,max:3},decode:{min:2,max:-1},when:{min:2,max:-1},defaultvalue:{min:2,max:3},isempty:{min:1,max:1},domaincode:{min:2,max:4},domainname:{min:2,max:4},polygon:{min:1,max:1},point:{min:1,max:1},polyline:{min:1,max:1},extent:{min:1,max:1},multipoint:{min:1,max:1},ringisclockwise:{min:1,max:1},geometry:{min:1,max:1},count:{min:0,max:-1},number:{min:1,max:2},acos:{min:1,max:1},asin:{min:1,max:1},atan:{min:1,max:1},atan2:{min:2,max:2},ceil:{min:1,max:2},floor:{min:1,max:2},round:{min:1,max:2},cos:{min:1,max:1},exp:{min:1,max:1},log:{min:1,max:1},min:{min:0,max:-1},constrain:{min:3,max:3},console:{min:0,max:-1},max:{min:0,max:-1},pow:{min:2,max:2},random:{min:0,max:0},sqrt:{min:1,max:1},sin:{min:1,max:1},tan:{min:1,max:1},abs:{min:1,max:1},isnan:{min:1,max:1},stdev:{min:0,max:-1},average:{min:0,max:-1},mean:{min:0,max:-1},sum:{min:0,max:-1},variance:{min:0,max:-1},distinct:{min:0,max:-1},first:{min:1,max:1},top:{min:2,max:2},boolean:{min:1,max:1},dictionary:{min:0,max:-1},typeof:{min:1,max:1},reverse:{min:1,max:1},replace:{min:3,max:4},sort:{min:1,max:2},feature:{min:1,max:-1},haskey:{min:2,max:2},indexof:{min:2,max:2},disjoint:{min:2,max:2},intersects:{min:2,max:2},touches:{min:2,max:2},crosses:{min:2,max:2},within:{min:2,max:2},contains:{min:2,max:2},overlaps:{min:2,max:2},equals:{min:2,max:2},relate:{min:3,max:3},intersection:{min:2,max:2},union:{min:1,max:2},difference:{min:2,max:2},symmetricdifference:{min:2,max:2},clip:{min:2,max:2},cut:{min:2,max:2},area:{min:1,max:2},areageodetic:{min:1,max:2},length:{min:1,max:2},lengthgeodetic:{min:1,max:2},distancegeodetic:{min:2,max:3},distance:{min:2,max:3},densify:{min:2,max:3},densifygeodetic:{min:2,max:3},generalize:{min:2,max:4},buffer:{min:2,max:3},buffergeodetic:{min:2,max:3},offset:{min:2,max:6},rotate:{min:2,max:3},issimple:{min:1,max:1},simplify:{min:1,max:1},convexhull:{min:1,max:1},centroid:{min:1,max:1},nearestcoordinate:{min:2,max:2},nearestvertex:{min:2,max:2},isselfintersecting:{min:1,max:1},multiparttosinglepart:{min:1,max:1},setgeometry:{min:2,max:2},portal:{min:1,max:1},getuser:{min:0,max:2},subtypes:{min:1,max:1},subtypecode:{min:1,max:1},subtypename:{min:1,max:1},domain:{min:2,max:3},convertdirection:{min:3,max:3},sqltimestamp:{min:1,max:3},schema:{min:1,max:1},measuretocoordinate:{min:2,max:2},distancetocoordinate:{min:2,max:2},pointtocoordinate:{min:2,max:2}},a={functionDefinitions:new Map,constantDefinitions:new Map},t={functionDefinitions:new Map,constantDefinitions:new Map};for(const k of["pi","infinity"])t.constantDefinitions.set(k,{type:"constant"}),a.constantDefinitions.set(k,{type:"constant"});t.constantDefinitions.set("textformatting",{type:"namespace",key:"textformatting",members:[{key:"backwardslash",type:"constant"},{key:"doublequote",type:"constant"},{key:"forwardslash",type:"constant"},{key:"tab",type:"constant"},{key:"singlequote",type:"constant"},{key:"newline",type:"constant"}]}),a.constantDefinitions.set("textformatting",{type:"namespace",key:"textformatting",members:[{key:"backwardslash",type:"constant"},{key:"tab",type:"constant"},{key:"singlequote",type:"constant"},{key:"doublequote",type:"constant"},{key:"forwardslash",type:"constant"},{key:"newline",type:"constant"}]});for(const k in n){const e=n[k];t.functionDefinitions.set(k,{overloads:[{type:"function",parametersInfo:{min:e.min,max:e.max}}]}),a.functionDefinitions.set(k,{overloads:[{type:"function",parametersInfo:{min:e.min,max:e.max}}]})}const i=new Set(["attachments","featureset","featuresetbyassociation","featuresetbyid","featuresetbyname","featuresetbyportalitem","featuresetbyrelationshipname","featuresetbyurl","filterbysubtypecode","getfeatureset","getfeaturesetinfo","getuser","knowledgegraphbyportalitem","querygraph"]),m=new Set(["translatetext"]),s=new Set(["area","areageodetic","buffer","buffergeodetic","centroid","clip","contains","convexhull","crosses","cut","densify","densifygeodetic","difference","disjoint","distance","distancegeodetic","distancetocoordinate","equals","generalize","intersection","intersects","isselfintersecting","issimple","length","length3d","lengthgeodetic","measuretocoordinate","multiparttosinglepart","nearestcoordinate","nearestvertex","offset","overlaps","pointtocoordinate","relate","rotate","simplify","symmetricdifference","touches","union","within"]);function o(e,n){const i="sync"===n?a:t;i.functionDefinitions.has(e.name.toLowerCase())?i.functionDefinitions.get(e.name.toLowerCase())?.overloads.push({type:"function",parametersInfo:{min:e.min,max:e.max}}):i.functionDefinitions.set(e.name.toLowerCase(),{overloads:[{type:"function",parametersInfo:{min:e.min,max:e.max}}]})}function r(e,n){if(e)for(const a of e)c(a,n)}function c(e,n){if(e&&!1!==n(e))switch(e.type){case"ImportDeclaration":r(e.specifiers,n),c(e.source,n);break;case"ExportNamedDeclaration":c(e.declaration,n);break;case"ArrayExpression":r(e.elements,n);break;case"AssignmentExpression":case"BinaryExpression":case"LogicalExpression":c(e.left,n),c(e.right,n);break;case"BlockStatement":case"Program":r(e.body,n);break;case"BreakStatement":case"ContinueStatement":case"EmptyStatement":case"Identifier":case"Literal":break;case"CallExpression":c(e.callee,n),r(e.arguments,n);break;case"ExpressionStatement":c(e.expression,n);break;case"ForInStatement":case"ForOfStatement":c(e.left,n),c(e.right,n),c(e.body,n);break;case"ForStatement":c(e.init,n),c(e.test,n),c(e.update,n),c(e.body,n);break;case"WhileStatement":c(e.test,n),c(e.body,n);break;case"FunctionDeclaration":c(e.id,n),r(e.params,n),c(e.body,n);break;case"IfStatement":c(e.test,n),c(e.consequent,n),c(e.alternate,n);break;case"MemberExpression":c(e.object,n),c(e.property,n);break;case"ObjectExpression":r(e.properties,n);break;case"Property":c(e.key,n),c(e.value,n);break;case"ReturnStatement":case"UnaryExpression":case"UpdateExpression":c(e.argument,n);break;case"VariableDeclaration":r(e.declarations,n);break;case"VariableDeclarator":c(e.id,n),c(e.init,n);break;case"TemplateLiteral":r(e.expressions,n),r(e.quasis,n)}}function x(e){return"Literal"===e?.type&&"string"==typeof e.value}function l(e,n){let a=!1;const t=n.toLowerCase();return c(e,e=>!a&&("Identifier"===e.type&&e.name&&e.name.toLowerCase()===t&&(a=!0),!0)),a}function u(n){const a=[];return c(n,n=>("ImportDeclaration"===n.type&&n.source&&n.source.value&&a.push({libname:e(n.specifiers[0].local),source:n.source.value}),!0)),a}function p(e,n){let a=!1;const t=n.toLowerCase();return c(e,e=>!a&&("CallExpression"!==e.type||"Identifier"!==e.callee.type||!e.callee.name||e.callee.name.toLowerCase()!==t||(a=!0,!1))),a}function f(n){const a=[];return c(n,n=>"MemberExpression"!==n.type||"Identifier"!==n.object.type||(("Identifier"===n.property.type||"Literal"===n.property.type&&"string"==typeof n.property.value)&&a.push({varId:e(n.object),memberId:e(n.property)}),!1)),a}function d(n){const a=[];return c(n,n=>{if("CallExpression"===n.type&&"Identifier"===n.callee.type)switch(e(n.callee)){case"expects":if(n.arguments.length>1){const[t,...i]=n.arguments;if("Identifier"===t?.type){const n=e(t);for(const e of i)x(e)&&a.push({varId:n,memberNamePattern:e.value})}}return!1;case"domainname":case"domaincode":case"domain":case"haskey":case"hasvalue":if(n.arguments.length>=2){const[t,i]=n.arguments;"Identifier"===t?.type&&x(i)&&a.push({varId:e(t),memberNamePattern:i.value})}return!0;case"defaultvalue":if(n.arguments.length>2){const[t,i]=n.arguments;"Identifier"===t?.type&&x(i)&&a.push({varId:e(t),memberNamePattern:i.value})}return!0;default:return!0}return"MemberExpression"!==n.type||"Identifier"!==n.object.type||(n.computed?!!x(n.property)&&(a.push({varId:e(n.object),memberNamePattern:n.property.value}),!1):(a.push({varId:e(n.object),memberNamePattern:n.property.name}),!1))}),a}function y(e,n){const a=[];if(void 0!==n.params&&null!==n.params)for(let t=0;t<n.params.length;t++)a.push("any");return{name:e,return:"any",params:a}}function g(n){const a=[];return c(n,n=>("CallExpression"===n.type&&"Identifier"===n.callee.type&&a.push(e(n.callee)),!0)),a}function b(e,n=[]){let a=null;if(void 0===e.usesFeatureSet){null===a&&(a=g(e)),e.usesFeatureSet=!1;for(let n=0;n<a.length;n++)i.has(a[n])&&(e.usesFeatureSet=!0,e.isAsync=!0);if(!1===e.usesFeatureSet&&n&&n.length>0)for(const a of n)if(l(e,a)){e.usesFeatureSet=!0,e.isAsync=!0;break}}if(void 0===e.isAsync&&(null===a&&(a=g(e)),a.some(e=>m.has(e))&&(e.isAsync=!0)),void 0===e.usesModules){e.usesModules=!1;u(e).length>0&&(e.usesModules=!0)}if(void 0===e.usesGeometry){e.usesGeometry=!1,null===a&&(a=g(e));for(let n=0;n<a.length;n++)s.has(a[n])&&(e.usesGeometry=!0)}}function h(e){const n=g(e);for(let a=0;a<n.length;a++)if(i.has(n[a]))return!0;return!1}export{o as addFunctionDeclaration,y as extractFunctionDeclaration,d as findExpectedFieldLiterals,g as findFunctionCalls,f as findLiteralMemberAccesses,u as findModuleImports,b as findScriptDependencies,t as fullArcadeApiAsync,a as fullArcadeApiSync,p as referencesFunction,l as referencesMember,h as scriptUsesFeatureSet,c as walk};
|