@arcgis/core 4.33.0-next.20250326 → 4.33.0-next.20250327

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.
Files changed (146) hide show
  1. package/applications/Components/viewUtils.d.ts +3 -0
  2. package/applications/Components/viewUtils.js +5 -0
  3. package/arcade/arcadeAsyncRuntime.js +1 -1
  4. package/arcade/arcadeCompiler.js +1 -1
  5. package/arcade/arcadeRuntime.js +1 -1
  6. package/arcade/functions/date.js +1 -1
  7. package/arcade/functions/feature.js +1 -1
  8. package/arcade/functions/featuresetbase.js +1 -1
  9. package/arcade/functions/featuresetgeom.js +1 -1
  10. package/arcade/functions/featuresetstats.js +1 -1
  11. package/arcade/functions/featuresetstring.js +1 -1
  12. package/arcade/functions/geomasync.js +1 -1
  13. package/arcade/functions/geometry.js +1 -1
  14. package/arcade/functions/geomsync.js +1 -1
  15. package/arcade/functions/knowledgegraph.js +1 -1
  16. package/arcade/functions/maths.js +1 -1
  17. package/arcade/functions/stats.js +1 -1
  18. package/arcade/functions/string.js +1 -1
  19. package/arcade/geometry/functions.js +1 -1
  20. package/arcade/languageUtils.js +1 -1
  21. package/assets/esri/core/workers/RemoteClient.js +1 -1
  22. package/assets/esri/core/workers/chunks/0f37b3a797d8a55439a4.js +1 -0
  23. package/assets/esri/core/workers/chunks/{6ff981ec0c725efe5525.js → 470cf066294b053c2732.js} +1 -1
  24. package/assets/esri/core/workers/chunks/{ba47e43ef039fe4b8c5c.js → 605eddec7aac891ed141.js} +1 -1
  25. package/assets/esri/core/workers/chunks/75a04b073231da70c18d.js +1 -0
  26. package/assets/esri/core/workers/chunks/{fa3eeb40e2d732c184d8.js → 7f8c7e3e41e51ab4d612.js} +1 -1
  27. package/assets/esri/core/workers/chunks/80aaf31c8eec3cff2add.js +1 -0
  28. package/assets/esri/core/workers/chunks/82692bff98b4ec781544.js +319 -0
  29. package/assets/esri/core/workers/chunks/86ee278919038260696e.js +39 -0
  30. package/assets/esri/core/workers/chunks/{4496ef270c700078df0c.js → 8752f807c05d1ec215e8.js} +1 -1
  31. package/assets/esri/core/workers/chunks/9c59fc2df8081e65a128.js +1 -0
  32. package/assets/esri/core/workers/chunks/{d5d2a4e8e19898d86c6d.js → a2377969f76640f1d6fe.js} +1 -1
  33. package/assets/esri/core/workers/chunks/{e0ac90b4ad8c36fb7d70.js → b2666b89755323a84fcb.js} +1 -1
  34. package/assets/esri/core/workers/chunks/{726e3f413824f02fe689.js → bd2dcc55ac3418421ee5.js} +1 -1
  35. package/assets/esri/core/workers/chunks/{b8a4352f83502449ff95.js → cbbbaccc0d3683e1c0fe.js} +1 -1
  36. package/assets/esri/core/workers/chunks/{e4290719c8afc2a4ee8c.js → cc441051a52bfbda9caf.js} +1 -1
  37. package/assets/esri/core/workers/chunks/d3912886ac2910290f43.js +1 -0
  38. package/assets/esri/core/workers/chunks/e08bff9f8247909776a4.js +1 -0
  39. package/assets/esri/core/workers/chunks/{042771b4e56355924140.js → e9993d4f2bfdc434fbcc.js} +1 -1
  40. package/assets/esri/core/workers/chunks/{4dc1e7d7ac2a4b0144c4.js → f128d3431da86e484117.js} +28 -29
  41. package/chunks/ComponentShader.glsl.js +25 -25
  42. package/chunks/HUDMaterial.glsl.js +2 -2
  43. package/chunks/LineMarker.glsl.js +26 -26
  44. package/chunks/Point2D.js +1 -1
  45. package/chunks/ProjectionTransformation.js +1 -1
  46. package/chunks/QuadraticBezier.js +1 -1
  47. package/chunks/RibbonLine.glsl.js +35 -33
  48. package/chunks/Terrain.glsl.js +33 -33
  49. package/chunks/aiServices.js +1 -1
  50. package/chunks/array.js +1 -1
  51. package/chunks/languageUtils.js +1 -1
  52. package/geometry/operators/projectOperator.js +1 -1
  53. package/geometry/operators/shapePreservingProjectOperator.js +1 -1
  54. package/interfaces.d.ts +246 -7
  55. package/layers/LinkChartLayer.js +1 -1
  56. package/layers/MapImageLayer.js +1 -1
  57. package/layers/TileLayer.js +1 -1
  58. package/package.json +1 -1
  59. package/support/revision.js +1 -1
  60. package/views/2d/layers/MapImageLayerView2D.js +1 -1
  61. package/views/2d/layers/TileLayerView2D.js +1 -1
  62. package/views/2d/layers/support/util.js +1 -1
  63. package/views/3d/analysis/Dimension/LengthDimensionSubTool.js +1 -1
  64. package/views/3d/analysis/Slice/RotateManipulator.js +1 -1
  65. package/views/3d/layers/DrapedSubView3D.js +1 -1
  66. package/views/3d/layers/GraphicsView3D.js +1 -1
  67. package/views/3d/layers/ImageryLayerView3D.js +1 -1
  68. package/views/3d/layers/MapImageLayerView3D.js +1 -1
  69. package/views/3d/layers/MediaLayerView3D.js +1 -1
  70. package/views/3d/layers/TileLayerView3D.js +1 -1
  71. package/views/3d/layers/graphics/GraphicsProcessor.js +1 -1
  72. package/views/3d/layers/i3s/PointCloudRenderer.js +1 -1
  73. package/views/3d/layers/support/ImageHighlightHelper3D.js +5 -0
  74. package/views/3d/layers/support/SublayerPopupHighlightHelper3D.js +5 -0
  75. package/views/3d/terrain/Overlay.js +1 -1
  76. package/views/3d/terrain/OverlayRenderer.js +1 -1
  77. package/views/3d/terrain/RasterTile.js +1 -1
  78. package/views/3d/terrain/TerrainRenderer.js +1 -1
  79. package/views/3d/terrain/TerrainSurface.js +1 -1
  80. package/views/3d/terrain/TileCompositor.js +1 -1
  81. package/views/3d/terrain/TileRenderer.js +1 -1
  82. package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterial.js +1 -1
  83. package/views/3d/webgl-engine/collections/Component/Material/ComponentTechniqueConfiguration.js +1 -1
  84. package/views/3d/webgl-engine/collections/Component/Material/shader/ComponentShader.glsl.js +1 -1
  85. package/views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js +9 -10
  86. package/views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlightOverlay.js +11 -0
  87. package/views/3d/webgl-engine/core/shaderLibrary/shading/ComputeNormalTexture.glsl.js +3 -3
  88. package/views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRendering.glsl.js +3 -6
  89. package/views/3d/webgl-engine/core/shaderLibrary/terrain/BlendLayersOutput.js +1 -1
  90. package/views/3d/webgl-engine/core/shaderLibrary/terrain/TileBackground.glsl.js +1 -1
  91. package/views/3d/webgl-engine/lib/Material.js +1 -1
  92. package/views/3d/webgl-engine/lib/Program.js +1 -1
  93. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  94. package/views/3d/webgl-engine/lib/Texture.js +1 -1
  95. package/views/3d/webgl-engine/lib/VertexAttribute.js +1 -1
  96. package/views/3d/webgl-engine/materials/CheckerBoardMaterial.js +1 -1
  97. package/views/3d/webgl-engine/materials/ColorMaterial.js +1 -1
  98. package/views/3d/webgl-engine/materials/DefaultMaterial.js +1 -1
  99. package/views/3d/webgl-engine/materials/DefaultTechniqueConfiguration.js +1 -1
  100. package/views/3d/webgl-engine/materials/HUDMaterial.js +1 -1
  101. package/views/3d/webgl-engine/materials/HeatmapDensityMaterial.js +1 -1
  102. package/views/3d/webgl-engine/materials/ImageMaterial.js +1 -1
  103. package/views/3d/webgl-engine/materials/LineCalloutMaterial.js +1 -1
  104. package/views/3d/webgl-engine/materials/LineMarkerMaterial.js +1 -1
  105. package/views/3d/webgl-engine/materials/MeasurementArrowMaterial.js +1 -1
  106. package/views/3d/webgl-engine/materials/NativeLineMaterial.js +1 -1
  107. package/views/3d/webgl-engine/materials/PathMaterial.js +1 -1
  108. package/views/3d/webgl-engine/materials/PathTechniqueConfiguration.js +1 -1
  109. package/views/3d/webgl-engine/materials/PatternMaterial.js +1 -1
  110. package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
  111. package/views/3d/webgl-engine/materials/ShadedColorMaterial.js +1 -1
  112. package/views/3d/webgl-engine/materials/WaterMaterial.js +1 -1
  113. package/views/3d/webgl-engine/materials/WaterTechniqueConfiguration.js +1 -1
  114. package/views/3d/webgl-engine/materials/internal/bufferWriterUtils.js +1 -1
  115. package/views/3d/webgl-engine/parts/RenderView.js +1 -1
  116. package/views/3d/webgl-engine/shaders/CheckerBoardTechniqueConfiguration.js +1 -1
  117. package/views/3d/webgl-engine/shaders/DefaultMaterialTechniqueConfiguration.js +1 -1
  118. package/views/3d/webgl-engine/shaders/ImageMaterialTechniqueConfiguration.js +1 -1
  119. package/views/3d/webgl-engine/shaders/LineMarkerTechnique.js +1 -1
  120. package/views/3d/webgl-engine/shaders/LineMarkerTechniqueConfiguration.js +1 -1
  121. package/views/3d/webgl-engine/shaders/NativeLineTechniqueConfiguration.js +1 -1
  122. package/views/3d/webgl-engine/shaders/PatternTechniqueConfiguration.js +1 -1
  123. package/views/3d/webgl-engine/shaders/PointRendererTechniqueConfiguration.js +1 -1
  124. package/views/3d/webgl-engine/shaders/RibbonLineTechnique.js +1 -1
  125. package/views/3d/webgl-engine/shaders/RibbonLineTechniqueConfiguration.js +1 -1
  126. package/views/3d/webgl-engine/shaders/ShadedColorMaterialTechniqueConfiguration.js +1 -1
  127. package/views/3d/webgl-engine/shaders/Terrain.glsl.js +1 -1
  128. package/views/3d/webgl-engine/shaders/TerrainTechniqueConfiguration.js +1 -1
  129. package/views/SceneView.js +1 -1
  130. package/views/VideoView.d.ts +4 -0
  131. package/views/VideoView.js +1 -1
  132. package/views/layers/support/MapServiceLayerViewHelper.js +1 -1
  133. package/views/layers/support/highlightUtils.js +5 -0
  134. package/views/support/TextureCompressionHandle.js +5 -0
  135. package/views/webgl/ShaderBuilder.js +1 -1
  136. package/views/webgl/Texture.js +1 -1
  137. package/views/webgl/TextureDescriptor.js +1 -1
  138. package/widgets/Features/FeaturesViewModel.js +1 -1
  139. package/assets/esri/core/workers/chunks/0059295780fa4a090f30.js +0 -319
  140. package/assets/esri/core/workers/chunks/3fc18638f8799b85001d.js +0 -1
  141. package/assets/esri/core/workers/chunks/81bf362ec0d23ffdc90c.js +0 -39
  142. package/assets/esri/core/workers/chunks/a59ad50d932da1e28c8f.js +0 -1
  143. package/assets/esri/core/workers/chunks/afe94e351b4a50d7bc53.js +0 -1
  144. package/assets/esri/core/workers/chunks/b8416f2560710258c239.js +0 -1
  145. package/assets/esri/core/workers/chunks/e088edb9ffbaa1ed12eb.js +0 -1
  146. package/assets/esri/core/workers/chunks/f454e773505c0eef2f9d.js +0 -1
@@ -0,0 +1,3 @@
1
+ import "../../interfaces";
2
+
3
+ export const waitUpdated: __esri.viewUtils["waitUpdated"];
@@ -0,0 +1,5 @@
1
+ /*
2
+ All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
+ See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
+ */
5
+ import r from"../../views/support/waitForResources.js";async function n(n){await r(n);const t="3d"===n.type?n.resourceController?.scheduler?.test?.getRunning()??null:null;if(null!=t)throw new Error(`View is not updating, but scheduler is running:${t} at ${(new Error).stack}`)}export{n as waitUpdated};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{toSymbolId as e,neverAbortedSignal 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,ExecutionErrorCodes as c,ensureArcadeExecutionError as u}from"./executionError.js";import f from"./Feature.js";import{NativeFunction as p,ScopeMarshalledFunction as w,ArcadeFunction as d,wrapModuleScopedResponse as h}from"./FunctionWrapper.js";import{C as m,A as g,i as y,v as b,t as v,n as S,m as x,y as F,f as I,z as M,B as k,R,I as A,D as C,w as O,x as N,E as j,p as E,l as B}from"../chunks/languageUtils.js";import{addFunctionDeclaration as D}from"./treeAnalysis.js";import{A as K}from"../chunks/aiServices.js";import{A as U}from"../chunks/array.js";import{registerFunctions as Z}from"./functions/date.js";import{registerFunctions as G}from"./functions/feature.js";import{registerFunctions as L}from"./functions/geomasync.js";import{registerFunctions as q}from"./functions/geometry.js";import{registerFunctions as P}from"./functions/maths.js";import{registerFunctions as W}from"./functions/stats.js";import{registerFunctions as V}from"./functions/string.js";import T from"../geometry/Geometry.js";import _ from"../geometry/SpatialReference.js";import{isBoolean as z,isString as Y,isArray as H,isNumber as J,isGraphic as Q}from"../support/guards.js";async function X(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 $(e,t,n){if(!0===t.preparsed)return n(e,null,t.arguments);return n(e,t,await X(e,t))}class ee extends d{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,c.MaximumCallDepth,null);return Ge(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}};if(a.depthCounter.depth>64)throw new s(e,c.MaximumCallDepth,t);return Ge(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 w?t:h(t,e,r))),h(await Ge(this.definition,l,i,t),n,r)}))}}class te extends n{constructor(e){super(),this.source=e}global(t){const n=this.executingContext.globalScope[e(t)];if(y(n.value)&&!(n.value instanceof w)){const e=new w;e.fn=n.value,e.parameterEvaluator=ne,e.context=this.executingContext,n.value=e}return n.value}setGlobal(t,n){if(y(n))throw new s(null,c.AssignModuleFunction,null);this.executingContext.globalScope[e(t)]={value:n}}hasGlobal(t){return void 0===this.executingContext.exports[t]&&(t=e(t)),void 0!==this.executingContext.exports[t]}async loadModule(e){const n=e.spatialReference??_.WebMercator;this.moduleScope=Pe(null,null,e.timeZone),this.executingContext={spatialReference:n,services:e.services,libraryResolver:new r(e.libraryResolver._moduleSingletons,this.source.syntax.loadedModules),exports:{},abortSignal:e.abortSignal??t,globalScope:this.moduleScope,console:e.console??We,lrucache:e.lrucache,timeZone:e.timeZone??null,interceptor:e.interceptor,localScope:null,depthCounter:{depth:1}},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 X(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 ge(e,t);case"TemplateLiteral":return await De(e,t);case"Identifier":return Ee(e,t);case"MemberExpression":return await Ae(e,t);case"Literal":return t.value;case"CallExpression":return await Be(e,t);case"UnaryExpression":return await Ce(e,t);case"BinaryExpression":return await Ne(e,t);case"LogicalExpression":return await je(e,t);case"ArrayExpression":return await Oe(e,t);case"ObjectExpression":return await ae(e,t);default:throw new s(e,c.Unrecognized,t)}}catch(n){throw u(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 Me(e,t);case"VariableDeclaration":return await ke(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 O;case"EmptyStatement":return b;case"ContinueStatement":return N;default:throw new s(e,c.Unrecognized,t)}}catch(n){throw u(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={},o=new Map;for(let i=0;i<n.length;i++){const a=n[i];if(y(a.value))throw new s(e,c.NoFunctionInDictionary,t);if(!1===Y(a.key))throw new s(e,c.KeyMustBeString,t);let l=a.key.toString();const u=l.toLowerCase();o.has(u)?l=o.get(u):o.set(u,l),a.value===b?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 b;if(!0!==n)throw new s(e,c.BooleanConditionRequired,t);for(;!0===n;){const r=await oe(e,t.body);if(r===O)break;if(r instanceof R)return r;if(n=await re(e,t.test),!0!==n&&!1!==n)throw new s(e,c.BooleanConditionRequired,t)}return b}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,c.Cancelled,t);if(!1===n)break;if(!0!==n)throw new s(e,c.BooleanConditionRequired,t)}const n=await oe(e,t.body);if(n===O)break;if(n instanceof R)return n;null!==t.update&&await re(e,t.update)}return b}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,c.OutOfBounds,t);r.value=n[i]}else r.value=i;const a=await oe(e,t.body);if(a===O)break;if(a instanceof R)return a}return b}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===O)break;if(a instanceof R)return a}return b}async function ue(e,t,n,r){const o=n.iterator(e.abortSignal);let a;for(;null!=(a=await o.next());){const o=f.createFromGraphicLikeObject(a.geometry,a.attributes,n,e.timeZone);o._underlyingGraphic=a,r.value=o;const i=await oe(e,t.body);if(i===O)break;if(i instanceof R)return i}return b}async function fe(e,t,n,r){for(const o of n.keys()){const a=n.field(o);r.value=new l({key:o,value:a});const i=await oe(e,t.body);if(i===O)break;if(i instanceof R)return i}return b}async function pe(e,t,n,r){for(const o of i(n)){const i=a(n,o,e,t,1);r.value=new l({key:o,value:i});const s=await oe(e,t.body);if(s===O)break;if(s instanceof R)return s}return b}async function we(t,n){const r=await re(t,n.right);"VariableDeclaration"===n.left.type&&await oe(t,n.left);const o=e("VariableDeclaration"===n.left.type?n.left.declarations[0].id:n.left);let a=null;if(null!=t.localScope&&void 0!==t.localScope[o]&&(a=t.localScope[o]),null===a&&void 0!==t.globalScope[o]&&(a=t.globalScope[o]),null===a)throw new s(t,c.InvalidIdentifier,n);return H(r)||Y(r)?await se(t,n,r,a):x(r)?await ce(t,n,r,a):r instanceof l||F(r)?await se(t,n,r.keys(),a,"k"):E(r)?await ue(t,n,r,a):B(r)?await se(t,n,i(r),a,"k"):b}async function de(t,n){const r=await re(t,n.right);"VariableDeclaration"===n.left.type&&await oe(t,n.left);const o=e("VariableDeclaration"===n.left.type?n.left.declarations[0].id:n.left);let a=null;if(null!=t.localScope&&void 0!==t.localScope[o]&&(a=t.localScope[o]),null===a&&void 0!==t.globalScope[o]&&(a=t.globalScope[o]),null===a)throw new s(t,c.InvalidIdentifier,n);return H(r)||Y(r)?await se(t,n,r,a,"k"):x(r)?await ce(t,n,r,a,"k"):r instanceof l||F(r)?await fe(t,n,r,a):E(r)?await ue(t,n,r,a):B(r)?await pe(t,n,r,a):b}async function he(t,n){const r=n.argument;if("CallExpression"===r.type)throw new s(t,c.NeverReach,n);if("MemberExpression"===r.type){const e=await re(t,r.object);let o,a;if(!0===r.computed)o=await re(t,r.property);else{if("Identifier"!==r.property.type)throw new s(t,c.Unrecognized,n);o=r.property.name}if(H(e)){if(!J(o))throw new s(t,c.ArrayAccessorMustBeNumber,n);if(o<0&&(o=e.length+o),o<0||o>=e.length)throw new s(t,c.OutOfBounds,n);a=v(e[o]),e[o]="++"===n.operator?a+1:a-1}else if(e instanceof l){if(!1===Y(o))throw new s(t,c.KeyAccessorMustBeString,n);if(!0!==e.hasField(o))throw new s(t,c.FieldNotFound,n,{key:o});a=v(e.field(o)),e.setField(o,"++"===n.operator?a+1:a-1)}else if(e instanceof te){if(!1===Y(o))throw new s(t,c.ModuleAccessorMustBeString,n);if(!0!==e.hasGlobal(o))throw new s(t,c.ModuleExportNotFound,n);a=v(e.global(o)),e.setGlobal(o,"++"===n.operator?a+1:a-1)}else{if(!S(e))throw x(e)?new s(t,c.Immutable,n):new s(t,c.InvalidParameter,n);if(!1===Y(o))throw new s(t,c.KeyAccessorMustBeString,n);if(!0!==e.hasField(o))throw new s(t,c.FieldNotFound,n,{key:o});a=v(e.field(o)),e.setField(o,"++"===n.operator?a+1:a-1)}return!1===n.prefix?a:"++"===n.operator?a+1:a-1}const o=e(r);let a;if(null!=t.localScope&&void 0!==t.localScope[o])return a=v(t.localScope[o].value),t.localScope[o]={value:"++"===n.operator?a+1:a-1},!1===n.prefix?a:"++"===n.operator?a+1:a-1;if(void 0!==t.globalScope[o])return a=v(t.globalScope[o].value),t.globalScope[o]={value:"++"===n.operator?a+1:a-1},!1===n.prefix?a:"++"===n.operator?a+1:a-1;throw new s(t,c.InvalidIdentifier,n)}function me(e,t,n,r,o){switch(t){case"=":return e===b?null:e;case"/=":return v(n)/v(e);case"*=":return v(n)*v(e);case"-=":return v(n)-v(e);case"+=":return Y(n)||Y(e)?I(n)+I(e):v(n)+v(e);case"%=":return v(n)%v(e);default:throw new s(o,c.UnsupportedOperator,r)}}async function ge(t,n){const r=n.left;if("MemberExpression"===r.type){const e=await re(t,r.object);let o;if(!0===r.computed)o=await re(t,r.property);else{if("Identifier"!==r.property.type)throw new s(t,c.InvalidIdentifier,n);o=r.property.name}const a=await re(t,n.right);if(H(e)){if(!J(o))throw new s(t,c.ArrayAccessorMustBeNumber,n);if(o<0&&(o=e.length+o),o<0||o>e.length)throw new s(t,c.OutOfBounds,n);if(o===e.length){if("="!==n.operator)throw new s(t,c.OutOfBounds,n);e[o]=me(a,n.operator,e[o],n,t)}else e[o]=me(a,n.operator,e[o],n,t)}else if(e instanceof l){if(!1===Y(o))throw new s(t,c.KeyAccessorMustBeString,n);if(!0===e.hasField(o))e.setField(o,me(a,n.operator,e.field(o),n,t));else{if("="!==n.operator)throw new s(t,c.FieldNotFound,n,{key:o});e.setField(o,me(a,n.operator,null,n,t))}}else if(e instanceof te){if(!1===Y(o))throw new s(t,c.KeyAccessorMustBeString,n);if(!0!==e.hasGlobal(o))throw new s(t,c.ModuleExportNotFound,n);e.setGlobal(o,me(a,n.operator,e.global(o),n,t))}else{if(!S(e))throw x(e)?new s(t,c.Immutable,n):new s(t,c.InvalidParameter,n);if(!1===Y(o))throw new s(t,c.KeyAccessorMustBeString,n);if(!0===e.hasField(o))e.setField(o,me(a,n.operator,e.field(o),n,t));else{if("="!==n.operator)throw new s(t,c.FieldNotFound,n,{key:o});e.setField(o,me(a,n.operator,null,n,t))}}return b}const o=e(r);if(null!=t.localScope&&void 0!==t.localScope[o]){const e=await re(t,n.right);return t.localScope[o]={value:me(e,n.operator,t.localScope[o].value,n,t)},b}if(void 0!==t.globalScope[o]){const e=await re(t,n.right);return t.globalScope[o]={value:me(e,n.operator,t.globalScope[o].value,n,t)},b}throw new s(t,c.InvalidIdentifier,n)}async function ye(e,t){const n=await re(e,t.expression);return n===b?b:new A(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):b;throw new s(e,c.BooleanConditionRequired,t)}async function ve(e,t){return Se(e,t,0)}async function Se(e,t,n){if(n>=t.body.length)return b;const r=await oe(e,t.body[n]);return r instanceof R||r===O||r===N||n===t.body.length-1?r:Se(e,t,n+1)}async function xe(e,t){if(null===t.argument)return new R(b);const n=await re(e,t.argument);return new R(n)}async function Fe(t,n){const r=e(n.id);return t.globalScope[r]={value:new ee(n,t)},b}async function Ie(t,n){const r=e(n.specifiers[0].local),o=t.libraryResolver.loadLibrary(r);let a;return t.libraryResolver._moduleSingletons?.has(o.uri)?a=t.libraryResolver._moduleSingletons.get(o.uri):(a=new te(o),await a.loadModule(t),t.libraryResolver._moduleSingletons?.set(o.uri,a)),t.globalScope[r]={value:a},b}async function Me(t,n){if(await oe(t,n.declaration),"FunctionDeclaration"===n.declaration.type)t.exports[e(n.declaration.id)]="function";else if("VariableDeclaration"===n.declaration.type)for(const r of n.declaration.declarations)t.exports[e(r.id)]="variable";return b}async function ke(e,t,n){return n>=t.declarations.length?b:(await Re(e,t.declarations[n]),n===t.declarations.length-1||await ke(e,t,n+1),b)}async function Re(t,n){let r=null;if(r=null===n.init?null:await re(t,n.init),null!==t.localScope){if(r===b&&(r=null),"Identifier"!==n.id.type)throw new s(t,c.InvalidIdentifier,n);const o=e(n.id);return void(null!=t.localScope&&(t.localScope[o]={value:r}))}if("Identifier"!==n.id.type)throw new s(t,c.InvalidIdentifier,n);const o=e(n.id);r===b&&(r=null),t.globalScope[o]={value:r}}async function Ae(e,t){const n=await re(e,t.object);if(null===n)throw new s(e,c.MemberOfNull,t);if(!1===t.computed){if("Identifier"===t.property.type){if(n instanceof l||F(n))return n.field(t.property.name);if(n instanceof T)return a(n,t.property.name,e,t);if(n instanceof te){if(!n.hasGlobal(t.property.name))throw new s(e,c.InvalidIdentifier,t);return n.global(t.property.name)}throw new s(e,c.InvalidMemberAccessKey,t)}throw new s(e,c.InvalidMemberAccessKey,t)}let r=await re(e,t.property);if(n instanceof l||F(n)){if(Y(r))return n.field(r);throw new s(e,c.InvalidMemberAccessKey,t)}if(n instanceof te){if(Y(r))return n.global(r);throw new s(e,c.InvalidMemberAccessKey,t)}if(n instanceof T){if(Y(r))return a(n,r,e,t);throw new s(e,c.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,c.OutOfBounds,t);return n[r]}throw new s(e,c.InvalidMemberAccessKey,t)}if(x(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,c.OutOfBounds,t);return n.get(r)}throw new s(e,c.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,c.OutOfBounds,t);return n[r]}throw new s(e,c.InvalidMemberAccessKey,t)}throw new s(e,c.InvalidMemberAccessKey,t)}async function Ce(e,t){const n=await re(e,t.argument);if(z(n)){if("!"===t.operator)return!n;if("-"===t.operator)return-1*v(n);if("+"===t.operator)return 1*v(n);if("~"===t.operator)return~v(n);throw new s(e,c.UnsupportedUnaryOperator,t)}if("-"===t.operator)return-1*v(n);if("+"===t.operator)return 1*v(n);if("~"===t.operator)return~v(n);throw new s(e,c.UnsupportedUnaryOperator,t)}async function Oe(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,c.NoFunctionInArray,t);n[r]===b&&(n[r]=null)}return n}async function Ne(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 k(v(n),v(r),t.operator);case"==":return g(n,r);case"!=":return!g(n,r);case"<":case">":case"<=":case">=":return M(n,r,t.operator);case"+":return Y(n)||Y(r)?I(n)+I(r):v(n)+v(r);case"-":return v(n)-v(r);case"*":return v(n)*v(r);case"/":return v(n)/v(r);case"%":return v(n)%v(r);default:throw new s(e,c.UnsupportedOperator,t)}}async function je(e,t){const n=await re(e,t.left);if(!z(n))throw new s(e,c.LogicalExpressionOnlyBoolean,t);switch(t.operator){case"||":{if(!0===n)return n;const r=await re(e,t.right);if(z(r))return r;throw new s(e,c.LogicExpressionOrAnd,t)}case"&&":{if(!1===n)return n;const r=await re(e,t.right);if(z(r))return r;throw new s(e,c.LogicExpressionOrAnd,t)}default:throw new s(e,c.LogicExpressionOrAnd,t)}}function Ee(t,n){const r=e(n);if(null!=t.localScope&&void 0!==t.localScope[r])return t.localScope[r].value;if(void 0!==t.globalScope[r])return t.globalScope[r].value;throw new s(t,c.InvalidIdentifier,n)}async function Be(t,n){if("MemberExpression"===n.callee.type){const e=await re(t,n.callee.object);if(!(e instanceof te))throw new s(t,c.FunctionNotFound,n);const r=!1===n.callee.computed?n.callee.property.name:await re(t,n.callee.property);if(!e.hasGlobal(r))throw new s(t,c.FunctionNotFound,n);const o=e.global(r);if(!y(o))throw new s(t,c.CallNonFunction,n);return o.call(t,n)}if("Identifier"!==n.callee.type)throw new s(t,c.FunctionNotFound,n);const r=e(n.callee);if(null!=t.localScope&&void 0!==t.localScope[r]){const e=t.localScope[r];if(y(e.value))return e.value.call(t,n);throw new s(t,c.CallNonFunction,n)}if(void 0!==t.globalScope[r]){const e=t.globalScope[r];if(y(e.value))return e.value.call(t,n);throw new s(t,c.CallNonFunction,n)}throw new s(t,c.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,c.NoFunctionInTemplateLiteral,t);n+=I(o)}r++}return n}const Ke={};async function Ue(e,t,n,r){const o=await re(e,t.arguments[n]);if(g(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]):Ue(e,t,n+2,r)}async function Ze(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===z(o))throw new s(e,c.ModuleExportNotFound,t.arguments[n+2]);return Ze(e,t,n+2,o)}async function Ge(t,n,r,o){const a=t.body;if(r.length!==t.params.length)throw new s(n,c.WrongNumberOfParameters,null);for(let l=0;l<r.length;l++){const o=t.params[l];"Identifier"===o.type&&null!=n.localScope&&(n.localScope[e(o)]={value:r[l]})}const i=await oe(n,a);if(i instanceof R)return i.value;if(i===O)throw new s(n,c.UnexpectedToken,o);if(i===N)throw new s(n,c.UnexpectedToken,o);return i instanceof A?i.value:i}Z(Ke,$),V(Ke,$),G(Ke,$,Ee),P(Ke,$),q(Ke,$),W(Ke,$),L({functions:Ke,compiled:!1,signatures:null,evaluateIdentifier:null,mode:"async",standardFunction:$,standardFunctionAsync:ne}),Ke.iif=async function(e,t){m(null===t.arguments?[]:t.arguments,3,3,e,t);const n=await re(e,t.arguments[0]);if(!1===z(n))throw new s(e,c.BooleanConditionRequired,t);return re(e,n?t.arguments[1]:t.arguments[2])},Ke.defaultvalue=async function(e,t){m(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},Ke.decode=async function(e,t){if(t.arguments.length<2)throw new s(e,c.WrongNumberOfParameters,t);if(2===t.arguments.length)return re(e,t.arguments[1]);if((t.arguments.length-1)%2==0)throw new s(e,c.WrongNumberOfParameters,t);return Ue(e,t,1,await re(e,t.arguments[0]))},Ke.when=async function(e,t){if(t.arguments.length<3)throw new s(e,c.WrongNumberOfParameters,t);if(t.arguments.length%2==0)throw new s(e,c.WrongNumberOfParameters,t);const n=await re(e,t.arguments[0]);if(!1===z(n))throw new s(e,c.BooleanConditionRequired,t.arguments[0]);return Ze(e,t,0,n)};const Le={fixSpatialReference:j,parseArguments:X,standardFunction:$,standardFunctionAsync:ne,evaluateIdentifier:Ee};for(const ze in Ke)Ke[ze]={value:new p(Ke[ze])};const qe=function(){};function Pe(e,t,n){const r=new qe;null==e&&(e={}),null==t&&(t={});const o=new l({newline:"\n",tab:"\t",singlequote:"'",doublequote:'"',forwardslash:"/",backwardslash:"\\"});o.immutable=!1,r.textformatting={value:o};for(const a in t)r[a]={value:new p(t[a])};for(const a in e)r[a]={value:Q(e[a])?f.createFromGraphic(e[a],n):e[a]};return r}function We(e){console.log(e)}qe.prototype=Ke,qe.prototype.infinity={value:Number.POSITIVE_INFINITY},qe.prototype.pi={value:Math.PI};const Ve=Le;function Te(e){const t={mode:"async",compiled:!1,functions:{},signatures:[],standardFunction:$,standardFunctionAsync:ne,evaluateIdentifier:Ee};for(let n=0;n<e.length;n++)e[n].registerFunctions(t);for(const n in t.functions)Ke[n]={value:new p(t.functions[n])},qe.prototype[n]=Ke[n];for(let n=0;n<t.signatures.length;n++)D(t.signatures[n],"async")}async function _e(e,n){const o=n.spatialReference??_.WebMercator;let a=null;e.usesModules&&(a=new r(new Map,e.loadedModules));const i=Pe(n.vars,n.customfunctions,n.timeZone),l={spatialReference:o,services:n.services,exports:{},libraryResolver:a,abortSignal:n.abortSignal??t,globalScope:i,console:n.console??We,timeZone:n.timeZone??null,lrucache:n.lrucache,interceptor:n.interceptor,localScope:null,depthCounter:{depth:1}},u=await ve(l,e);if(u instanceof R||u instanceof A){const e=u.value;if(C(e))return null;if(y(e))throw new s(l,c.IllegalResult,null);return e}if(C(u))return null;if(u===O)throw new s(l,c.IllegalResult,null);if(u===N)throw new s(l,c.IllegalResult,null);throw new s(l,c.NeverReach,null)}Te([U]),Te([K]);export{_e as executeScript,Te as extend,Ve as functionHelper};
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 a,geometryMember as i}from"./containerUtils.js";import l from"./Dictionary.js";import{ArcadeExecutionError as s,ExecutionErrorCodes as c,ensureArcadeExecutionError as u}from"./executionError.js";import f from"./Feature.js";import{NativeFunction as p,ArcadeFunction as w,ScopeMarshalledFunction as d,wrapModuleScopedResponse as h}from"./FunctionWrapper.js";import{R as g,I as m,C as y,i as b,w as v,x as S,v as x,D as F,A as I,m as M,y as k,p as O,l as j,t as R,n as C,f as A,z as N,B}from"../chunks/languageUtils.js";import{addFunctionDeclaration as E}from"./treeAnalysis.js";import{A as D}from"../chunks/aiServices.js";import{A as K}from"../chunks/array.js";import{registerFunctions as U}from"./functions/date.js";import{registerFunctions as Z}from"./functions/feature.js";import{registerFunctions as G}from"./functions/geomasync.js";import{registerFunctions as L}from"./functions/geometry.js";import{registerFunctions as q}from"./functions/maths.js";import{registerFunctions as P}from"./functions/stats.js";import{registerFunctions as W}from"./functions/string.js";import"../core/has.js";import z from"../geometry/Geometry.js";import V from"../geometry/SpatialReference.js";import{isBoolean as T,isGraphic 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};if(n.depthCounter.depth>64)throw new s(e,c.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}};if(a.depthCounter.depth>64)throw new s(e,c.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:{}};return i=i.map((t=>!b(t)||t instanceof d?t:h(t,e,r))),h(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,c.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 g)return i.value;if(i===v)throw new s(n,c.UnexpectedToken,o);if(i===S)throw new s(n,c.UnexpectedToken,o);return i instanceof m?i.value:i}class te extends n{constructor(e){super(),this.source=e}global(e){const n=this.executingContext.globalScope[t(e)];if(b(n.value)&&!(n.value instanceof d)){const r=new d;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(b(n))throw new s(null,c.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}},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 Be(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 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,c.Unrecognized,t)}}catch(n){throw u(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 Me(e,t);case"VariableDeclaration":return await ke(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 v;case"EmptyStatement":return x;case"ContinueStatement":return S;default:throw new s(e,c.Unrecognized,t)}}catch(n){throw u(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={},o=new Map;for(let i=0;i<n.length;i++){const a=n[i];if(b(a.value))throw new s(e,c.NoFunctionInDictionary,t);if(!1===Y(a.key))throw new s(e,c.KeyMustBeString,t);let l=a.key.toString();const u=l.toLowerCase();o.has(u)?l=o.get(u):o.set(u,l),a.value===x?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 x;if(!0!==n)throw new s(e,c.BooleanConditionRequired,t);for(;!0===n;){const r=await oe(e,t.body);if(r===v)break;if(r instanceof g)return r;if(n=await re(e,t.test),!0!==n&&!1!==n)throw new s(e,c.BooleanConditionRequired,t)}return x}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,c.Cancelled,t);if(!1===n)break;if(!0!==n)throw new s(e,c.BooleanConditionRequired,t)}const n=await oe(e,t.body);if(n===v)break;if(n instanceof g)return n;null!==t.update&&await re(e,t.update)}return x}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,c.OutOfBounds,t);r.value=n[i]}else r.value=i;const a=await oe(e,t.body);if(a===v)break;if(a instanceof g)return a}return x}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===v)break;if(a instanceof g)return a}return x}async function ue(e,t,n,r){const o=n.iterator(e.abortSignal);let a;for(;null!=(a=await o.next());){const o=f.createFromGraphicLikeObject(a.geometry,a.attributes,n,e.timeZone);o._underlyingGraphic=a,r.value=o;const i=await oe(e,t.body);if(i===v)break;if(i instanceof g)return i}return x}async function fe(e,t,n,r){for(const o of n.keys()){const a=n.field(o);r.value=new l({key:o,value:a});const i=await oe(e,t.body);if(i===v)break;if(i instanceof g)return i}return x}async function pe(e,t,n,r){for(const o of a(n)){const a=i(n,o,e,t,1);r.value=new l({key:o,value:a});const s=await oe(e,t.body);if(s===v)break;if(s instanceof g)return s}return x}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 i=null;if(null!=e.localScope&&void 0!==e.localScope[o]&&(i=e.localScope[o]),null===i&&void 0!==e.globalScope[o]){const t=e.globalScope[o].value;i=e.globalScope[o]={value:t}}if(null===i)throw new s(e,c.InvalidIdentifier,n);return H(r)||Y(r)?await se(e,n,r,i):M(r)?await ce(e,n,r,i):r instanceof l||k(r)?await se(e,n,r.keys(),i,"k"):O(r)?await ue(e,n,r,i):j(r)?await se(e,n,a(r),i,"k"):x}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,c.InvalidIdentifier,n);return H(r)||Y(r)?await se(e,n,r,a,"k"):M(r)?await ce(e,n,r,a,"k"):r instanceof l||k(r)?await fe(e,n,r,a):O(r)?await ue(e,n,r,a):j(r)?await pe(e,n,r,a):x}async function he(e,n){const r=n.argument;if("CallExpression"===r.type)throw new s(e,c.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,c.Unrecognized,n);o=r.property.name}if(H(t)){if(!J(o))throw new s(e,c.ArrayAccessorMustBeNumber,n);if(o<0&&(o=t.length+o),o<0||o>=t.length)throw new s(e,c.OutOfBounds,n);a=R(t[o]),t[o]="++"===n.operator?a+1:a-1}else if(t instanceof l){if(!1===Y(o))throw new s(e,c.KeyAccessorMustBeString,n);if(!0!==t.hasField(o))throw new s(e,c.FieldNotFound,n,{key:o});a=R(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,c.ModuleAccessorMustBeString,n);if(!0!==t.hasGlobal(o))throw new s(e,c.ModuleExportNotFound,n);a=R(t.global(o)),t.setGlobal(o,"++"===n.operator?a+1:a-1)}else{if(!C(t))throw M(t)?new s(e,c.Immutable,n):new s(e,c.InvalidParameter,n);if(!1===Y(o))throw new s(e,c.KeyAccessorMustBeString,n);if(!0!==t.hasField(o))throw new s(e,c.FieldNotFound,n,{key:o});a=R(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=R(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=R(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,c.InvalidIdentifier,n)}function ge(e,t,n,r,o){switch(t){case"=":return e===x?null:e;case"/=":return R(n)/R(e);case"*=":return R(n)*R(e);case"-=":return R(n)-R(e);case"+=":return Y(n)||Y(e)?A(n)+A(e):R(n)+R(e);case"%=":return R(n)%R(e);default:throw new s(o,c.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,c.InvalidIdentifier,n);o=r.property.name}const a=await re(e,n.right);if(H(t)){if(!J(o))throw new s(e,c.ArrayAccessorMustBeNumber,n);if(o<0&&(o=t.length+o),o<0||o>t.length)throw new s(e,c.OutOfBounds,n);if(o===t.length){if("="!==n.operator)throw new s(e,c.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,c.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,c.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,c.KeyAccessorMustBeString,n);if(!0!==t.hasGlobal(o))throw new s(e,c.ModuleExportNotFound,n);t.setGlobal(o,ge(a,n.operator,t.global(o),n,e))}else{if(!C(t))throw M(t)?new s(e,c.Immutable,n):new s(e,c.InvalidParameter,n);if(!1===Y(o))throw new s(e,c.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,c.FieldNotFound,n,{key:o});t.setField(o,ge(a,n.operator,null,n,e))}}return x}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)},x}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)},x}throw new s(e,c.InvalidIdentifier,n)}async function ye(e,t){const n=await re(e,t.expression);return n===x?x:new m(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):x;throw new s(e,c.BooleanConditionRequired,t)}async function ve(e,t){return Se(e,t,0)}async function Se(e,t,n){if(n>=t.body.length)return x;const r=await oe(e,t.body[n]);return r instanceof g||r===v||r===S||n===t.body.length-1?r:Se(e,t,n+1)}async function xe(e,t){if(null===t.argument)return new g(x);const n=await re(e,t.argument);return new g(n)}async function Fe(e,n){const r=t(n.id);return e.globalScope[r]={value:new $(n,e)},x}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},x}async function Me(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 x}async function ke(e,t,n){return n>=t.declarations.length?x:(await Oe(e,t.declarations[n]),n===t.declarations.length-1||await ke(e,t,n+1),x)}async function Oe(e,n){let r=null;if(r=null===n.init?null:await re(e,n.init),null!==e.localScope){if(r===x&&(r=null),"Identifier"!==n.id.type)throw new s(e,c.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,c.InvalidIdentifier,n);const o=t(n.id);r===x&&(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,c.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 z)return i(n,t.property.name,e,t);if(n instanceof te){if(!n.hasGlobal(t.property.name))throw new s(e,c.InvalidIdentifier,t);return n.global(t.property.name)}throw new s(e,c.InvalidMemberAccessKey,t)}throw new s(e,c.InvalidMemberAccessKey,t)}let r=await re(e,t.property);if(n instanceof l||k(n)){if(Y(r))return n.field(r);throw new s(e,c.InvalidMemberAccessKey,t)}if(n instanceof te){if(Y(r))return n.global(r);throw new s(e,c.InvalidMemberAccessKey,t)}if(n instanceof z){if(Y(r))return i(n,r,e,t);throw new s(e,c.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,c.OutOfBounds,t);return n[r]}throw new s(e,c.InvalidMemberAccessKey,t)}if(M(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,c.OutOfBounds,t);return n.get(r)}throw new s(e,c.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,c.OutOfBounds,t);return n[r]}throw new s(e,c.InvalidMemberAccessKey,t)}throw new s(e,c.InvalidMemberAccessKey,t)}async function Re(e,t){const n=await re(e,t.argument);if(T(n)){if("!"===t.operator)return!n;if("-"===t.operator)return-1*R(n);if("+"===t.operator)return 1*R(n);if("~"===t.operator)return~R(n);throw new s(e,c.UnsupportedUnaryOperator,t)}if("-"===t.operator)return-1*R(n);if("+"===t.operator)return 1*R(n);if("~"===t.operator)return~R(n);throw new s(e,c.UnsupportedUnaryOperator,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(b(n[r]))throw new s(e,c.NoFunctionInArray,t);n[r]===x&&(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 B(R(n),R(r),t.operator);case"==":return I(n,r);case"!=":return!I(n,r);case"<":case">":case"<=":case">=":return N(n,r,t.operator);case"+":return Y(n)||Y(r)?A(n)+A(r):R(n)+R(r);case"-":return R(n)-R(r);case"*":return R(n)*R(r);case"/":return R(n)/R(r);case"%":return R(n)%R(r);default:throw new s(e,c.UnsupportedOperator,t)}}async function Ne(e,t){const n=await re(e,t.left);if(!T(n))throw new s(e,c.LogicalExpressionOnlyBoolean,t);switch(t.operator){case"||":{if(!0===n)return n;const r=await re(e,t.right);if(T(r))return r;throw new s(e,c.LogicExpressionOrAnd,t)}case"&&":{if(!1===n)return n;const r=await re(e,t.right);if(T(r))return r;throw new s(e,c.LogicExpressionOrAnd,t)}default:throw new s(e,c.LogicExpressionOrAnd,t)}}function Be(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,c.InvalidIdentifier,n)}async function Ee(e,n){if("MemberExpression"===n.callee.type){const t=await re(e,n.callee.object);if(!(t instanceof te))throw new s(e,c.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,c.FunctionNotFound,n);const o=t.global(r);if(!b(o))throw new s(e,c.CallNonFunction,n);return o.call(e,n)}if("Identifier"!==n.callee.type)throw new s(e,c.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,c.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,c.CallNonFunction,n)}throw new s(e,c.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(b(o))throw new s(e,c.NoFunctionInTemplateLiteral,t);n+=A(o)}r++}return n}async function Ke(e,t){F(null===t.arguments?[]:t.arguments,3,3,e,t);const n=await re(e,t.arguments[0]);if(!1===T(n))throw new s(e,c.BooleanConditionRequired,t);return re(e,n?t.arguments[1]:t.arguments[2])}async function Ue(e,t){F(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,c.WrongNumberOfParameters,t);if(2===t.arguments.length)return re(e,t.arguments[1]);if((t.arguments.length-1)%2==0)throw new s(e,c.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(I(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,c.WrongNumberOfParameters,t);if(t.arguments.length%2==0)throw new s(e,c.WrongNumberOfParameters,t);const n=await re(e,t.arguments[0]);if(!1===T(n))throw new s(e,c.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===T(o))throw new s(e,c.ModuleExportNotFound,t.arguments[n+2]);return qe(e,t,n+2,o)}function Pe(){const e=Object.create(null);U(e,X),W(e,X),Z(e,X,Be),q(e,X),L(e,X),P(e,X),G({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(){const e=new l({newline:"\n",tab:"\t",singlequote:"'",doublequote:'"',forwardslash:"/",backwardslash:"\\"});e.immutable=!1,this.textformatting={value:e}};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 p(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:Be};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 p(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 p(t[o])};for(const o in e)r[o]={value:_(e[o])?f.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}},u=await ve(l,t);if(u instanceof g||u instanceof m){const e=u.value;if(y(e))return null;if(b(e))throw new s(l,c.IllegalResult,null);return e}if(y(u))return null;if(u===v)throw new s(l,c.IllegalResult,null);if(u===S)throw new s(l,c.IllegalResult,null);throw new s(l,c.NeverReach,null)}ze([K]),ze([D]);export{_e as executeScript,ze 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.33/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{getGeometryKeys as l,geometryMember as o,getNestedOptionalValue as a}from"./containerUtils.js";import i from"./Dictionary.js";import{ArcadeExecutionError as s,ExecutionErrorCodes as u,ArcadeCompilationError as c,ArcadeUncompilableError as p}from"./executionError.js";import d from"./Feature.js";import{ArcadeFunction as f,ScopeMarshalledFunction as m,wrapModuleScopedResponse as g,NativeFunction as h}from"./FunctionWrapper.js";import{i as y,u as w,R as v,I as b,v as $,w as S,x,m as F,y as C,q as M,l as A,f as O,t as k,z as I,A as j,B as N,n as E}from"../chunks/languageUtils.js";import{addFunctionDeclaration as B}from"./treeAnalysis.js";import{A as R}from"../chunks/aiServices.js";import{A as _}from"../chunks/array.js";import{registerFunctions as D}from"./functions/date.js";import{registerFunctions as G}from"./functions/feature.js";import{registerFunctions as L}from"./functions/geometry.js";import{registerFunctions as U}from"./functions/geomsync.js";import{registerFunctions as K}from"./functions/maths.js";import{registerFunctions as P}from"./functions/stats.js";import{registerFunctions as W}from"./functions/string.js";import{neverReached as V}from"../core/compilerUtils.js";import{isPromiseLike as q}from"../core/promiseUtils.js";import T from"../geometry/Geometry.js";import Z from"../geometry/SpatialReference.js";import{isGraphic as z,isNumber as J,isArray as Y,isString as H,isBoolean as Q}from"../support/guards.js";function X(e){return e.symbols.symbolCounter++,`_T${e.symbols.symbolCounter}`}function ee(e){return e.symbols.symbolCounter++,`_Tvar${e.symbols.symbolCounter}`}function ne(e,n,t,r=u.InvalidIdentifier){const l=e.localScope?.variables.get(n);if(null!=l)return{type:"local",var:l};if(e.globalScope.provided.has(n))return{type:"global",var:n};const o=e.globalScope.variables.get(n);if(null!=o)return{type:"global",var:o};if(null!=e.localScope){const r=e.undeclaredGlobalsInFunctions.get(n);if(null!=r)return{type:"undeclared-global",var:r.mangledName};const l={mangledName:X(e),node:t};return e.undeclaredGlobalsInFunctions.set(n,l),{type:"undeclared-global",var:l.mangledName}}throw new c(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 s(e,u.WrongNumberOfParameters,null);return this.fn(...n)}}call(e,n){return this.fn(...n.arguments)}marshalledCall(e,n,t,r){return r(e,n,((n,l,o)=>{o=o.map((n=>!y(n)||n instanceof m?n:g(n,e,r)));const a=this.call(t,{arguments:o});return q(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 c(null,u.Unrecognized,n)}}function ae(e,n){switch(n.type){case"EmptyStatement":return"lc.voidOperation";case"VariableDeclaration":return Me(e,n);case"BlockStatement":return be(e,n);case"FunctionDeclaration":return Ce(e,n);case"ImportDeclaration":return Se(e,n);case"ExportNamedDeclaration":return xe(e,n);case"ReturnStatement":return $e(e,n);case"IfStatement":return ve(e,n);case"ExpressionStatement":return ye(e,n);case"BreakStatement":return"break";case"ContinueStatement":return"continue";case"ForStatement":return fe(e,n);case"ForInStatement":return pe(e,n);case"ForOfStatement":return de(e,n);case"WhileStatement":return ge(e,n);default:throw new c(null,u.Unrecognized,n)}}function ie(e,n){let t="lang.dictionary([";for(let r=0;r<n.properties.length;r++){const l=n.properties[r];let o;"Identifier"===l.key.type?(Fe(l.key.name),o="'"+l.key.name+"'"):o=oe(e,l.key);r>0&&(t+=","),t+="lang.strCheck("+o+",'ObjectExpression'),lang.aCheck("+oe(e,l.value)+", 'ObjectExpression')"}return t+="])",t}function se(e,n,t,r,l=(e,n)=>`${e} = ${n}`){const o=ee(e),a=ee(e);return[`var ${o} = ${t};`,`for (var ${a} = 0; ${a} < ${o}; ${a}++) {`,` ${l(n,a)}`,` ${ae(e,r)}`,"}","lastStatement = lc.voidOperation;"].join("\n")}function ue(e,n,t,r,l=e=>e){const o=ee(e),a=ee(e);return[`var ${o} = ${t};`,`for (var ${a} of ${o}) {`,` ${n} = ${l(a)};`,` ${ae(e,r)}`,"}","lastStatement = lc.voidOperation;"].join("\n")}function ce(e,n,t,r){const l=ee(e);return[`var ${l} = ${t}.iterator(runtimeCtx.abortSignal);`,`while ((${n} = lang.graphicToFeature(yield ${l}.next(), ${t}, runtimeCtx)) != null) {`,` ${ae(e,r)}`,"}","lastStatement = lc.voidOperation;"].join("\n")}function pe(e,t){const r=ee(e);let l="var "+r+" = "+oe(e,t.right)+";\n";"VariableDeclaration"===t.left.type&&(l+=ae(e,t.left));const o=n("VariableDeclaration"===t.left.type?t.left.declarations[0].id:t.left);Fe(o);const a=ne(e,o,t.left);let i;switch(a.type){case"local":i=`lscope['${a.var}']`;break;case"global":i=`gscope['${a.var}']`;break;case"undeclared-global":i=`gscope['${a.var}']`,l+="lang.chkAssig('"+a.var+"',runtimeCtx); \n";break;default:throw V(a.type),new c(null,u.NeverReach,t.left)}return l+="if ("+r+"===null) { lastStatement = lc.voidOperation; }\n ",l+="else if (lc.isArray("+r+") || lc.isString("+r+")) {\n",l+=se(e,i,`${r}.length`,t.body),l+="}\n",l+="else if (lc.isImmutableArray("+r+")) {\n",l+=se(e,i,`${r}.length()`,t.body),l+="}\n",l+="else if (( "+r+" instanceof lang.Dictionary) || lc.isDictionaryLike("+r+")) {\n",l+=ue(e,i,`${r}.keys()`,t.body),l+="}\n",e.isAsync&&(l+="else if (lc.isFeatureSet("+r+")) {\n",l+=ce(e,i,r,t.body),l+="}\n"),l+=`else if (lc.isGeometry(${r})) {\n`,l+=ue(e,i,`lang.getGeometryKeys(${r})`,t.body),l+="}\n",l+="else { lastStatement = lc.voidOperation; } \n",l}function de(e,t){const r=ee(e);let l="var "+r+" = "+oe(e,t.right)+";\n";"VariableDeclaration"===t.left.type&&(l+=ae(e,t.left));const o=n("VariableDeclaration"===t.left.type?t.left.declarations[0].id:t.left);Fe(o);const a=ne(e,o,t.left);let i;switch(a.type){case"local":i=`lscope['${a.var}']`;break;case"global":i=`gscope['${a.var}']`;break;case"undeclared-global":i=`gscope['${a.var}']`,l+="lang.chkAssig('"+a.var+"',runtimeCtx); \n";break;default:throw V(a.type),new c(null,u.NeverReach,t.left)}return l+="if ("+r+"===null) { lastStatement = lc.voidOperation; }\n ",l+="else if (lc.isArray("+r+") || lc.isString("+r+")) {\n",l+=se(e,i,`${r}.length`,t.body,((e,n)=>[`if (${n} >= ${r}.length) {`,` lang.error('${u.OutOfBounds}');`,"}",`${e} = ${r}[${n}];`].join("\n"))),l+="}\n",l+="else if (lc.isImmutableArray("+r+")) {\n",l+=se(e,i,`${r}.length()`,t.body,((e,n)=>`${e} = ${r}.get(${n});`)),l+="}\n",l+="else if (( "+r+" instanceof lang.Dictionary) || lc.isDictionaryLike("+r+")) {\n",l+=ue(e,i,`${r}.keys()`,t.body,(e=>`lang.entry(${e}, ${r}.field(${e}))`)),l+="}\n",e.isAsync&&(l+="else if (lc.isFeatureSet("+r+")) {\n",l+=ce(e,i,r,t.body),l+="}\n"),l+=`else if (lc.isGeometry(${r})) {\n`,l+=ue(e,i,`lang.getGeometryKeys(${r})`,t.body,(e=>`lang.entry(${e}, lang.geometryMember(${r}, ${e}, runtimeCtx, null, 1))`)),l+="}\n",l+="else { lastStatement = lc.voidOperation; } \n",l}function fe(e,n){let t="lastStatement = lc.voidOperation; \n";null!==n.init&&("VariableDeclaration"===n.init.type?t+=ae(e,n.init):t+=oe(e,n.init)+"; ");const r=ee(e),l=ee(e);return t+="var "+r+" = true; ",t+="\n do { ",null!==n.update&&(t+=" if ("+r+"===false) {\n "+oe(e,n.update)+" \n}\n "+r+"=false; \n"),null!==n.test&&(t+="var "+l+" = "+oe(e,n.test)+"; ",t+="if ("+l+"===false) { break; } else if ("+l+"!==true) { lang.error('"+u.BooleanConditionRequired+"'); }\n"),t+=ae(e,n.body),null!==n.update&&(t+="\n "+oe(e,n.update)),t+="\n"+r+" = true; \n} while(true); lastStatement = lc.voidOperation; ",t}function me(e,t){if("CallExpression"===t.argument.type)throw new c(null,u.NeverReach,t);let r;if("MemberExpression"===t.argument.type){const n=oe(e,t.argument.object);return!0===t.argument.computed?r=oe(e,t.argument.property):(Fe(t.argument.property.name),r="'"+t.argument.property.name+"'"),"lang.memberupdate("+n+","+r+",'"+t.operator+"',"+t.prefix+")"}const l=n(t.argument);Fe(l);const o=ne(e,l,t.argument);switch(o.type){case"local":return`lang.update(lscope, '${o.var}', '${t.operator}', ${t.prefix})`;case"global":return`lang.update(gscope, '${o.var}', '${t.operator}', ${t.prefix})`;case"undeclared-global":return`lang.update(gscope, lang.chkAssig('${o.var}',runtimeCtx), '${t.operator}', ${t.prefix})`;default:throw V(o.type),new c(null,u.NeverReach,t.argument)}}function ge(e,n){let t="lastStatement = lc.voidOperation; \n";const r=ee(e);return t+=`\n var ${r} = true;\n do {\n ${r} = ${oe(e,n.test)};\n if (${r}==false) {\n break;\n }\n if (${r}!==true) {\n lang.error('${u.BooleanConditionRequired}');\n }\n ${ae(e,n.body)}\n }\n while (${r} !== false);\n lastStatement = lc.voidOperation;\n `,t}function he(e,t){const r=oe(e,t.right);if("MemberExpression"===t.left.type){let n;const l=oe(e,t.left.object);return!0===t.left.computed?n=oe(e,t.left.property):(n="'"+t.left.property.name+"'",Fe(t.left.property.name)),"lang.assignmember("+l+","+n+",'"+t.operator+"',"+r+")"}const l=n(t.left);Fe(l);const o=ne(e,l,t.left);switch(o.type){case"local":return`lscope['${o.var}']=lang.assign(${r},'${t.operator}', lscope['${o.var}'])`;case"global":return`gscope['${o.var}']=lang.assign(${r},'${t.operator}', gscope['${o.var}'])`;case"undeclared-global":return`gscope[lang.chkAssig('${o.var}',runtimeCtx)]=lang.assign(${r},'${t.operator}', gscope['${o.var}'])`;default:throw V(o.type),new c(null,u.NeverReach,t.left)}}function ye(e,n){return"AssignmentExpression"===n.expression.type?"lastStatement = lc.voidOperation; "+oe(e,n.expression)+"; \n ":"lastStatement = "+oe(e,n.expression)+"; "}function we(e,n){return"BlockStatement"===n.type?ae(e,n):"ReturnStatement"===n.type||"BreakStatement"===n.type||"ContinueStatement"===n.type?ae(e,n)+"; ":"ExpressionStatement"===n.type?ae(e,n):ae(e,n)+"; "}function ve(e,n){return`if (lang.mustBoolean(${oe(e,n.test)}, runtimeCtx) === true) {\n ${we(e,n.consequent)}\n } `+(null!==n.alternate?"IfStatement"===n.alternate.type?" else "+ve(e,n.alternate):` else {\n ${we(e,n.alternate)}\n }\n`:" else {\n lastStatement = lc.voidOperation;\n }\n")}function be(e,n){let t="";for(let r=0;r<n.body.length;r++)"EmptyStatement"!==n.body[r].type&&("ReturnStatement"===n.body[r].type||"BreakStatement"===n.body[r].type||"ContinueStatement"===n.body[r].type?t+=ae(e,n.body[r])+"; \n":t+=ae(e,n.body[r])+" \n");return t}function $e(e,n){if(null===n.argument)return"return lc.voidOperation";return"return "+oe(e,n.argument)}function Se(e,t){const r=n(t.specifiers[0].local);Fe(r);const l=e.libraryResolver?.loadLibrary(r),o=X(e);void 0===e.moduleFactory[l.uri]&&(e.moduleFactory[l.uri]=en(l.syntax,{moduleFactory:e.moduleFactory,libraryResolver:e.libraryResolver},e.isAsync)),e.moduleFactoryMap[o]=l.uri;let a="";a=e.isAsync?"(yield lang.loadModule('"+o+"', runtimeCtx) ); ":"lang.loadModule('"+o+"', runtimeCtx); ";const i=te(e,r);switch(i.type){case"global":return`gscope['${i.var}']=${a}`;case"resolved-undeclared-global":return`gscope[lang.setAssig('${i.var}', runtimeCtx)]=${a}`;default:throw new c(null,u.NeverReach,t.specifiers[0].local)}}function xe(e,t){const r=ae(e,t.declaration);if("FunctionDeclaration"===t.declaration.type)e.exports[n(t.declaration.id)]="function";else if("VariableDeclaration"===t.declaration.type)for(const l of t.declaration.declarations)e.exports[n(l.id)]="variable";return r}function Fe(e){if("iif"===e)throw new p;if("decode"===e)throw new p;if("when"===e)throw new p;if("defaultvalue"===e)throw new p}function Ce(e,t){const r=n(t.id);Fe(r);const l=te(e,r),o={isAsync:e.isAsync,exports:e.exports,undeclaredGlobalsInFunctions:e.undeclaredGlobalsInFunctions,moduleFactory:e.moduleFactory,moduleFactoryMap:e.moduleFactoryMap,libraryResolver:e.libraryResolver,symbols:e.symbols,mangleMap:e.mangleMap,localScope:{variables:new Map},depthCounter:e.depthCounter,globalScope:e.globalScope};let a="new lang.UserDefinedCompiledFunction( lang.functionDepthchecker(function() { var lastStatement = lc.voidOperation; \n var lscope = runtimeCtx.localStack[runtimeCtx.localStack.length-1];\n";for(let i=0;i<t.params.length;i++){const e=n(t.params[i]);Fe(e);const r=te(o,e);if("local"!==r.type)throw new c(null,u.NeverReach,t.params[i]);a+=`lscope['${r.var}']=arguments[${i.toString()}];\n`}switch(!0===e.isAsync?(a+="return lang.__awaiter(this, void 0, void 0, function* () {\n",a+=be(o,t.body)+"\n return lastStatement; ",a+="}); }",a+=", runtimeCtx),"+t.params.length+")",a+="\n lastStatement = lc.voidOperation; \n"):(a+=be(o,t.body)+"\n return lastStatement; }, runtimeCtx),"+t.params.length+")",a+="\n lastStatement = lc.voidOperation; \n"),l.type){case"global":return`gscope['${l.var}']=${a}`;case"resolved-undeclared-global":return`gscope[lang.setAssig('${l.var}', runtimeCtx)]=${a}`;default:throw new c(null,u.NeverReach,t.id)}}function Me(e,n){const t=[];for(let r=0;r<n.declarations.length;r++)t.push(Ae(e,n.declarations[r]));return t.join("\n")+" \n lastStatement= lc.voidOperation; \n"}function Ae(e,t){const r=null===t.init?"null":oe(e,t.init),l=n(t.id);Fe(l);const o=te(e,l);switch(o.type){case"local":return`lscope['${o.var}']=${r};`;case"global":return`gscope['${o.var}']=${r};`;case"resolved-undeclared-global":return`gscope[lang.setAssig('${o.var}', runtimeCtx)]=${r};`;default:throw V(o.type),new c(null,u.NeverReach,t.id)}}function Oe(e,n){try{let t;return!0===n.computed?t=oe(e,n.property):(Fe(n.property.name),t="'"+n.property.name+"'"),"lang.member("+oe(e,n.object)+","+t+")"}catch(t){throw t}}function ke(e,n){try{return"lang.unary("+oe(e,n.argument)+",'"+n.operator+"')"}catch(t){throw t}}function Ie(e,n){try{const t=[];for(let r=0;r<n.elements.length;r++)"Literal"===n.elements[r].type?t.push(oe(e,n.elements[r])):t.push("lang.aCheck("+oe(e,n.elements[r])+",'ArrayExpression')");return"["+t.join(",")+"]"}catch(t){throw t}}function je(e,n){try{const t=[];let r=0;for(const l of n.quasis)t.push(l.value?JSON.stringify(l.value.cooked):JSON.stringify("")),!1===l.tail&&(t.push(n.expressions[r]?"lang.castString(lang.aCheck("+oe(e,n.expressions[r])+", 'TemplateLiteral'))":""),r++);return"(["+t.join(",")+"]).join('')"}catch(t){throw t}}function Ne(e,n){try{return"lang.binary("+oe(e,n.left)+","+oe(e,n.right)+",'"+n.operator+"')"}catch(t){throw t}}function Ee(e,n){try{if("AssignmentExpression"===n.left.type||"UpdateExpression"===n.left.type)throw new c(null,u.LogicalExpressionOnlyBoolean,n);if("AssignmentExpression"===n.right.type||"UpdateExpression"===n.right.type)throw new c(null,u.LogicalExpressionOnlyBoolean,n);if("&&"===n.operator||"||"===n.operator)return"(lang.logicalCheck("+oe(e,n.left)+") "+n.operator+" lang.logicalCheck("+oe(e,n.right)+"))";throw new c(null,u.LogicExpressionOrAnd,null)}catch(t){throw t}}function Be(e,t){const r=n(t);Fe(r);const l=ne(e,r,t);switch(l.type){case"local":return`lscope['${l.var}']`;case"global":return`gscope['${l.var}']`;case"undeclared-global":return`gscope[lang.chkAssig('${l.var}',runtimeCtx)]`;default:throw V(l.type),new c(null,u.NeverReach,t)}}function Re(e,t){try{if("MemberExpression"===t.callee.type){let n;!0===t.callee.computed?n=oe(e,t.callee.property):(Fe(t.callee.property.name),n="'"+t.callee.property.name+"'");let r="[";for(let l=0;l<t.arguments.length;l++)l>0&&(r+=", "),r+=oe(e,t.arguments[l]);return r+="]",e.isAsync?"(yield lang.callModuleFunction("+oe(e,t.callee.object)+","+r+","+n+",runtimeCtx))":"lang.callModuleFunction("+oe(e,t.callee.object)+","+r+","+n+",runtimeCtx)"}if("Identifier"!==t.callee.type)throw new c(null,u.FunctionNotFound,t);const r=n(t.callee);if("iif"===r)return _e(e,t);if("when"===r)return Ge(e,t);if("defaultvalue"===r)return De(e,t);if("decode"===r)return Le(e,t);const l=ne(e,r,t.callee,u.FunctionNotFound);let o;switch(l.type){case"local":o=`lscope['${l.var}']`;break;case"global":o=`gscope['${l.var}']`;break;case"undeclared-global":o=`gscope[lang.chkAssig('${l.var}',runtimeCtx)]`;break;default:throw V(l.type),new c(null,u.NeverReach,t.callee)}let a="[";for(let n=0;n<t.arguments.length;n++)n>0&&(a+=", "),a+=oe(e,t.arguments[n]);return a+="]",e.isAsync?"(yield lang.callfunc("+o+","+a+",runtimeCtx) )":"lang.callfunc("+o+","+a+",runtimeCtx)"}catch(r){throw r}}function _e(e,n){try{if(3!==n.arguments.length)throw new c(null,u.WrongNumberOfParameters,n);const t=ee(e);return`${e.isAsync?"(yield (function() { \n return lang.__awaiter(this, void 0, void 0, function* () {":"function() {"}\n var ${t} = ${oe(e,n.arguments[0])};\n\n if (${t} === true) {\n return ${oe(e,n.arguments[1])};\n }\n else if (${t} === false) {\n return ${oe(e,n.arguments[2])};\n }\n else {\n lang.error('ExecutionErrorCodes.BooleanConditionRequired');\n }\n ${e.isAsync?"})}()))":"}()"}`}catch(t){throw t}}function De(e,n){try{if(n.arguments.length<2||n.arguments.length>3)throw new c(null,u.WrongNumberOfParameters,n);const t=ee(e),r=ee(e);return 3===n.arguments.length?`${e.isAsync?"(yield (function() { \n return lang.__awaiter(this, void 0, void 0, function* () {":"function() {"}\n var ${t} = ${oe(e,n.arguments[0])};\n var ${r} = ${oe(e,n.arguments[1])};\n ${t} = lang.getNestedOptionalValue(${t}, ${r});\n return ${t} != null && ${t} !== "" ? ${t} : ${oe(e,n.arguments[2])};\n ${e.isAsync?"})}()))":"}()"}`:`${e.isAsync?"(yield (function() { \n return lang.__awaiter(this, void 0, void 0, function* () {":"function() {"}\n var ${t} = ${oe(e,n.arguments[0])};\n if (${t} === null) {\n return ${oe(e,n.arguments[1])};\n }\n if (${t} === "") {\n return ${oe(e,n.arguments[1])};\n }\n if (${t} === undefined) {\n return ${oe(e,n.arguments[1])};\n }\n return ${t};\n ${e.isAsync?"})}()))":"}()"}`}catch(t){throw t}}function Ge(e,n){try{if(n.arguments.length<3)throw new c(null,u.WrongNumberOfParameters,n);if(n.arguments.length%2==0)throw new c(null,u.WrongNumberOfParameters,n);const t=ee(e);let r="var ";for(let l=0;l<n.arguments.length-1;l+=2)r+=`${t} = lang.mustBoolean(${oe(e,n.arguments[l])}, runtimeCtx);\n if (${t} === true ) {\n return ${oe(e,n.arguments[l+1])}\n }\n`;return`${e.isAsync?"(yield (function() { \n return lang.__awaiter(this, void 0, void 0, function* () {":"function() {"}\n ${r}\n return ${oe(e,n.arguments[n.arguments.length-1])}\n ${e.isAsync?"})}()))":"}()"}`}catch(t){throw t}}function Le(e,n){try{if(n.arguments.length<2)throw new c(null,u.WrongNumberOfParameters,n);if(2===n.arguments.length)return`(${oe(e,n.arguments[1])})`;if((n.arguments.length-1)%2==0)throw new c(null,u.WrongNumberOfParameters,n);const t=ee(e),r=ee(e);let l="var ";for(let o=1;o<n.arguments.length-1;o+=2)l+=`${r} = ${oe(e,n.arguments[o])};\n if (lang.binary(${r}, ${t}, "==") === true ) {\n return ${oe(e,n.arguments[o+1])}\n }\n`;return`${e.isAsync?"(yield (function() { \n return lang.__awaiter(this, void 0, void 0, function* () {":"function() {"}\n var ${t} = ${oe(e,n.arguments[0])};\n ${l}\n return ${oe(e,n.arguments[n.arguments.length-1])}\n ${e.isAsync?"})}()))":"}()"}`}catch(t){throw t}}function Ue(e,n){try{return le(e,n,((e,n)=>{throw new s(e,u.Unrecognized,n)}))}catch(t){throw t}}function Ke(e){const n=function(){this._SymbolsMap=new Set(["textformatting","infinity","pi"]);const e=new i({newline:"\n",tab:"\t",singlequote:"'",doublequote:'"',forwardslash:"/",backwardslash:"\\"});e.immutable=!1,this.textformatting=e,this.infinity=Number.POSITIVE_INFINITY,this.pi=Math.PI};n.prototype=Object.create(null),n.provided=new Set(["textformatting","infinity","pi"]);for(const[t,r]of Object.entries(e))n.prototype[t]=new h(r),n.provided.add(t);return n}function Pe(){const e=Object.create(null);D(e,le),W(e,le),G(e,le,ze),K(e,le),L(e,le),P(e,le),e.iif=Ue,e.decode=Ue,e.when=Ue,e.defaultvalue=Ue;const n=Ke(e);U(e,le);return{ScopeSync:Ke(e),ScopeAsync:n}}const{ScopeSync:We,ScopeAsync:Ve}=Pe();function qe(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 h(l),We.provided.add(r);else for(const[r,l]of Object.entries(t.functions))Ve.prototype[r]=new h(l),Ve.provided.add(r);for(const r of t.signatures)B(r,n)}function Te(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 Ze(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),z(e)?l[o]=d.createFromGraphic(e,r??null):l[o]=e}return l}function ze(e,n){const t=n.name;if("_SymbolsMap"===t)throw new s(e,u.InvalidIdentifier,null);if(e.localStack.length>0){const n=e.localStack[e.localStack.length-1];if(!t.toLowerCase().startsWith("_t")&&void 0!==n[t])return n[t];const r=e.mangleMap[t];if(void 0!==r&&void 0!==n[r])return n[r]}if(!t.toLowerCase().startsWith("_t")&&void 0!==e.globalScope[t])return e.globalScope[t];if(e.globalScope._SymbolsMap.has(t))return e.globalScope[t];const r=e.mangleMap[t];return void 0!==r?e.globalScope[r]:void 0}qe([_],"sync"),qe([_],"async"),qe([R],"async");const Je={isNumber:e=>J(e),isArray:e=>Y(e),isImmutableArray:e=>F(e),isDictionaryLike:e=>C(e),isString:e=>H(e),isDictionary:e=>M(e),isGeometry:e=>A(e),getGeometryKeys:e=>l(e),geometryMember:(e,n,t,r,l=1)=>o(e,n,t,r,l),error(e){throw new s(null,e,null)},__awaiter(e,n,t,r){const l=r.apply(e,n||[]);let o=l.next();for(;!o.done&&!q(o.value);)o=l.next(o.value);return o.done?o.value:new Promise(((e,n)=>{function t(r){for(;!r.done;){if(q(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 s(null,u.MaximumCallDepth,null);const t=e.apply(this,arguments);return q(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 s(n,u.InvalidIdentifier,null);return e},mustBoolean(e,n){if(!0===e||!1===e)return e;throw new s(n,u.BooleanConditionRequired,null)},setAssig:(e,n)=>(n.gdefs[e]=1,e),castString:e=>O(e),aCheck(e,n){if(y(e)){if("ArrayExpression"===n)throw new s(null,u.NoFunctionInArray,null);if("ObjectExpression"===n)throw new s(null,u.NoFunctionInDictionary,null);throw new s(null,u.NoFunctionInTemplateLiteral,null)}return e===$?null:e},Dictionary:i,Feature:d,UserDefinedCompiledFunction:re,dictionary(e){const n={},t=new Map;for(let l=0;l<e.length;l+=2){if(y(e[l+1]))throw new s(null,u.NoFunctionInDictionary,null);if(!1===H(e[l]))throw new s(null,u.KeyMustBeString,null);let r=e[l].toString();const o=r.toLowerCase();t.has(o)?r=t.get(o):t.set(o,r),e[l+1]===$?n[r]=null:n[r]=e[l+1]}const r=new i(n);return r.immutable=!1,r},entry:(e,n)=>new i({key:e,value:n}),strCheck(e){if(!1===H(e))throw new s(null,u.KeyMustBeString,null);return e},unary(e,n){if(Q(e)){if("!"===n)return!e;if("-"===n)return-1*k(e);if("+"===n)return 1*k(e);if("~"===n)return~k(e);throw new s(null,u.UnsupportedUnaryOperator,null)}if("-"===n)return-1*k(e);if("+"===n)return 1*k(e);if("~"===n)return~k(e);throw new s(null,u.UnsupportedUnaryOperator,null)},logicalCheck(e){if(!1===Q(e))throw new s(null,u.LogicExpressionOrAnd,null);return e},logical(e,n,t){if(Q(e)&&Q(n))switch(t){case"||":return e||n;case"&&":return e&&n;default:throw new s(null,u.LogicExpressionOrAnd,null)}throw new s(null,u.LogicExpressionOrAnd,null)},binary(e,n,t){switch(t){case"|":case"<<":case">>":case">>>":case"^":case"&":return N(k(e),k(n),t);case"==":case"=":return j(e,n);case"!=":return!j(e,n);case"<":case">":case"<=":case">=":return I(e,n,t);case"+":return H(e)||H(n)?O(e)+O(n):k(e)+k(n);case"-":return k(e)-k(n);case"*":return k(e)*k(n);case"/":return k(e)/k(n);case"%":return k(e)%k(n);default:throw new s(null,u.UnsupportedOperator,null)}},assign(e,n,t){switch(n){case"=":return e===$?null:e;case"/=":return k(t)/k(e);case"*=":return k(t)*k(e);case"-=":return k(t)-k(e);case"+=":return H(t)||H(e)?O(t)+O(e):k(t)+k(e);case"%=":return k(t)%k(e);default:throw new s(null,u.UnsupportedOperator,null)}},update(e,n,t,r){const l=k(e[n]);return e[n]="++"===t?l+1:l-1,!1===r?l:"++"===t?l+1:l-1},graphicToFeature:(e,n,t)=>null===e?null:d.createFromGraphicLikeObject(e.geometry,e.attributes,n,t.timeZone),memberupdate(e,n,t,r){let l;if(Y(e)){if(!J(n))throw new s(null,u.ArrayAccessorMustBeNumber,null);if(n<0&&(n=e.length+n),n<0||n>=e.length)throw new s(null,u.OutOfBounds,null);l=k(e[n]),e[n]="++"===t?l+1:l-1}else if(e instanceof i){if(!1===H(n))throw new s(null,u.KeyAccessorMustBeString,null);if(!0!==e.hasField(n))throw new s(null,u.FieldNotFound,null,{key:n});l=k(e.field(n)),e.setField(n,"++"===t?l+1:l-1)}else if(E(e)){if(!1===H(n))throw new s(null,u.KeyAccessorMustBeString,null);if(!0!==e.hasField(n))throw new s(null,u.FieldNotFound,null);l=k(e.field(n)),e.setField(n,"++"===t?l+1:l-1)}else{if(F(e))throw new s(null,u.Immutable,null);if(!(e instanceof Xe))throw new s(null,u.InvalidIdentifier,null);if(!1===H(n))throw new s(null,u.ModuleAccessorMustBeString,null);if(!0!==e.hasGlobal(n))throw new s(null,u.ModuleExportNotFound,null);l=k(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(Y(e)){if(!J(n))throw new s(null,u.ArrayAccessorMustBeNumber,null);if(n<0&&(n=e.length+n),n<0||n>e.length)throw new s(null,u.OutOfBounds,null);if(n===e.length){if("="!==t)throw new s(null,u.OutOfBounds,null);e[n]=this.assign(r,t,e[n])}else e[n]=this.assign(r,t,e[n])}else if(e instanceof i){if(!1===H(n))throw new s(null,u.KeyAccessorMustBeString,null);if(!0===e.hasField(n))e.setField(n,this.assign(r,t,e.field(n)));else{if("="!==t)throw new s(null,u.FieldNotFound,null);e.setField(n,this.assign(r,t,null))}}else if(E(e)){if(!1===H(n))throw new s(null,u.KeyAccessorMustBeString,null);if(!0===e.hasField(n))e.setField(n,this.assign(r,t,e.field(n)));else{if("="!==t)throw new s(null,u.FieldNotFound,null);e.setField(n,this.assign(r,t,null))}}else{if(F(e))throw new s(null,u.Immutable,null);if(!(e instanceof Xe))throw new s(null,u.InvalidIdentifier,null);if(!1===H(n))throw new s(null,u.ModuleAccessorMustBeString,null);if(!e.hasGlobal(n))throw new s(null,u.ModuleExportNotFound,null);e.setGlobal(n,this.assign(r,t,e.global(n)))}},member(e,n){if(null===e)throw new s(null,u.MemberOfNull,null);if(e instanceof i||C(e)){if(H(n))return e.field(n);throw new s(null,u.InvalidMemberAccessKey,null)}if(e instanceof T){if(H(n))return o(e,n,null,null);throw new s(null,u.InvalidMemberAccessKey,null)}if(Y(e)){if(J(n)&&isFinite(n)&&Math.floor(n)===n){if(n<0&&(n=e.length+n),n>=e.length||n<0)throw new s(null,u.OutOfBounds,null);return e[n]}throw new s(null,u.InvalidMemberAccessKey,null)}if(H(e)){if(J(n)&&isFinite(n)&&Math.floor(n)===n){if(n<0&&(n=e.length+n),n>=e.length||n<0)throw new s(null,u.OutOfBounds,null);return e[n]}throw new s(null,u.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 s(null,u.OutOfBounds,null);return e.get(n)}throw new s(null,u.InvalidMemberAccessKey,null)}if(e instanceof Xe){if(H(n))return e.global(n);throw new s(null,u.InvalidMemberAccessKey,null)}throw new s(null,u.InvalidMemberAccessKey,null)},callfunc:(e,n,t)=>e.call(t,{arguments:n,preparsed:!0}),loadModule(e,n){const t=n.moduleFactoryMap[e];if(n.moduleSingletons[t])return n.moduleSingletons[t];const r=n.moduleFactory[t]({moduleSingletons:n.moduleSingletons,depthCounter:n.depthCounter,lrucache:n.lrucache,interceptor:n.interceptor,services:n.services,console:n.console,abortSignal:n.abortSignal,timeZone:n.timeZone??null,spatialReference:n.spatialReference});return n.moduleSingletons[t]=r,r},callModuleFunction(e,n,t,r){if(!(e instanceof Xe))throw new s(null,u.FunctionNotFound,null);const l=e.global(t);if(!1===y(l))throw new s(null,u.CallNonFunction,null);return l.call(r,{preparsed:!0,arguments:n})},getNestedOptionalValue:(e,n)=>a(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: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=be(a,n);""===i&&(i="lc.voidOperation; "),a.undeclaredGlobalsInFunctions.size>0&&a.undeclaredGlobalsInFunctions.forEach((e=>{throw new c(null,u.InvalidIdentifier,e.node)}));let p="";p=l?"var runtimeCtx=this.prepare(context, true);\n var lc = this.lc; var lang = this.lang; var gscope=runtimeCtx.globalScope; \nreturn lang.__awaiter(this, void 0, void 0, function* () {\n\n function mainBody() {\n var lastStatement=lc.voidOperation;\n return lang.__awaiter(this, void 0, void 0, function* () {\n"+i+"\n return lastStatement; }); } \n return this.postProcess(yield mainBody()); }); ":"var runtimeCtx=this.prepare(context, false);\n var lc = this.lc; var lang = this.lang; var gscope=runtimeCtx.globalScope; \n function mainBody() {\n var lastStatement=lc.voidOperation;\n "+i+"\n return lastStatement; } \n return this.postProcess(mainBody()); ";const d=a.moduleFactory,f=a.moduleFactoryMap,m=a.exports,g={};let h;for(h in m)g[h]=a.mangleMap[h]??h;const F={lc:w,lang:Je,mangles:a.mangleMap,postProcess(e){if(e instanceof v&&(e=e.value),e instanceof b&&(e=e.value),e===$&&(e=null),e===S)throw new s(null,u.IllegalResult,null);if(e===x)throw new s(null,u.IllegalResult,null);if(y(e))throw new s(null,u.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:d,moduleFactoryMap:f,mangleMap:this.mangles,moduleSingletons:{},exports:m,gdefs:{},exportmangle:g,spatialReference:r,globalScope:l,abortSignal:n.abortSignal??e,services:n.services,console:n.console??Ye,lrucache:n.lrucache,timeZone:n.timeZone??null,interceptor:n.interceptor,depthCounter:{depth:1}}}};return new Function("context",p).bind(F)}async function Qe(){return qe([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(y(n))throw new s(null,u.AssignModuleFunction,null);t[this.moduleContext.exportmangle[r]]=n}global(e){const n=this.moduleContext.globalScope,t=e.toLowerCase(),r=n[this.moduleContext.exportmangle[t]];if(void 0===r)throw new s(null,u.InvalidIdentifier,null);if(y(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:Te(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:w,lang:Je,mangles:o.mangleMap,prepareModule:e=>new Xe(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??Ye,lrucache:n.lrucache,timeZone:n.timeZone??null,interceptor:n.interceptor,depthCounter:n.depthCounter}}};return new Function("context",i).bind(f)}export{re as UserDefinedCompiledFunction,He as compileScript,Qe as enableAsyncSupport,qe 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{getGeometryKeys as l,geometryMember as o,getNestedOptionalValue as a}from"./containerUtils.js";import i from"./Dictionary.js";import{ArcadeExecutionError as s,ExecutionErrorCodes as u,ArcadeCompilationError as c,ArcadeUncompilableError as p}from"./executionError.js";import d from"./Feature.js";import{ArcadeFunction as f,ScopeMarshalledFunction as m,wrapModuleScopedResponse as g,NativeFunction as h}from"./FunctionWrapper.js";import{i as y,u as w,R as v,I as b,v as $,w as S,x,m as F,y as C,q as M,l as A,f as O,t as k,z as I,A as j,B as N,n as E}from"../chunks/languageUtils.js";import{addFunctionDeclaration as B}from"./treeAnalysis.js";import{A as R}from"../chunks/aiServices.js";import{A as _}from"../chunks/array.js";import{registerFunctions as D}from"./functions/date.js";import{registerFunctions as G}from"./functions/feature.js";import{registerFunctions as L}from"./functions/geometry.js";import{registerFunctions as U}from"./functions/geomsync.js";import{registerFunctions as K}from"./functions/maths.js";import{registerFunctions as P}from"./functions/stats.js";import{registerFunctions as W}from"./functions/string.js";import{neverReached as V}from"../core/compilerUtils.js";import{isPromiseLike as q}from"../core/promiseUtils.js";import T from"../geometry/Geometry.js";import Z from"../geometry/SpatialReference.js";import{isGraphic as z,isNumber as J,isArray as Y,isString as H,isBoolean as Q}from"../support/guards.js";function X(e){return e.symbols.symbolCounter++,`_T${e.symbols.symbolCounter}`}function ee(e){return e.symbols.symbolCounter++,`_Tvar${e.symbols.symbolCounter}`}function ne(e,n,t,r=u.InvalidIdentifier){const l=e.localScope?.variables.get(n);if(null!=l)return{type:"local",var:l};if(e.globalScope.provided.has(n))return{type:"global",var:n};const o=e.globalScope.variables.get(n);if(null!=o)return{type:"global",var:o};if(null!=e.localScope){const r=e.undeclaredGlobalsInFunctions.get(n);if(null!=r)return{type:"undeclared-global",var:r.mangledName};const l={mangledName:X(e),node:t};return e.undeclaredGlobalsInFunctions.set(n,l),{type:"undeclared-global",var:l.mangledName}}throw new c(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 s(e,u.WrongNumberOfParameters,null);return this.fn(...n)}}call(e,n){return this.fn(...n.arguments)}marshalledCall(e,n,t,r){return r(e,n,((n,l,o)=>{o=o.map((n=>!y(n)||n instanceof m?n:g(n,e,r)));const a=this.call(t,{arguments:o});return q(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 c(null,u.Unrecognized,n)}}function ae(e,n){switch(n.type){case"EmptyStatement":return"lc.voidOperation";case"VariableDeclaration":return Me(e,n);case"BlockStatement":return be(e,n);case"FunctionDeclaration":return Ce(e,n);case"ImportDeclaration":return Se(e,n);case"ExportNamedDeclaration":return xe(e,n);case"ReturnStatement":return $e(e,n);case"IfStatement":return ve(e,n);case"ExpressionStatement":return ye(e,n);case"BreakStatement":return"break";case"ContinueStatement":return"continue";case"ForStatement":return fe(e,n);case"ForInStatement":return pe(e,n);case"ForOfStatement":return de(e,n);case"WhileStatement":return ge(e,n);default:throw new c(null,u.Unrecognized,n)}}function ie(e,n){let t="lang.dictionary([";for(let r=0;r<n.properties.length;r++){const l=n.properties[r];let o;"Identifier"===l.key.type?(Fe(l.key.name),o="'"+l.key.name+"'"):o=oe(e,l.key);r>0&&(t+=","),t+="lang.strCheck("+o+",'ObjectExpression'),lang.aCheck("+oe(e,l.value)+", 'ObjectExpression')"}return t+="])",t}function se(e,n,t,r,l=(e,n)=>`${e} = ${n}`){const o=ee(e),a=ee(e);return[`var ${o} = ${t};`,`for (var ${a} = 0; ${a} < ${o}; ${a}++) {`,` ${l(n,a)}`,` ${ae(e,r)}`,"}","lastStatement = lc.voidOperation;"].join("\n")}function ue(e,n,t,r,l=e=>e){const o=ee(e),a=ee(e);return[`var ${o} = ${t};`,`for (var ${a} of ${o}) {`,` ${n} = ${l(a)};`,` ${ae(e,r)}`,"}","lastStatement = lc.voidOperation;"].join("\n")}function ce(e,n,t,r){const l=ee(e);return[`var ${l} = ${t}.iterator(runtimeCtx.abortSignal);`,`while ((${n} = lang.graphicToFeature(yield ${l}.next(), ${t}, runtimeCtx)) != null) {`,` ${ae(e,r)}`,"}","lastStatement = lc.voidOperation;"].join("\n")}function pe(e,t){const r=ee(e);let l="var "+r+" = "+oe(e,t.right)+";\n";"VariableDeclaration"===t.left.type&&(l+=ae(e,t.left));const o=n("VariableDeclaration"===t.left.type?t.left.declarations[0].id:t.left);Fe(o);const a=ne(e,o,t.left);let i;switch(a.type){case"local":i=`lscope['${a.var}']`;break;case"global":i=`gscope['${a.var}']`;break;case"undeclared-global":i=`gscope['${a.var}']`,l+="lang.chkAssig('"+a.var+"',runtimeCtx); \n";break;default:throw V(a.type),new c(null,u.NeverReach,t.left)}return l+="if ("+r+"===null) { lastStatement = lc.voidOperation; }\n ",l+="else if (lc.isArray("+r+") || lc.isString("+r+")) {\n",l+=se(e,i,`${r}.length`,t.body),l+="}\n",l+="else if (lc.isImmutableArray("+r+")) {\n",l+=se(e,i,`${r}.length()`,t.body),l+="}\n",l+="else if (( "+r+" instanceof lang.Dictionary) || lc.isDictionaryLike("+r+")) {\n",l+=ue(e,i,`${r}.keys()`,t.body),l+="}\n",e.isAsync&&(l+="else if (lc.isFeatureSet("+r+")) {\n",l+=ce(e,i,r,t.body),l+="}\n"),l+=`else if (lc.isGeometry(${r})) {\n`,l+=ue(e,i,`lang.getGeometryKeys(${r})`,t.body),l+="}\n",l+="else { lastStatement = lc.voidOperation; } \n",l}function de(e,t){const r=ee(e);let l="var "+r+" = "+oe(e,t.right)+";\n";"VariableDeclaration"===t.left.type&&(l+=ae(e,t.left));const o=n("VariableDeclaration"===t.left.type?t.left.declarations[0].id:t.left);Fe(o);const a=ne(e,o,t.left);let i;switch(a.type){case"local":i=`lscope['${a.var}']`;break;case"global":i=`gscope['${a.var}']`;break;case"undeclared-global":i=`gscope['${a.var}']`,l+="lang.chkAssig('"+a.var+"',runtimeCtx); \n";break;default:throw V(a.type),new c(null,u.NeverReach,t.left)}return l+="if ("+r+"===null) { lastStatement = lc.voidOperation; }\n ",l+="else if (lc.isArray("+r+") || lc.isString("+r+")) {\n",l+=se(e,i,`${r}.length`,t.body,((e,n)=>[`if (${n} >= ${r}.length) {`,` lang.error('${u.OutOfBounds}');`,"}",`${e} = ${r}[${n}];`].join("\n"))),l+="}\n",l+="else if (lc.isImmutableArray("+r+")) {\n",l+=se(e,i,`${r}.length()`,t.body,((e,n)=>`${e} = ${r}.get(${n});`)),l+="}\n",l+="else if (( "+r+" instanceof lang.Dictionary) || lc.isDictionaryLike("+r+")) {\n",l+=ue(e,i,`${r}.keys()`,t.body,(e=>`lang.entry(${e}, ${r}.field(${e}))`)),l+="}\n",e.isAsync&&(l+="else if (lc.isFeatureSet("+r+")) {\n",l+=ce(e,i,r,t.body),l+="}\n"),l+=`else if (lc.isGeometry(${r})) {\n`,l+=ue(e,i,`lang.getGeometryKeys(${r})`,t.body,(e=>`lang.entry(${e}, lang.geometryMember(${r}, ${e}, runtimeCtx, null, 1))`)),l+="}\n",l+="else { lastStatement = lc.voidOperation; } \n",l}function fe(e,n){let t="lastStatement = lc.voidOperation; \n";null!==n.init&&("VariableDeclaration"===n.init.type?t+=ae(e,n.init):t+=oe(e,n.init)+"; ");const r=ee(e),l=ee(e);return t+="var "+r+" = true; ",t+="\n do { ",null!==n.update&&(t+=" if ("+r+"===false) {\n "+oe(e,n.update)+" \n}\n "+r+"=false; \n"),null!==n.test&&(t+="var "+l+" = "+oe(e,n.test)+"; ",t+="if ("+l+"===false) { break; } else if ("+l+"!==true) { lang.error('"+u.BooleanConditionRequired+"'); }\n"),t+=ae(e,n.body),null!==n.update&&(t+="\n "+oe(e,n.update)),t+="\n"+r+" = true; \n} while(true); lastStatement = lc.voidOperation; ",t}function me(e,t){if("CallExpression"===t.argument.type)throw new c(null,u.NeverReach,t);let r;if("MemberExpression"===t.argument.type){const n=oe(e,t.argument.object);return!0===t.argument.computed?r=oe(e,t.argument.property):(Fe(t.argument.property.name),r="'"+t.argument.property.name+"'"),"lang.memberupdate("+n+","+r+",'"+t.operator+"',"+t.prefix+")"}const l=n(t.argument);Fe(l);const o=ne(e,l,t.argument);switch(o.type){case"local":return`lang.update(lscope, '${o.var}', '${t.operator}', ${t.prefix})`;case"global":return`lang.update(gscope, '${o.var}', '${t.operator}', ${t.prefix})`;case"undeclared-global":return`lang.update(gscope, lang.chkAssig('${o.var}',runtimeCtx), '${t.operator}', ${t.prefix})`;default:throw V(o.type),new c(null,u.NeverReach,t.argument)}}function ge(e,n){let t="lastStatement = lc.voidOperation; \n";const r=ee(e);return t+=`\n var ${r} = true;\n do {\n ${r} = ${oe(e,n.test)};\n if (${r}==false) {\n break;\n }\n if (${r}!==true) {\n lang.error('${u.BooleanConditionRequired}');\n }\n ${ae(e,n.body)}\n }\n while (${r} !== false);\n lastStatement = lc.voidOperation;\n `,t}function he(e,t){const r=oe(e,t.right);if("MemberExpression"===t.left.type){let n;const l=oe(e,t.left.object);return!0===t.left.computed?n=oe(e,t.left.property):(n="'"+t.left.property.name+"'",Fe(t.left.property.name)),"lang.assignmember("+l+","+n+",'"+t.operator+"',"+r+")"}const l=n(t.left);Fe(l);const o=ne(e,l,t.left);switch(o.type){case"local":return`lscope['${o.var}']=lang.assign(${r},'${t.operator}', lscope['${o.var}'])`;case"global":return`gscope['${o.var}']=lang.assign(${r},'${t.operator}', gscope['${o.var}'])`;case"undeclared-global":return`gscope[lang.chkAssig('${o.var}',runtimeCtx)]=lang.assign(${r},'${t.operator}', gscope['${o.var}'])`;default:throw V(o.type),new c(null,u.NeverReach,t.left)}}function ye(e,n){return"AssignmentExpression"===n.expression.type?"lastStatement = lc.voidOperation; "+oe(e,n.expression)+"; \n ":"lastStatement = "+oe(e,n.expression)+"; "}function we(e,n){return"BlockStatement"===n.type?ae(e,n):"ReturnStatement"===n.type||"BreakStatement"===n.type||"ContinueStatement"===n.type?ae(e,n)+"; ":"ExpressionStatement"===n.type?ae(e,n):ae(e,n)+"; "}function ve(e,n){return`if (lang.mustBoolean(${oe(e,n.test)}, runtimeCtx) === true) {\n ${we(e,n.consequent)}\n } `+(null!==n.alternate?"IfStatement"===n.alternate.type?" else "+ve(e,n.alternate):` else {\n ${we(e,n.alternate)}\n }\n`:" else {\n lastStatement = lc.voidOperation;\n }\n")}function be(e,n){let t="";for(let r=0;r<n.body.length;r++)"EmptyStatement"!==n.body[r].type&&("ReturnStatement"===n.body[r].type||"BreakStatement"===n.body[r].type||"ContinueStatement"===n.body[r].type?t+=ae(e,n.body[r])+"; \n":t+=ae(e,n.body[r])+" \n");return t}function $e(e,n){if(null===n.argument)return"return lc.voidOperation";return"return "+oe(e,n.argument)}function Se(e,t){const r=n(t.specifiers[0].local);Fe(r);const l=e.libraryResolver?.loadLibrary(r),o=X(e);void 0===e.moduleFactory[l.uri]&&(e.moduleFactory[l.uri]=en(l.syntax,{moduleFactory:e.moduleFactory,libraryResolver:e.libraryResolver},e.isAsync)),e.moduleFactoryMap[o]=l.uri;let a="";a=e.isAsync?"(yield lang.loadModule('"+o+"', runtimeCtx) ); ":"lang.loadModule('"+o+"', runtimeCtx); ";const i=te(e,r);switch(i.type){case"global":return`gscope['${i.var}']=${a}`;case"resolved-undeclared-global":return`gscope[lang.setAssig('${i.var}', runtimeCtx)]=${a}`;default:throw new c(null,u.NeverReach,t.specifiers[0].local)}}function xe(e,t){const r=ae(e,t.declaration);if("FunctionDeclaration"===t.declaration.type)e.exports[n(t.declaration.id)]="function";else if("VariableDeclaration"===t.declaration.type)for(const l of t.declaration.declarations)e.exports[n(l.id)]="variable";return r}function Fe(e){if("iif"===e)throw new p;if("decode"===e)throw new p;if("when"===e)throw new p;if("defaultvalue"===e)throw new p}function Ce(e,t){const r=n(t.id);Fe(r);const l=te(e,r),o={isAsync:e.isAsync,exports:e.exports,undeclaredGlobalsInFunctions:e.undeclaredGlobalsInFunctions,moduleFactory:e.moduleFactory,moduleFactoryMap:e.moduleFactoryMap,libraryResolver:e.libraryResolver,symbols:e.symbols,mangleMap:e.mangleMap,localScope:{variables:new Map},depthCounter:e.depthCounter,globalScope:e.globalScope};let a="new lang.UserDefinedCompiledFunction( lang.functionDepthchecker(function() { var lastStatement = lc.voidOperation; \n var lscope = runtimeCtx.localStack[runtimeCtx.localStack.length-1];\n";for(let i=0;i<t.params.length;i++){const e=n(t.params[i]);Fe(e);const r=te(o,e);if("local"!==r.type)throw new c(null,u.NeverReach,t.params[i]);a+=`lscope['${r.var}']=arguments[${i.toString()}];\n`}switch(!0===e.isAsync?(a+="return lang.__awaiter(this, void 0, void 0, function* () {\n",a+=be(o,t.body)+"\n return lastStatement; ",a+="}); }",a+=", runtimeCtx),"+t.params.length+")",a+="\n lastStatement = lc.voidOperation; \n"):(a+=be(o,t.body)+"\n return lastStatement; }, runtimeCtx),"+t.params.length+")",a+="\n lastStatement = lc.voidOperation; \n"),l.type){case"global":return`gscope['${l.var}']=${a}`;case"resolved-undeclared-global":return`gscope[lang.setAssig('${l.var}', runtimeCtx)]=${a}`;default:throw new c(null,u.NeverReach,t.id)}}function Me(e,n){const t=[];for(let r=0;r<n.declarations.length;r++)t.push(Ae(e,n.declarations[r]));return t.join("\n")+" \n lastStatement= lc.voidOperation; \n"}function Ae(e,t){const r=null===t.init?"null":oe(e,t.init),l=n(t.id);Fe(l);const o=te(e,l);switch(o.type){case"local":return`lscope['${o.var}']=${r};`;case"global":return`gscope['${o.var}']=${r};`;case"resolved-undeclared-global":return`gscope[lang.setAssig('${o.var}', runtimeCtx)]=${r};`;default:throw V(o.type),new c(null,u.NeverReach,t.id)}}function Oe(e,n){try{let t;return!0===n.computed?t=oe(e,n.property):(Fe(n.property.name),t="'"+n.property.name+"'"),"lang.member("+oe(e,n.object)+","+t+")"}catch(t){throw t}}function ke(e,n){try{return"lang.unary("+oe(e,n.argument)+",'"+n.operator+"')"}catch(t){throw t}}function Ie(e,n){try{const t=[];for(let r=0;r<n.elements.length;r++)"Literal"===n.elements[r].type?t.push(oe(e,n.elements[r])):t.push("lang.aCheck("+oe(e,n.elements[r])+",'ArrayExpression')");return"["+t.join(",")+"]"}catch(t){throw t}}function je(e,n){try{const t=[];let r=0;for(const l of n.quasis)t.push(l.value?JSON.stringify(l.value.cooked):JSON.stringify("")),!1===l.tail&&(t.push(n.expressions[r]?"lang.castString(lang.aCheck("+oe(e,n.expressions[r])+", 'TemplateLiteral'))":""),r++);return"(["+t.join(",")+"]).join('')"}catch(t){throw t}}function Ne(e,n){try{return"lang.binary("+oe(e,n.left)+","+oe(e,n.right)+",'"+n.operator+"')"}catch(t){throw t}}function Ee(e,n){try{if("AssignmentExpression"===n.left.type||"UpdateExpression"===n.left.type)throw new c(null,u.LogicalExpressionOnlyBoolean,n);if("AssignmentExpression"===n.right.type||"UpdateExpression"===n.right.type)throw new c(null,u.LogicalExpressionOnlyBoolean,n);if("&&"===n.operator||"||"===n.operator)return"(lang.logicalCheck("+oe(e,n.left)+") "+n.operator+" lang.logicalCheck("+oe(e,n.right)+"))";throw new c(null,u.LogicExpressionOrAnd,null)}catch(t){throw t}}function Be(e,t){const r=n(t);Fe(r);const l=ne(e,r,t);switch(l.type){case"local":return`lscope['${l.var}']`;case"global":return`gscope['${l.var}']`;case"undeclared-global":return`gscope[lang.chkAssig('${l.var}',runtimeCtx)]`;default:throw V(l.type),new c(null,u.NeverReach,t)}}function Re(e,t){try{if("MemberExpression"===t.callee.type){let n;!0===t.callee.computed?n=oe(e,t.callee.property):(Fe(t.callee.property.name),n="'"+t.callee.property.name+"'");let r="[";for(let l=0;l<t.arguments.length;l++)l>0&&(r+=", "),r+=oe(e,t.arguments[l]);return r+="]",e.isAsync?"(yield lang.callModuleFunction("+oe(e,t.callee.object)+","+r+","+n+",runtimeCtx))":"lang.callModuleFunction("+oe(e,t.callee.object)+","+r+","+n+",runtimeCtx)"}if("Identifier"!==t.callee.type)throw new c(null,u.FunctionNotFound,t);const r=n(t.callee);if("iif"===r)return _e(e,t);if("when"===r)return Ge(e,t);if("defaultvalue"===r)return De(e,t);if("decode"===r)return Le(e,t);const l=ne(e,r,t.callee,u.FunctionNotFound);let o;switch(l.type){case"local":o=`lscope['${l.var}']`;break;case"global":o=`gscope['${l.var}']`;break;case"undeclared-global":o=`gscope[lang.chkAssig('${l.var}',runtimeCtx)]`;break;default:throw V(l.type),new c(null,u.NeverReach,t.callee)}let a="[";for(let n=0;n<t.arguments.length;n++)n>0&&(a+=", "),a+=oe(e,t.arguments[n]);return a+="]",e.isAsync?"(yield lang.callfunc("+o+","+a+",runtimeCtx) )":"lang.callfunc("+o+","+a+",runtimeCtx)"}catch(r){throw r}}function _e(e,n){try{if(3!==n.arguments.length)throw new c(null,u.WrongNumberOfParameters,n);const t=ee(e);return`${e.isAsync?"(yield (function() { \n return lang.__awaiter(this, void 0, void 0, function* () {":"function() {"}\n var ${t} = ${oe(e,n.arguments[0])};\n\n if (${t} === true) {\n return ${oe(e,n.arguments[1])};\n }\n else if (${t} === false) {\n return ${oe(e,n.arguments[2])};\n }\n else {\n lang.error('ExecutionErrorCodes.BooleanConditionRequired');\n }\n ${e.isAsync?"})}()))":"}()"}`}catch(t){throw t}}function De(e,n){try{if(n.arguments.length<2||n.arguments.length>3)throw new c(null,u.WrongNumberOfParameters,n);const t=ee(e),r=ee(e);return 3===n.arguments.length?`${e.isAsync?"(yield (function() { \n return lang.__awaiter(this, void 0, void 0, function* () {":"function() {"}\n var ${t} = ${oe(e,n.arguments[0])};\n var ${r} = ${oe(e,n.arguments[1])};\n ${t} = lang.getNestedOptionalValue(${t}, ${r});\n return ${t} != null && ${t} !== "" ? ${t} : ${oe(e,n.arguments[2])};\n ${e.isAsync?"})}()))":"}()"}`:`${e.isAsync?"(yield (function() { \n return lang.__awaiter(this, void 0, void 0, function* () {":"function() {"}\n var ${t} = ${oe(e,n.arguments[0])};\n if (${t} === null) {\n return ${oe(e,n.arguments[1])};\n }\n if (${t} === "") {\n return ${oe(e,n.arguments[1])};\n }\n if (${t} === undefined) {\n return ${oe(e,n.arguments[1])};\n }\n return ${t};\n ${e.isAsync?"})}()))":"}()"}`}catch(t){throw t}}function Ge(e,n){try{if(n.arguments.length<3)throw new c(null,u.WrongNumberOfParameters,n);if(n.arguments.length%2==0)throw new c(null,u.WrongNumberOfParameters,n);const t=ee(e);let r="var ";for(let l=0;l<n.arguments.length-1;l+=2)r+=`${t} = lang.mustBoolean(${oe(e,n.arguments[l])}, runtimeCtx);\n if (${t} === true ) {\n return ${oe(e,n.arguments[l+1])}\n }\n`;return`${e.isAsync?"(yield (function() { \n return lang.__awaiter(this, void 0, void 0, function* () {":"function() {"}\n ${r}\n return ${oe(e,n.arguments[n.arguments.length-1])}\n ${e.isAsync?"})}()))":"}()"}`}catch(t){throw t}}function Le(e,n){try{if(n.arguments.length<2)throw new c(null,u.WrongNumberOfParameters,n);if(2===n.arguments.length)return`(${oe(e,n.arguments[1])})`;if((n.arguments.length-1)%2==0)throw new c(null,u.WrongNumberOfParameters,n);const t=ee(e),r=ee(e);let l="var ";for(let o=1;o<n.arguments.length-1;o+=2)l+=`${r} = ${oe(e,n.arguments[o])};\n if (lang.binary(${r}, ${t}, "==") === true ) {\n return ${oe(e,n.arguments[o+1])}\n }\n`;return`${e.isAsync?"(yield (function() { \n return lang.__awaiter(this, void 0, void 0, function* () {":"function() {"}\n var ${t} = ${oe(e,n.arguments[0])};\n ${l}\n return ${oe(e,n.arguments[n.arguments.length-1])}\n ${e.isAsync?"})}()))":"}()"}`}catch(t){throw t}}function Ue(e,n){try{return le(e,n,((e,n)=>{throw new s(e,u.Unrecognized,n)}))}catch(t){throw t}}function Ke(e){const n=function(){this._SymbolsMap=new Set(["textformatting","infinity","pi"]);const e=new i({newline:"\n",tab:"\t",singlequote:"'",doublequote:'"',forwardslash:"/",backwardslash:"\\"});e.immutable=!1,this.textformatting=e};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 h(r),n.provided.add(t);return n}function Pe(){const e=Object.create(null);D(e,le),W(e,le),G(e,le,ze),K(e,le),L(e,le),P(e,le),e.iif=Ue,e.decode=Ue,e.when=Ue,e.defaultvalue=Ue;const n=Ke(e);U(e,le);return{ScopeSync:Ke(e),ScopeAsync:n}}const{ScopeSync:We,ScopeAsync:Ve}=Pe();function qe(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 h(l),We.provided.add(r);else for(const[r,l]of Object.entries(t.functions))Ve.prototype[r]=new h(l),Ve.provided.add(r);for(const r of t.signatures)B(r,n)}function Te(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 Ze(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),z(e)?l[o]=d.createFromGraphic(e,r??null):l[o]=e}return l}function ze(e,n){const t=n.name;if("_SymbolsMap"===t)throw new s(e,u.InvalidIdentifier,null);if(e.localStack.length>0){const n=e.localStack[e.localStack.length-1];if(!t.toLowerCase().startsWith("_t")&&void 0!==n[t])return n[t];const r=e.mangleMap[t];if(void 0!==r&&void 0!==n[r])return n[r]}if(!t.toLowerCase().startsWith("_t")&&void 0!==e.globalScope[t])return e.globalScope[t];if(e.globalScope._SymbolsMap.has(t))return e.globalScope[t];const r=e.mangleMap[t];return void 0!==r?e.globalScope[r]:void 0}qe([_],"sync"),qe([_],"async"),qe([R],"async");const Je={isNumber:e=>J(e),isArray:e=>Y(e),isImmutableArray:e=>F(e),isDictionaryLike:e=>C(e),isString:e=>H(e),isDictionary:e=>M(e),isGeometry:e=>A(e),getGeometryKeys:e=>l(e),geometryMember:(e,n,t,r,l=1)=>o(e,n,t,r,l),error(e){throw new s(null,e,null)},__awaiter(e,n,t,r){const l=r.apply(e,n||[]);let o=l.next();for(;!o.done&&!q(o.value);)o=l.next(o.value);return o.done?o.value:new Promise(((e,n)=>{function t(r){for(;!r.done;){if(q(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 s(null,u.MaximumCallDepth,null);const t=e.apply(this,arguments);return q(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 s(n,u.InvalidIdentifier,null);return e},mustBoolean(e,n){if(!0===e||!1===e)return e;throw new s(n,u.BooleanConditionRequired,null)},setAssig:(e,n)=>(n.gdefs[e]=1,e),castString:e=>O(e),aCheck(e,n){if(y(e)){if("ArrayExpression"===n)throw new s(null,u.NoFunctionInArray,null);if("ObjectExpression"===n)throw new s(null,u.NoFunctionInDictionary,null);throw new s(null,u.NoFunctionInTemplateLiteral,null)}return e===$?null:e},Dictionary:i,Feature:d,UserDefinedCompiledFunction:re,dictionary(e){const n={},t=new Map;for(let l=0;l<e.length;l+=2){if(y(e[l+1]))throw new s(null,u.NoFunctionInDictionary,null);if(!1===H(e[l]))throw new s(null,u.KeyMustBeString,null);let r=e[l].toString();const o=r.toLowerCase();t.has(o)?r=t.get(o):t.set(o,r),e[l+1]===$?n[r]=null:n[r]=e[l+1]}const r=new i(n);return r.immutable=!1,r},entry:(e,n)=>new i({key:e,value:n}),strCheck(e){if(!1===H(e))throw new s(null,u.KeyMustBeString,null);return e},unary(e,n){if(Q(e)){if("!"===n)return!e;if("-"===n)return-1*k(e);if("+"===n)return 1*k(e);if("~"===n)return~k(e);throw new s(null,u.UnsupportedUnaryOperator,null)}if("-"===n)return-1*k(e);if("+"===n)return 1*k(e);if("~"===n)return~k(e);throw new s(null,u.UnsupportedUnaryOperator,null)},logicalCheck(e){if(!1===Q(e))throw new s(null,u.LogicExpressionOrAnd,null);return e},logical(e,n,t){if(Q(e)&&Q(n))switch(t){case"||":return e||n;case"&&":return e&&n;default:throw new s(null,u.LogicExpressionOrAnd,null)}throw new s(null,u.LogicExpressionOrAnd,null)},binary(e,n,t){switch(t){case"|":case"<<":case">>":case">>>":case"^":case"&":return N(k(e),k(n),t);case"==":case"=":return j(e,n);case"!=":return!j(e,n);case"<":case">":case"<=":case">=":return I(e,n,t);case"+":return H(e)||H(n)?O(e)+O(n):k(e)+k(n);case"-":return k(e)-k(n);case"*":return k(e)*k(n);case"/":return k(e)/k(n);case"%":return k(e)%k(n);default:throw new s(null,u.UnsupportedOperator,null)}},assign(e,n,t){switch(n){case"=":return e===$?null:e;case"/=":return k(t)/k(e);case"*=":return k(t)*k(e);case"-=":return k(t)-k(e);case"+=":return H(t)||H(e)?O(t)+O(e):k(t)+k(e);case"%=":return k(t)%k(e);default:throw new s(null,u.UnsupportedOperator,null)}},update(e,n,t,r){const l=k(e[n]);return e[n]="++"===t?l+1:l-1,!1===r?l:"++"===t?l+1:l-1},graphicToFeature:(e,n,t)=>null===e?null:d.createFromGraphicLikeObject(e.geometry,e.attributes,n,t.timeZone),memberupdate(e,n,t,r){let l;if(Y(e)){if(!J(n))throw new s(null,u.ArrayAccessorMustBeNumber,null);if(n<0&&(n=e.length+n),n<0||n>=e.length)throw new s(null,u.OutOfBounds,null);l=k(e[n]),e[n]="++"===t?l+1:l-1}else if(e instanceof i){if(!1===H(n))throw new s(null,u.KeyAccessorMustBeString,null);if(!0!==e.hasField(n))throw new s(null,u.FieldNotFound,null,{key:n});l=k(e.field(n)),e.setField(n,"++"===t?l+1:l-1)}else if(E(e)){if(!1===H(n))throw new s(null,u.KeyAccessorMustBeString,null);if(!0!==e.hasField(n))throw new s(null,u.FieldNotFound,null);l=k(e.field(n)),e.setField(n,"++"===t?l+1:l-1)}else{if(F(e))throw new s(null,u.Immutable,null);if(!(e instanceof Xe))throw new s(null,u.InvalidIdentifier,null);if(!1===H(n))throw new s(null,u.ModuleAccessorMustBeString,null);if(!0!==e.hasGlobal(n))throw new s(null,u.ModuleExportNotFound,null);l=k(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(Y(e)){if(!J(n))throw new s(null,u.ArrayAccessorMustBeNumber,null);if(n<0&&(n=e.length+n),n<0||n>e.length)throw new s(null,u.OutOfBounds,null);if(n===e.length){if("="!==t)throw new s(null,u.OutOfBounds,null);e[n]=this.assign(r,t,e[n])}else e[n]=this.assign(r,t,e[n])}else if(e instanceof i){if(!1===H(n))throw new s(null,u.KeyAccessorMustBeString,null);if(!0===e.hasField(n))e.setField(n,this.assign(r,t,e.field(n)));else{if("="!==t)throw new s(null,u.FieldNotFound,null);e.setField(n,this.assign(r,t,null))}}else if(E(e)){if(!1===H(n))throw new s(null,u.KeyAccessorMustBeString,null);if(!0===e.hasField(n))e.setField(n,this.assign(r,t,e.field(n)));else{if("="!==t)throw new s(null,u.FieldNotFound,null);e.setField(n,this.assign(r,t,null))}}else{if(F(e))throw new s(null,u.Immutable,null);if(!(e instanceof Xe))throw new s(null,u.InvalidIdentifier,null);if(!1===H(n))throw new s(null,u.ModuleAccessorMustBeString,null);if(!e.hasGlobal(n))throw new s(null,u.ModuleExportNotFound,null);e.setGlobal(n,this.assign(r,t,e.global(n)))}},member(e,n){if(null===e)throw new s(null,u.MemberOfNull,null);if(e instanceof i||C(e)){if(H(n))return e.field(n);throw new s(null,u.InvalidMemberAccessKey,null)}if(e instanceof T){if(H(n))return o(e,n,null,null);throw new s(null,u.InvalidMemberAccessKey,null)}if(Y(e)){if(J(n)&&isFinite(n)&&Math.floor(n)===n){if(n<0&&(n=e.length+n),n>=e.length||n<0)throw new s(null,u.OutOfBounds,null);return e[n]}throw new s(null,u.InvalidMemberAccessKey,null)}if(H(e)){if(J(n)&&isFinite(n)&&Math.floor(n)===n){if(n<0&&(n=e.length+n),n>=e.length||n<0)throw new s(null,u.OutOfBounds,null);return e[n]}throw new s(null,u.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 s(null,u.OutOfBounds,null);return e.get(n)}throw new s(null,u.InvalidMemberAccessKey,null)}if(e instanceof Xe){if(H(n))return e.global(n);throw new s(null,u.InvalidMemberAccessKey,null)}throw new s(null,u.InvalidMemberAccessKey,null)},callfunc:(e,n,t)=>e.call(t,{arguments:n,preparsed:!0}),loadModule(e,n){const t=n.moduleFactoryMap[e];if(n.moduleSingletons[t])return n.moduleSingletons[t];const r=n.moduleFactory[t]({moduleSingletons:n.moduleSingletons,depthCounter:n.depthCounter,lrucache:n.lrucache,interceptor:n.interceptor,services:n.services,console:n.console,abortSignal:n.abortSignal,timeZone:n.timeZone??null,spatialReference:n.spatialReference});return n.moduleSingletons[t]=r,r},callModuleFunction(e,n,t,r){if(!(e instanceof Xe))throw new s(null,u.FunctionNotFound,null);const l=e.global(t);if(!1===y(l))throw new s(null,u.CallNonFunction,null);return l.call(r,{preparsed:!0,arguments:n})},getNestedOptionalValue:(e,n)=>a(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: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=be(a,n);""===i&&(i="lc.voidOperation; "),a.undeclaredGlobalsInFunctions.size>0&&a.undeclaredGlobalsInFunctions.forEach((e=>{throw new c(null,u.InvalidIdentifier,e.node)}));let p="";p=l?"var runtimeCtx=this.prepare(context, true);\n var lc = this.lc; var lang = this.lang; var gscope=runtimeCtx.globalScope; \nreturn lang.__awaiter(this, void 0, void 0, function* () {\n\n function mainBody() {\n var lastStatement=lc.voidOperation;\n return lang.__awaiter(this, void 0, void 0, function* () {\n"+i+"\n return lastStatement; }); } \n return this.postProcess(yield mainBody()); }); ":"var runtimeCtx=this.prepare(context, false);\n var lc = this.lc; var lang = this.lang; var gscope=runtimeCtx.globalScope; \n function mainBody() {\n var lastStatement=lc.voidOperation;\n "+i+"\n return lastStatement; } \n return this.postProcess(mainBody()); ";const d=a.moduleFactory,f=a.moduleFactoryMap,m=a.exports,g={};let h;for(h in m)g[h]=a.mangleMap[h]??h;const F={lc:w,lang:Je,mangles:a.mangleMap,postProcess(e){if(e instanceof v&&(e=e.value),e instanceof b&&(e=e.value),e===$&&(e=null),e===S)throw new s(null,u.IllegalResult,null);if(e===x)throw new s(null,u.IllegalResult,null);if(y(e))throw new s(null,u.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:d,moduleFactoryMap:f,mangleMap:this.mangles,moduleSingletons:{},exports:m,gdefs:{},exportmangle:g,spatialReference:r,globalScope:l,abortSignal:n.abortSignal??e,services:n.services,console:n.console??Ye,lrucache:n.lrucache,timeZone:n.timeZone??null,interceptor:n.interceptor,depthCounter:{depth:1}}}};return new Function("context",p).bind(F)}async function Qe(){return qe([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(y(n))throw new s(null,u.AssignModuleFunction,null);t[this.moduleContext.exportmangle[r]]=n}global(e){const n=this.moduleContext.globalScope,t=e.toLowerCase(),r=n[this.moduleContext.exportmangle[t]];if(void 0===r)throw new s(null,u.InvalidIdentifier,null);if(y(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:Te(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:w,lang:Je,mangles:o.mangleMap,prepareModule:e=>new Xe(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??Ye,lrucache:n.lrucache,timeZone:n.timeZone??null,interceptor:n.interceptor,depthCounter:n.depthCounter}}};return new Function("context",i).bind(f)}export{re as UserDefinedCompiledFunction,He as compileScript,Qe as enableAsyncSupport,qe 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.33/esri/copyright.txt for details.
4
4
  */
5
- import{toSymbolId as e,neverAbortedSignal 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 i,getGeometryKeys as l}from"./containerUtils.js";import a from"./Dictionary.js";import{ArcadeExecutionError as s,ExecutionErrorCodes as c,ensureArcadeExecutionError as u}from"./executionError.js";import f from"./Feature.js";import{NativeFunction as p,ScopeMarshalledFunction as h,ArcadeFunction as d,wrapModuleScopedResponse as w}from"./FunctionWrapper.js";import{C as m,A as g,i as b,t as y,n as v,m as S,v as x,y as R,f as F,z as I,B as M,R as A,I as C,D as N,w as O,x as B,E as j,l as E}from"../chunks/languageUtils.js";import{addFunctionDeclaration as k}from"./treeAnalysis.js";import{A as D}from"../chunks/array.js";import{registerFunctions as U}from"./functions/date.js";import{registerFunctions as K}from"./functions/feature.js";import{registerFunctions as Z}from"./functions/geometry.js";import{registerFunctions as q}from"./functions/geomsync.js";import{registerFunctions as L}from"./functions/maths.js";import{registerFunctions as G}from"./functions/stats.js";import{registerFunctions as W}from"./functions/string.js";import"../core/has.js";import P from"../geometry/Geometry.js";import V from"../geometry/SpatialReference.js";import{isBoolean as T,isString as _,isArray as z,isNumber as Y,isGraphic as H}from"../support/guards.js";class J extends d{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,c.MaximumCallDepth,null);return je(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:{}};if(i.depthCounter.depth>64)throw new s(e,c.MaximumCallDepth,t);return je(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:w(t,e,r))),w(je(this.definition,a,l,t),n,r)}))}}class Q extends n{constructor(e){super(),this.source=e}global(t){const n=this.executingContext.globalScope[e(t)];if(b(n.value)&&!(n.value instanceof h)){const e=new h;e.fn=n.value,e.parameterEvaluator=$,e.context=this.executingContext,n.value=e}return n.value}setGlobal(t,n){if(b(n))throw new s(null,c.AssignModuleFunction,null);this.executingContext.globalScope[e(t)]={value:n}}hasGlobal(t){return void 0===this.executingContext.exports[t]&&(t=e(t)),void 0!==this.executingContext.exports[t]}loadModule(e){const n=e.spatialReference??V.WebMercator;this.moduleScope=ke(null,null,e.timeZone),this.executingContext={spatialReference:n,globalScope:this.moduleScope,localScope:null,libraryResolver:new r(e.libraryResolver._moduleSingletons,this.source.syntax.loadedModules),exports:{},services:e.services,console:e.console??Ue,timeZone:e.timeZone??null,lrucache:e.lrucache,interceptor:e.interceptor,abortSignal:t,depthCounter:{depth:1}},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 Ce(e,t);case"UnaryExpression":return Se(e,t);case"BinaryExpression":return Re(e,t);case"LogicalExpression":return Fe(e,t);case"ArrayExpression":return xe(e,t);case"ObjectExpression":return ne(e,t);default:throw new s(e,c.Unrecognized,t)}}catch(n){throw u(e,t,n)}}function te(e,t){switch(t.type){case"EmptyStatement":return x;case"VariableDeclaration":return be(e,t);case"ImportDeclaration":return me(e,t);case"ExportNamedDeclaration":return ge(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 O;case"ContinueStatement":return B;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,c.Unrecognized,t)}}function ne(e,t){const n={},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,c.NoFunctionInDictionary,t);if(!1===_(l))throw new s(e,c.KeyMustBeString,t);let u=l.toString();const f=u.toLowerCase();r.has(f)?u=r.get(f):r.set(f,u),n[u]=a===x?null:a}const o=new a(n);return o.immutable=!1,o}function re(t,n){const r=ee(t,n.right);"VariableDeclaration"===n.left.type&&be(t,n.left);const o=e("VariableDeclaration"===n.left.type?n.left.declarations[0].id:n.left);let i=null;if(null!=t.localScope&&void 0!==t.localScope[o]&&(i=t.localScope[o]),null===i&&void 0!==t.globalScope[o]&&(i=t.globalScope[o]),null===i)throw new s(t,c.InvalidIdentifier,n);if(z(r)||_(r)){const e=r.length;for(let r=0;r<e;r++){i.value=r;const e=te(t,n.body);if(e===O)break;if(e instanceof A)return e}return x}if(S(r)){for(let e=0;e<r.length();e++){i.value=e;const r=te(t,n.body);if(r===O)break;if(r instanceof A)return r}return x}if(r instanceof a||R(r)){const e=r.keys();for(let r=0;r<e.length;r++){i.value=e[r];const o=te(t,n.body);if(o===O)break;if(o instanceof A)return o}return x}if(E(r)){for(const e of l(r)){i.value=e;const r=te(t,n.body);if(r===O)break;if(r instanceof A)return r}return x}return x}function oe(t,n){const r=ee(t,n.right);"VariableDeclaration"===n.left.type&&te(t,n.left);const o=e("VariableDeclaration"===n.left.type?n.left.declarations[0].id:n.left);let u=null;if(null!=t.localScope&&void 0!==t.localScope[o]&&(u=t.localScope[o]),null===u&&void 0!==t.globalScope[o]&&(u=t.globalScope[o]),null===u)throw new s(t,c.InvalidIdentifier,n);if(z(r)||_(r)){const e=r.length;for(let o=0;o<e;o++){if(o>=r.length)throw new s(t,c.OutOfBounds,n);u.value=r[o];const e=te(t,n.body);if(e===O)break;if(e instanceof A)return e}return x}if(S(r)){for(let e=0;e<r.length();e++){u.value=r.get(e);const o=te(t,n.body);if(o===O)break;if(o instanceof A)return o}return x}if(r instanceof a||R(r)){for(const e of r.keys()){const o=r.field(e);u.value=new a({key:e,value:o});const i=te(t,n.body);if(i===O)break;if(i instanceof A)return i}return x}if(E(r)){for(const e of l(r)){const o=i(r,e,t,n,1);u.value=new a({key:e,value:o});const l=te(t,n.body);if(l===O)break;if(l instanceof A)return l}return x}return x}function ie(e,t){null!==t.init&&("VariableDeclaration"===t.init.type?te(e,t.init):ee(e,t.init));const n={testResult:!0,lastAction:x};do{ae(e,t,n)}while(!0===n.testResult);return n.lastAction instanceof A?n.lastAction:x}function le(e,t){const n={testResult:!0,lastAction:x};if(n.testResult=ee(e,t.test),!1===n.testResult)return x;if(!0!==n.testResult)throw new s(e,c.BooleanConditionRequired,t);for(;!0===n.testResult&&(n.lastAction=te(e,t.body),n.lastAction!==O)&&!(n.lastAction instanceof A);)if(n.testResult=ee(e,t.test),!0!==n.testResult&&!1!==n.testResult)throw new s(e,c.BooleanConditionRequired,t);return n.lastAction instanceof A?n.lastAction:x}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,c.BooleanConditionRequired,t)}n.lastAction=te(e,t.body),n.lastAction!==O?n.lastAction instanceof A?n.testResult=!1:null!==t.update&&ee(e,t.update):n.testResult=!1}function se(t,n){if("CallExpression"===n.argument.type)throw new s(t,c.NeverReach,n);let r;if("MemberExpression"===n.argument.type){const e=ee(t,n.argument.object);let o;if(!0===n.argument.computed)o=ee(t,n.argument.property);else{if("Identifier"!==n.argument.property.type)throw new s(t,c.Unrecognized,n);o=n.argument.property.name}if(z(e)){if(!Y(o))throw new s(t,c.ArrayAccessorMustBeNumber,n);if(o<0&&(o=e.length+o),o<0||o>=e.length)throw new s(t,c.OutOfBounds,n);r=y(e[o]),e[o]="++"===n.operator?r+1:r-1}else if(e instanceof a){if(!1===_(o))throw new s(t,c.KeyAccessorMustBeString,n);if(!0!==e.hasField(o))throw new s(t,c.FieldNotFound,n);r=y(e.field(o)),e.setField(o,"++"===n.operator?r+1:r-1)}else if(v(e)){if(!1===_(o))throw new s(t,c.KeyAccessorMustBeString,n);if(!0!==e.hasField(o))throw new s(t,c.FieldNotFound,n);r=y(e.field(o)),e.setField(o,"++"===n.operator?r+1:r-1)}else{if(S(e))throw new s(t,c.Immutable,n);if(!(e instanceof Q))throw new s(t,c.InvalidParameter,n);if(!1===_(o))throw new s(t,c.ModuleAccessorMustBeString,n);if(!0!==e.hasGlobal(o))throw new s(t,c.ModuleExportNotFound,n);r=y(e.global(o)),e.setGlobal(o,"++"===n.operator?r+1:r-1)}return!1===n.prefix?r:"++"===n.operator?r+1:r-1}const o=e(n.argument);if(null!=t.localScope&&void 0!==t.localScope[o])return r=y(t.localScope[o].value),t.localScope[o]={value:"++"===n.operator?r+1:r-1},!1===n.prefix?r:"++"===n.operator?r+1:r-1;if(void 0!==t.globalScope[o])return r=y(t.globalScope[o].value),t.globalScope[o]={value:"++"===n.operator?r+1:r-1},!1===n.prefix?r:"++"===n.operator?r+1:r-1;throw new s(t,c.InvalidIdentifier,n)}function ce(e,t,n,r,o){switch(t){case"=":return e===x?null:e;case"/=":return y(n)/y(e);case"*=":return y(n)*y(e);case"-=":return y(n)-y(e);case"+=":return _(n)||_(e)?F(n)+F(e):y(n)+y(e);case"%=":return y(n)%y(e);default:throw new s(o,c.UnsupportedOperator,r)}}function ue(t,n){if("MemberExpression"===n.left.type){const e=ee(t,n.left.object);let r;if(!0===n.left.computed)r=ee(t,n.left.property);else{if("Identifier"!==n.left.property.type)throw new s(t,c.InvalidIdentifier,n);r=n.left.property.name}const o=ee(t,n.right);if(z(e)){if(!Y(r))throw new s(t,c.ArrayAccessorMustBeNumber,n);if(r<0&&(r=e.length+r),r<0||r>e.length)throw new s(t,c.OutOfBounds,n);if(r===e.length){if("="!==n.operator)throw new s(t,c.OutOfBounds,n);e[r]=ce(o,n.operator,e[r],n,t)}else e[r]=ce(o,n.operator,e[r],n,t)}else if(e instanceof a){if(!1===_(r))throw new s(t,c.KeyAccessorMustBeString,n);if(!0===e.hasField(r))e.setField(r,ce(o,n.operator,e.field(r),n,t));else{if("="!==n.operator)throw new s(t,c.FieldNotFound,n,{key:r});e.setField(r,ce(o,n.operator,null,n,t))}}else if(v(e)){if(!1===_(r))throw new s(t,c.KeyAccessorMustBeString,n);if(!0===e.hasField(r))e.setField(r,ce(o,n.operator,e.field(r),n,t));else{if("="!==n.operator)throw new s(t,c.FieldNotFound,n,{key:r});e.setField(r,ce(o,n.operator,null,n,t))}}else{if(S(e))throw new s(t,c.Immutable,n);if(!(e instanceof Q))throw new s(t,c.InvalidIdentifier,n);if(!1===_(r))throw new s(t,c.ModuleAccessorMustBeString,n);if(!0!==e.hasGlobal(r))throw new s(t,c.ModuleExportNotFound,n);e.setGlobal(r,ce(o,n.operator,e.global(r),n,t))}return x}const r=e(n.left),o=ee(t,n.right);if(null!=t.localScope&&void 0!==t.localScope[r])return t.localScope[r]={value:ce(o,n.operator,t.localScope[r].value,n,t)},x;if(void 0!==t.globalScope[r])return t.globalScope[r]={value:ce(o,n.operator,t.globalScope[r].value,n,t)},x;throw new s(t,c.InvalidIdentifier,n)}function fe(e,t){const n=ee(e,t.expression);return n===x?x:new C(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):x;throw new s(e,c.BooleanConditionRequired,t)}function he(e,t){let n=x;for(let r=0;r<t.body.length;r++)if(n=te(e,t.body[r]),n instanceof A||n===O||n===B)return n;return n}function de(e,t){if(null===t.argument)return new A(x);const n=ee(e,t.argument);return new A(n)}function we(t,n){const r=e(n.id);return t.globalScope[r]={value:new J(n,t)},x}function me(t,n){const r=e(n.specifiers[0].local),o=t.libraryResolver.loadLibrary(r);let i;return t.libraryResolver._moduleSingletons?.has(o.uri)?i=t.libraryResolver._moduleSingletons.get(o.uri):(i=new Q(o),i.loadModule(t),t.libraryResolver._moduleSingletons?.set(o.uri,i)),t.globalScope[r]={value:i},x}function ge(t,n){if(te(t,n.declaration),"FunctionDeclaration"===n.declaration.type)t.exports[e(n.declaration.id)]="function";else if("VariableDeclaration"===n.declaration.type)for(const r of n.declaration.declarations)t.exports[e(r.id)]="variable";return x}function be(e,t){for(let n=0;n<t.declarations.length;n++)ye(e,t.declarations[n]);return x}function ye(t,n){let r=null===n.init?null:ee(t,n.init);if(r===x&&(r=null),"Identifier"!==n.id.type)throw new s(t,c.InvalidIdentifier,n);const o=e(n.id);null!=t.localScope?t.localScope[o]={value:r}:t.globalScope[o]={value:r}}function ve(e,t){try{const n=ee(e,t.object);if(null===n)throw new s(e,c.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 P)return i(n,t.property.name,e,t);if(n instanceof Q){if(!n.hasGlobal(t.property.name))throw new s(e,c.InvalidIdentifier,t);return n.global(t.property.name)}}throw new s(e,c.InvalidMemberAccessKey,t)}let r=ee(e,t.property);if(n instanceof a||R(n)){if(_(r))return n.field(r);throw new s(e,c.InvalidMemberAccessKey,t)}if(n instanceof Q){if(_(r))return n.global(r);throw new s(e,c.InvalidMemberAccessKey,t)}if(n instanceof P){if(_(r))return i(n,r,e,t);throw new s(e,c.InvalidMemberAccessKey,t)}if(z(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,c.OutOfBounds,t);return n[r]}throw new s(e,c.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,c.OutOfBounds,t);return n[r]}throw new s(e,c.InvalidMemberAccessKey,t)}if(S(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,c.OutOfBounds,t);return n.get(r)}throw new s(e,c.InvalidMemberAccessKey,t)}throw new s(e,c.InvalidMemberAccessKey,t)}catch(n){throw n}}function Se(e,t){try{const n=ee(e,t.argument);if(T(n)){if("!"===t.operator)return!n;if("-"===t.operator)return-1*y(n);if("+"===t.operator)return 1*y(n);if("~"===t.operator)return~y(n);throw new s(e,c.UnsupportedUnaryOperator,t)}if("~"===t.operator)return~y(n);if("-"===t.operator)return-1*y(n);if("+"===t.operator)return 1*y(n);throw new s(e,c.UnsupportedUnaryOperator,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,c.NoFunctionInArray,t);o===x?n.push(null):n.push(o)}return n}catch(n){throw n}}function Re(e,t){try{const n=ee(e,t.left),r=ee(e,t.right);switch(t.operator){case"|":case"<<":case">>":case">>>":case"^":case"&":return M(y(n),y(r),t.operator);case"==":return g(n,r);case"!=":return!g(n,r);case"<":case">":case"<=":case">=":return I(n,r,t.operator);case"+":return _(n)||_(r)?F(n)+F(r):y(n)+y(r);case"-":return y(n)-y(r);case"*":return y(n)*y(r);case"/":return y(n)/y(r);case"%":return y(n)%y(r);default:throw new s(e,c.UnsupportedOperator,t)}}catch(n){throw n}}function Fe(e,t){try{const n=ee(e,t.left);if(T(n))switch(t.operator){case"||":{if(!0===n)return n;const r=ee(e,t.right);if(T(r))return r;throw new s(e,c.LogicExpressionOrAnd,t)}case"&&":{if(!1===n)return n;const r=ee(e,t.right);if(T(r))return r;throw new s(e,c.LogicExpressionOrAnd,t)}default:throw new s(e,c.LogicExpressionOrAnd,t)}throw new s(e,c.LogicalExpressionOnlyBoolean,t)}catch(n){throw n}}function Ie(e,t,n){if(b(e))throw new s(t,c.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]?F(Ie(ee(e,t.expressions[r]),e,t)):"",r++}return n}function Ae(t,n){try{const r=e(n);if(null!=t.localScope&&void 0!==t.localScope[r])return t.localScope[r].value;if(void 0!==t.globalScope[r])return t.globalScope[r].value;throw new s(t,c.InvalidIdentifier,n)}catch(r){throw r}}function Ce(t,n){try{if("MemberExpression"===n.callee.type){const e=ee(t,n.callee.object);if(!(e instanceof Q))throw new s(t,c.FunctionNotFound,n);const r=!1===n.callee.computed?n.callee.property.name:ee(t,n.callee.property);if(!e.hasGlobal(r))throw new s(t,c.FunctionNotFound,n);const o=e.global(r);if(!b(o))throw new s(t,c.CallNonFunction,n);return o.call(t,n)}if("Identifier"!==n.callee.type)throw new s(t,c.FunctionNotFound,n);const r=e(n.callee);if(null!=t.localScope&&void 0!==t.localScope[r]){const e=t.localScope[r];if(b(e.value))return e.value.call(t,n);throw new s(t,c.CallNonFunction,n)}if(void 0!==t.globalScope[r]){const e=t.globalScope[r];if(b(e.value))return e.value.call(t,n);throw new s(t,c.CallNonFunction,n)}throw new s(t,c.FunctionNotFound,n)}catch(r){throw r}}const Ne={};function Oe(e,t,n,r){try{const o=t.arguments,i=ee(e,o[n]);if(g(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]):Oe(e,t,n+2,r)}}catch(o){throw o}}function Be(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===T(r))throw new s(e,c.BooleanConditionRequired,o[n+2]);return Be(e,t,n+2,r)}}catch(o){throw o}}function je(t,n,r,o){try{const i=t.body;if(r.length!==t.params.length)throw new s(n,c.WrongNumberOfParameters,o);if(null!=n.localScope)for(let o=0;o<r.length;o++)n.localScope[e(t.params[o])]={value:r[o]};const l=te(n,i);if(l instanceof A)return l.value;if(l===O)throw new s(n,c.UnexpectedToken,o);if(l===B)throw new s(n,c.UnexpectedToken,o);return l instanceof C?l.value:l}catch(i){throw i}}U(Ne,$),W(Ne,$),K(Ne,$,Ae),L(Ne,$),Z(Ne,$),G(Ne,$),q(Ne,$),Ne.iif=function(e,t){try{if(!0===t.preparsed)throw new s(e,c.NeverReach,t);const n=t.arguments;m(null===n?[]:n,3,3,e,t);const r=ee(e,n[0]);if(!1===T(r))throw new s(e,c.BooleanConditionRequired,t);return ee(e,!0===r?n[1]:n[2])}catch(n){throw n}},Ne.defaultvalue=function(e,t){try{if(!0===t.preparsed)throw new s(e,c.NeverReach,t);const n=t.arguments;m(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}},Ne.decode=function(e,t){try{if(!0===t.preparsed)throw new s(e,c.NeverReach,t);const n=t.arguments;if(n.length<2)throw new s(e,c.WrongNumberOfParameters,t);if(2===n.length)return ee(e,n[1]);{if((n.length-1)%2==0)throw new s(e,c.WrongNumberOfParameters,t);const r=ee(e,n[0]);return Oe(e,t,1,r)}}catch(n){throw n}},Ne.when=function(e,t){try{if(!0===t.preparsed)throw new s(e,c.NeverReach,t);const n=t.arguments;if(n.length<3)throw new s(e,c.WrongNumberOfParameters,t);if(n.length%2==0)throw new s(e,c.WrongNumberOfParameters,t);const r=ee(e,n[0]);if(!1===T(r))throw new s(e,c.BooleanConditionRequired,n[0]);return Be(e,t,0,r)}catch(n){throw n}};for(const qe in Ne)Ne[qe]={value:new p(Ne[qe])};const Ee=function(){};function ke(e,t,n){const r=new Ee;e||(e={}),t||(t={});const o=new a({newline:"\n",tab:"\t",singlequote:"'",doublequote:'"',forwardslash:"/",backwardslash:"\\"});o.immutable=!1,r.textformatting={value:o};for(const i in t)r[i]={value:new p(t[i])};for(const i in e)r[i]={value:H(e[i])?f.createFromGraphic(e[i],n):e[i]};return r}Ee.prototype=Ne,Ee.prototype.infinity={value:Number.POSITIVE_INFINITY},Ee.prototype.pi={value:Math.PI};const De={fixSpatialReference:j,parseArguments:X,standardFunction:$};function Ue(e){console.log(e)}function Ke(e){const t={mode:"sync",compiled:!1,functions:{},signatures:[],standardFunction:$,evaluateIdentifier:Ae};for(let n=0;n<e.length;n++)e[n].registerFunctions(t);for(const n in t.functions)Ne[n]={value:new p(t.functions[n])},Ee.prototype[n]=Ne[n];for(let n=0;n<t.signatures.length;n++)k(t.signatures[n],"sync")}function Ze(e,n){const o=n.spatialReference??V.WebMercator;let i=null;e.usesModules&&(i=new r(new Map,e.loadedModules));const l={spatialReference:o,globalScope:ke(n.vars,n.customfunctions,n.timeZone),localScope:null,services:n.services,exports:{},libraryResolver:i,console:n.console??Ue,timeZone:n.timeZone??null,lrucache:n.lrucache,interceptor:n.interceptor,abortSignal:t,depthCounter:{depth:1}},a=he(l,e);if(a instanceof A||a instanceof C){const e=a.value;if(N(e))return null;if(b(e))throw new s(l,c.IllegalResult,null);return e}if(N(a))return null;if(a===O)throw new s(l,c.IllegalResult,null);if(a===B)throw new s(l,c.IllegalResult,null);throw new s(l,c.NeverReach,null)}Ke([D]);export{Ze as executeScript,Ke as extend,De as functionHelper};
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,ExecutionErrorCodes as c,ensureArcadeExecutionError as u}from"./executionError.js";import f from"./Feature.js";import{NativeFunction as p,ArcadeFunction as h,ScopeMarshalledFunction as d,wrapModuleScopedResponse as w}from"./FunctionWrapper.js";import{R as g,I as m,C as b,i as y,w as v,x as S,D as x,A as R,v as F,m as I,y as M,l as A,t as O,n as j,f as C,z as N,B}from"../chunks/languageUtils.js";import{addFunctionDeclaration as E}from"./treeAnalysis.js";import{A as k}from"../chunks/array.js";import{registerFunctions as D}from"./functions/date.js";import{registerFunctions as U}from"./functions/feature.js";import{registerFunctions as K}from"./functions/geometry.js";import{registerFunctions as Z}from"./functions/geomsync.js";import{registerFunctions as q}from"./functions/maths.js";import{registerFunctions as L}from"./functions/stats.js";import{registerFunctions as G}from"./functions/string.js";import"../core/has.js";import W from"../geometry/Geometry.js";import z from"../geometry/SpatialReference.js";import{isBoolean as P,isGraphic as V,isString as T,isArray as _,isNumber as Y}from"../support/guards.js";class H extends h{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,c.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:{}};if(i.depthCounter.depth>64)throw new s(e,c.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:{}};return l=l.map((t=>!y(t)||t instanceof d?t:w(t,e,r))),w(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,c.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 g)return l.value;if(l===v)throw new s(n,c.UnexpectedToken,o);if(l===S)throw new s(n,c.UnexpectedToken,o);return l instanceof m?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(y(n.value)&&!(n.value instanceof d)){const r=new d;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(y(n))throw new s(null,c.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??qe,timeZone:t.timeZone??null,lrucache:t.lrucache,interceptor:t.interceptor,abortSignal:e,depthCounter:{depth:1}},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 Re(e,t);case"LogicalExpression":return Fe(e,t);case"ArrayExpression":return xe(e,t);case"ObjectExpression":return ne(e,t);default:throw new s(e,c.Unrecognized,t)}}catch(n){throw u(e,t,n)}}function te(e,t){switch(t.type){case"EmptyStatement":return F;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 v;case"ContinueStatement":return S;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,c.Unrecognized,t)}}function ne(e,t){const n={},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(y(a))throw new s(e,c.NoFunctionInDictionary,t);if(!1===T(l))throw new s(e,c.KeyMustBeString,t);let u=l.toString();const f=u.toLowerCase();r.has(f)?u=r.get(f):r.set(f,u),n[u]=a===F?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,c.InvalidIdentifier,n);if(_(r)||T(r)){const t=r.length;for(let r=0;r<t;r++){l.value=r;const t=te(e,n.body);if(t===v)break;if(t instanceof g)return t}return F}if(I(r)){for(let t=0;t<r.length();t++){l.value=t;const r=te(e,n.body);if(r===v)break;if(r instanceof g)return r}return F}if(r instanceof a||M(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===v)break;if(o instanceof g)return o}return F}if(A(r)){for(const t of i(r)){l.value=t;const r=te(e,n.body);if(r===v)break;if(r instanceof g)return r}return F}return F}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 u=null;if(null!=e.localScope&&void 0!==e.localScope[o]&&(u=e.localScope[o]),null===u&&void 0!==e.globalScope[o]){const t=e.globalScope[o].value;u=e.globalScope[o]={value:t}}if(null===u)throw new s(e,c.InvalidIdentifier,n);if(_(r)||T(r)){const t=r.length;for(let o=0;o<t;o++){if(o>=r.length)throw new s(e,c.OutOfBounds,n);u.value=r[o];const t=te(e,n.body);if(t===v)break;if(t instanceof g)return t}return F}if(I(r)){for(let t=0;t<r.length();t++){u.value=r.get(t);const o=te(e,n.body);if(o===v)break;if(o instanceof g)return o}return F}if(r instanceof a||M(r)){for(const t of r.keys()){const o=r.field(t);u.value=new a({key:t,value:o});const i=te(e,n.body);if(i===v)break;if(i instanceof g)return i}return F}if(A(r)){for(const t of i(r)){const o=l(r,t,e,n,1);u.value=new a({key:t,value:o});const i=te(e,n.body);if(i===v)break;if(i instanceof g)return i}return F}return F}function ie(e,t){null!==t.init&&("VariableDeclaration"===t.init.type?te(e,t.init):ee(e,t.init));const n={testResult:!0,lastAction:F};do{ae(e,t,n)}while(!0===n.testResult);return n.lastAction instanceof g?n.lastAction:F}function le(e,t){const n={testResult:!0,lastAction:F};if(n.testResult=ee(e,t.test),!1===n.testResult)return F;if(!0!==n.testResult)throw new s(e,c.BooleanConditionRequired,t);for(;!0===n.testResult&&(n.lastAction=te(e,t.body),n.lastAction!==v)&&!(n.lastAction instanceof g);)if(n.testResult=ee(e,t.test),!0!==n.testResult&&!1!==n.testResult)throw new s(e,c.BooleanConditionRequired,t);return n.lastAction instanceof g?n.lastAction:F}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,c.BooleanConditionRequired,t)}n.lastAction=te(e,t.body),n.lastAction!==v?n.lastAction instanceof g?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,c.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,c.Unrecognized,n);o=n.argument.property.name}if(_(t)){if(!Y(o))throw new s(e,c.ArrayAccessorMustBeNumber,n);if(o<0&&(o=t.length+o),o<0||o>=t.length)throw new s(e,c.OutOfBounds,n);r=O(t[o]),t[o]="++"===n.operator?r+1:r-1}else if(t instanceof a){if(!1===T(o))throw new s(e,c.KeyAccessorMustBeString,n);if(!0!==t.hasField(o))throw new s(e,c.FieldNotFound,n);r=O(t.field(o)),t.setField(o,"++"===n.operator?r+1:r-1)}else if(j(t)){if(!1===T(o))throw new s(e,c.KeyAccessorMustBeString,n);if(!0!==t.hasField(o))throw new s(e,c.FieldNotFound,n);r=O(t.field(o)),t.setField(o,"++"===n.operator?r+1:r-1)}else{if(I(t))throw new s(e,c.Immutable,n);if(!(t instanceof Q))throw new s(e,c.InvalidParameter,n);if(!1===T(o))throw new s(e,c.ModuleAccessorMustBeString,n);if(!0!==t.hasGlobal(o))throw new s(e,c.ModuleExportNotFound,n);r=O(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=O(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=O(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,c.InvalidIdentifier,n)}function ce(e,t,n,r,o){switch(t){case"=":return e===F?null:e;case"/=":return O(n)/O(e);case"*=":return O(n)*O(e);case"-=":return O(n)-O(e);case"+=":return T(n)||T(e)?C(n)+C(e):O(n)+O(e);case"%=":return O(n)%O(e);default:throw new s(o,c.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,c.InvalidIdentifier,n);r=n.left.property.name}const o=ee(e,n.right);if(_(t)){if(!Y(r))throw new s(e,c.ArrayAccessorMustBeNumber,n);if(r<0&&(r=t.length+r),r<0||r>t.length)throw new s(e,c.OutOfBounds,n);if(r===t.length){if("="!==n.operator)throw new s(e,c.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===T(r))throw new s(e,c.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,c.FieldNotFound,n,{key:r});t.setField(r,ce(o,n.operator,null,n,e))}}else if(j(t)){if(!1===T(r))throw new s(e,c.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,c.FieldNotFound,n,{key:r});t.setField(r,ce(o,n.operator,null,n,e))}}else{if(I(t))throw new s(e,c.Immutable,n);if(!(t instanceof Q))throw new s(e,c.InvalidIdentifier,n);if(!1===T(r))throw new s(e,c.ModuleAccessorMustBeString,n);if(!0!==t.hasGlobal(r))throw new s(e,c.ModuleExportNotFound,n);t.setGlobal(r,ce(o,n.operator,t.global(r),n,e))}return F}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)},F;if(void 0!==e.globalScope[r])return e.globalScope[r]={value:ce(o,n.operator,e.globalScope[r].value,n,e)},F;throw new s(e,c.InvalidIdentifier,n)}function fe(e,t){const n=ee(e,t.expression);return n===F?F:new m(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):F;throw new s(e,c.BooleanConditionRequired,t)}function he(e,t){let n=F;for(let r=0;r<t.body.length;r++)if(n=te(e,t.body[r]),n instanceof g||n===v||n===S)return n;return n}function de(e,t){if(null===t.argument)return new g(F);const n=ee(e,t.argument);return new g(n)}function we(e,n){const r=t(n.id);return e.globalScope[r]={value:new H(n,e)},F}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},F}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 F}function be(e,t){for(let n=0;n<t.declarations.length;n++)ye(e,t.declarations[n]);return F}function ye(e,n){let r=null===n.init?null:ee(e,n.init);if(r===F&&(r=null),"Identifier"!==n.id.type)throw new s(e,c.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,c.MemberOfNull,t);if(!1===t.computed){if("Identifier"===t.property.type){if(n instanceof a||M(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,c.InvalidIdentifier,t);return n.global(t.property.name)}}throw new s(e,c.InvalidMemberAccessKey,t)}let r=ee(e,t.property);if(n instanceof a||M(n)){if(T(r))return n.field(r);throw new s(e,c.InvalidMemberAccessKey,t)}if(n instanceof Q){if(T(r))return n.global(r);throw new s(e,c.InvalidMemberAccessKey,t)}if(n instanceof W){if(T(r))return l(n,r,e,t);throw new s(e,c.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,c.OutOfBounds,t);return n[r]}throw new s(e,c.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,c.OutOfBounds,t);return n[r]}throw new s(e,c.InvalidMemberAccessKey,t)}if(I(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,c.OutOfBounds,t);return n.get(r)}throw new s(e,c.InvalidMemberAccessKey,t)}throw new s(e,c.InvalidMemberAccessKey,t)}catch(n){throw n}}function Se(e,t){try{const n=ee(e,t.argument);if(P(n)){if("!"===t.operator)return!n;if("-"===t.operator)return-1*O(n);if("+"===t.operator)return 1*O(n);if("~"===t.operator)return~O(n);throw new s(e,c.UnsupportedUnaryOperator,t)}if("~"===t.operator)return~O(n);if("-"===t.operator)return-1*O(n);if("+"===t.operator)return 1*O(n);throw new s(e,c.UnsupportedUnaryOperator,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(y(o))throw new s(e,c.NoFunctionInArray,t);o===F?n.push(null):n.push(o)}return n}catch(n){throw n}}function Re(e,t){try{const n=ee(e,t.left),r=ee(e,t.right);switch(t.operator){case"|":case"<<":case">>":case">>>":case"^":case"&":return B(O(n),O(r),t.operator);case"==":return R(n,r);case"!=":return!R(n,r);case"<":case">":case"<=":case">=":return N(n,r,t.operator);case"+":return T(n)||T(r)?C(n)+C(r):O(n)+O(r);case"-":return O(n)-O(r);case"*":return O(n)*O(r);case"/":return O(n)/O(r);case"%":return O(n)%O(r);default:throw new s(e,c.UnsupportedOperator,t)}}catch(n){throw n}}function Fe(e,t){try{const n=ee(e,t.left);if(P(n))switch(t.operator){case"||":{if(!0===n)return n;const r=ee(e,t.right);if(P(r))return r;throw new s(e,c.LogicExpressionOrAnd,t)}case"&&":{if(!1===n)return n;const r=ee(e,t.right);if(P(r))return r;throw new s(e,c.LogicExpressionOrAnd,t)}default:throw new s(e,c.LogicExpressionOrAnd,t)}throw new s(e,c.LogicalExpressionOnlyBoolean,t)}catch(n){throw n}}function Ie(e,t,n){if(y(e))throw new s(t,c.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]?C(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,c.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,c.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,c.FunctionNotFound,n);const o=t.global(r);if(!y(o))throw new s(e,c.CallNonFunction,n);return o.call(e,n)}if("Identifier"!==n.callee.type)throw new s(e,c.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,c.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,c.CallNonFunction,n)}throw new s(e,c.FunctionNotFound,n)}catch(r){throw r}}function je(e,t){try{if(!0===t.preparsed)throw new s(e,c.NeverReach,t);const n=t.arguments;x(null===n?[]:n,3,3,e,t);const r=ee(e,n[0]);if(!1===P(r))throw new s(e,c.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,c.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 Ne(e,t){try{if(!0===t.preparsed)throw new s(e,c.NeverReach,t);const n=t.arguments;if(n.length<2)throw new s(e,c.WrongNumberOfParameters,t);if(2===n.length)return ee(e,n[1]);{if((n.length-1)%2==0)throw new s(e,c.WrongNumberOfParameters,t);const r=ee(e,n[0]);return Be(e,t,1,r)}}catch(n){throw n}}function Be(e,t,n,r){try{const o=t.arguments,i=ee(e,o[n]);if(R(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]):Be(e,t,n+2,r)}}catch(o){throw o}}function Ee(e,t){try{if(!0===t.preparsed)throw new s(e,c.NeverReach,t);const n=t.arguments;if(n.length<3)throw new s(e,c.WrongNumberOfParameters,t);if(n.length%2==0)throw new s(e,c.WrongNumberOfParameters,t);const r=ee(e,n[0]);if(!1===P(r))throw new s(e,c.BooleanConditionRequired,n[0]);return ke(e,t,0,r)}catch(n){throw n}}function ke(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===P(r))throw new s(e,c.BooleanConditionRequired,o[n+2]);return ke(e,t,n+2,r)}}catch(o){throw o}}function De(){const e=Object.create(null);D(e,$),G(e,$),U(e,$,Ae),q(e,$),K(e,$),L(e,$),Z(e,$),e.iif=je,e.defaultvalue=Ce,e.decode=Ne,e.when=Ee;const t=function(){const e=new a({newline:"\n",tab:"\t",singlequote:"'",doublequote:'"',forwardslash:"/",backwardslash:"\\"});e.immutable=!1,this.textformatting={value:e}};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 p(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 p(r)});for(let n=0;n<t.signatures.length;n++)E(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 p(t[o])};for(const o in e)r[o]={value:V(e[o])?f.createFromGraphic(e[o],n):e[o]};return r}function qe(e){console.log(e)}function Le(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??qe,timeZone:n.timeZone??null,lrucache:n.lrucache,interceptor:n.interceptor,abortSignal:e,depthCounter:{depth:1}},a=he(l,t);if(a instanceof g||a instanceof m){const e=a.value;if(b(e))return null;if(y(e))throw new s(l,c.IllegalResult,null);return e}if(b(a))return null;if(a===v)throw new s(l,c.IllegalResult,null);if(a===S)throw new s(l,c.IllegalResult,null);throw new s(l,c.NeverReach,null)}Ke([k]);export{Le 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.33/esri/copyright.txt for details.
4
4
  */
5
- import{ArcadeDate as n,createDateTimeZone as e}from"../ArcadeDate.js";import{ArcadeExecutionError as r,ExecutionErrorCodes as t}from"../executionError.js";import{C as o,L as u,t as a,k as s,g as i,j as l,f as c,h as f,K as m,O as d,P as h}from"../../chunks/languageUtils.js";import{DateOnly as y}from"../../core/sql/DateOnly.js";import{TimeOnly as N}from"../../core/sql/TimeOnly.js";import{getLocale as w}from"../../intl/locale.js";import{DateTime as g}from"luxon";import{isString as A}from"../../support/guards.js";function k(n,e,r){return n+(T(r)?P:D)[e]}function T(n){return n%4==0&&(n%100!=0||n%400==0)}const D=[0,31,59,90,120,151,181,212,243,273,304,334],P=[0,31,60,91,121,152,182,213,244,274,305,335];function S(n){return null===n?n:!1===n.isValid?null:n}function Z(n,e){return""===n||"default"===n.toLowerCase().trim()?u(e):"z"===n||"Z"===n?"UTC":n}function p(n,e){return l(n)?n.toArcadeDate():f(n,u(e))}function C(T,D){T.today=function(e,r){return D(e,r,((t,a,s)=>{o(s,0,0,e,r);const i=new Date;return i.setHours(0,0,0,0),n.dateJSAndZoneToArcadeDate(i,u(e))}))},T.time=function(e,c){return D(e,c,((f,m,d)=>{switch(o(d,0,4,e,c),d.length){case 0:{const r=n.nowToArcadeDate(u(e));return new N(r.hour,r.minute,r.second,r.millisecond)}case 1:{if(s(d[0]))return d[0].clone();if(i(d[0]))return new N(d[0].hour,d[0].minute,d[0].second,d[0].millisecond);if(l(d[0]))return new N(0,0,0,0);if(A(d[0]))return N.fromString(d[0]);const n=a(d[0]);return!1===isNaN(n)?N.fromMilliseconds(n):null}case 2:return A(d[0])&&A(d[1])?N.fromString(d[0],d[1]):N.fromParts(a(d[0]),a(d[1]),0,0);case 3:return N.fromParts(a(d[0]),a(d[1]),a(d[2]),0);case 4:return N.fromParts(a(d[0]),a(d[1]),a(d[2]),a(d[3]))}throw new r(e,t.InvalidParameter,c)}))},T.dateonly=function(e,r){return D(e,r,((t,s,f)=>{if(o(f,0,3,e,r),3===f.length)return y.fromParts(a(f[0]),a(f[1])+1,a(f[2]));if(2===f.length){const n=c(f[1]);return""===n?null:"X"===n?y.fromSeconds(a(f[0])):"x"===n?y.fromMilliseconds(a(f[0])):y.fromString(c(f[0]),n)}if(1===f.length){if(A(f[0])){if(""===f[0].replaceAll(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""))return null;if(!0===/^[0-9][0-9][0-9][0-9]$/.test(f[0]))return y.fromString(f[0]+"-01-01")}if(l(f[0]))return f[0].clone();if(i(f[0]))return y.fromParts(f[0].year,f[0].monthJS+1,f[0].day);const n=a(f[0]);return!1===isNaN(n)?y.fromMilliseconds(n):A(f[0])?y.fromString(f[0]):null}if(0===f.length){const r=n.nowToArcadeDate(u(e));return!1===r.isValid?null:y.fromParts(r.year,r.monthJS+1,r.day)}return null}))},T.changetimezone=function(a,s){return D(a,s,((i,m,d)=>{if(o(d,2,2,a,s),null===d[0])return null;if(l(d[0]))throw new r(a,t.CannotChangeTimeZoneDateOnly,s);if(l(d[0]))throw new r(a,t.CannotChangeTimeZoneTime,s);const h=f(d[0],u(a));if(null===h)throw new r(a,t.InvalidParameter,s);const y=e(Z(c(d[1]),a),!1);if(null===y)return null;const N=n.arcadeDateAndZoneToArcadeDate(h,y);return!1===N.isValid?null:N}))},T.timezone=function(e,r){return D(e,r,((t,a,i)=>{if(o(i,1,2,e,r),s(i[0]))return"Unknown";if(l(i[0]))return"Unknown";const c=f(i[0],u(e));if(null===c)return null;const m=c.timeZone;return"system"===m?n.systemTimeZoneCanonicalName:"utc"===m.toLowerCase()?"UTC":"unknown"===m.toLowerCase()?"Unknown":m}))},T.timezoneoffset=function(n,e){return D(n,e,((r,t,a)=>{o(a,1,1,n,e);const s=f(a[0],u(n));return null===s?null:60*s.timeZoneOffset*1e3}))},T.now=function(e,r){return D(e,r,((t,a,s)=>{o(s,0,0,e,r);const i=n.nowToArcadeDate(u(e));return!1===i.isValid?null:i}))},T.timestamp=function(e,r){return D(e,r,((t,u,a)=>{o(a,0,0,e,r);const s=n.nowUTCToArcadeDate();return!1===s.isValid?null:s}))},T.toutc=function(n,e){return D(n,e,((r,t,a)=>{o(a,1,1,n,e);const s=f(a[0],u(n));return null===s?null:s.toUTC()}))},T.tolocal=function(n,e){return D(n,e,((r,t,a)=>{o(a,1,1,n,e);const s=f(a[0],u(n));return null===s?null:s.toLocal()}))},T.day=function(n,e){return D(n,e,((r,t,a)=>{o(a,1,1,n,e);const s=p(a[0],u(n));return null===s?NaN:s.day}))},T.month=function(n,e){return D(n,e,((r,t,a)=>{o(a,1,1,n,e);const s=p(a[0],u(n));return null===s?NaN:s.monthJS}))},T.year=function(n,e){return D(n,e,((r,t,a)=>{o(a,1,1,n,e);const s=p(a[0],u(n));return null===s?NaN:s.year}))},T.hour=function(n,e){return D(n,e,((r,t,a)=>{if(o(a,1,1,n,e),s(a[0]))return a[0].hour;const i=f(a[0],u(n));return null===i?NaN:i.hour}))},T.second=function(n,e){return D(n,e,((r,t,a)=>{if(o(a,1,1,n,e),s(a[0]))return a[0].second;const i=f(a[0],u(n));return null===i?NaN:i.second}))},T.millisecond=function(n,e){return D(n,e,((r,t,a)=>{if(o(a,1,1,n,e),s(a[0]))return a[0].millisecond;const i=f(a[0],u(n));return null===i?NaN:i.millisecond}))},T.minute=function(n,e){return D(n,e,((r,t,a)=>{if(o(a,1,1,n,e),s(a[0]))return a[0].minute;const i=f(a[0],u(n));return null===i?NaN:i.minute}))},T.week=function(n,e){return D(n,e,((s,i,l)=>{o(l,1,2,n,e);const c=p(l[0],u(n));if(null===c)return NaN;const f=a(m(l[1],0));if(f<0||f>6)throw new r(n,t.InvalidParameter,e);const d=c.day,h=c.monthJS,y=c.year,N=c.dayOfWeekJS,w=k(d,h,y)-1,g=Math.floor(w/7);return N-f+(N-f<0?7:0)<w-7*g?g+1:g}))},T.weekday=function(n,e){return D(n,e,((r,t,a)=>{o(a,1,1,n,e);const s=p(a[0],u(n));return null===s?NaN:s.dayOfWeekJS}))},T.isoweekday=function(n,e){return D(n,e,((r,t,a)=>{o(a,1,1,n,e);const s=p(a[0],u(n));return null===s?NaN:s.dayOfWeekISO}))},T.isomonth=function(n,e){return D(n,e,((r,t,a)=>{o(a,1,1,n,e);const s=p(a[0],u(n));return null===s?NaN:s.monthISO}))},T.isoweek=function(n,e){return D(n,e,((r,t,a)=>{o(a,1,1,n,e);const s=p(a[0],u(n));return null===s?NaN:s.weekISO}))},T.isoyear=function(n,e){return D(n,e,((r,t,a)=>{o(a,1,1,n,e);const s=p(a[0],u(n));return null===s?NaN:s.yearISO}))},T.date=function(r,t){return D(r,t,((i,m,h)=>{if(o(h,0,8,r,t),3===h.length){if(l(h[0])&&s(h[1])&&A(h[2])){const t=e(Z(c(h[2])??"unknown",r),!1);return null===t?null:S(n.fromParts(h[0].year,h[0].month,h[0].day,h[1].hour,h[1].minute,h[1].second,h[1].millisecond,t))}return S(n.fromParts(a(h[0]),a(h[1])+1,a(h[2]),0,0,0,0,u(r)))}if(4===h.length)return S(n.fromParts(a(h[0]),a(h[1])+1,a(h[2]),a(h[3]),0,0,0,u(r)));if(5===h.length)return S(n.fromParts(a(h[0]),a(h[1])+1,a(h[2]),a(h[3]),a(h[4]),0,0,u(r)));if(6===h.length)return S(n.fromParts(a(h[0]),a(h[1])+1,a(h[2]),a(h[3]),a(h[4]),a(h[5]),0,u(r)));if(7===h.length)return S(n.fromParts(a(h[0]),a(h[1])+1,a(h[2]),a(h[3]),a(h[4]),a(h[5]),a(h[6]),u(r)));if(8===h.length){const t=e(Z(c(h[7])??"unknown",r),!1);return null===t?null:S(n.fromParts(a(h[0]),a(h[1])+1,a(h[2]),a(h[3]),a(h[4]),a(h[5]),a(h[6]),t))}if(2===h.length){if(l(h[0])&&A(h[1])){const t=e(Z(c(h[1])??"unknown",r),!1);return null===t?null:S(n.fromParts(h[0].year,h[0].month,h[0].day,0,0,0,0,t))}if(l(h[0])&&s(h[1]))return S(n.fromParts(h[0].year,h[0].month,h[0].day,h[1].hour,h[1].minute,h[1].second,h[1].millisecond,"unknown"));let t,o=c(h[1]);return""===o?null:(o=d(o,!0),t="X"===o?g.fromSeconds(a(h[0])):"x"===o?g.fromMillis(a(h[0])):g.fromFormat(c(h[0]),o,{locale:w(),numberingSystem:"latn"}),t.isValid?n.dateTimeToArcadeDate(t):null)}if(1===h.length){if(l(h[0]))return S(n.fromParts(h[0].year,h[0].month,h[0].day,0,0,0,0,"unknown"));if(A(h[0])){if(""===h[0].replaceAll(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""))return null;if(!0===/^[0-9][0-9][0-9][0-9]$/.test(h[0]))return f(h[0]+"-01-01",u(r))}const e=a(h[0]);if(!1===isNaN(e)){const t=g.fromMillis(e);return t.isValid?n.dateTimeAndZoneToArcadeDate(t,u(r)):null}return f(h[0],u(r))}return 0===h.length?n.nowToArcadeDate(u(r)):null}))},T.datediff=function(e,r){return D(e,r,((t,a,i)=>{if(o(i,2,4,e,r),s(i[0]))return s(i[1])?i[0].difference(i[1],c(i[2])):NaN;if(s(i[1]))return NaN;if(l(i[0]))return l(i[1])?i[0].difference(i[1],c(i[2])):NaN;if(l(i[1]))return NaN;let d=f(i[0],u(e)),h=f(i[1],u(e));if(null===d||null===h)return NaN;let y=m(i[3],"");switch(""!==y&&null!==y?(y=Z(c(y),e),d=n.arcadeDateAndZoneToArcadeDate(d,y),h=n.arcadeDateAndZoneToArcadeDate(h,y)):d.timeZone!==h.timeZone&&(d.isUnknownTimeZone?d=n.arcadeDateAndZoneToArcadeDate(d,h.timeZone):h=(h.isUnknownTimeZone,n.arcadeDateAndZoneToArcadeDate(h,d.timeZone))),c(i[2]).toLowerCase()){case"days":case"day":case"d":return d.diff(h,"days");case"months":case"month":return d.diff(h,"months");case"minutes":case"minute":case"m":return"M"===i[2]?d.diff(h,"months"):d.diff(h,"minutes");case"seconds":case"second":case"s":return d.diff(h,"seconds");case"milliseconds":case"millisecond":case"ms":default:return d.diff(h);case"hours":case"hour":case"h":return d.diff(h,"hours");case"years":case"year":case"y":return d.diff(h,"years")}}))},T.dateadd=function(n,e){return D(n,e,((r,t,i)=>{o(i,2,3,n,e);let m=a(i[1]);if(isNaN(m)||m===1/0||m===-1/0)return s(i[0])||l(i[0])?i[0].clone():f(i[0],u(n));let d="milliseconds";switch(c(i[2]).toLowerCase()){case"days":case"day":case"d":d="days",m=l(i[0])?m:h(m);break;case"months":case"month":d="months",m=l(i[0])?m:h(m);break;case"minutes":case"minute":case"m":d="M"===i[2]?"months":"minutes";break;case"seconds":case"second":case"s":d="seconds";break;case"milliseconds":case"millisecond":case"ms":d="milliseconds";break;case"hours":case"hour":case"h":d="hours";break;case"years":case"year":case"y":d="years"}if(s(i[0]))return i[0].plus(d,m);if(l(i[0]))return i[0].plus(d,m);const y=f(i[0],u(n));return null===y?null:y.plus({[d]:m})}))}}export{C as registerFunctions};
5
+ import{ArcadeDate as n,createDateTimeZone as e}from"../ArcadeDate.js";import{ArcadeExecutionError as r,ExecutionErrorCodes as t}from"../executionError.js";import{D as o,L as u,t as a,k as s,g as i,j as l,f as c,h as f,K as m,O as d,P as h}from"../../chunks/languageUtils.js";import{DateOnly as y}from"../../core/sql/DateOnly.js";import{TimeOnly as N}from"../../core/sql/TimeOnly.js";import{getLocale as w}from"../../intl/locale.js";import{DateTime as g}from"luxon";import{isString as A}from"../../support/guards.js";function k(n,e,r){return n+(T(r)?P:D)[e]}function T(n){return n%4==0&&(n%100!=0||n%400==0)}const D=[0,31,59,90,120,151,181,212,243,273,304,334],P=[0,31,60,91,121,152,182,213,244,274,305,335];function S(n){return null===n?n:!1===n.isValid?null:n}function Z(n,e){return""===n||"default"===n.toLowerCase().trim()?u(e):"z"===n||"Z"===n?"UTC":n}function p(n,e){return l(n)?n.toArcadeDate():f(n,u(e))}function C(T,D){T.today=function(e,r){return D(e,r,((t,a,s)=>{o(s,0,0,e,r);const i=new Date;return i.setHours(0,0,0,0),n.dateJSAndZoneToArcadeDate(i,u(e))}))},T.time=function(e,c){return D(e,c,((f,m,d)=>{switch(o(d,0,4,e,c),d.length){case 0:{const r=n.nowToArcadeDate(u(e));return new N(r.hour,r.minute,r.second,r.millisecond)}case 1:{if(s(d[0]))return d[0].clone();if(i(d[0]))return new N(d[0].hour,d[0].minute,d[0].second,d[0].millisecond);if(l(d[0]))return new N(0,0,0,0);if(A(d[0]))return N.fromString(d[0]);const n=a(d[0]);return!1===isNaN(n)?N.fromMilliseconds(n):null}case 2:return A(d[0])&&A(d[1])?N.fromString(d[0],d[1]):N.fromParts(a(d[0]),a(d[1]),0,0);case 3:return N.fromParts(a(d[0]),a(d[1]),a(d[2]),0);case 4:return N.fromParts(a(d[0]),a(d[1]),a(d[2]),a(d[3]))}throw new r(e,t.InvalidParameter,c)}))},T.dateonly=function(e,r){return D(e,r,((t,s,f)=>{if(o(f,0,3,e,r),3===f.length)return y.fromParts(a(f[0]),a(f[1])+1,a(f[2]));if(2===f.length){const n=c(f[1]);return""===n?null:"X"===n?y.fromSeconds(a(f[0])):"x"===n?y.fromMilliseconds(a(f[0])):y.fromString(c(f[0]),n)}if(1===f.length){if(A(f[0])){if(""===f[0].replaceAll(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""))return null;if(!0===/^[0-9][0-9][0-9][0-9]$/.test(f[0]))return y.fromString(f[0]+"-01-01")}if(l(f[0]))return f[0].clone();if(i(f[0]))return y.fromParts(f[0].year,f[0].monthJS+1,f[0].day);const n=a(f[0]);return!1===isNaN(n)?y.fromMilliseconds(n):A(f[0])?y.fromString(f[0]):null}if(0===f.length){const r=n.nowToArcadeDate(u(e));return!1===r.isValid?null:y.fromParts(r.year,r.monthJS+1,r.day)}return null}))},T.changetimezone=function(a,s){return D(a,s,((i,m,d)=>{if(o(d,2,2,a,s),null===d[0])return null;if(l(d[0]))throw new r(a,t.CannotChangeTimeZoneDateOnly,s);if(l(d[0]))throw new r(a,t.CannotChangeTimeZoneTime,s);const h=f(d[0],u(a));if(null===h)throw new r(a,t.InvalidParameter,s);const y=e(Z(c(d[1]),a),!1);if(null===y)return null;const N=n.arcadeDateAndZoneToArcadeDate(h,y);return!1===N.isValid?null:N}))},T.timezone=function(e,r){return D(e,r,((t,a,i)=>{if(o(i,1,2,e,r),s(i[0]))return"Unknown";if(l(i[0]))return"Unknown";const c=f(i[0],u(e));if(null===c)return null;const m=c.timeZone;return"system"===m?n.systemTimeZoneCanonicalName:"utc"===m.toLowerCase()?"UTC":"unknown"===m.toLowerCase()?"Unknown":m}))},T.timezoneoffset=function(n,e){return D(n,e,((r,t,a)=>{o(a,1,1,n,e);const s=f(a[0],u(n));return null===s?null:60*s.timeZoneOffset*1e3}))},T.now=function(e,r){return D(e,r,((t,a,s)=>{o(s,0,0,e,r);const i=n.nowToArcadeDate(u(e));return!1===i.isValid?null:i}))},T.timestamp=function(e,r){return D(e,r,((t,u,a)=>{o(a,0,0,e,r);const s=n.nowUTCToArcadeDate();return!1===s.isValid?null:s}))},T.toutc=function(n,e){return D(n,e,((r,t,a)=>{o(a,1,1,n,e);const s=f(a[0],u(n));return null===s?null:s.toUTC()}))},T.tolocal=function(n,e){return D(n,e,((r,t,a)=>{o(a,1,1,n,e);const s=f(a[0],u(n));return null===s?null:s.toLocal()}))},T.day=function(n,e){return D(n,e,((r,t,a)=>{o(a,1,1,n,e);const s=p(a[0],u(n));return null===s?NaN:s.day}))},T.month=function(n,e){return D(n,e,((r,t,a)=>{o(a,1,1,n,e);const s=p(a[0],u(n));return null===s?NaN:s.monthJS}))},T.year=function(n,e){return D(n,e,((r,t,a)=>{o(a,1,1,n,e);const s=p(a[0],u(n));return null===s?NaN:s.year}))},T.hour=function(n,e){return D(n,e,((r,t,a)=>{if(o(a,1,1,n,e),s(a[0]))return a[0].hour;const i=f(a[0],u(n));return null===i?NaN:i.hour}))},T.second=function(n,e){return D(n,e,((r,t,a)=>{if(o(a,1,1,n,e),s(a[0]))return a[0].second;const i=f(a[0],u(n));return null===i?NaN:i.second}))},T.millisecond=function(n,e){return D(n,e,((r,t,a)=>{if(o(a,1,1,n,e),s(a[0]))return a[0].millisecond;const i=f(a[0],u(n));return null===i?NaN:i.millisecond}))},T.minute=function(n,e){return D(n,e,((r,t,a)=>{if(o(a,1,1,n,e),s(a[0]))return a[0].minute;const i=f(a[0],u(n));return null===i?NaN:i.minute}))},T.week=function(n,e){return D(n,e,((s,i,l)=>{o(l,1,2,n,e);const c=p(l[0],u(n));if(null===c)return NaN;const f=a(m(l[1],0));if(f<0||f>6)throw new r(n,t.InvalidParameter,e);const d=c.day,h=c.monthJS,y=c.year,N=c.dayOfWeekJS,w=k(d,h,y)-1,g=Math.floor(w/7);return N-f+(N-f<0?7:0)<w-7*g?g+1:g}))},T.weekday=function(n,e){return D(n,e,((r,t,a)=>{o(a,1,1,n,e);const s=p(a[0],u(n));return null===s?NaN:s.dayOfWeekJS}))},T.isoweekday=function(n,e){return D(n,e,((r,t,a)=>{o(a,1,1,n,e);const s=p(a[0],u(n));return null===s?NaN:s.dayOfWeekISO}))},T.isomonth=function(n,e){return D(n,e,((r,t,a)=>{o(a,1,1,n,e);const s=p(a[0],u(n));return null===s?NaN:s.monthISO}))},T.isoweek=function(n,e){return D(n,e,((r,t,a)=>{o(a,1,1,n,e);const s=p(a[0],u(n));return null===s?NaN:s.weekISO}))},T.isoyear=function(n,e){return D(n,e,((r,t,a)=>{o(a,1,1,n,e);const s=p(a[0],u(n));return null===s?NaN:s.yearISO}))},T.date=function(r,t){return D(r,t,((i,m,h)=>{if(o(h,0,8,r,t),3===h.length){if(l(h[0])&&s(h[1])&&A(h[2])){const t=e(Z(c(h[2])??"unknown",r),!1);return null===t?null:S(n.fromParts(h[0].year,h[0].month,h[0].day,h[1].hour,h[1].minute,h[1].second,h[1].millisecond,t))}return S(n.fromParts(a(h[0]),a(h[1])+1,a(h[2]),0,0,0,0,u(r)))}if(4===h.length)return S(n.fromParts(a(h[0]),a(h[1])+1,a(h[2]),a(h[3]),0,0,0,u(r)));if(5===h.length)return S(n.fromParts(a(h[0]),a(h[1])+1,a(h[2]),a(h[3]),a(h[4]),0,0,u(r)));if(6===h.length)return S(n.fromParts(a(h[0]),a(h[1])+1,a(h[2]),a(h[3]),a(h[4]),a(h[5]),0,u(r)));if(7===h.length)return S(n.fromParts(a(h[0]),a(h[1])+1,a(h[2]),a(h[3]),a(h[4]),a(h[5]),a(h[6]),u(r)));if(8===h.length){const t=e(Z(c(h[7])??"unknown",r),!1);return null===t?null:S(n.fromParts(a(h[0]),a(h[1])+1,a(h[2]),a(h[3]),a(h[4]),a(h[5]),a(h[6]),t))}if(2===h.length){if(l(h[0])&&A(h[1])){const t=e(Z(c(h[1])??"unknown",r),!1);return null===t?null:S(n.fromParts(h[0].year,h[0].month,h[0].day,0,0,0,0,t))}if(l(h[0])&&s(h[1]))return S(n.fromParts(h[0].year,h[0].month,h[0].day,h[1].hour,h[1].minute,h[1].second,h[1].millisecond,"unknown"));let t,o=c(h[1]);return""===o?null:(o=d(o,!0),t="X"===o?g.fromSeconds(a(h[0])):"x"===o?g.fromMillis(a(h[0])):g.fromFormat(c(h[0]),o,{locale:w(),numberingSystem:"latn"}),t.isValid?n.dateTimeToArcadeDate(t):null)}if(1===h.length){if(l(h[0]))return S(n.fromParts(h[0].year,h[0].month,h[0].day,0,0,0,0,"unknown"));if(A(h[0])){if(""===h[0].replaceAll(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""))return null;if(!0===/^[0-9][0-9][0-9][0-9]$/.test(h[0]))return f(h[0]+"-01-01",u(r))}const e=a(h[0]);if(!1===isNaN(e)){const t=g.fromMillis(e);return t.isValid?n.dateTimeAndZoneToArcadeDate(t,u(r)):null}return f(h[0],u(r))}return 0===h.length?n.nowToArcadeDate(u(r)):null}))},T.datediff=function(e,r){return D(e,r,((t,a,i)=>{if(o(i,2,4,e,r),s(i[0]))return s(i[1])?i[0].difference(i[1],c(i[2])):NaN;if(s(i[1]))return NaN;if(l(i[0]))return l(i[1])?i[0].difference(i[1],c(i[2])):NaN;if(l(i[1]))return NaN;let d=f(i[0],u(e)),h=f(i[1],u(e));if(null===d||null===h)return NaN;let y=m(i[3],"");switch(""!==y&&null!==y?(y=Z(c(y),e),d=n.arcadeDateAndZoneToArcadeDate(d,y),h=n.arcadeDateAndZoneToArcadeDate(h,y)):d.timeZone!==h.timeZone&&(d.isUnknownTimeZone?d=n.arcadeDateAndZoneToArcadeDate(d,h.timeZone):h=(h.isUnknownTimeZone,n.arcadeDateAndZoneToArcadeDate(h,d.timeZone))),c(i[2]).toLowerCase()){case"days":case"day":case"d":return d.diff(h,"days");case"months":case"month":return d.diff(h,"months");case"minutes":case"minute":case"m":return"M"===i[2]?d.diff(h,"months"):d.diff(h,"minutes");case"seconds":case"second":case"s":return d.diff(h,"seconds");case"milliseconds":case"millisecond":case"ms":default:return d.diff(h);case"hours":case"hour":case"h":return d.diff(h,"hours");case"years":case"year":case"y":return d.diff(h,"years")}}))},T.dateadd=function(n,e){return D(n,e,((r,t,i)=>{o(i,2,3,n,e);let m=a(i[1]);if(isNaN(m)||m===1/0||m===-1/0)return s(i[0])||l(i[0])?i[0].clone():f(i[0],u(n));let d="milliseconds";switch(c(i[2]).toLowerCase()){case"days":case"day":case"d":d="days",m=l(i[0])?m:h(m);break;case"months":case"month":d="months",m=l(i[0])?m:h(m);break;case"minutes":case"minute":case"m":d="M"===i[2]?"months":"minutes";break;case"seconds":case"second":case"s":d="seconds";break;case"milliseconds":case"millisecond":case"ms":d="milliseconds";break;case"hours":case"hour":case"h":d="hours";break;case"years":case"year":case"y":d="years"}if(s(i[0]))return i[0].plus(d,m);if(l(i[0]))return i[0].plus(d,m);const y=f(i[0],u(n));return null===y?null:y.plus({[d]:m})}))}}export{C as registerFunctions};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import e from"../Dictionary.js";import{ArcadeExecutionError as n,ExecutionErrorCodes as t}from"../executionError.js";import r from"../Feature.js";import{C as o,n as i,Q as a,f as u,L as s,S as d,T as f,v as c,U as m,V as l,g as p}from"../../chunks/languageUtils.js";import{layerFieldEsriConstants as y}from"../featureset/support/shared.js";import{SqlTimeStampOffset as v}from"../../core/sql/SqlTimestampOffset.js";import w from"../../core/sql/WhereClause.js";import{isString as b}from"../../support/guards.js";function h(e){const n=e?.fullSchema();return n?.datesInUnknownTimezone?"unknown":n?.dateFieldsTimeZone||"UTC"}function T(e){const n=e.fullSchema()?.fieldsIndex;return null==n&&e instanceof r?e.fieldsIndex:n}const I={getAttributeSQL(e,n){const t=e.field(n);if(null==t)return t;if(p(t)){const r=t.toDateTime(),o=T(e)?.get(n)?.type;return"esriFieldTypeTimestampOffset"===o||"timestamp-offset"===o?v.fromDateTime(r):r}return t}};function g(r,p,v){r.domain=function(r,d){return p(r,d,((f,c,m)=>{if(o(m,2,3,r,d),i(m[0])){const n=a(m[0],u(m[1]),void 0===m[2]?void 0:m[2]);return n&&n.domain?"coded-value"===n.domain.type||"codedValue"===n.domain.type?e.convertObjectToArcadeDictionary({type:"codedValue",name:n.domain.name,dataType:y[n.field.type],codedValues:n.domain.codedValues.map((e=>({name:e.name,code:e.code})))},s(r)):e.convertObjectToArcadeDictionary({type:"range",name:n.domain.name,dataType:y[n.field.type],min:n.domain.minValue,max:n.domain.maxValue},s(r)):null}throw new n(r,t.InvalidParameter,d)}))},r.domaincode=function(e,r){return p(e,r,((a,s,f)=>{if(o(f,2,4,e,r),i(f[0]))return d(f[0],u(f[1]),f[2],void 0===f[3]?void 0:f[3]);throw new n(e,t.InvalidParameter,r)}))},r.domainname=function(e,r){return p(e,r,((a,s,d)=>{if(o(d,2,4,e,r),i(d[0]))return f(d[0],u(d[1]),d[2],void 0===d[3]?void 0:d[3]);throw new n(e,t.InvalidParameter,r)}))},r.expects=function(e,r){return p(e,r,((o,i,a)=>{if(a.length<1)throw new n(e,t.WrongNumberOfParameters,r);return c}))},r.featureinfilter=function(e,r){return p(e,r,((e,r,a)=>{o(a,2,2,e,r);const[u,s]=a;if(null==u)return!1;if(""===s||null==s)return!0;if(!i(u)||!b(s))throw new n(e,t.InvalidParameter,r);const d=w.create(s,{fieldsIndex:T(u),timeZone:h(u)}),f=d.getVariables();for(const n of f)d.parameters[n]=v(e,{name:n});return d.testFeature(u,I)}))},r.gdbversion=function(e,r){return p(e,r,((a,u,s)=>{if(o(s,1,1,e,r),i(s[0]))return s[0].gdbVersion();throw new n(e,t.InvalidParameter,r)}))},r.schema=function(r,o){return p(r,o,((a,u,d)=>{if(i(d[0])){const n=m(d[0]);return n?e.convertObjectToArcadeDictionary(n,s(r)):null}throw new n(r,t.InvalidParameter,o)}))},r.subtypecode=function(e,r){return p(e,r,((a,u,s)=>{if(o(s,1,1,e,r),i(s[0])){const e=l(s[0]);if(!e)return null;if(e.subtypeField&&s[0].hasField(e.subtypeField)){const n=s[0].field(e.subtypeField);for(const t of e.subtypes)if(t.code===n)return t.code;return null}return null}throw new n(e,t.InvalidParameter,r)}))},r.subtypename=function(e,r){return p(e,r,((a,u,s)=>{if(o(s,1,1,e,r),i(s[0])){const e=l(s[0]);if(!e)return"";if(e.subtypeField&&s[0].hasField(e.subtypeField)){const n=s[0].field(e.subtypeField);for(const t of e.subtypes)if(t.code===n)return t.name;return""}return""}throw new n(e,t.InvalidParameter,r)}))},r.subtypes=function(r,a){return p(r,a,((u,d,f)=>{if(o(f,1,1,r,a),i(f[0])){const n=l(f[0]);return n?e.convertObjectToArcadeDictionary(n,s(r)):null}throw new n(r,t.InvalidParameter,a)}))}}export{g as registerFunctions};
5
+ import e from"../Dictionary.js";import{ArcadeExecutionError as n,ExecutionErrorCodes as t}from"../executionError.js";import r from"../Feature.js";import{D as o,n as i,Q as a,f as u,L as s,S as d,T as f,v as c,U as m,V as l,g as p}from"../../chunks/languageUtils.js";import{layerFieldEsriConstants as y}from"../featureset/support/shared.js";import{SqlTimeStampOffset as v}from"../../core/sql/SqlTimestampOffset.js";import w from"../../core/sql/WhereClause.js";import{isString as b}from"../../support/guards.js";function h(e){const n=e?.fullSchema();return n?.datesInUnknownTimezone?"unknown":n?.dateFieldsTimeZone||"UTC"}function T(e){const n=e.fullSchema()?.fieldsIndex;return null==n&&e instanceof r?e.fieldsIndex:n}const I={getAttributeSQL(e,n){const t=e.field(n);if(null==t)return t;if(p(t)){const r=t.toDateTime(),o=T(e)?.get(n)?.type;return"esriFieldTypeTimestampOffset"===o||"timestamp-offset"===o?v.fromDateTime(r):r}return t}};function g(r,p,v){r.domain=function(r,d){return p(r,d,((f,c,m)=>{if(o(m,2,3,r,d),i(m[0])){const n=a(m[0],u(m[1]),void 0===m[2]?void 0:m[2]);return n&&n.domain?"coded-value"===n.domain.type||"codedValue"===n.domain.type?e.convertObjectToArcadeDictionary({type:"codedValue",name:n.domain.name,dataType:y[n.field.type],codedValues:n.domain.codedValues.map((e=>({name:e.name,code:e.code})))},s(r)):e.convertObjectToArcadeDictionary({type:"range",name:n.domain.name,dataType:y[n.field.type],min:n.domain.minValue,max:n.domain.maxValue},s(r)):null}throw new n(r,t.InvalidParameter,d)}))},r.domaincode=function(e,r){return p(e,r,((a,s,f)=>{if(o(f,2,4,e,r),i(f[0]))return d(f[0],u(f[1]),f[2],void 0===f[3]?void 0:f[3]);throw new n(e,t.InvalidParameter,r)}))},r.domainname=function(e,r){return p(e,r,((a,s,d)=>{if(o(d,2,4,e,r),i(d[0]))return f(d[0],u(d[1]),d[2],void 0===d[3]?void 0:d[3]);throw new n(e,t.InvalidParameter,r)}))},r.expects=function(e,r){return p(e,r,((o,i,a)=>{if(a.length<1)throw new n(e,t.WrongNumberOfParameters,r);return c}))},r.featureinfilter=function(e,r){return p(e,r,((e,r,a)=>{o(a,2,2,e,r);const[u,s]=a;if(null==u)return!1;if(""===s||null==s)return!0;if(!i(u)||!b(s))throw new n(e,t.InvalidParameter,r);const d=w.create(s,{fieldsIndex:T(u),timeZone:h(u)}),f=d.getVariables();for(const n of f)d.parameters[n]=v(e,{name:n});return d.testFeature(u,I)}))},r.gdbversion=function(e,r){return p(e,r,((a,u,s)=>{if(o(s,1,1,e,r),i(s[0]))return s[0].gdbVersion();throw new n(e,t.InvalidParameter,r)}))},r.schema=function(r,o){return p(r,o,((a,u,d)=>{if(i(d[0])){const n=m(d[0]);return n?e.convertObjectToArcadeDictionary(n,s(r)):null}throw new n(r,t.InvalidParameter,o)}))},r.subtypecode=function(e,r){return p(e,r,((a,u,s)=>{if(o(s,1,1,e,r),i(s[0])){const e=l(s[0]);if(!e)return null;if(e.subtypeField&&s[0].hasField(e.subtypeField)){const n=s[0].field(e.subtypeField);for(const t of e.subtypes)if(t.code===n)return t.code;return null}return null}throw new n(e,t.InvalidParameter,r)}))},r.subtypename=function(e,r){return p(e,r,((a,u,s)=>{if(o(s,1,1,e,r),i(s[0])){const e=l(s[0]);if(!e)return"";if(e.subtypeField&&s[0].hasField(e.subtypeField)){const n=s[0].field(e.subtypeField);for(const t of e.subtypes)if(t.code===n)return t.name;return""}return""}throw new n(e,t.InvalidParameter,r)}))},r.subtypes=function(r,a){return p(r,a,((u,d,f)=>{if(o(f,1,1,r,a),i(f[0])){const n=l(f[0]);return n?e.convertObjectToArcadeDictionary(n,s(r)):null}throw new n(r,t.InvalidParameter,a)}))}}export{g as registerFunctions};