@arcgis/core 5.1.0-next.92 → 5.1.0-next.94

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 (213) hide show
  1. package/analysis/ShadowCast/DiscreteOptions.d.ts +12 -6
  2. package/analysis/ShadowCast/MinDurationOptions.d.ts +17 -9
  3. package/analysis/ShadowCast/TotalDurationOptions.d.ts +10 -6
  4. package/analysis/ShadowCastAnalysis.d.ts +23 -17
  5. package/analysis/Viewshed.js +1 -1
  6. package/arcade/arcadeAsyncRuntime.js +1 -1
  7. package/arcade/arcadeCompiler.js +1 -1
  8. package/arcade/arcadeRuntime.js +1 -1
  9. package/arcade/compilerUtils.js +1 -1
  10. package/arcade/debug.d.ts +10 -1
  11. package/arcade.js +1 -1
  12. package/assets/components/assets/combobox/t9n/messages.fr.json +1 -1
  13. package/assets/esri/core/workers/RemoteClient.js +1 -1
  14. package/assets/esri/core/workers/chunks/01af2a0611386df64cb1.js +636 -0
  15. package/assets/esri/core/workers/chunks/031ea31bbdb7f1be791e.js +1 -0
  16. package/assets/esri/core/workers/chunks/{9c09097e390985bbac58.js → 075a1e91a075efe59cd3.js} +1 -1
  17. package/assets/esri/core/workers/chunks/0981fe06796060e50d40.js +1 -0
  18. package/assets/esri/core/workers/chunks/0ab1384282afc8731857.js +1 -0
  19. package/assets/esri/core/workers/chunks/1523883460874c352e36.js +1 -0
  20. package/assets/esri/core/workers/chunks/{de3e5d82502ee15b7eae.js → 15a070d4ac2087b79e8b.js} +1 -1
  21. package/assets/esri/core/workers/chunks/198864c107fa2b24518c.js +1 -0
  22. package/assets/esri/core/workers/chunks/1f141a007b1ef9b069c6.js +1 -0
  23. package/assets/esri/core/workers/chunks/268f203d2492a03165ac.js +1 -0
  24. package/assets/esri/core/workers/chunks/{f52443cd203e687551da.js → 2fda38219d778f0447b5.js} +1 -1
  25. package/assets/esri/core/workers/chunks/2ffffc1931b2e27c6617.js +1 -0
  26. package/assets/esri/core/workers/chunks/{394812e19b6915d560b0.js → 3a691f848152e3818a48.js} +1 -1
  27. package/assets/esri/core/workers/chunks/{ceff78c9e31e3572a082.js → 3a6b8879702fb247328b.js} +1 -1
  28. package/assets/esri/core/workers/chunks/{41cbde4738ae4adf973d.js → 4142d5232c99d8aa943d.js} +5 -5
  29. package/assets/esri/core/workers/chunks/4378e544687fec4b06fb.js +1 -0
  30. package/assets/esri/core/workers/chunks/{4b9b9e6136c11d5d7901.js → 460e693ad19fa77ffdc2.js} +1 -1
  31. package/assets/esri/core/workers/chunks/4df19e670b6ed76c1dea.js +2 -0
  32. package/assets/esri/core/workers/chunks/{a169d9fe66b5865911d9.js → 503439246250d9e1cbd5.js} +1 -1
  33. package/assets/esri/core/workers/chunks/{1e3fe89970c57a883fe5.js → 53ff47c06ccfc0be885c.js} +1 -1
  34. package/assets/esri/core/workers/chunks/561d45dc9421f80feca5.js +1 -0
  35. package/assets/esri/core/workers/chunks/598271956c46e21e5c09.js +1 -0
  36. package/assets/esri/core/workers/chunks/{d82da31dc702b8fd6a07.js → 59a64d72eed8c40c63cf.js} +1 -1
  37. package/assets/esri/core/workers/chunks/5a8fd2fd8a24f9290b7f.js +1 -0
  38. package/assets/esri/core/workers/chunks/64cf18ba2869171a5a7a.js +1 -0
  39. package/assets/esri/core/workers/chunks/{fade7b878a9498382bb2.js → 700f7aa9cf7b13acaf5d.js} +1 -1
  40. package/assets/esri/core/workers/chunks/{4c97cc922eece3a91b6b.js → 7531bbcb6613c87a344e.js} +1 -1
  41. package/assets/esri/core/workers/chunks/{6f67c9f68101a084b683.js → 765bc49e58e9d0caa496.js} +6 -6
  42. package/assets/esri/core/workers/chunks/8042e001545e2782499c.js +1 -0
  43. package/assets/esri/core/workers/chunks/{bb8d596f15fd3a0d783a.js → 82215d7a64b8be02eff1.js} +1 -1
  44. package/assets/esri/core/workers/chunks/{d3d9d40556c847bba1a7.js → 87f7a674957f734b1b42.js} +1 -1
  45. package/assets/esri/core/workers/chunks/{5409369d0d637cb30257.js → 8875e53097b25655ef67.js} +1 -1
  46. package/assets/esri/core/workers/chunks/8e1140725a72038627c2.js +1 -0
  47. package/assets/esri/core/workers/chunks/8e374ce47256a567ae11.js +1 -0
  48. package/assets/esri/core/workers/chunks/{127cd8fee3717a473fc5.js → 928dac64e6ba401d391a.js} +1 -1
  49. package/assets/esri/core/workers/chunks/{d7e7f3efd1d28617b808.js → 92e7067960549733f8e6.js} +1 -1
  50. package/assets/esri/core/workers/chunks/{0a6df243b18acae471be.js → 992525afdf11b2fb16d4.js} +1 -1
  51. package/assets/esri/core/workers/chunks/{f1673e723b336204ad77.js → 9b23d999db902d25ba58.js} +1 -1
  52. package/assets/esri/core/workers/chunks/{f2c11f54255fd506655e.js → 9b869a8bda9384f25464.js} +1 -1
  53. package/assets/esri/core/workers/chunks/a76e14fe5e8b2f7ef9de.js +2 -0
  54. package/assets/esri/core/workers/chunks/{46b16501db6681dc467b.js → af074b5b4e1d6baf5219.js} +1 -1
  55. package/assets/esri/core/workers/chunks/{75c09a2fa4c34b4844c5.js → be0eab592db0e651b023.js} +6 -6
  56. package/assets/esri/core/workers/chunks/{2dcfc4d7e76c922bcbf9.js → c7b9df9a204f6206364a.js} +1 -1
  57. package/assets/esri/core/workers/chunks/{969f58a2de4ebe63619d.js → c88fd4f69cb2b53b48ec.js} +1 -1
  58. package/assets/esri/core/workers/chunks/{ee057c85cdf6beb5b012.js → d1ba118ddd0390c07f35.js} +2 -2
  59. package/assets/esri/core/workers/chunks/d6f03f628ebfc28fdd23.js +2 -0
  60. package/assets/esri/core/workers/chunks/{577cbc131b21c351fae5.js → d87e504082e293640ece.js} +2 -2
  61. package/assets/esri/core/workers/chunks/{54c035cdc171998d0776.js → de99500b0fcedf2c8a5c.js} +1 -1
  62. package/assets/esri/core/workers/chunks/e54ad3683ad992682deb.js +1 -0
  63. package/assets/esri/core/workers/chunks/e6f1ed5e56f1d9862821.js +1 -0
  64. package/assets/esri/core/workers/chunks/e7e7c7cbfd8542bd7a46.js +1 -0
  65. package/assets/esri/core/workers/chunks/{27f67a3828b78d4c1413.js → e81afc8a058a8ecc9b24.js} +1 -1
  66. package/assets/esri/core/workers/chunks/{aefeb5a17bb481c95da3.js → eeb847bfea558566adf6.js} +1 -1
  67. package/assets/esri/core/workers/chunks/{90a8dfb03a437fe8a6e7.js → f04b49d80f422708d98c.js} +1 -1
  68. package/assets/esri/core/workers/chunks/{d11de13537b623739e14.js → f14e3693cd644265f909.js} +1 -1
  69. package/assets/esri/core/workers/chunks/f2beb4267b8d4cddfa3e.js +1 -0
  70. package/assets/esri/core/workers/chunks/{2fd4220131bfc3f5e2dd.js → f635a8e3b0bfeda99ed5.js} +1 -1
  71. package/assets/esri/core/workers/chunks/{aa6808146c76b2d49b64.js → f68c12e0c1eda7f73a17.js} +1 -1
  72. package/assets/esri/core/workers/chunks/f69c44479ee3fd8c831d.js +1 -0
  73. package/assets/esri/core/workers/chunks/fa3138dd8139008b430d.js +1 -0
  74. package/assets/esri/core/workers/chunks/fa4265db06e2721754a0.js +1 -0
  75. package/assets/esri/core/workers/chunks/{adfa5c136c72c1e65770.js → fb75d4bce1e86eed017a.js} +28 -22
  76. package/chunks/GlobalIllumination.glsl.js +24 -18
  77. package/chunks/GlowBlur.glsl.js +11 -11
  78. package/chunks/GlowComposition.glsl.js +4 -4
  79. package/chunks/RibbonLine.glsl.js +91 -51
  80. package/chunks/ShadowCastVisualize.glsl.js +18 -15
  81. package/config.js +1 -1
  82. package/geometry/support/geometryUtils.js +1 -1
  83. package/kernel.js +1 -1
  84. package/layers/FeatureLayer.d.ts +27 -1
  85. package/layers/FeatureLayer.js +1 -1
  86. package/layers/graphics/sources/MemorySource.js +1 -1
  87. package/layers/mixins/PortalLayer.js +1 -1
  88. package/layers/raster/datasets/ImageAuxRaster.js +1 -1
  89. package/layers/raster/datasets/InMemoryRaster.js +1 -1
  90. package/layers/raster/formats/ImageCanvasDecoder.js +1 -1
  91. package/layers/raster/formats/RasterCodec.js +1 -1
  92. package/layers/support/RasterJobHandler.js +1 -1
  93. package/networks/support/UNTraceConfiguration.d.ts +19 -2
  94. package/networks/support/UNTraceConfiguration.js +1 -1
  95. package/networks/support/jsonTypes.d.ts +9 -1
  96. package/package.json +4 -4
  97. package/popup/Feature.d.ts +4 -4
  98. package/popup/Feature.js +1 -1
  99. package/portal/schemas/definitions.js +1 -1
  100. package/portal/support/layersLoader.js +1 -1
  101. package/rest/knowledgeGraph/GraphApplyEditsResult.d.ts +13 -1
  102. package/rest/knowledgeGraph/GraphApplyEditsResult.js +1 -1
  103. package/rest/knowledgeGraph/GraphDeleteNamedTypeResult.d.ts +9 -1
  104. package/rest/knowledgeGraph/GraphDeleteNamedTypeResult.js +1 -1
  105. package/rest/knowledgeGraph/wasmInterface/wasmToDataModelChangeResponseFactories.js +1 -1
  106. package/rest/knowledgeGraph/wasmInterface/wasmToUpdateResponseFactories.js +1 -1
  107. package/rest/networks/support/NetworkElement.d.ts +13 -1
  108. package/rest/networks/support/NetworkElement.js +1 -1
  109. package/rest/versionManagement/gdbVersion/support/ConflictsParameters.js +1 -1
  110. package/rest/versionManagement/gdbVersion/support/DifferencesParameters.js +1 -1
  111. package/rest/versionManagement/gdbVersion/support/DifferencesResult.d.ts +25 -0
  112. package/rest/versionManagement/gdbVersion/support/InspectConflictsParameters.js +1 -1
  113. package/rest/versionManagement/gdbVersion/support/ReconcileParameters.d.ts +3 -5
  114. package/rest/versionManagement/gdbVersion/support/ReconcileParameters.js +1 -1
  115. package/support/revision.js +1 -1
  116. package/symbols/cim/types.d.ts +27 -0
  117. package/views/2d/engine/webgl/GlyphMosaic.js +1 -1
  118. package/views/2d/engine/webgl/GlyphSDFCreator.js +1 -1
  119. package/views/2d/engine/webgl/definitions.js +1 -1
  120. package/views/2d/engine/webgl/shaderGraph/graph/GlslGraphWriter.js +1 -1
  121. package/views/2d/engine/webgl/shaderGraph/graph/ShaderGraphContext.js +1 -1
  122. package/views/2d/engine/webgl/shaderGraph/graph/glsl.js +1 -1
  123. package/views/2d/engine/webgl/shaderGraph/techniques/text/TextShader.js +1 -1
  124. package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
  125. package/views/2d/layers/FeatureLikeLayerView2D.js +1 -1
  126. package/views/3d/analysis/ShadowCastAnalysisView3D.d.ts +6 -5
  127. package/views/3d/analysis/ShadowCastAnalysisView3D.js +1 -1
  128. package/views/3d/layers/GaussianSplatLayerView3D.js +1 -1
  129. package/views/3d/support/QualityProfile.js +1 -1
  130. package/views/3d/support/QualitySettings.js +1 -1
  131. package/views/3d/webgl-engine/collections/Component/Material/ComponentData.glsl.js +11 -12
  132. package/views/3d/webgl-engine/core/shaderLibrary/output/Emissions.glsl.js +5 -5
  133. package/views/3d/webgl-engine/core/shaderLibrary/shading/ScreenSpaceRayMarching.glsl.js +1 -1
  134. package/views/3d/webgl-engine/effects/atmosphere/ChapmanAtmosphere.js +1 -1
  135. package/views/3d/webgl-engine/effects/atmosphere/LocalAtmosphere.js +1 -1
  136. package/views/3d/webgl-engine/effects/atmosphere/MarsAtmosphere.js +1 -1
  137. package/views/3d/webgl-engine/effects/clouds/CloudsComposition.js +1 -1
  138. package/views/3d/webgl-engine/effects/clouds/CloudsRenderer.js +1 -1
  139. package/views/3d/webgl-engine/effects/clouds/NoiseTextureAtlas.js +1 -1
  140. package/views/3d/webgl-engine/effects/debug/RenderNodeVisualizerNode.js +1 -1
  141. package/views/3d/webgl-engine/effects/focusArea/FocusAreaColorNode.js +1 -1
  142. package/views/3d/webgl-engine/effects/focusArea/FocusAreaMaskNode.js +1 -1
  143. package/views/3d/webgl-engine/effects/fog/Fog.js +1 -1
  144. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.js +1 -1
  145. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIlluminationTechniqueConfiguration.js +1 -1
  146. package/views/3d/webgl-engine/effects/glow/Glow.js +1 -1
  147. package/views/3d/webgl-engine/effects/glow/GlowBlur.glsl.js +1 -1
  148. package/views/3d/webgl-engine/effects/haze/Haze.js +1 -1
  149. package/views/3d/webgl-engine/effects/highlight/Highlight.js +1 -1
  150. package/views/3d/webgl-engine/effects/highlight/ShadowHighlight.js +1 -1
  151. package/views/3d/webgl-engine/effects/highlight/ShadowHighlightBuffer.js +1 -1
  152. package/views/3d/webgl-engine/effects/magnifier/Magnifier.js +1 -1
  153. package/views/3d/webgl-engine/effects/precipitation/Precipitation.js +1 -1
  154. package/views/3d/webgl-engine/effects/smaa/SMAA.js +1 -1
  155. package/views/3d/webgl-engine/effects/ssao/SSAO.js +1 -1
  156. package/views/3d/webgl-engine/effects/stars/Stars.js +1 -1
  157. package/views/3d/webgl-engine/lib/CutFillComputationRenderNode.js +1 -1
  158. package/views/3d/webgl-engine/lib/CutFillVisualizationRenderNode.js +1 -1
  159. package/views/3d/webgl-engine/lib/GaussianSplatRenderNode.js +1 -1
  160. package/views/3d/webgl-engine/lib/ShadowCastRenderer.js +1 -1
  161. package/views/3d/webgl-engine/lib/Viewshed.js +1 -1
  162. package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
  163. package/views/3d/webgl-engine/shaders/RibbonLineTechniqueConfiguration.js +1 -1
  164. package/views/3d/webgl-engine/shaders/ShadowCastVisualizeTechniqueConfiguration.js +1 -1
  165. package/views/3d/webgl-engine/shaders/oitResolution.glsl.js +1 -1
  166. package/views/SceneView.d.ts +3 -3
  167. package/views/layers/FeatureLikeLayerView.js +1 -1
  168. package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
  169. package/widgets/FeatureTable/Grid/Column.d.ts +2 -17
  170. package/widgets/FeatureTable/Grid/Column.js +1 -1
  171. package/widgets/FeatureTable/Grid/Grid.js +1 -1
  172. package/widgets/FeatureTable/Grid/GridViewModel.js +1 -1
  173. package/widgets/FeatureTable/Grid/GroupColumn.d.ts +1 -7
  174. package/widgets/FeatureTable/Grid/GroupColumn.js +1 -1
  175. package/widgets/FeatureTable/support/ColumnTemplateBase.d.ts +1 -9
  176. package/widgets/FeatureTable/support/ColumnTemplateBase.js +1 -1
  177. package/widgets/FeatureTable/support/types.d.ts +0 -8
  178. package/widgets/FeatureTable.js +1 -1
  179. package/widgets/Search/support/layerSearchUtils.js +1 -1
  180. package/widgets/Search/support/locatorUtils.js +1 -1
  181. package/assets/esri/core/workers/chunks/00e9e25269d5776f8645.js +0 -1
  182. package/assets/esri/core/workers/chunks/014a5fad55f97b9b5166.js +0 -1
  183. package/assets/esri/core/workers/chunks/06003996a378c45bc605.js +0 -1
  184. package/assets/esri/core/workers/chunks/0840e7dd62643c56ae9e.js +0 -1
  185. package/assets/esri/core/workers/chunks/0cc4b3100a7a453bd058.js +0 -1
  186. package/assets/esri/core/workers/chunks/1e4e7111d43f01c149b3.js +0 -1
  187. package/assets/esri/core/workers/chunks/3d9032217347dadcbe41.js +0 -1
  188. package/assets/esri/core/workers/chunks/4b79ebfb3328f9483147.js +0 -1
  189. package/assets/esri/core/workers/chunks/4dbbf59c79d9e72f20ee.js +0 -1
  190. package/assets/esri/core/workers/chunks/4e206957b28253ddc1a3.js +0 -1
  191. package/assets/esri/core/workers/chunks/53ef72edc3ed80bf558c.js +0 -1
  192. package/assets/esri/core/workers/chunks/6dac8dfcd63fc757ae2d.js +0 -1
  193. package/assets/esri/core/workers/chunks/73af4c947e8151d411c1.js +0 -2
  194. package/assets/esri/core/workers/chunks/752f4e0e2961fc315dca.js +0 -1
  195. package/assets/esri/core/workers/chunks/7ba67f1d7831a5576a5a.js +0 -1
  196. package/assets/esri/core/workers/chunks/a508104179e08f0f268c.js +0 -2
  197. package/assets/esri/core/workers/chunks/a6b75576d598ec161cc4.js +0 -1
  198. package/assets/esri/core/workers/chunks/b4bac22467e96be7a974.js +0 -1
  199. package/assets/esri/core/workers/chunks/bb5f909a2f26fc6a21b0.js +0 -2
  200. package/assets/esri/core/workers/chunks/bea2fd831d7a864e5995.js +0 -596
  201. package/assets/esri/core/workers/chunks/c8ef80a7c46d7d2c5172.js +0 -1
  202. package/assets/esri/core/workers/chunks/dd5b362bded458afa2d6.js +0 -1
  203. package/assets/esri/core/workers/chunks/dde94664110ff231a52d.js +0 -1
  204. package/assets/esri/core/workers/chunks/f1e5626a0cc1631a1efb.js +0 -1
  205. package/assets/esri/core/workers/chunks/f36345ebb9851ab92453.js +0 -1
  206. package/assets/esri/core/workers/chunks/f7531aa69a87814c60d1.js +0 -1
  207. package/assets/esri/core/workers/chunks/f971dcfd04af1fd652b4.js +0 -1
  208. package/assets/esri/themes/base/fonts/cdn.scss +0 -3
  209. /package/assets/esri/core/workers/chunks/{bb5f909a2f26fc6a21b0.js.LICENSE.txt → 4df19e670b6ed76c1dea.js.LICENSE.txt} +0 -0
  210. /package/assets/esri/core/workers/chunks/{a508104179e08f0f268c.js.LICENSE.txt → a76e14fe5e8b2f7ef9de.js.LICENSE.txt} +0 -0
  211. /package/assets/esri/core/workers/chunks/{73af4c947e8151d411c1.js.LICENSE.txt → d1ba118ddd0390c07f35.js.LICENSE.txt} +0 -0
  212. /package/assets/esri/core/workers/chunks/{ee057c85cdf6beb5b012.js.LICENSE.txt → d6f03f628ebfc28fdd23.js.LICENSE.txt} +0 -0
  213. /package/assets/esri/core/workers/chunks/{577cbc131b21c351fae5.js.LICENSE.txt → d87e504082e293640ece.js.LICENSE.txt} +0 -0
@@ -8,8 +8,9 @@ import type { ColorStopProperties } from "../../renderers/visualVariables/suppor
8
8
  export interface DiscreteOptionsProperties extends Partial<Pick<DiscreteOptions, "interval">> {
9
9
  /**
10
10
  * Defines the color used by the default color ramp for the visualization. The opacity is mapped to the number of
11
- * overlapping shadows. Areas without shadow are displayed with zero opacity and areas with the maximum number of
12
- * overlapping shadows are displayed with the opacity specified in this color.
11
+ * overlapping shadows. When [ShadowCastAnalysis.visualizeSunlight](https://developers.arcgis.com/javascript/latest/references/core/analysis/ShadowCastAnalysis/#visualizeSunlight) is `true`, the opacity is mapped
12
+ * to the number of overlapping sunlight samples instead. Areas with no shadow or sunlight are displayed with zero
13
+ * opacity and areas with the maximum overlap are displayed with the opacity specified in this color.
13
14
  *
14
15
  * When [colorStops](https://developers.arcgis.com/javascript/latest/references/core/analysis/ShadowCast/DiscreteOptions/#colorStops) is not specified, the visualization uses a default ramp between transparent and this color. When specified, those stops are used instead.
15
16
  *
@@ -20,7 +21,9 @@ export interface DiscreteOptionsProperties extends Partial<Pick<DiscreteOptions,
20
21
  /**
21
22
  * The color stops for the visualization.
22
23
  *
23
- * - Each stop defines a color and the corresponding number of overlapping shadows.
24
+ * - Each stop defines a color and the corresponding number of overlapping shadows. When
25
+ * [ShadowCastAnalysis.visualizeSunlight](https://developers.arcgis.com/javascript/latest/references/core/analysis/ShadowCastAnalysis/#visualizeSunlight) is `true`, each stop defines the corresponding number of
26
+ * overlapping sunlight samples instead.
24
27
  * - Colors are interpolated between adjacent stops.
25
28
  * - If omitted, the visualization uses a default ramp between transparent and [color](https://developers.arcgis.com/javascript/latest/references/core/analysis/ShadowCast/DiscreteOptions/#color). If specified, these stops are used.
26
29
  *
@@ -49,8 +52,9 @@ export default class DiscreteOptions extends Clonable {
49
52
  constructor(properties?: DiscreteOptionsProperties);
50
53
  /**
51
54
  * Defines the color used by the default color ramp for the visualization. The opacity is mapped to the number of
52
- * overlapping shadows. Areas without shadow are displayed with zero opacity and areas with the maximum number of
53
- * overlapping shadows are displayed with the opacity specified in this color.
55
+ * overlapping shadows. When [ShadowCastAnalysis.visualizeSunlight](https://developers.arcgis.com/javascript/latest/references/core/analysis/ShadowCastAnalysis/#visualizeSunlight) is `true`, the opacity is mapped
56
+ * to the number of overlapping sunlight samples instead. Areas with no shadow or sunlight are displayed with zero
57
+ * opacity and areas with the maximum overlap are displayed with the opacity specified in this color.
54
58
  *
55
59
  * When [colorStops](https://developers.arcgis.com/javascript/latest/references/core/analysis/ShadowCast/DiscreteOptions/#colorStops) is not specified, the visualization uses a default ramp between transparent and this color. When specified, those stops are used instead.
56
60
  *
@@ -62,7 +66,9 @@ export default class DiscreteOptions extends Clonable {
62
66
  /**
63
67
  * The color stops for the visualization.
64
68
  *
65
- * - Each stop defines a color and the corresponding number of overlapping shadows.
69
+ * - Each stop defines a color and the corresponding number of overlapping shadows. When
70
+ * [ShadowCastAnalysis.visualizeSunlight](https://developers.arcgis.com/javascript/latest/references/core/analysis/ShadowCastAnalysis/#visualizeSunlight) is `true`, each stop defines the corresponding number of
71
+ * overlapping sunlight samples instead.
66
72
  * - Colors are interpolated between adjacent stops.
67
73
  * - If omitted, the visualization uses a default ramp between transparent and [color](https://developers.arcgis.com/javascript/latest/references/core/analysis/ShadowCast/DiscreteOptions/#color). If specified, these stops are used.
68
74
  *
@@ -7,9 +7,11 @@ import type { Clonable } from "../../core/Clonable.js";
7
7
  /** @since 5.0 */
8
8
  export interface MinDurationOptionsProperties extends Partial<Pick<MinDurationOptions, "contextEnabled" | "minDuration">> {
9
9
  /**
10
- * Defines the color used to display areas where the cumulative shadow duration meets or exceeds
11
- * [minDuration](https://developers.arcgis.com/javascript/latest/references/core/analysis/ShadowCast/MinDurationOptions/#minDuration). Areas with shorter shadow duration are displayed with
12
- * zero opacity.
10
+ * Defines the color used to display areas where the cumulative shadow duration meets
11
+ * [minDuration](https://developers.arcgis.com/javascript/latest/references/core/analysis/ShadowCast/MinDurationOptions/#minDuration). When
12
+ * [ShadowCastAnalysis.visualizeSunlight](https://developers.arcgis.com/javascript/latest/references/core/analysis/ShadowCastAnalysis/#visualizeSunlight) is `true`, this color displays areas where cumulative
13
+ * sunlight duration meets [minDuration](https://developers.arcgis.com/javascript/latest/references/core/analysis/ShadowCast/MinDurationOptions/#minDuration). Areas with shorter duration are
14
+ * displayed with zero opacity.
13
15
  *
14
16
  * @default [255, 0, 0, 0.7]
15
17
  * @since 5.0
@@ -18,7 +20,8 @@ export interface MinDurationOptionsProperties extends Partial<Pick<MinDurationOp
18
20
  /**
19
21
  * The configuration used when showing additional context by setting
20
22
  * [contextEnabled](https://developers.arcgis.com/javascript/latest/references/core/analysis/ShadowCast/MinDurationOptions/#contextEnabled) to true.
21
- * The default configuration will show the shadows at one hour intervals as context for the visualization.
23
+ * The default configuration will show shadows at one hour intervals as context for the visualization. When
24
+ * [ShadowCastAnalysis.visualizeSunlight](https://developers.arcgis.com/javascript/latest/references/core/analysis/ShadowCastAnalysis/#visualizeSunlight) is `true`, it will show sunlight at one hour intervals.
22
25
  *
23
26
  * @since 5.0
24
27
  * @see [contextEnabled](https://developers.arcgis.com/javascript/latest/references/core/analysis/ShadowCast/MinDurationOptions/#contextEnabled)
@@ -39,9 +42,11 @@ export default class MinDurationOptions extends Clonable {
39
42
  /** @since 5.0 */
40
43
  constructor(properties?: MinDurationOptionsProperties);
41
44
  /**
42
- * Defines the color used to display areas where the cumulative shadow duration meets or exceeds
43
- * [minDuration](https://developers.arcgis.com/javascript/latest/references/core/analysis/ShadowCast/MinDurationOptions/#minDuration). Areas with shorter shadow duration are displayed with
44
- * zero opacity.
45
+ * Defines the color used to display areas where the cumulative shadow duration meets
46
+ * [minDuration](https://developers.arcgis.com/javascript/latest/references/core/analysis/ShadowCast/MinDurationOptions/#minDuration). When
47
+ * [ShadowCastAnalysis.visualizeSunlight](https://developers.arcgis.com/javascript/latest/references/core/analysis/ShadowCastAnalysis/#visualizeSunlight) is `true`, this color displays areas where cumulative
48
+ * sunlight duration meets [minDuration](https://developers.arcgis.com/javascript/latest/references/core/analysis/ShadowCast/MinDurationOptions/#minDuration). Areas with shorter duration are
49
+ * displayed with zero opacity.
45
50
  *
46
51
  * @default [255, 0, 0, 0.7]
47
52
  * @since 5.0
@@ -50,6 +55,7 @@ export default class MinDurationOptions extends Clonable {
50
55
  set color(value: ColorLike);
51
56
  /**
52
57
  * Whether to enable additional context showing discrete shadows at the same time as displaying the minimum duration.
58
+ * When [ShadowCastAnalysis.visualizeSunlight](https://developers.arcgis.com/javascript/latest/references/core/analysis/ShadowCastAnalysis/#visualizeSunlight) is `true`, the context shows discrete sunlight instead.
53
59
  * The [contextOptions](https://developers.arcgis.com/javascript/latest/references/core/analysis/ShadowCast/MinDurationOptions/#contextOptions) property is used to configure the visualization
54
60
  * of the discrete shadows when context is enabled.
55
61
  *
@@ -61,7 +67,8 @@ export default class MinDurationOptions extends Clonable {
61
67
  /**
62
68
  * The configuration used when showing additional context by setting
63
69
  * [contextEnabled](https://developers.arcgis.com/javascript/latest/references/core/analysis/ShadowCast/MinDurationOptions/#contextEnabled) to true.
64
- * The default configuration will show the shadows at one hour intervals as context for the visualization.
70
+ * The default configuration will show shadows at one hour intervals as context for the visualization. When
71
+ * [ShadowCastAnalysis.visualizeSunlight](https://developers.arcgis.com/javascript/latest/references/core/analysis/ShadowCastAnalysis/#visualizeSunlight) is `true`, it will show sunlight at one hour intervals.
65
72
  *
66
73
  * @since 5.0
67
74
  * @see [contextEnabled](https://developers.arcgis.com/javascript/latest/references/core/analysis/ShadowCast/MinDurationOptions/#contextEnabled)
@@ -70,7 +77,8 @@ export default class MinDurationOptions extends Clonable {
70
77
  set contextOptions(value: DiscreteOptionsProperties);
71
78
  /**
72
79
  * Minimum shadow duration (in milliseconds). Shadows are only displayed in areas where the cumulative shadow duration
73
- * meets or exceeds this value. Areas with shorter shadow durations will appear without shadows.
80
+ * meets this value. When [ShadowCastAnalysis.visualizeSunlight](https://developers.arcgis.com/javascript/latest/references/core/analysis/ShadowCastAnalysis/#visualizeSunlight) is `true`, this value is interpreted
81
+ * as the minimum sunlight duration and areas with shorter sunlight duration will appear without sunlight.
74
82
  *
75
83
  * @default 4 * 3600 * 1000
76
84
  * @since 5.0
@@ -9,8 +9,9 @@ import type { ColorStopProperties } from "../../renderers/visualVariables/suppor
9
9
  export interface TotalDurationOptionsProperties extends Partial<Pick<TotalDurationOptions, "mode">> {
10
10
  /**
11
11
  * Defines the color used by the default color ramp for the visualization. The opacity is mapped to the time spent
12
- * in shadow. Areas that don't receive any shadow are displayed with zero opacity and areas that receive shadows for
13
- * the entire time range are displayed with the opacity specified in this color.
12
+ * in shadow. When [ShadowCastAnalysis.visualizeSunlight](https://developers.arcgis.com/javascript/latest/references/core/analysis/ShadowCastAnalysis/#visualizeSunlight) is `true`, the opacity is mapped to the time
13
+ * spent in sunlight instead. Areas that don't receive any shadow or sunlight are displayed with zero opacity and areas
14
+ * that receive shadow or sunlight for the entire time range are displayed with the opacity specified in this color.
14
15
  *
15
16
  * When [colorStops](https://developers.arcgis.com/javascript/latest/references/core/analysis/ShadowCast/TotalDurationOptions/#colorStops) is not specified, the visualization uses a default ramp between transparent and this color. When specified, those stops are used instead.
16
17
  *
@@ -21,7 +22,8 @@ export interface TotalDurationOptionsProperties extends Partial<Pick<TotalDurati
21
22
  /**
22
23
  * The color stops for the visualization.
23
24
  *
24
- * - Each stop defines a color and a value in milliseconds.
25
+ * - Each stop defines a color and a duration value in milliseconds. The value represents shadow duration by default
26
+ * and sunlight duration when [ShadowCastAnalysis.visualizeSunlight](https://developers.arcgis.com/javascript/latest/references/core/analysis/ShadowCastAnalysis/#visualizeSunlight) is `true`.
25
27
  * - Colors are interpolated between adjacent stops.
26
28
  * - If omitted, the visualization uses a default ramp between transparent and [color](https://developers.arcgis.com/javascript/latest/references/core/analysis/ShadowCast/TotalDurationOptions/#color). If specified, these stops are used.
27
29
  *
@@ -50,8 +52,9 @@ export default class TotalDurationOptions extends Clonable {
50
52
  constructor(properties?: TotalDurationOptionsProperties);
51
53
  /**
52
54
  * Defines the color used by the default color ramp for the visualization. The opacity is mapped to the time spent
53
- * in shadow. Areas that don't receive any shadow are displayed with zero opacity and areas that receive shadows for
54
- * the entire time range are displayed with the opacity specified in this color.
55
+ * in shadow. When [ShadowCastAnalysis.visualizeSunlight](https://developers.arcgis.com/javascript/latest/references/core/analysis/ShadowCastAnalysis/#visualizeSunlight) is `true`, the opacity is mapped to the time
56
+ * spent in sunlight instead. Areas that don't receive any shadow or sunlight are displayed with zero opacity and areas
57
+ * that receive shadow or sunlight for the entire time range are displayed with the opacity specified in this color.
55
58
  *
56
59
  * When [colorStops](https://developers.arcgis.com/javascript/latest/references/core/analysis/ShadowCast/TotalDurationOptions/#colorStops) is not specified, the visualization uses a default ramp between transparent and this color. When specified, those stops are used instead.
57
60
  *
@@ -63,7 +66,8 @@ export default class TotalDurationOptions extends Clonable {
63
66
  /**
64
67
  * The color stops for the visualization.
65
68
  *
66
- * - Each stop defines a color and a value in milliseconds.
69
+ * - Each stop defines a color and a duration value in milliseconds. The value represents shadow duration by default
70
+ * and sunlight duration when [ShadowCastAnalysis.visualizeSunlight](https://developers.arcgis.com/javascript/latest/references/core/analysis/ShadowCastAnalysis/#visualizeSunlight) is `true`.
67
71
  * - Colors are interpolated between adjacent stops.
68
72
  * - If omitted, the visualization uses a default ramp between transparent and [color](https://developers.arcgis.com/javascript/latest/references/core/analysis/ShadowCast/TotalDurationOptions/#color). If specified, these stops are used.
69
73
  *
@@ -47,9 +47,9 @@ export interface ShadowCastAnalysisProperties extends AnalysisProperties, Partia
47
47
  }
48
48
 
49
49
  /**
50
- * The ShadowCastAnalysis displays the cumulative shadows of 3D features in a
50
+ * The ShadowCastAnalysis displays the cumulative shadows or sunlight of 3D features in a
51
51
  * [SceneView](https://developers.arcgis.com/javascript/latest/references/core/views/SceneView/). This type of analysis is helpful in urban development,
52
- * where new projects have to satisfy certain shadow duration constraints.
52
+ * where new projects have to satisfy certain shadow or sunlight duration constraints.
53
53
  *
54
54
  * The analysis calculates the cumulative shadows for a time range during a single day. The user can
55
55
  * configure the time range and select a calendar date. This time range and calendar date are only used
@@ -64,27 +64,30 @@ export interface ShadowCastAnalysisProperties extends AnalysisProperties, Partia
64
64
  * The analysis provides three visualization modes.
65
65
  *
66
66
  * **Minimum duration** mode displays shadows only in areas where shading accumulates for longer than a specified duration
67
- * within the selected time range. Areas that receive less shading than the minimum show no shadow. In the image below,
67
+ * within the selected time range. When [visualizeSunlight](https://developers.arcgis.com/javascript/latest/references/core/analysis/ShadowCastAnalysis/#visualizeSunlight) is `true`, the same mode
68
+ * displays sunlight only in areas where sunlight accumulates for longer than the specified duration. In the image below,
68
69
  * on May 1, 2021, shadows are displayed only where shading exceeds 4 hours between 10AM and 4PM.
69
70
  *
70
71
  * [![minimum duration mode](https://developers.arcgis.com/javascript/latest/assets/references/core/analysis/shadow-cast-analysis-threshold.avif)](https://developers.arcgis.com/javascript/latest/sample-code/shadow-cast/)
71
72
  *
72
- * **Total shadow duration** mode displays the cumulative duration of shadow within the selected time range using opacity:
73
+ * **Total duration** mode displays the cumulative duration of shadow within the selected time range using opacity:
73
74
  * areas that receive no shadow remain fully transparent, while areas receiving the highest accumulated shadow duration
74
- * use a default opacity of 0.7. Intermediate values are interpolated. This mode can visualize shadows continuously or
75
- * in 1-hour intervals.
75
+ * use a default opacity of 0.7. Intermediate values are interpolated. When
76
+ * [visualizeSunlight](https://developers.arcgis.com/javascript/latest/references/core/analysis/ShadowCastAnalysis/#visualizeSunlight) is `true`, opacity is mapped to cumulative sunlight duration
77
+ * instead. This mode can visualize duration continuously or in 1-hour intervals.
76
78
  *
77
79
  * [![total duration mode](https://developers.arcgis.com/javascript/latest/assets/references/core/analysis/shadow-cast-analysis-duration.avif)](https://developers.arcgis.com/javascript/latest/sample-code/shadow-cast/)
78
80
  *
79
- * **Discrete shadows** mode displays individual shadows at regular intervals within the selected time range.
81
+ * **Discrete** mode displays individual shadows at regular intervals within the selected time range. When
82
+ * [visualizeSunlight](https://developers.arcgis.com/javascript/latest/references/core/analysis/ShadowCastAnalysis/#visualizeSunlight) is `true`, it displays the sunlight at those intervals instead.
80
83
  * For example, with a time range from 10AM to 11AM and an interval set to 30 minutes, the shadows at 10AM, 10:30AM and
81
84
  * 11:00AM will be displayed.
82
85
  *
83
86
  * [![discrete mode](https://developers.arcgis.com/javascript/latest/assets/references/core/analysis/shadow-cast-analysis-discrete.avif)](https://developers.arcgis.com/javascript/latest/sample-code/shadow-cast/)
84
87
  *
85
- * By default, the analysis also displays a tooltip next to the pointer that reports the total shadow duration at that
86
- * location, rounded to 15minute increments. This allows you to inspect precise shadow durations anywhere within the
87
- * view without additional configuration.
88
+ * By default, the analysis also displays a tooltip next to the pointer that reports the total duration at that
89
+ * location, rounded to 15-minute increments. The tooltip reports shadow duration by default and sunlight duration when
90
+ * [visualizeSunlight](https://developers.arcgis.com/javascript/latest/references/core/analysis/ShadowCastAnalysis/#visualizeSunlight) is `true`.
88
91
  *
89
92
  * To perform a shadow cast analysis in your [WebScene](https://developers.arcgis.com/javascript/latest/references/core/WebScene/):
90
93
  * - Create a new instance of ShadowCastAnalysis.
@@ -99,7 +102,7 @@ export interface ShadowCastAnalysisProperties extends AnalysisProperties, Partia
99
102
  *
100
103
  * Use the [ShadowCastAnalysisView3D](https://developers.arcgis.com/javascript/latest/references/core/views/3d/analysis/ShadowCastAnalysisView3D/) class and its
101
104
  * [ShadowCastAnalysisView3D.getDurationAtScreen()](https://developers.arcgis.com/javascript/latest/references/core/views/3d/analysis/ShadowCastAnalysisView3D/#getDurationAtScreen) method to
102
- * obtain the shadow duration at a specific screen location programmatically.
105
+ * obtain the shadow or sunlight duration at a specific screen location programmatically.
103
106
  * To disable the shadow tooltip next to the pointer set the [ShadowCastAnalysisView3D.interactive](https://developers.arcgis.com/javascript/latest/references/core/views/3d/analysis/ShadowCastAnalysisView3D/#interactive)
104
107
  * property to `false`.
105
108
  *
@@ -123,7 +126,7 @@ export interface ShadowCastAnalysisProperties extends AnalysisProperties, Partia
123
126
  * // use getDurationAtScreen method from the analysis view once available
124
127
  * const analysisView = await view.whenAnalysisView(shadowCastAnalysis);
125
128
  *
126
- * // get shadow duration at the pointer location
129
+ * // get shadow or sunlight duration at the pointer location
127
130
  * view.on("pointer-move", async (event) => {
128
131
  * // duration in milliseconds
129
132
  * const duration = await analysisView.getDurationAtScreen({ x: event.x, y: event.y });
@@ -196,11 +199,14 @@ export default class ShadowCastAnalysis extends Analysis {
196
199
  get minDurationOptions(): MinDurationOptions;
197
200
  set minDurationOptions(value: MinDurationOptionsProperties);
198
201
  /**
199
- * Mode of analysis to use when computing and displaying shadows.
202
+ * Mode of analysis to use when computing and displaying shadows or sunlight.
200
203
  *
201
204
  * - "discrete": Displays individual shadow snapshots at regular time intervals within the selected time range.
202
- * - "min-duration": Displays shadows only in areas where accumulated shading exceeds a userdefined minimum duration within the selected time range. Optional discrete shadow overlays can provide additional context.
203
- * - "total-duration": Displays total shadow accumulation within the selected time range using opacity: areas with longer shadow duration appear more opaque. Supports continuous or 1hour aggregated modes.
205
+ * - "min-duration": Displays areas where accumulated shading exceeds a user-defined minimum duration within the selected time range. Optional discrete overlays can provide additional context.
206
+ * - "total-duration": Displays total shadow accumulation within the selected time range using opacity: areas with longer shadow duration appear more opaque. Supports continuous or 1-hour aggregated modes.
207
+ *
208
+ * When [visualizeSunlight](https://developers.arcgis.com/javascript/latest/references/core/analysis/ShadowCastAnalysis/#visualizeSunlight) is `true`, the selected mode displays sunlight duration
209
+ * instead of shadow duration.
204
210
  *
205
211
  * @default "min-duration"
206
212
  * @since 5.0
@@ -251,8 +257,8 @@ export default class ShadowCastAnalysis extends Analysis {
251
257
  */
252
258
  get valid(): boolean;
253
259
  /**
254
- * When `true`, the analysis will visualize the sunlight duration instead of the shadow duration. This applies to all
255
- * modes and their respective options.
260
+ * When `true`, the analysis visualizes sunlight duration instead of shadow duration. This applies to all modes and
261
+ * their respective options.
256
262
  *
257
263
  * @default false
258
264
  * @since 5.1
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{featureReferenceEquals as i,featureReferenceProperty as t}from"./featureReferenceUtils.js";import{Clonable as r}from"../core/Clonable.js";import{cyclicalDegrees as o}from"../core/Cyclical.js";import{JSONSupportMixin as s}from"../core/JSONSupport.js";import{equalsMaybe as l}from"../core/maybe.js";import{property as n,cast as a,subclass as p}from"../core/accessorSupport/decorators.js";import{ensureNumber as u}from"../core/accessorSupport/ensureType.js";import m from"../geometry/Point.js";import d from"../symbols/support/ElevationInfo.js";let f=class extends(s(r)){constructor(e){super(e),this.observer=null,this.farDistance=1e3,this.heading=0,this.tilt=90,this.horizontalFieldOfView=45,this.verticalFieldOfView=45,this.elevationInfo=null,this.feature=null}get valid(){return null!=this.observer&&this.farDistance>0}equals(e){return l(this.observer,e.observer)&&this.farDistance===e.farDistance&&this.heading===e.heading&&this.tilt===e.tilt&&this.horizontalFieldOfView===e.horizontalFieldOfView&&this.verticalFieldOfView===e.verticalFieldOfView&&l(this.elevationInfo,e.elevationInfo)&&i(this.feature,e.feature)}};e([n({type:m,json:{write:{isRequired:!0}}})],f.prototype,"observer",void 0),e([n({type:Number,nonNullable:!0,range:{min:0},json:{write:{isRequired:!0}}})],f.prototype,"farDistance",void 0),e([n({type:Number,nonNullable:!0,json:{write:{isRequired:!0}}}),a(e=>o.normalize(u(e),void 0,!0))],f.prototype,"heading",void 0),e([n({type:Number,nonNullable:!0,range:{min:0,max:180},json:{write:{isRequired:!0}}})],f.prototype,"tilt",void 0),e([n({type:Number,nonNullable:!0,range:{min:0,max:360},json:{write:{isRequired:!0}}})],f.prototype,"horizontalFieldOfView",void 0),e([n({type:Number,nonNullable:!0,range:{min:0,max:180},json:{write:{isRequired:!0}}})],f.prototype,"verticalFieldOfView",void 0),e([n({type:d})],f.prototype,"elevationInfo",void 0),e([n(t)],f.prototype,"feature",void 0),e([n({readOnly:!0,json:{read:!1}})],f.prototype,"valid",null),f=e([p("esri.analysis.Viewshed")],f);export{f as default};
2
+ import{__decorate as e}from"tslib";import{featureReferenceEquals as r,featureReferenceProperty as i}from"./featureReferenceUtils.js";import{Clonable as t}from"../core/Clonable.js";import{cyclicalDegrees as o}from"../core/Cyclical.js";import{JSONSupportMixin as s}from"../core/JSONSupport.js";import{equalsMaybe as l}from"../core/maybe.js";import{property as a,cast as n,subclass as p}from"../core/accessorSupport/decorators.js";import{ensureNumber as m}from"../core/accessorSupport/ensureType.js";import{persistable as u}from"../core/accessorSupport/decorators/persistable.js";import d from"../geometry/Point.js";import f from"../symbols/support/ElevationInfo.js";let c=class extends(s(t)){constructor(e){super(e),this.observer=null,this.farDistance=1e3,this.heading=0,this.tilt=90,this.horizontalFieldOfView=45,this.verticalFieldOfView=45,this.elevationInfo=null,this.feature=null}get valid(){return null!=this.observer&&this.farDistance>0}equals(e){return l(this.observer,e.observer)&&this.farDistance===e.farDistance&&this.heading===e.heading&&this.tilt===e.tilt&&this.horizontalFieldOfView===e.horizontalFieldOfView&&this.verticalFieldOfView===e.verticalFieldOfView&&l(this.elevationInfo,e.elevationInfo)&&r(this.feature,e.feature)}};e([a({type:d,json:{write:{isRequired:!0}}})],c.prototype,"observer",void 0),e([a({type:Number,nonNullable:!0,range:{min:0},json:{write:{isRequired:!0}}})],c.prototype,"farDistance",void 0),e([a({type:Number,nonNullable:!0,json:{write:{isRequired:!0}}}),n(e=>o.normalize(m(e),void 0,!0))],c.prototype,"heading",void 0),e([a({type:Number,nonNullable:!0,range:{min:0,max:180},json:{write:{isRequired:!0}}})],c.prototype,"tilt",void 0),e([a({type:Number,nonNullable:!0,range:{min:0,max:360},json:{write:{isRequired:!0}}})],c.prototype,"horizontalFieldOfView",void 0),e([a({type:Number,nonNullable:!0,range:{min:0,max:180},json:{write:{isRequired:!0}}})],c.prototype,"verticalFieldOfView",void 0),e([a({type:f}),u()],c.prototype,"elevationInfo",void 0),e([a(i)],c.prototype,"feature",void 0),e([a({readOnly:!0,json:{read:!1}})],c.prototype,"valid",null),c=e([p("esri.analysis.Viewshed")],c);export{c as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- 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{resolveBreakpoints as o,collectDeclaredGlobalNames as a,flattenAccessChain as i,collectDeclaredLocalNames as s}from"./compilerUtils.js";import{getNestedOptionalValue as c,getGeometryKeys as l,tryGetMember as u,getMember as f,getGeometryMember as p}from"./containerUtils.js";import{wrapDebugValue as w,renderFunctionDebugName as d}from"./debug.js";import m from"./Dictionary.js";import{ArcadeExecutionError as h,ensureArcadeExecutionError as g}from"./executionError.js";import{Feature as y}from"./Feature.js";import{NativeFunction as b,ScopeMarshalledFunction as v,ArcadeFunction as x,wrapModuleScopedResponse as S}from"./FunctionWrapper.js";import{R as k,I as F,q as j,i as O,z as R,A as I,v as M,B as C,r as E,s as N,u as A,w as B,x as U,k as G,j as z,y as L,m as Z,h as D}from"../chunks/languageUtils.js";import{addFunctionDeclaration as _}from"./treeAnalysis.js";import{A as q}from"../chunks/aiServices.js";import{A as P}from"../chunks/array.js";import{registerFunctions as W}from"./functions/date.js";import{registerFunctions as T}from"./functions/feature.js";import{registerFunctions as V}from"./functions/geomasync.js";import{registerFunctions as K}from"./functions/geometry.js";import{registerFunctions as $}from"./functions/maths.js";import{registerFunctions as Y}from"./functions/stats.js";import{registerFunctions as H}from"./functions/string.js";import{registerFunctions as J}from"./functions/track.js";import Q from"../core/Logger.js";import X from"../geometry/SpatialReference.js";import{isGraphic as ee}from"../support/graphicInstanceUtils.js";import{isBoolean as te,isString as ne,isArray as re,isNumber as oe}from"../support/guards.js";const ae=()=>Q.getLogger("esri.arcade.arcadeAsyncRuntime"),ie=Symbol("uninitialized");function se(e){if(e===ie)throw new h(null,"InvalidIdentifier",null)}function ce(e){return se(e),e}function le(t,n){const r=e(n);if(null!==t.localScope){const e=t.localScope[r];if(void 0!==e)return{scope:t.localScope,id:r,var:e}}const o=t.globalScope[r];if(void 0!==o)return{scope:t.globalScope,id:r,var:o};throw new h(t,"InvalidIdentifier",n)}function ue(t,n,r="InvalidIdentifier"){const o=e(n);if(null!==t.localScope){const e=t.localScope[o];if(void 0!==e)return se(e),e.value}const a=t.globalScope[o];if(void 0!==a)return se(a),a.value;throw new h(t,r,n)}const fe=function(){};async function pe(e,t){const n=[];for(let r=0;r<t.arguments.length;r++)n.push(await xe(e,t.arguments[r]));return n}async function we(e,t,n){if(!0===t.preparsed)return n(e,null,t.arguments);return n(e,t,await pe(e,t))}fe.prototype=Object.freeze(Object.create(null));class de extends x{constructor(e,t,n,r){super(),this.definition=e,this.context=t,this._params=n,this._locals=r}get debugName(){return this.definition.id.name}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:new fe,depthCounter:{depth:e.depthCounter.depth+1},globalScope:this.context.globalScope,track:this.context.track};if(n.depthCounter.depth>64)throw new h(e,"MaximumCallDepth",null);return me(n,this.definition.body,this._params,this._locals,t,null)}}call(e,t){return ge(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:new fe,abortSignal:e.abortSignal,globalScope:e.globalScope,depthCounter:{depth:e.depthCounter.depth+1},track:e.track};if(a.depthCounter.depth>64)throw new h(e,"MaximumCallDepth",t);return me(a,this.definition.body,this._params,this._locals,o,t)})}marshalledCall(e,t,n,r){return r(e,t,async(o,a,i)=>{const s={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:new fe,track:e.track};return i=i.map(t=>!O(t)||t instanceof v?t:S(t,e,r)),S(await me(s,this.definition.body,this._params,this._locals,i,t),n,r)})}}async function me(e,t,n,r,o,a){if(n.length!==o.length)throw new h(e,"WrongNumberOfParameters",a);if(null!=e.localScope){for(let t=0;t<n.length;t++)e.localScope[n[t]]={value:o[t]};for(const t of r)e.localScope[t]=ie}const i=await Se(e,t);if(i instanceof k)return i.value;if(i===R)throw new h(e,"UnexpectedToken",a);if(i===I)throw new h(e,"UnexpectedToken",a);return i instanceof F?i.value:i}class he extends n{constructor(e){super(),this.moduleGlobalContext=e}global(t){const n=e(t);if(!this.moduleGlobalContext.exports.has(n))throw new h(null,"ModuleExportNotFound",null);const r=this.moduleGlobalContext.globalScope[n];if(se(r),O(r.value)&&!(r.value instanceof v)){const e=new v;return e.fn=r.value,e.parameterEvaluator=we,e.context=this.moduleGlobalContext,this.moduleGlobalContext.globalScope[n]={value:e},e}return r.value}setGlobal(t,n){if(O(n))throw new h(null,"AssignModuleFunction",null);const r=e(t);if(!this.moduleGlobalContext.exports.has(r))throw new h(null,"ModuleExportNotFound",null);this.moduleGlobalContext.globalScope[r]={value:n}}hasGlobal(t){return this.moduleGlobalContext.exports.has(e(t))}static async load(e,n){const{globals:o,exports:i}=a(n),s=new pt;for(const t of o)t in s||(s[t]=ie);const c=e.spatialReference??X.WebMercator,l={lrucache:e.lrucache,interceptor:e.interceptor,services:e.services,console:e.console??dt,abortSignal:e.abortSignal??t,timeZone:e.timeZone??null,spatialReference:c,track:null,depthCounter:{depth:1},libraryResolver:new r(e.libraryResolver._moduleSingletons,n.loadedModules),exports:i,localScope:null,globalScope:s};return await Le(l,n),new he(l)}}async function ge(e,t,n){if(!0===t.preparsed)return n(e,null,t.arguments);return n(e,t,await pe(e,t))}function ye(e,t){const n=new Map;for(const r of Object.getOwnPropertyNames(e))n.set(r,e[r]===ie?null:w(e[r].value,t));return n}function be(e){return e instanceof de?`ƒ ${e.debugName}(${e.definition.params.map(e=>e.name).join(", ")})`:d(e)}function ve(e,t){const n=e.services?.debugger;if(null==n)return;const r={renderFunction:be,defaultTimeZone:e.timeZone??"system"};return n.pause(t,{globals:ye(e.globalScope,r),locals:null==e.localScope?null:ye(e.localScope,r)})}async function xe(e,t){t.breakpoint&&await ve(e,t.breakpoint);try{switch(t.type){case"UpdateExpression":return await Ae(e,t);case"AssignmentExpression":return await Ue(e,t);case"TemplateLiteral":return await ot(e,t);case"Identifier":return tt(e,t);case"MemberExpression":return await Ve(e,t);case"Literal":return t.value;case"CallExpression":return await nt(e,t);case"UnaryExpression":return await Je(e,t);case"BinaryExpression":return await Xe(e,t);case"LogicalExpression":return await et(e,t);case"ArrayExpression":return await Qe(e,t);case"ObjectExpression":return await ke(e,t);case"MemberAccessChainExpression":return await He(e,t);case"SafeMemberExpression":throw ae().error("SafeMemberExpression outside of MemberAccessChainExpression"),new h(null,"Unrecognized",t);default:throw new h(e,"Unrecognized",t)}}catch(n){throw g(e,t,n)}}async function Se(e,t){t.breakpoint&&await ve(e,t.breakpoint);try{switch(t.type){case"ImportDeclaration":return await qe(e,t);case"ExportNamedDeclaration":return await Pe(e,t);case"VariableDeclaration":return await We(e,t);case"BlockStatement":return await Le(e,t);case"FunctionDeclaration":return await _e(e,t);case"ReturnStatement":return await De(e,t);case"IfStatement":return await ze(e,t);case"ExpressionStatement":return await Ge(e,t);case"ForStatement":return await je(e,t);case"WhileStatement":return await Fe(e,t);case"ForInStatement":return await Ee(e,t);case"ForOfStatement":return await Ne(e,t);case"BreakStatement":return R;case"EmptyStatement":return M;case"ContinueStatement":return I;default:throw new h(e,"Unrecognized",t)}}catch(n){throw g(e,t,n)}}async function ke(e,t){const n=[];for(let i=0;i<t.properties.length;i++){const r=t.properties[i],o=await xe(e,r.value),a="Identifier"===r.key.type?r.key.name:await xe(e,r.key);n[i]={key:a,value:o}}const r=Object.create(null),o=new Map;for(let i=0;i<n.length;i++){const a=n[i];if(O(a.value))throw new h(e,"NoFunctionInDictionary",t);if(!1===ne(a.key))throw new h(e,"KeyMustBeString",t);let s=a.key.toString();const c=s.toLowerCase();o.has(c)?s=o.get(c):o.set(c,s),a.value===M?r[s]=null:r[s]=a.value}const a=new m(r);return a.immutable=!1,a}async function Fe(e,t){let n=await xe(e,t.test);if(!1===n)return M;if(!0!==n)throw new h(e,"BooleanConditionRequired",t);for(;!0===n;){const r=await Se(e,t.body);if(r===R)break;if(r instanceof k)return r;if(n=await xe(e,t.test),!0!==n&&!1!==n)throw new h(e,"BooleanConditionRequired",t)}return M}async function je(e,t){try{for(null!==t.init&&("VariableDeclaration"===t.init.type?await Se(e,t.init):await xe(e,t.init));;){if(null!==t.test){const n=await xe(e,t.test);if(!0===e.abortSignal?.aborted)throw new h(e,"Cancelled",t);if(!1===n)break;if(!0!==n)throw new h(e,"BooleanConditionRequired",t)}const n=await Se(e,t.body);if(n===R)break;if(n instanceof k)return n;null!==t.update&&await xe(e,t.update)}return M}catch(n){throw n}}async function Oe(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 h(e,"OutOfBounds",t);r.scope[r.id]={value:n[i]}}else r.scope[r.id]={value:i};const a=await Se(e,t.body);if(a===R)break;if(a instanceof k)return a}return M}async function Re(e,t,n,r,o="i"){const a=n.length();for(let i=0;i<a;i++){r.scope[r.id]="k"===o?{value:n.get(i)}:{value:i};const a=await Se(e,t.body);if(a===R)break;if(a instanceof k)return a}return M}async function Ie(e,t,n,r){e:for await(const o of await n.queryAll(e.abortSignal))for(const a of o){r.scope[r.id]={value:y.createFromGraphicLikeObject(a.geometry,a.attributes,n,e.timeZone)};const o=await Se(e,t.body);if(o===R)break e;if(o instanceof k)return o}return M}async function Me(e,t,n,r){for(const o of n.keys()){const a=n.field(o);r.scope[r.id]={value:m.containerEntry(o,a)};const i=await Se(e,t.body);if(i===R)break;if(i instanceof k)return i}return M}async function Ce(e,t,n,r){for(const o of l(n)){const a=p(n,o,e,t);r.scope[r.id]={value:m.containerEntry(o,a)};const i=await Se(e,t.body);if(i===R)break;if(i instanceof k)return i}return M}async function Ee(e,t){const n=await xe(e,t.right);"VariableDeclaration"===t.left.type&&await Se(e,t.left);const r=le(e,"VariableDeclaration"===t.left.type?t.left.declarations[0].id:t.left);return re(n)||ne(n)?await Oe(e,t,n,r):z(n)?await Re(e,t,n,r):n instanceof m||L(n)?await Oe(e,t,n.keys(),r,"k"):Z(n)?await Ie(e,t,n,r):D(n)?await Oe(e,t,l(n),r,"k"):M}async function Ne(e,t){const n=await xe(e,t.right);"VariableDeclaration"===t.left.type&&await Se(e,t.left);const r=le(e,"VariableDeclaration"===t.left.type?t.left.declarations[0].id:t.left);return re(n)||ne(n)?await Oe(e,t,n,r,"k"):z(n)?await Re(e,t,n,r,"k"):n instanceof m||L(n)?await Me(e,t,n,r):Z(n)?await Ie(e,t,n,r):D(n)?await Ce(e,t,n,r):M}async function Ae(e,t){const n=t.argument;if("CallExpression"===n.type)throw new h(e,"NeverReach",t);if("MemberExpression"===n.type){const r=await xe(e,n.object);let o,a;if(!0===n.computed)o=await xe(e,n.property);else{if("Identifier"!==n.property.type)throw new h(e,"Unrecognized",t);o=n.property.name}if(re(r)){if(!oe(o))throw new h(e,"ArrayAccessMustBeNumber",t);if(o<0&&(o=r.length+o),o<0||o>=r.length)throw new h(e,"OutOfBounds",t);a=E(r[o]),r[o]="++"===t.operator?a+1:a-1}else if(r instanceof m){if(!1===ne(o))throw new h(e,"KeyAccessorMustBeString",t);if(!0!==r.hasField(o))throw new h(e,"FieldNotFound",t,{key:o});a=E(r.field(o)),r.setField(o,"++"===t.operator?a+1:a-1)}else if(r instanceof he){if(!1===ne(o))throw new h(e,"ModuleAccessorMustBeString",t);if(!0!==r.hasGlobal(o))throw new h(e,"ModuleExportNotFound",t);a=E(r.global(o)),r.setGlobal(o,"++"===t.operator?a+1:a-1)}else{if(!G(r))throw z(r)?new h(e,"Immutable",t):new h(e,"InvalidParameter",t);if(!1===ne(o))throw new h(e,"KeyAccessorMustBeString",t);if(!0!==r.hasField(o))throw new h(e,"FieldNotFound",t,{key:o});a=E(r.field(o)),r.setField(o,"++"===t.operator?a+1:a-1)}return!1===t.prefix?a:"++"===t.operator?a+1:a-1}const r=le(e,n),o=E(ce(r.var).value),a="++"===t.operator?o+1:o-1;return r.scope[r.id]={value:a},!1===t.prefix?o:"++"===t.operator?o+1:o-1}function Be(e,t,n,r,o){switch(t){case"=":return e===M?null:e;case"/=":return E(n)/E(e);case"*=":return E(n)*E(e);case"-=":return E(n)-E(e);case"+=":return ne(n)||ne(e)?N(n)+N(e):E(n)+E(e);case"%=":return E(n)%E(e);default:throw new h(o,"UnsupportedOperator",r)}}async function Ue(e,t){const n=t.left;if("MemberExpression"===n.type){const r=await xe(e,n.object);let o;if(!0===n.computed)o=await xe(e,n.property);else{if("Identifier"!==n.property.type)throw new h(e,"InvalidIdentifier",t);o=n.property.name}const a=await xe(e,t.right);if(re(r)){if(!oe(o))throw new h(e,"ArrayAccessMustBeNumber",t);if(o<0&&(o=r.length+o),o<0||o>r.length)throw new h(e,"OutOfBounds",t);if(o===r.length){if("="!==t.operator)throw new h(e,"OutOfBounds",t);r[o]=Be(a,t.operator,r[o],t,e)}else r[o]=Be(a,t.operator,r[o],t,e)}else if(r instanceof m){if(!1===ne(o))throw new h(e,"KeyAccessorMustBeString",t);if(!0===r.hasField(o))r.setField(o,Be(a,t.operator,r.field(o),t,e));else{if("="!==t.operator)throw new h(e,"FieldNotFound",t,{key:o});r.setField(o,Be(a,t.operator,null,t,e))}}else if(r instanceof he){if(!1===ne(o))throw new h(e,"KeyAccessorMustBeString",t);if(!0!==r.hasGlobal(o))throw new h(e,"ModuleExportNotFound",t);r.setGlobal(o,Be(a,t.operator,r.global(o),t,e))}else{if(!G(r))throw z(r)?new h(e,"Immutable",t):new h(e,"InvalidParameter",t);if(!1===ne(o))throw new h(e,"KeyAccessorMustBeString",t);if(!0===r.hasField(o))r.setField(o,Be(a,t.operator,r.field(o),t,e));else{if("="!==t.operator)throw new h(e,"FieldNotFound",t,{key:o});r.setField(o,Be(a,t.operator,null,t,e))}}return M}const r=le(e,n),o=await xe(e,t.right);return r.scope[r.id]={value:Be(o,t.operator,"="!==t.operator?ce(r.var).value:null,t,e)},M}async function Ge(e,t){const n=await xe(e,t.expression);return n===M?M:new F(n)}async function ze(e,t){const n=await xe(e,t.test);if(!0===n)return Se(e,t.consequent);if(!1===n)return null!==t.alternate?Se(e,t.alternate):M;throw new h(e,"BooleanConditionRequired",t)}async function Le(e,t){return Ze(e,t,0)}async function Ze(e,t,n){if(n>=t.body.length)return M;const r=await Se(e,t.body[n]);return r instanceof k||r===R||r===I||n===t.body.length-1?r:Ze(e,t,n+1)}async function De(e,t){if(null===t.argument)return new k(M);const n=await xe(e,t.argument);return new k(n)}async function _e(t,n){if(null!=t.localScope)throw ae().error("Function declarations are only valid in global scope."),new h(t,"NeverReach",n);const r=e(n.id);if(!(r in t.globalScope))throw ae().error(`Function "${r}" not declared.`),new h(t,"NeverReach",n);const o=s(n),a=n.params.map(t=>e(t)),i=Array.from(o).filter(e=>!a.includes(e));return t.globalScope[r]={value:new de(n,t,a,i)},M}async function qe(e,t){const n=le(e,t.specifiers[0].local),r=e.libraryResolver;if(null==r)throw ae().error("Internal error: module loader not initialized"),new h(e,"NeverReach",t);const o=r.loadLibrary(n.id);let a;return r._moduleSingletons?.has(o.uri)?a=r._moduleSingletons.get(o.uri):(a=await he.load(e,o.syntax),r._moduleSingletons?.set(o.uri,a)),n.scope[n.id]={value:a},M}async function Pe(e,t){return await Se(e,t.declaration),M}async function We(e,t){for(const n of t.declarations)await Te(e,n);return M}async function Te(e,t){t.breakpoint&&await ve(e,t.breakpoint);let n=null;n=null===t.init?null:await xe(e,t.init),n===M&&(n=null);const r=le(e,t.id);r.scope[r.id]={value:n}}async function Ve(e,t){return Ke(e,await xe(e,t.object),t)}async function Ke(e,t,n){const r=n.computed?await xe(e,n.property):n.property.name;return f(t,r)}async function $e(e,t,n){for(const r of n)switch(r.type){case"MemberExpression":t=await Ke(e,t,r);break;case"CallExpression":t=await rt(e,t,r);break;default:throw new h(null,"Unrecognized",r)}return t}async function Ye(e,t,n){const r=n.computed?await xe(e,n.property):n.property.name;return u(t,r)}async function He(e,t){const n=i(t);let r=await xe(e,n.root);for(const o of n.sections){const t=await Ye(e,r,o.checked);if(null==t)return null;r=await $e(e,t,o.unchecked)}return r}async function Je(e,t){const n=await xe(e,t.argument);if(te(n)){if("!"===t.operator)return!n;if("-"===t.operator)return-1*E(n);if("+"===t.operator)return 1*E(n);if("~"===t.operator)return~E(n);throw new h(e,"UnsupportUnaryOperator",t)}if("-"===t.operator)return-1*E(n);if("+"===t.operator)return 1*E(n);if("~"===t.operator)return~E(n);throw new h(e,"UnsupportUnaryOperator",t)}async function Qe(e,t){const n=[];for(let r=0;r<t.elements.length;r++)n.push(await xe(e,t.elements[r]));for(let r=0;r<n.length;r++){if(O(n[r]))throw new h(e,"NoFunctionInArray",t);n[r]===M&&(n[r]=null)}return n}async function Xe(e,t){const n=await xe(e,t.left),r=await xe(e,t.right);switch(t.operator){case"|":case"<<":case">>":case">>>":case"^":case"&":return U(E(n),E(r),t.operator);case"==":return B(n,r);case"!=":return!B(n,r);case"<":case">":case"<=":case">=":return A(n,r,t.operator);case"+":return ne(n)||ne(r)?N(n)+N(r):E(n)+E(r);case"-":return E(n)-E(r);case"*":return E(n)*E(r);case"/":return E(n)/E(r);case"%":return E(n)%E(r);default:throw t.operator,new h(e,"UnsupportedOperator",t)}}async function et(e,t){const n=await xe(e,t.left);if(!te(n))throw new h(e,"LogicalExpressionOnlyBoolean",t);switch(t.operator){case"||":{if(!0===n)return n;const r=await xe(e,t.right);if(te(r))return r;throw new h(e,"LogicExpressionOrAnd",t)}case"&&":{if(!1===n)return n;const r=await xe(e,t.right);if(te(r))return r;throw new h(e,"LogicExpressionOrAnd",t)}default:throw t.operator,new h(e,"LogicExpressionOrAnd",t)}}function tt(e,t){return ue(e,t)}async function nt(e,t){let n;if("Identifier"===t.callee.type){const r=t.callee;r.breakpoint&&await ve(e,r.breakpoint),n=ue(e,t.callee,"FunctionNotFound")}else n=await xe(e,t.callee);return rt(e,n,t)}async function rt(e,t,n){if(O(t))return t.call(e,n);throw new h(e,"CallNonFunction",n)}async function ot(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 xe(e,t.expressions[r]);if(O(o))throw new h(e,"NoFunctionInTemplateLiteral",t);n+=N(o)}r++}return n}async function at(e,t){C(null===t.arguments?[]:t.arguments,3,3,e,t);const n=await xe(e,t.arguments[0]);if(!1===te(n))throw new h(e,"BooleanConditionRequired",t);return xe(e,n?t.arguments[1]:t.arguments[2])}async function it(e,t){C(null===t.arguments?[]:t.arguments,2,3,e,t);const n=await xe(e,t.arguments[0]);if(3===t.arguments.length){const r=await xe(e,t.arguments[1]),o=c(n,r);return null!=o&&""!==o?o:xe(e,t.arguments[2])}return null==n||""===n?xe(e,t.arguments[1]):n}async function st(e,t){if(t.arguments.length<2)throw new h(e,"WrongNumberOfParameters",t);if(2===t.arguments.length)return xe(e,t.arguments[1]);if((t.arguments.length-1)%2==0)throw new h(e,"WrongNumberOfParameters",t);return ct(e,t,1,await xe(e,t.arguments[0]))}async function ct(e,t,n,r){const o=await xe(e,t.arguments[n]);if(B(o,r))return xe(e,t.arguments[n+1]);const a=t.arguments.length-n;return 1===a?xe(e,t.arguments[n]):2===a?null:3===a?xe(e,t.arguments[n+2]):ct(e,t,n+2,r)}async function lt(e,t){if(t.arguments.length<3)throw new h(e,"WrongNumberOfParameters",t);if(t.arguments.length%2==0)throw new h(e,"WrongNumberOfParameters",t);const n=await xe(e,t.arguments[0]);if(!1===te(n))throw new h(e,"BooleanConditionRequired",t.arguments[0]);return ut(e,t,0,n)}async function ut(e,t,n,r){if(!0===r)return xe(e,t.arguments[n+1]);if(3===t.arguments.length-n)return xe(e,t.arguments[n+2]);const o=await xe(e,t.arguments[n+2]);if(!1===te(o))throw new h(e,"ModuleExportNotFound",t.arguments[n+2]);return ut(e,t,n+2,o)}function ft(){const e=Object.create(null);W(e,we),H(e,we),T(e,we,tt),$(e,we),K(e,we),Y(e,we),J(e,we),V({functions:e,compiled:!1,signatures:null,evaluateIdentifier:null,mode:"async",standardFunction:we,standardFunctionAsync:ge}),e.iif=at,e.defaultvalue=it,e.decode=st,e.when=lt;const t=function(){this.textformatting={value:m.textFormatting()}};t.prototype=Object.create(null),t.prototype.infinity=Object.freeze({value:Number.POSITIVE_INFINITY}),t.prototype.nan=Object.freeze({value:Number.NaN}),t.prototype.pi=Object.freeze({value:Math.PI});for(const[n,r]of Object.entries(e))t.prototype[n]=Object.freeze({value:new b(r,n)});return t}const pt=ft();function wt(e){const t={mode:"async",compiled:!1,functions:Object.create(null),signatures:[],standardFunction:we,standardFunctionAsync:ge,evaluateIdentifier:tt};for(let n=0;n<e.length;n++)e[n].registerFunctions(t);for(const[n,r]of Object.entries(t.functions))pt.prototype[n]=Object.freeze({value:new b(r,n)});for(let n=0;n<t.signatures.length;n++)_(t.signatures[n],"async")}function dt(e){console.log(e)}function mt(n,i){const s=new Set(Object.keys(i?.vars||{}).map(t=>e(t))),c=new Set(Object.keys(i?.customfunctions||{}).map(t=>e(t)));if(i?.breakpoints)for(const[e,t]of o(i.breakpoints,n))e.breakpoint=t;const{globals:l,exports:u}=a(n);return async e=>{const o=e.spatialReference??X.WebMercator;let a=null;n.usesModules&&(a=new r(new Map,n.loadedModules));const i=new pt;for(const t of c)null!=e.customfunctions&&t in e.customfunctions?i[t]={value:new b(e.customfunctions[t],t)}:i[t]=ie;for(const t of s){if(null==e.vars||!(t in e.vars)){t in i||(i[t]=ie);continue}const n=e.vars[t]??null;ee(n)?i[t]={value:y.createFromGraphic(n,e.timeZone??null)}:i[t]={value:n}}for(const t of l)t in i||(i[t]=ie);const f={lrucache:e.lrucache,interceptor:e.interceptor,services:e.services,console:e.console??dt,abortSignal:e.abortSignal??t,timeZone:e.timeZone??null,spatialReference:o,track:e.track,depthCounter:{depth:1},libraryResolver:a,exports:u,localScope:null,globalScope:i},p=await Le(f,n);if(p instanceof k||p instanceof F){const e=p.value;if(j(e))return null;if(O(e))throw new h(f,"IllegalResult",null);return e}if(j(p))return null;if(p===R)throw new h(f,"IllegalResult",null);if(p===I)throw new h(f,"IllegalResult",null);throw new h(f,"NeverReach",null)}}function ht(e,t){return mt(e,t)(t)}wt([P]),wt([q]);export{ht as executeScript,wt as extend,mt as prepareScript};
2
+ 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{collectDeclaredGlobalNames as o,resolveBreakpoints as a,flattenAccessChain as i,collectDeclaredLocalNames as s}from"./compilerUtils.js";import{getNestedOptionalValue as c,getGeometryKeys as l,tryGetMember as u,getMember as f,getGeometryMember as p}from"./containerUtils.js";import{wrapDebugValue as w,renderFunctionDebugName as d}from"./debug.js";import m from"./Dictionary.js";import{ArcadeExecutionError as h,ensureArcadeExecutionError as g}from"./executionError.js";import{Feature as b}from"./Feature.js";import{NativeFunction as y,ScopeMarshalledFunction as v,ArcadeFunction as x,wrapModuleScopedResponse as S}from"./FunctionWrapper.js";import{R as k,I as F,q as I,i as j,z as O,A as N,v as M,B as R,r as C,s as E,u as A,w as D,x as B,k as U,j as _,y as G,m as z,h as L}from"../chunks/languageUtils.js";import{addFunctionDeclaration as Z}from"./treeAnalysis.js";import{A as q}from"../chunks/aiServices.js";import{A as P}from"../chunks/array.js";import{registerFunctions as W}from"./functions/date.js";import{registerFunctions as T}from"./functions/feature.js";import{registerFunctions as V}from"./functions/geomasync.js";import{registerFunctions as K}from"./functions/geometry.js";import{registerFunctions as $}from"./functions/maths.js";import{registerFunctions as Y}from"./functions/stats.js";import{registerFunctions as H}from"./functions/string.js";import{registerFunctions as J}from"./functions/track.js";import Q from"../core/Logger.js";import X from"../geometry/SpatialReference.js";import{isGraphic as ee}from"../support/graphicInstanceUtils.js";import{isBoolean as te,isString as ne,isArray as re,isNumber as oe}from"../support/guards.js";const ae=()=>Q.getLogger("esri.arcade.arcadeAsyncRuntime"),ie=Symbol("debugInfo"),se=Symbol("uninitialized");function ce(e){if(e===se)throw new h(null,"InvalidIdentifier",null)}function le(e){return ce(e),e}function ue(t,n){const r=e(n);if(null!==t.localScope){const e=t.localScope[r];if(void 0!==e)return{scope:t.localScope,id:r,var:e}}const o=t.globalScope[r];if(void 0!==o)return{scope:t.globalScope,id:r,var:o};throw new h(t,"InvalidIdentifier",n)}function fe(t,n,r="InvalidIdentifier"){const o=e(n);if(null!==t.localScope){const e=t.localScope[o];if(void 0!==e)return ce(e),e.value}const a=t.globalScope[o];if(void 0!==a)return ce(a),a.value;throw new h(t,r,n)}const pe=function(){};async function we(e,t){const n=[];for(let r=0;r<t.arguments.length;r++)n.push(await Se(e,t.arguments[r]));return n}async function de(e,t,n){if(!0===t.preparsed)return n(e,null,t.arguments);return n(e,t,await we(e,t))}pe.prototype=Object.freeze(Object.create(null));class me extends x{constructor(e,t,n,r,o){super(),this.definition=e,this.context=t,this._params=n,this._locals=r,this._debugInfo=o}get debugName(){return this.definition.id.name}createFunction(e){return(...t)=>{const n=new pe;n[ie]=this._debugInfo;const r={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:n,depthCounter:{depth:e.depthCounter.depth+1},globalScope:this.context.globalScope,contextScopeDebugInfo:this.context.contextScopeDebugInfo,track:this.context.track};if(r.depthCounter.depth>64)throw new h(e,"MaximumCallDepth",null);return he(r,this.definition.body,this._params,this._locals,t,null)}}call(e,t){return be(e,t,(n,r,o)=>{const a=new pe;a[ie]=this._debugInfo;const i={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:a,abortSignal:e.abortSignal,globalScope:e.globalScope,contextScopeDebugInfo:e.contextScopeDebugInfo,depthCounter:{depth:e.depthCounter.depth+1},track:e.track};if(i.depthCounter.depth>64)throw new h(e,"MaximumCallDepth",t);return he(i,this.definition.body,this._params,this._locals,o,t)})}marshalledCall(e,t,n,r){return r(e,t,async(o,a,i)=>{const s=new pe;s[ie]=this._debugInfo;const c={spatialReference:e.spatialReference,services:e.services,globalScope:n.globalScope,contextScopeDebugInfo:n.contextScopeDebugInfo,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:s,track:e.track};return i=i.map(t=>!j(t)||t instanceof v?t:S(t,e,r)),S(await he(c,this.definition.body,this._params,this._locals,i,t),n,r)})}}async function he(e,t,n,r,o,a){if(n.length!==o.length)throw new h(e,"WrongNumberOfParameters",a);if(null!=e.localScope){for(let t=0;t<n.length;t++)e.localScope[n[t]]={value:o[t]};for(const t of r)e.localScope[t]=se}const i=await ke(e,t);if(i instanceof k)return i.value;if(i===O)throw new h(e,"UnexpectedToken",a);if(i===N)throw new h(e,"UnexpectedToken",a);return i instanceof F?i.value:i}class ge extends n{constructor(e){super(),this.moduleGlobalContext=e}global(t){const n=e(t);if(!this.moduleGlobalContext.exports.has(n))throw new h(null,"ModuleExportNotFound",null);const r=this.moduleGlobalContext.globalScope[n];if(ce(r),j(r.value)&&!(r.value instanceof v)){const e=new v;return e.fn=r.value,e.parameterEvaluator=de,e.context=this.moduleGlobalContext,this.moduleGlobalContext.globalScope[n]={value:e},e}return r.value}setGlobal(t,n){if(j(n))throw new h(null,"AssignModuleFunction",null);const r=e(t);if(!this.moduleGlobalContext.exports.has(r))throw new h(null,"ModuleExportNotFound",null);this.moduleGlobalContext.globalScope[r]={value:n}}hasGlobal(t){return this.moduleGlobalContext.exports.has(e(t))}static async load(e,n){const{globals:a,exports:i}=o(n),s=new wt;null!=e.contextScopeDebugInfo&&(s[ie]={declaredNames:a});for(const t of a.keys())t in s||(s[t]=se);const c=e.spatialReference??X.WebMercator,l={lrucache:e.lrucache,interceptor:e.interceptor,services:e.services,console:e.console??mt,abortSignal:e.abortSignal??t,timeZone:e.timeZone??null,spatialReference:c,track:null,depthCounter:{depth:1},libraryResolver:new r(e.libraryResolver._moduleSingletons,n.loadedModules),exports:i,localScope:null,globalScope:s,contextScopeDebugInfo:null!=e.contextScopeDebugInfo?{declaredNames:new Map}:null};return await ze(l,n),new ge(l)}}async function be(e,t,n){if(!0===t.preparsed)return n(e,null,t.arguments);return n(e,t,await we(e,t))}function ye(e,t,n){const r=new Map;if(t)for(const[o,a]of t.declaredNames){const t=e[o];r.set(a,null==t||t===se?null:w(t.value,n))}else for(const o of Object.getOwnPropertyNames(e)){const t=e[o];r.set(o,t===se?null:w(t.value,n))}return r}function ve(e){return e instanceof me?`ƒ ${e.debugName}(${e.definition.params.map(e=>e.name).join(", ")})`:d(e)}function xe(e,t){const n=e.services?.debugger;if(null==n)return;const r={renderFunction:ve,defaultTimeZone:e.timeZone??"system"};return n.pause(t,{profile:null!=e.contextScopeDebugInfo?ye(e.globalScope,e.contextScopeDebugInfo,r):new Map,globals:ye(e.globalScope,e.globalScope[ie],r),locals:null==e.localScope?null:ye(e.localScope,e.localScope[ie],r)})}async function Se(e,t){t.breakpoint&&await xe(e,t.breakpoint);try{switch(t.type){case"UpdateExpression":return await De(e,t);case"AssignmentExpression":return await Ue(e,t);case"TemplateLiteral":return await at(e,t);case"Identifier":return nt(e,t);case"MemberExpression":return await Ke(e,t);case"Literal":return t.value;case"CallExpression":return await rt(e,t);case"UnaryExpression":return await Qe(e,t);case"BinaryExpression":return await et(e,t);case"LogicalExpression":return await tt(e,t);case"ArrayExpression":return await Xe(e,t);case"ObjectExpression":return await Fe(e,t);case"MemberAccessChainExpression":return await Je(e,t);case"SafeMemberExpression":throw ae().error("SafeMemberExpression outside of MemberAccessChainExpression"),new h(null,"Unrecognized",t);default:throw new h(e,"Unrecognized",t)}}catch(n){throw g(e,t,n)}}async function ke(e,t){t.breakpoint&&await xe(e,t.breakpoint);try{switch(t.type){case"ImportDeclaration":return await Pe(e,t);case"ExportNamedDeclaration":return await We(e,t);case"VariableDeclaration":return await Te(e,t);case"BlockStatement":return await ze(e,t);case"FunctionDeclaration":return await qe(e,t);case"ReturnStatement":return await Ze(e,t);case"IfStatement":return await Ge(e,t);case"ExpressionStatement":return await _e(e,t);case"ForStatement":return await je(e,t);case"WhileStatement":return await Ie(e,t);case"ForInStatement":return await Ee(e,t);case"ForOfStatement":return await Ae(e,t);case"BreakStatement":return O;case"EmptyStatement":return M;case"ContinueStatement":return N;default:throw new h(e,"Unrecognized",t)}}catch(n){throw g(e,t,n)}}async function Fe(e,t){const n=[];for(let i=0;i<t.properties.length;i++){const r=t.properties[i],o=await Se(e,r.value),a="Identifier"===r.key.type?r.key.name:await Se(e,r.key);n[i]={key:a,value:o}}const r=Object.create(null),o=new Map;for(let i=0;i<n.length;i++){const a=n[i];if(j(a.value))throw new h(e,"NoFunctionInDictionary",t);if(!1===ne(a.key))throw new h(e,"KeyMustBeString",t);let s=a.key.toString();const c=s.toLowerCase();o.has(c)?s=o.get(c):o.set(c,s),a.value===M?r[s]=null:r[s]=a.value}const a=new m(r);return a.immutable=!1,a}async function Ie(e,t){let n=await Se(e,t.test);if(!1===n)return M;if(!0!==n)throw new h(e,"BooleanConditionRequired",t);for(;!0===n;){const r=await ke(e,t.body);if(r===O)break;if(r instanceof k)return r;if(n=await Se(e,t.test),!0!==n&&!1!==n)throw new h(e,"BooleanConditionRequired",t)}return M}async function je(e,t){try{for(null!==t.init&&("VariableDeclaration"===t.init.type?await ke(e,t.init):await Se(e,t.init));;){if(null!==t.test){const n=await Se(e,t.test);if(!0===e.abortSignal?.aborted)throw new h(e,"Cancelled",t);if(!1===n)break;if(!0!==n)throw new h(e,"BooleanConditionRequired",t)}const n=await ke(e,t.body);if(n===O)break;if(n instanceof k)return n;null!==t.update&&await Se(e,t.update)}return M}catch(n){throw n}}async function Oe(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 h(e,"OutOfBounds",t);r.scope[r.id]={value:n[i]}}else r.scope[r.id]={value:i};const a=await ke(e,t.body);if(a===O)break;if(a instanceof k)return a}return M}async function Ne(e,t,n,r,o="i"){const a=n.length();for(let i=0;i<a;i++){r.scope[r.id]="k"===o?{value:n.get(i)}:{value:i};const a=await ke(e,t.body);if(a===O)break;if(a instanceof k)return a}return M}async function Me(e,t,n,r){e:for await(const o of await n.queryAll(e.abortSignal))for(const a of o){r.scope[r.id]={value:b.createFromGraphicLikeObject(a.geometry,a.attributes,n,e.timeZone)};const o=await ke(e,t.body);if(o===O)break e;if(o instanceof k)return o}return M}async function Re(e,t,n,r){for(const o of n.keys()){const a=n.field(o);r.scope[r.id]={value:m.containerEntry(o,a)};const i=await ke(e,t.body);if(i===O)break;if(i instanceof k)return i}return M}async function Ce(e,t,n,r){for(const o of l(n)){const a=p(n,o,e,t);r.scope[r.id]={value:m.containerEntry(o,a)};const i=await ke(e,t.body);if(i===O)break;if(i instanceof k)return i}return M}async function Ee(e,t){const n=await Se(e,t.right);"VariableDeclaration"===t.left.type&&await ke(e,t.left);const r=ue(e,"VariableDeclaration"===t.left.type?t.left.declarations[0].id:t.left);return re(n)||ne(n)?await Oe(e,t,n,r):_(n)?await Ne(e,t,n,r):n instanceof m||G(n)?await Oe(e,t,n.keys(),r,"k"):z(n)?await Me(e,t,n,r):L(n)?await Oe(e,t,l(n),r,"k"):M}async function Ae(e,t){const n=await Se(e,t.right);"VariableDeclaration"===t.left.type&&await ke(e,t.left);const r=ue(e,"VariableDeclaration"===t.left.type?t.left.declarations[0].id:t.left);return re(n)||ne(n)?await Oe(e,t,n,r,"k"):_(n)?await Ne(e,t,n,r,"k"):n instanceof m||G(n)?await Re(e,t,n,r):z(n)?await Me(e,t,n,r):L(n)?await Ce(e,t,n,r):M}async function De(e,t){const n=t.argument;if("CallExpression"===n.type)throw new h(e,"NeverReach",t);if("MemberExpression"===n.type){const r=await Se(e,n.object);let o,a;if(!0===n.computed)o=await Se(e,n.property);else{if("Identifier"!==n.property.type)throw new h(e,"Unrecognized",t);o=n.property.name}if(re(r)){if(!oe(o))throw new h(e,"ArrayAccessMustBeNumber",t);if(o<0&&(o=r.length+o),o<0||o>=r.length)throw new h(e,"OutOfBounds",t);a=C(r[o]),r[o]="++"===t.operator?a+1:a-1}else if(r instanceof m){if(!1===ne(o))throw new h(e,"KeyAccessorMustBeString",t);if(!0!==r.hasField(o))throw new h(e,"FieldNotFound",t,{key:o});a=C(r.field(o)),r.setField(o,"++"===t.operator?a+1:a-1)}else if(r instanceof ge){if(!1===ne(o))throw new h(e,"ModuleAccessorMustBeString",t);if(!0!==r.hasGlobal(o))throw new h(e,"ModuleExportNotFound",t);a=C(r.global(o)),r.setGlobal(o,"++"===t.operator?a+1:a-1)}else{if(!U(r))throw _(r)?new h(e,"Immutable",t):new h(e,"InvalidParameter",t);if(!1===ne(o))throw new h(e,"KeyAccessorMustBeString",t);if(!0!==r.hasField(o))throw new h(e,"FieldNotFound",t,{key:o});a=C(r.field(o)),r.setField(o,"++"===t.operator?a+1:a-1)}return!1===t.prefix?a:"++"===t.operator?a+1:a-1}const r=ue(e,n),o=C(le(r.var).value),a="++"===t.operator?o+1:o-1;return r.scope[r.id]={value:a},!1===t.prefix?o:"++"===t.operator?o+1:o-1}function Be(e,t,n,r,o){switch(t){case"=":return e===M?null:e;case"/=":return C(n)/C(e);case"*=":return C(n)*C(e);case"-=":return C(n)-C(e);case"+=":return ne(n)||ne(e)?E(n)+E(e):C(n)+C(e);case"%=":return C(n)%C(e);default:throw new h(o,"UnsupportedOperator",r)}}async function Ue(e,t){const n=t.left;if("MemberExpression"===n.type){const r=await Se(e,n.object);let o;if(!0===n.computed)o=await Se(e,n.property);else{if("Identifier"!==n.property.type)throw new h(e,"InvalidIdentifier",t);o=n.property.name}const a=await Se(e,t.right);if(re(r)){if(!oe(o))throw new h(e,"ArrayAccessMustBeNumber",t);if(o<0&&(o=r.length+o),o<0||o>r.length)throw new h(e,"OutOfBounds",t);if(o===r.length){if("="!==t.operator)throw new h(e,"OutOfBounds",t);r[o]=Be(a,t.operator,r[o],t,e)}else r[o]=Be(a,t.operator,r[o],t,e)}else if(r instanceof m){if(!1===ne(o))throw new h(e,"KeyAccessorMustBeString",t);if(!0===r.hasField(o))r.setField(o,Be(a,t.operator,r.field(o),t,e));else{if("="!==t.operator)throw new h(e,"FieldNotFound",t,{key:o});r.setField(o,Be(a,t.operator,null,t,e))}}else if(r instanceof ge){if(!1===ne(o))throw new h(e,"KeyAccessorMustBeString",t);if(!0!==r.hasGlobal(o))throw new h(e,"ModuleExportNotFound",t);r.setGlobal(o,Be(a,t.operator,r.global(o),t,e))}else{if(!U(r))throw _(r)?new h(e,"Immutable",t):new h(e,"InvalidParameter",t);if(!1===ne(o))throw new h(e,"KeyAccessorMustBeString",t);if(!0===r.hasField(o))r.setField(o,Be(a,t.operator,r.field(o),t,e));else{if("="!==t.operator)throw new h(e,"FieldNotFound",t,{key:o});r.setField(o,Be(a,t.operator,null,t,e))}}return M}const r=ue(e,n),o=await Se(e,t.right);return r.scope[r.id]={value:Be(o,t.operator,"="!==t.operator?le(r.var).value:null,t,e)},M}async function _e(e,t){const n=await Se(e,t.expression);return n===M?M:new F(n)}async function Ge(e,t){const n=await Se(e,t.test);if(!0===n)return ke(e,t.consequent);if(!1===n)return null!==t.alternate?ke(e,t.alternate):M;throw new h(e,"BooleanConditionRequired",t)}async function ze(e,t){return Le(e,t,0)}async function Le(e,t,n){if(n>=t.body.length)return M;const r=await ke(e,t.body[n]);return r instanceof k||r===O||r===N||n===t.body.length-1?r:Le(e,t,n+1)}async function Ze(e,t){if(null===t.argument)return new k(M);const n=await Se(e,t.argument);return new k(n)}async function qe(t,n){if(null!=t.localScope)throw ae().error("Function declarations are only valid in global scope."),new h(t,"NeverReach",n);const r=e(n.id);if(!(r in t.globalScope))throw ae().error(`Function "${r}" not declared.`),new h(t,"NeverReach",n);const o=s(n),a=n.params.map(t=>e(t)),i=Array.from(o.keys()).filter(e=>!a.includes(e));let c=null;return null!=t.contextScopeDebugInfo&&(c={declaredNames:new Map([...n.params.map(t=>[e(t),t.name]),...o])}),t.globalScope[r]={value:new me(n,t,a,i,c)},M}async function Pe(e,t){const n=ue(e,t.specifiers[0].local),r=e.libraryResolver;if(null==r)throw ae().error("Internal error: module loader not initialized"),new h(e,"NeverReach",t);const o=r.loadLibrary(n.id);let a;return r._moduleSingletons?.has(o.uri)?a=r._moduleSingletons.get(o.uri):(a=await ge.load(e,o.syntax),r._moduleSingletons?.set(o.uri,a)),n.scope[n.id]={value:a},M}async function We(e,t){return await ke(e,t.declaration),M}async function Te(e,t){for(const n of t.declarations)await Ve(e,n);return M}async function Ve(e,t){t.breakpoint&&await xe(e,t.breakpoint);let n=null;n=null===t.init?null:await Se(e,t.init),n===M&&(n=null);const r=ue(e,t.id);r.scope[r.id]={value:n}}async function Ke(e,t){return $e(e,await Se(e,t.object),t)}async function $e(e,t,n){const r=n.computed?await Se(e,n.property):n.property.name;return f(t,r)}async function Ye(e,t,n){for(const r of n)switch(r.type){case"MemberExpression":t=await $e(e,t,r);break;case"CallExpression":t=await ot(e,t,r);break;default:throw new h(null,"Unrecognized",r)}return t}async function He(e,t,n){const r=n.computed?await Se(e,n.property):n.property.name;return u(t,r)}async function Je(e,t){const n=i(t);let r=await Se(e,n.root);for(const o of n.sections){const t=await He(e,r,o.checked);if(null==t)return null;r=await Ye(e,t,o.unchecked)}return r}async function Qe(e,t){const n=await Se(e,t.argument);if(te(n)){if("!"===t.operator)return!n;if("-"===t.operator)return-1*C(n);if("+"===t.operator)return 1*C(n);if("~"===t.operator)return~C(n);throw new h(e,"UnsupportUnaryOperator",t)}if("-"===t.operator)return-1*C(n);if("+"===t.operator)return 1*C(n);if("~"===t.operator)return~C(n);throw new h(e,"UnsupportUnaryOperator",t)}async function Xe(e,t){const n=[];for(let r=0;r<t.elements.length;r++)n.push(await Se(e,t.elements[r]));for(let r=0;r<n.length;r++){if(j(n[r]))throw new h(e,"NoFunctionInArray",t);n[r]===M&&(n[r]=null)}return n}async function et(e,t){const n=await Se(e,t.left),r=await Se(e,t.right);switch(t.operator){case"|":case"<<":case">>":case">>>":case"^":case"&":return B(C(n),C(r),t.operator);case"==":return D(n,r);case"!=":return!D(n,r);case"<":case">":case"<=":case">=":return A(n,r,t.operator);case"+":return ne(n)||ne(r)?E(n)+E(r):C(n)+C(r);case"-":return C(n)-C(r);case"*":return C(n)*C(r);case"/":return C(n)/C(r);case"%":return C(n)%C(r);default:throw t.operator,new h(e,"UnsupportedOperator",t)}}async function tt(e,t){const n=await Se(e,t.left);if(!te(n))throw new h(e,"LogicalExpressionOnlyBoolean",t);switch(t.operator){case"||":{if(!0===n)return n;const r=await Se(e,t.right);if(te(r))return r;throw new h(e,"LogicExpressionOrAnd",t)}case"&&":{if(!1===n)return n;const r=await Se(e,t.right);if(te(r))return r;throw new h(e,"LogicExpressionOrAnd",t)}default:throw t.operator,new h(e,"LogicExpressionOrAnd",t)}}function nt(e,t){return fe(e,t)}async function rt(e,t){let n;if("Identifier"===t.callee.type){const r=t.callee;r.breakpoint&&await xe(e,r.breakpoint),n=fe(e,t.callee,"FunctionNotFound")}else n=await Se(e,t.callee);return ot(e,n,t)}async function ot(e,t,n){if(j(t))return t.call(e,n);throw new h(e,"CallNonFunction",n)}async function at(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 Se(e,t.expressions[r]);if(j(o))throw new h(e,"NoFunctionInTemplateLiteral",t);n+=E(o)}r++}return n}async function it(e,t){R(null===t.arguments?[]:t.arguments,3,3,e,t);const n=await Se(e,t.arguments[0]);if(!1===te(n))throw new h(e,"BooleanConditionRequired",t);return Se(e,n?t.arguments[1]:t.arguments[2])}async function st(e,t){R(null===t.arguments?[]:t.arguments,2,3,e,t);const n=await Se(e,t.arguments[0]);if(3===t.arguments.length){const r=await Se(e,t.arguments[1]),o=c(n,r);return null!=o&&""!==o?o:Se(e,t.arguments[2])}return null==n||""===n?Se(e,t.arguments[1]):n}async function ct(e,t){if(t.arguments.length<2)throw new h(e,"WrongNumberOfParameters",t);if(2===t.arguments.length)return Se(e,t.arguments[1]);if((t.arguments.length-1)%2==0)throw new h(e,"WrongNumberOfParameters",t);return lt(e,t,1,await Se(e,t.arguments[0]))}async function lt(e,t,n,r){const o=await Se(e,t.arguments[n]);if(D(o,r))return Se(e,t.arguments[n+1]);const a=t.arguments.length-n;return 1===a?Se(e,t.arguments[n]):2===a?null:3===a?Se(e,t.arguments[n+2]):lt(e,t,n+2,r)}async function ut(e,t){if(t.arguments.length<3)throw new h(e,"WrongNumberOfParameters",t);if(t.arguments.length%2==0)throw new h(e,"WrongNumberOfParameters",t);const n=await Se(e,t.arguments[0]);if(!1===te(n))throw new h(e,"BooleanConditionRequired",t.arguments[0]);return ft(e,t,0,n)}async function ft(e,t,n,r){if(!0===r)return Se(e,t.arguments[n+1]);if(3===t.arguments.length-n)return Se(e,t.arguments[n+2]);const o=await Se(e,t.arguments[n+2]);if(!1===te(o))throw new h(e,"ModuleExportNotFound",t.arguments[n+2]);return ft(e,t,n+2,o)}function pt(){const e=Object.create(null);W(e,de),H(e,de),T(e,de,nt),$(e,de),K(e,de),Y(e,de),J(e,de),V({functions:e,compiled:!1,signatures:null,evaluateIdentifier:null,mode:"async",standardFunction:de,standardFunctionAsync:be}),e.iif=it,e.defaultvalue=st,e.decode=ct,e.when=ut;const t=function(){this.textformatting={value:m.textFormatting()}};t.prototype=Object.create(null),t.prototype.infinity=Object.freeze({value:Number.POSITIVE_INFINITY}),t.prototype.nan=Object.freeze({value:Number.NaN}),t.prototype.pi=Object.freeze({value:Math.PI});for(const[n,r]of Object.entries(e))t.prototype[n]=Object.freeze({value:new y(r,n)});return t}const wt=pt();function dt(e){const t={mode:"async",compiled:!1,functions:Object.create(null),signatures:[],standardFunction:de,standardFunctionAsync:be,evaluateIdentifier:nt};for(let n=0;n<e.length;n++)e[n].registerFunctions(t);for(const[n,r]of Object.entries(t.functions))wt.prototype[n]=Object.freeze({value:new y(r,n)});for(let n=0;n<t.signatures.length;n++)Z(t.signatures[n],"async")}function mt(e){console.log(e)}function ht(n,i){const s=new Set(Object.keys(i?.vars||{}).map(t=>e(t))),c=new Set(Object.keys(i?.customfunctions||{}).map(t=>e(t))),{globals:l,exports:u}=o(n);let f=null;if(i?.breakpoints){for(const[e,t]of a(i.breakpoints,n))e.breakpoint=t;f={declaredNames:new Map(Object.keys(i?.vars||{}).map(t=>[e(t),t]).filter(([e])=>!l.has(e)))}}return async e=>{const o=e.spatialReference??X.WebMercator;let a=null;n.usesModules&&(a=new r(new Map,n.loadedModules));const i=new wt;null!=f&&(i[ie]={declaredNames:l});for(const t of c)null!=e.customfunctions&&t in e.customfunctions?i[t]={value:new y(e.customfunctions[t],t)}:i[t]=se;for(const t of s){if(null==e.vars||!(t in e.vars)){t in i||(i[t]=se);continue}const n=e.vars[t]??null;ee(n)?i[t]={value:b.createFromGraphic(n,e.timeZone??null)}:i[t]={value:n}}for(const t of l.keys())t in i||(i[t]=se);const p={lrucache:e.lrucache,interceptor:e.interceptor,services:e.services,console:e.console??mt,abortSignal:e.abortSignal??t,timeZone:e.timeZone??null,spatialReference:o,track:e.track,depthCounter:{depth:1},libraryResolver:a,exports:u,localScope:null,globalScope:i,contextScopeDebugInfo:f},w=await ze(p,n);if(w instanceof k||w instanceof F){const e=w.value;if(I(e))return null;if(j(e))throw new h(p,"IllegalResult",null);return e}if(I(w))return null;if(w===O)throw new h(p,"IllegalResult",null);if(w===N)throw new h(p,"IllegalResult",null);throw new h(p,"NeverReach",null)}}function gt(e,t){return ht(e,t)(t)}dt([P]),dt([q]);export{gt as executeScript,dt as extend,ht as prepareScript};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{toSymbolId as e,neverAbortedSignal as n}from"./arcadeEnvironment.js";import{ArcadeModule as t}from"./ArcadeModule.js";import{ArcadeModuleLoader as r}from"./ArcadeModuleLoader.js";import{collectDeclaredGlobalNames as o,collectDeclaredLocalNames as l,flattenAccessChain as a}from"./compilerUtils.js";import{getNestedOptionalValue as s,tryGetMember as i,getMember as u,getGeometryMember as c,getGeometryKeys as m}from"./containerUtils.js";import p from"./Dictionary.js";import{ArcadeExecutionError as f,ArcadeCompilationError as d,ArcadeUncompilableError as g}from"./executionError.js";import{Feature as h}from"./Feature.js";import{NativeFunction as y,ArcadeFunction as w,ScopeMarshalledFunction as b,wrapModuleScopedResponse as $}from"./FunctionWrapper.js";import{p as v,q as S,i as x,k as I,j as C,r as F,s as M,v as O,u as j,w as A,x as k,h as E,n as N,y as B}from"../chunks/languageUtils.js";import{addFunctionDeclaration as _}from"./treeAnalysis.js";import{A as V}from"../chunks/aiServices.js";import{A as T}from"../chunks/array.js";import{registerFunctions as L}from"./functions/date.js";import{registerFunctions as R}from"./functions/feature.js";import{registerFunctions as U}from"./functions/geometry.js";import{registerFunctions as D}from"./functions/geomsync.js";import{registerFunctions as G}from"./functions/maths.js";import{registerFunctions as q}from"./functions/stats.js";import{registerFunctions as z}from"./functions/string.js";import{registerFunctions as P}from"./functions/track.js";import W from"../core/Logger.js";import{isPromiseLike as K}from"../core/promiseUtils.js";import{addMany as Z}from"../core/SetUtils.js";import J from"../geometry/SpatialReference.js";import{isGraphic as Y}from"../support/graphicInstanceUtils.js";import{isArray as H,isNumber as Q,isString as X,isBoolean as ee}from"../support/guards.js";const ne=()=>W.getLogger("esri.arcade.arcadeCompiler");class te{constructor(){this._symbolCounter=0,this.safeAccessTempVarId="_Tsat"}nextVarId(){return this._symbolCounter+=1,`_T${this._symbolCounter}`}nextTempVarId(){return this._symbolCounter+=1,`_Tvar${this._symbolCounter}`}nextLocalsSymbolMapId(){return this._symbolCounter+=1,`_Locals${this._symbolCounter}`}}function re(e,n){const t=e.localScope?.get(n);if(null!=t)return{scope:"local",name:n,var:t};const r=e.globalScope.get(n);return null!=r?{scope:"global",name:n,var:r}:e.standardGlobals.has(n)?{scope:"global",name:n,var:n}:null}function oe(n,t,r="InvalidIdentifier"){const o=re(n,e(t));if(null!=o)return o;throw new d(null,r,t)}function le(n,t,r){const o=re(n,e(t));if(null==o)throw ne().error(`Internal error: Symbol "${t.name}" not declared.`),new d(null,"NeverReach",t);if(null!=r&&o.scope!==r)throw ne().error(`Internal error: Expected to resolve "${t.name}" in the ${r} scope but is in the ${o.scope} scope.`),new d(null,"NeverReach",t);return o}function ae(n,t){const r=e(t),o=n.symbolMetadata;if(n.localStack.length>0){const e=n.localStack[n.localStack.length-1],t=o.locals.get(e._SymbolsMapId);if(null==t)return void ne().error(`Internal error: no reflection metadata for ${e._SymbolsMapId}`);const l=t.get(r);if(null!=l)return on.requireInitialized(e[l])}const l=o.globals.get(r);if(null!=l)return on.requireInitialized(n.globalScope[l]);if(o.standardGlobals.has(r))return on.requireInitialized(n.globalScope[r]);throw new f(null,"InvalidIdentifier",null)}class se extends w{constructor(e,n){super(),this.paramCount=n,this.fn=e}get debugName(){return null}createFunction(e){return(...n)=>{if(n.length!==this.paramCount)throw new f(e,"WrongNumberOfParameters",null);return this.fn(...n)}}call(e,n){return this.fn(...n.arguments)}marshalledCall(e,n,t,r){return r(e,n,(n,o,l)=>{l=l.map(n=>!x(n)||n instanceof b?n:$(n,e,r));const a=this.call(t,{arguments:l});return K(a)?a.then(e=>$(e,t,r)):a})}}function ie(e,n,t){try{return t(e,null,n.arguments)}catch(r){throw r}}function ue(e,n,t,r,l,a){const{globals:s,exports:i}=o(e);Z(s,t);const u=new te,c=[],m=new Map;for(const o of s)if(t.has(o)||n.has(o))m.set(o,o);else{const e=u.nextVarId();m.set(o,e),c.push(`gscope[${JSON.stringify(e)}] = ${tn};`)}const p=new Map,f=Object.create(null),d={isAsync:r,symbols:u,standardGlobals:n,globalScope:m,exports:i,localScope:null,allLocalSymbolMetadata:p,moduleFactory:a,moduleFactoryMap:f,libraryResolver:l};return{body:[...c,`var ${u.safeAccessTempVarId};`,"var lastStatement = lc.voidOperation;",Ce(d,e),"return lastStatement;"].join("\n"),symbolMetadata:{standardGlobals:n,exports:i,globals:m,locals:p},moduleFactoryMap:f}}function ce(e,n){switch(n.type){case"AssignmentExpression":return ve(e,n);case"UpdateExpression":return be(e,n);case"TemplateLiteral":return Re(e,n);case"Identifier":return Ge(e,n);case"MemberExpression":return Ee(e,n);case"Literal":return null===n.value||void 0===n.value?"null":JSON.stringify(n.value);case"CallExpression":return qe(e,n);case"UnaryExpression":return Te(e,n);case"BinaryExpression":return Ue(e,n);case"LogicalExpression":return De(e,n);case"ArrayExpression":return Le(e,n);case"ObjectExpression":return pe(e,n);case"MemberAccessChainExpression":return Ve(e,n);case"SafeMemberExpression":throw ne().error("SafeMemberExpression outside of MemberAccessChainExpression"),new d(null,"Unrecognized",n);default:throw new d(null,"Unrecognized",n)}}function me(e,n){switch(n.type){case"EmptyStatement":return"lc.voidOperation";case"VariableDeclaration":return Ae(e,n);case"BlockStatement":return Ce(e,n);case"FunctionDeclaration":return je(e,n);case"ImportDeclaration":return Me(e,n);case"ExportNamedDeclaration":return me(e,n.declaration);case"ReturnStatement":return Fe(e,n);case"IfStatement":return Ie(e,n);case"ExpressionStatement":return Se(e,n);case"BreakStatement":return"break";case"ContinueStatement":return"continue";case"ForStatement":return we(e,n);case"ForInStatement":return he(e,n);case"ForOfStatement":return ye(e,n);case"WhileStatement":return $e(e,n);default:throw new d(null,"Unrecognized",n)}}function pe(e,n){let t="lang.dictionary([";for(let r=0;r<n.properties.length;r++){const o=n.properties[r];let l;l="Identifier"===o.key.type?"'"+o.key.name+"'":ce(e,o.key);r>0&&(t+=","),t+="lang.strCheck("+l+",'ObjectExpression'),lang.aCheck("+ce(e,o.value)+", 'ObjectExpression')"}return t+="])",t}function fe(e,n,t,r,o=(e,n)=>`${e} = ${n}`){const l=e.symbols.nextTempVarId(),a=e.symbols.nextTempVarId();return[`var ${l} = ${t};`,`for (var ${a} = 0; ${a} < ${l}; ${a}++) {`,` ${o(n,a)}`,` ${me(e,r)}`,"}","lastStatement = lc.voidOperation;"].join("\n")}function de(e,n,t,r,o=e=>e){const l=e.symbols.nextTempVarId(),a=e.symbols.nextTempVarId();return[`var ${l} = ${t};`,`for (var ${a} of ${l}) {`,` ${n} = ${o(a)};`,` ${me(e,r)}`,"}","lastStatement = lc.voidOperation;"].join("\n")}function ge(e,n,t,r){const o=e.symbols.nextTempVarId(),l=e.symbols.nextTempVarId(),a=e.symbols.nextTempVarId(),s=e.symbols.nextTempVarId();return[`var ${o} = yield ${t}.queryAll(runtimeCtx.abortSignal);`,`var ${l} = { done: false, value: [] };`,`for (var ${a} = 0; ${a} < ${l}.value.length || ((${a} = 0), !(${l} = yield ${o}.next()).done); ${a}++) {`,` if (${l}.value.length === 0) continue;`,` var ${s} = ${l}.value[${a}];`,` ${n} = lang.createFeature(${s}, ${t}, runtimeCtx);`,` ${me(e,r)}`,"}"].join("\n")}function he(e,n){const t=e.symbols.nextTempVarId();let r,o,l="var "+t+" = "+ce(e,n.right)+";\n";switch("VariableDeclaration"===n.left.type?(r=le(e,n.left.declarations[0].id),l+=me(e,n.left)):r=oe(e,n.left),r.scope){case"local":o=`lscope['${r.var}']`;break;case"global":o=`gscope['${r.var}']`;break;default:throw r.scope,new d(null,"NeverReach",n.left)}return l+="if ("+t+"===null) { lastStatement = lc.voidOperation; }\n ",l+="else if (lc.isArray("+t+") || lc.isString("+t+")) {\n",l+=fe(e,o,`${t}.length`,n.body),l+="}\n",l+="else if (lc.isImmutableArray("+t+")) {\n",l+=fe(e,o,`${t}.length()`,n.body),l+="}\n",l+="else if (( "+t+" instanceof lang.Dictionary) || lc.isDictionaryLike("+t+")) {\n",l+=de(e,o,`${t}.keys()`,n.body),l+="}\n",e.isAsync&&(l+="else if (lc.isFeatureSet("+t+")) {\n",l+=ge(e,o,t,n.body),l+="}\n"),l+=`else if (lc.isGeometry(${t})) {\n`,l+=de(e,o,`lang.getGeometryKeys(${t})`,n.body),l+="}\n",l+="else { lastStatement = lc.voidOperation; } \n",l}function ye(e,n){const t=e.symbols.nextTempVarId();let r,o,l="var "+t+" = "+ce(e,n.right)+";\n";switch("VariableDeclaration"===n.left.type?(r=le(e,n.left.declarations[0].id),l+=me(e,n.left)):r=oe(e,n.left),r.scope){case"local":o=`lscope['${r.var}']`;break;case"global":o=`gscope['${r.var}']`;break;default:throw r.scope,new d(null,"NeverReach",n.left)}return l+="if ("+t+"===null) { lastStatement = lc.voidOperation; }\n ",l+="else if (lc.isArray("+t+") || lc.isString("+t+")) {\n",l+=fe(e,o,`${t}.length`,n.body,(e,n)=>[`if (${n} >= ${t}.length) {`," lang.error('OutOfBounds');","}",`${e} = ${t}[${n}];`].join("\n")),l+="}\n",l+="else if (lc.isImmutableArray("+t+")) {\n",l+=fe(e,o,`${t}.length()`,n.body,(e,n)=>`${e} = ${t}.get(${n});`),l+="}\n",l+="else if (( "+t+" instanceof lang.Dictionary) || lc.isDictionaryLike("+t+")) {\n",l+=de(e,o,`${t}.keys()`,n.body,e=>`lang.entry(${e}, ${t}.field(${e}))`),l+="}\n",e.isAsync&&(l+="else if (lc.isFeatureSet("+t+")) {\n",l+=ge(e,o,t,n.body),l+="}\n"),l+=`else if (lc.isGeometry(${t})) {\n`,l+=de(e,o,`lang.getGeometryKeys(${t})`,n.body,e=>`lang.entry(${e}, lang.getGeometryMember(${t}, ${e}, runtimeCtx))`),l+="}\n",l+="else { lastStatement = lc.voidOperation; } \n",l}function we(e,n){let t="lastStatement = lc.voidOperation; \n";null!==n.init&&("VariableDeclaration"===n.init.type?t+=me(e,n.init):t+=ce(e,n.init)+"; ");const r=e.symbols.nextTempVarId(),o=e.symbols.nextTempVarId();return t+="var "+r+" = true; ",t+="\n do { ",null!==n.update&&(t+=" if ("+r+"===false) {\n "+ce(e,n.update)+" \n}\n "+r+"=false; \n"),null!==n.test&&(t+="var "+o+" = "+ce(e,n.test)+"; ",t+="if ("+o+"===false) { break; } else if ("+o+"!==true) { lang.error('BooleanConditionRequired'); }\n"),t+=me(e,n.body),null!==n.update&&(t+="\n "+ce(e,n.update)),t+="\n"+r+" = true; \n} while(true); lastStatement = lc.voidOperation; ",t}function be(e,n){if("CallExpression"===n.argument.type)throw new d(null,"NeverReach",n);let t;if("MemberExpression"===n.argument.type){const r=ce(e,n.argument.object);return t=!0===n.argument.computed?ce(e,n.argument.property):"'"+n.argument.property.name+"'","lang.memberupdate("+r+","+t+",'"+n.operator+"',"+n.prefix+")"}const r=oe(e,n.argument);switch(Oe(r),r.scope){case"local":return`lang.update(lscope, '${r.var}', '${n.operator}', ${n.prefix})`;case"global":return`lang.update(gscope, '${r.var}', '${n.operator}', ${n.prefix})`;default:throw r.scope,new d(null,"NeverReach",n.argument)}}function $e(e,n){let t="lastStatement = lc.voidOperation; \n";const r=e.symbols.nextTempVarId();return t+=`\n var ${r} = true;\n do {\n ${r} = ${ce(e,n.test)};\n if (${r}==false) {\n break;\n }\n if (${r}!==true) {\n lang.error('BooleanConditionRequired');\n }\n ${me(e,n.body)}\n }\n while (${r} !== false);\n lastStatement = lc.voidOperation;\n `,t}function ve(e,n){const t=ce(e,n.right);if("MemberExpression"===n.left.type){let r;const o=ce(e,n.left.object);return r=!0===n.left.computed?ce(e,n.left.property):"'"+n.left.property.name+"'","lang.assignmember("+o+","+r+",'"+n.operator+"',"+t+")"}const r=oe(e,n.left);switch(Oe(r),r.scope){case"local":return`lscope['${r.var}']=lang.assign(${t},'${n.operator}', ${"="===n.operator?"null":rn(`lscope['${r.var}']`)})`;case"global":return`gscope['${r.var}']=lang.assign(${t},'${n.operator}', ${"="===n.operator?"null":rn(`gscope['${r.var}']`)})`;default:throw r.scope,new d(null,"NeverReach",n.left)}}function Se(e,n){return"AssignmentExpression"===n.expression.type?"lastStatement = lc.voidOperation; "+ce(e,n.expression)+"; \n ":"lastStatement = "+ce(e,n.expression)+"; "}function xe(e,n){return"BlockStatement"===n.type?me(e,n):"ReturnStatement"===n.type||"BreakStatement"===n.type||"ContinueStatement"===n.type?me(e,n)+"; ":"ExpressionStatement"===n.type?me(e,n):me(e,n)+"; "}function Ie(e,n){return`if (lang.mustBoolean(${ce(e,n.test)}, runtimeCtx) === true) {\n ${xe(e,n.consequent)}\n } `+(null!==n.alternate?"IfStatement"===n.alternate.type?" else "+Ie(e,n.alternate):` else {\n ${xe(e,n.alternate)}\n }\n`:" else {\n lastStatement = lc.voidOperation;\n }\n")}function Ce(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+=me(e,n.body[r])+"; \n":t+=me(e,n.body[r])+" \n");return t}function Fe(e,n){if(null===n.argument)return"return lc.voidOperation";return"return "+ce(e,n.argument)}function Me(e,n){const t=le(e,n.specifiers[0].local,"global"),r=e.libraryResolver?.loadLibrary(t.name),o=e.symbols.nextVarId();void 0===e.moduleFactory[r.uri]&&(e.moduleFactory[r.uri]=cn(r.syntax,e.moduleFactory,e.isAsync)),e.moduleFactoryMap[o]=r.uri;let l="";return l=e.isAsync?"(yield lang.loadModule('"+o+"', runtimeCtx) ); ":"lang.loadModule('"+o+"', runtimeCtx); ",Oe(t),`gscope['${t.var}']=${l}`}function Oe(e){if("global"===e.scope)switch(e.name){case"iif":case"when":case"defaultvalue":case"decode":throw new g}}function je(n,t){const r=new Set(t.params.map(n=>e(n))),o=l(t);Z(o,r);const a=n.symbols,s=new Map;for(const e of o)s.set(e,a.nextVarId());const i=a.nextLocalsSymbolMapId();n.allLocalSymbolMetadata.set(i,s);const u={...n,localScope:s},c=[`lscope._SymbolsMapId = ${JSON.stringify(i)};`];for(let e=0;e<t.params.length;e++){const n=le(u,t.params[e],"local");Oe(n),c.push(`lscope['${n.var}'] = arguments[${e}];`)}for(const[e,l]of s)r.has(e)||c.push(`lscope['${l}'] = ${tn};`);const m=Ce(u,t.body),p=!0===n.isAsync?["return lang.__awaiter(this, void 0, void 0, function* () {",` ${m}`," return lastStatement;","});"]:[m,"return lastStatement;"],f=["new lang.UserDefinedCompiledFunction("," lang.functionDepthchecker("," function() {"," var lastStatement = lc.voidOperation;"," var lscope = runtimeCtx.localStack[runtimeCtx.localStack.length-1];",...c,...p," },"," runtimeCtx,"," ),",` ${t.params.length},`,")"].join("\n"),d=le(n,t.id,"global");return Oe(d),`gscope['${d.var}']=${f}; lastStatement = lc.voidOperation;`}function Ae(e,n){const t=[];for(let r=0;r<n.declarations.length;r++)t.push(ke(e,n.declarations[r]));return t.join("\n")+" \n lastStatement= lc.voidOperation; \n"}function ke(e,n){const t=null===n.init?"null":ce(e,n.init),r=le(e,n.id);switch(Oe(r),r.scope){case"local":return`lscope['${r.var}']=${t};`;case"global":return`gscope['${r.var}']=${t};`;default:throw r.scope,new d(null,"NeverReach",n.id)}}function Ee(e,n){return Ne(e,ce(e,n.object),n)}function Ne(e,n,t){return`lang.member(${n}, ${t.computed?ce(e,t.property):`'${t.property.name}'`})`}function Be(e,n,t){for(const r of t)switch(r.type){case"MemberExpression":n=Ne(e,n,r);break;case"CallExpression":n=ze(e,n,r.arguments);break;default:throw new d(null,"Unrecognized",r)}return n}function _e(e,n,t){return`lang.tryMember(${n}, ${t.computed?ce(e,t.property):`'${t.property.name}'`})`}function Ve(e,n){const t=a(n);let r="",o=ce(e,t.root);for(const l of t.sections)r+=`(${e.symbols.safeAccessTempVarId} = ${_e(e,o,l.checked)}) == null ? null : `,o=Be(e,e.symbols.safeAccessTempVarId,l.unchecked);return`(${r}${o})`}function Te(e,n){try{return"lang.unary("+ce(e,n.argument)+",'"+n.operator+"')"}catch(t){throw t}}function Le(e,n){try{const t=[];for(let r=0;r<n.elements.length;r++)"Literal"===n.elements[r].type?t.push(ce(e,n.elements[r])):t.push("lang.aCheck("+ce(e,n.elements[r])+",'ArrayExpression')");return"["+t.join(",")+"]"}catch(t){throw t}}function Re(e,n){try{const t=[];let r=0;for(const o of n.quasis)t.push(o.value?JSON.stringify(o.value.cooked):JSON.stringify("")),!1===o.tail&&(t.push(n.expressions[r]?"lang.castString(lang.aCheck("+ce(e,n.expressions[r])+", 'TemplateLiteral'))":""),r++);return"(["+t.join(",")+"]).join('')"}catch(t){throw t}}function Ue(e,n){try{return"lang.binary("+ce(e,n.left)+","+ce(e,n.right)+",'"+n.operator+"')"}catch(t){throw t}}function De(e,n){try{if("AssignmentExpression"===n.left.type||"UpdateExpression"===n.left.type)throw new d(null,"LogicalExpressionOnlyBoolean",n);if("AssignmentExpression"===n.right.type||"UpdateExpression"===n.right.type)throw new d(null,"LogicalExpressionOnlyBoolean",n);if("&&"===n.operator||"||"===n.operator)return"(lang.logicalCheck("+ce(e,n.left)+") "+n.operator+" lang.logicalCheck("+ce(e,n.right)+"))";throw new d(null,"LogicExpressionOrAnd",null)}catch(t){throw t}}function Ge(e,n){const t=oe(e,n);switch(Oe(t),t.scope){case"local":return rn(`lscope['${t.var}']`);case"global":return rn(`gscope['${t.var}']`);default:throw t.scope,new d(null,"NeverReach",n)}}function qe(e,n){if("Identifier"===n.callee.type){const t=oe(e,n.callee,"FunctionNotFound");if("global"===t.scope)switch(t.name){case"iif":return Pe(e,n);case"when":return Ke(e,n);case"defaultvalue":return We(e,n);case"decode":return Ze(e,n)}}return ze(e,ce(e,n.callee),n.arguments)}function ze(e,n,t){const r=`lang.callfunc(${n}, [${t.map(n=>ce(e,n)).join(", ")}], runtimeCtx)`;return e.isAsync?`(yield ${r})`:r}function Pe(e,n){try{if(3!==n.arguments.length)throw new d(null,"WrongNumberOfParameters",n);const t=e.symbols.nextTempVarId();return`${e.isAsync?"(yield (function() { \n return lang.__awaiter(this, void 0, void 0, function* () {":"function() {"}\n var ${t} = ${ce(e,n.arguments[0])};\n\n if (${t} === true) {\n return ${ce(e,n.arguments[1])};\n }\n else if (${t} === false) {\n return ${ce(e,n.arguments[2])};\n }\n else {\n lang.error('ExecutionErrorCodes.BooleanConditionRequired');\n }\n ${e.isAsync?"})}()))":"}()"}`}catch(t){throw t}}function We(e,n){try{if(n.arguments.length<2||n.arguments.length>3)throw new d(null,"WrongNumberOfParameters",n);const t=e.symbols.nextTempVarId(),r=e.symbols.nextTempVarId();return 3===n.arguments.length?`${e.isAsync?"(yield (function() { \n return lang.__awaiter(this, void 0, void 0, function* () {":"function() {"}\n var ${t} = ${ce(e,n.arguments[0])};\n var ${r} = ${ce(e,n.arguments[1])};\n ${t} = lang.getNestedOptionalValue(${t}, ${r});\n return ${t} != null && ${t} !== "" ? ${t} : ${ce(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} = ${ce(e,n.arguments[0])};\n if (${t} === null) {\n return ${ce(e,n.arguments[1])};\n }\n if (${t} === "") {\n return ${ce(e,n.arguments[1])};\n }\n if (${t} === undefined) {\n return ${ce(e,n.arguments[1])};\n }\n return ${t};\n ${e.isAsync?"})}()))":"}()"}`}catch(t){throw t}}function Ke(e,n){try{if(n.arguments.length<3)throw new d(null,"WrongNumberOfParameters",n);if(n.arguments.length%2==0)throw new d(null,"WrongNumberOfParameters",n);const t=e.symbols.nextTempVarId();let r="var ";for(let o=0;o<n.arguments.length-1;o+=2)r+=`${t} = lang.mustBoolean(${ce(e,n.arguments[o])}, runtimeCtx);\n if (${t} === true ) {\n return ${ce(e,n.arguments[o+1])}\n }\n`;return`${e.isAsync?"(yield (function() { \n return lang.__awaiter(this, void 0, void 0, function* () {":"function() {"}\n ${r}\n return ${ce(e,n.arguments[n.arguments.length-1])}\n ${e.isAsync?"})}()))":"}()"}`}catch(t){throw t}}function Ze(e,n){try{if(n.arguments.length<2)throw new d(null,"WrongNumberOfParameters",n);if(2===n.arguments.length)return`(${ce(e,n.arguments[1])})`;if((n.arguments.length-1)%2==0)throw new d(null,"WrongNumberOfParameters",n);const t=e.symbols.nextTempVarId();let r;if(n.arguments.every((e,n)=>n%2==0||"Literal"===e.type)){r=`switch (${t}) {`;for(let t=1;t<n.arguments.length-1;t+=2){const o=n.arguments[t],l=n.arguments[t+1];null==o.value?r+="\n case null:\n case lc.voidOperation:\n ":r+=`\n case ${JSON.stringify(o.value)}:\n `,r+=`return ${ce(e,l)}`}r+="}"}else{const o=e.symbols.nextTempVarId();r="var ";for(let l=1;l<n.arguments.length-1;l+=2){const a=n.arguments[l],s=n.arguments[l+1];r+=`${o} = ${ce(e,a)};\n if (lang.binary(${o}, ${t}, "==") === true ) {\n return ${ce(e,s)}\n }\n `}}return`${e.isAsync?"(yield (function() { \n return lang.__awaiter(this, void 0, void 0, function* () {":"function() {"}\n var ${t} = ${ce(e,n.arguments[0])};\n ${r}\n return ${ce(e,n.arguments[n.arguments.length-1])}\n ${e.isAsync?"})}()))":"}()"}`}catch(t){throw t}}function Je(e,n){try{return ie(e,n,(e,n)=>{throw new f(e,"Unrecognized",n)})}catch(t){throw t}}function Ye(e){const n=function(){this.textformatting=p.textFormatting()};n.prototype=Object.create(null),n.provided=new Set(["textformatting","infinity","nan","pi"]),n.prototype.infinity=Number.POSITIVE_INFINITY,n.prototype.nan=Number.NaN,n.prototype.pi=Math.PI;for(const[t,r]of Object.entries(e))n.prototype[t]=new y(r),n.provided.add(t);return n}function He(){const e=Object.create(null);L(e,ie),z(e,ie),R(e,ie,ae),G(e,ie),U(e,ie),q(e,ie),P(e,ie),e.iif=Je,e.decode=Je,e.when=Je,e.defaultvalue=Je;const n=Ye(e);D(e,ie);return{ScopeSync:Ye(e),ScopeAsync:n}}const{ScopeSync:Qe,ScopeAsync:Xe}=He();function en(e,n){const t={mode:n,compiled:!0,functions:Object.create(null),signatures:[],standardFunction:ie,standardFunctionAsync:ie,evaluateIdentifier:ae};for(const r of e)r.registerFunctions(t);if("sync"===n)for(const[r,o]of Object.entries(t.functions))Qe.prototype[r]=new y(o),Qe.provided.add(r);else for(const[r,o]of Object.entries(t.functions))Xe.prototype[r]=new y(o),Xe.provided.add(r);for(const r of t.signatures)_(r,n)}en([T],"sync"),en([T],"async"),en([V],"async");const nn=Symbol("uninitialized"),tn="lang.uninitialized";function rn(e){return`lang.requireInitialized(${e})`}const on={uninitialized:nn,requireInitialized(e){if(e===nn)throw new f(null,"InvalidIdentifier",null);return e},isNumber:e=>Q(e),isArray:e=>H(e),isImmutableArray:e=>C(e),isDictionaryLike:e=>B(e),isString:e=>X(e),isDictionary:e=>N(e),isGeometry:e=>E(e),getGeometryKeys:e=>m(e),getGeometryMember:(e,n,t)=>c(e,n,t,null),error(e){throw new f(null,e,null)},__awaiter(e,n,t,r){const o=r.apply(e,n||[]);let l=o.next();for(;!l.done&&!K(l.value);)l=o.next(l.value);return l.done?l.value:new Promise((e,n)=>{function t(r){for(;!r.done;){if(K(r.value))return void Promise.resolve(r.value).then(e=>{try{t(o.next(e))}catch(r){n(r)}},e=>{try{t(o.throw(e))}catch(r){n(r)}});try{r=o.next(r.value)}catch(l){return void n(l)}}e(r.value)}t(l)})},functionDepthchecker:(e,n)=>function(){if(n.depthCounter.depth++,n.localStack.push({}),n.depthCounter.depth>64)throw new f(null,"MaximumCallDepth",null);const t=e.apply(this,arguments);return K(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)},mustBoolean(e,n){if(!0===e||!1===e)return e;throw new f(n,"BooleanConditionRequired",null)},castString:e=>M(e),aCheck(e,n){if(x(e)){if("ArrayExpression"===n)throw new f(null,"NoFunctionInArray",null);if("ObjectExpression"===n)throw new f(null,"NoFunctionInDictionary",null);throw new f(null,"NoFunctionInTemplateLiteral",null)}return e===O?null:e},Dictionary:p,Feature:h,UserDefinedCompiledFunction:se,dictionary(e){const n=Object.create(null),t=new Map;for(let o=0;o<e.length;o+=2){if(x(e[o+1]))throw new f(null,"NoFunctionInDictionary",null);if(!1===X(e[o]))throw new f(null,"KeyMustBeString",null);let r=e[o].toString();const l=r.toLowerCase();t.has(l)?r=t.get(l):t.set(l,r),e[o+1]===O?n[r]=null:n[r]=e[o+1]}const r=new p(n);return r.immutable=!1,r},entry:(e,n)=>p.containerEntry(e,n),strCheck(e){if(!1===X(e))throw new f(null,"KeyMustBeString",null);return e},unary(e,n){if(ee(e)){if("!"===n)return!e;if("-"===n)return-1*F(e);if("+"===n)return 1*F(e);if("~"===n)return~F(e);throw new f(null,"UnsupportUnaryOperator",null)}if("-"===n)return-1*F(e);if("+"===n)return 1*F(e);if("~"===n)return~F(e);throw new f(null,"UnsupportUnaryOperator",null)},logicalCheck(e){if(!1===ee(e))throw new f(null,"LogicExpressionOrAnd",null);return e},logical(e,n,t){if(ee(e)&&ee(n))switch(t){case"||":return e||n;case"&&":return e&&n;default:throw new f(null,"LogicExpressionOrAnd",null)}throw new f(null,"LogicExpressionOrAnd",null)},binary(e,n,t){switch(t){case"|":case"<<":case">>":case">>>":case"^":case"&":return k(F(e),F(n),t);case"==":return A(e,n);case"!=":return!A(e,n);case"<":case">":case"<=":case">=":return j(e,n,t);case"+":return X(e)||X(n)?M(e)+M(n):F(e)+F(n);case"-":return F(e)-F(n);case"*":return F(e)*F(n);case"/":return F(e)/F(n);case"%":return F(e)%F(n);default:throw new f(null,"UnsupportedOperator",null)}},assign(e,n,t){switch(n){case"=":return e===O?null:e;case"/=":return F(t)/F(e);case"*=":return F(t)*F(e);case"-=":return F(t)-F(e);case"+=":return X(t)||X(e)?M(t)+M(e):F(t)+F(e);case"%=":return F(t)%F(e);default:throw new f(null,"UnsupportedOperator",null)}},update(e,n,t,r){const o=F(this.requireInitialized(e[n]));return e[n]="++"===t?o+1:o-1,!1===r?o:"++"===t?o+1:o-1},createFeature:(e,n,t)=>h.createFromGraphicLikeObject(e.geometry,e.attributes,n,t.timeZone),memberupdate(e,n,t,r){let o;if(H(e)){if(!Q(n))throw new f(null,"ArrayAccessMustBeNumber",null);if(n<0&&(n=e.length+n),n<0||n>=e.length)throw new f(null,"OutOfBounds",null);o=F(e[n]),e[n]="++"===t?o+1:o-1}else if(e instanceof p){if(!1===X(n))throw new f(null,"KeyAccessorMustBeString",null);if(!0!==e.hasField(n))throw new f(null,"FieldNotFound",null,{key:n});o=F(e.field(n)),e.setField(n,"++"===t?o+1:o-1)}else if(I(e)){if(!1===X(n))throw new f(null,"KeyAccessorMustBeString",null);if(!0!==e.hasField(n))throw new f(null,"FieldNotFound",null);o=F(e.field(n)),e.setField(n,"++"===t?o+1:o-1)}else{if(C(e))throw new f(null,"Immutable",null);if(!(e instanceof un))throw new f(null,"InvalidIdentifier",null);if(!1===X(n))throw new f(null,"ModuleAccessorMustBeString",null);if(!0!==e.hasGlobal(n))throw new f(null,"ModuleExportNotFound",null);o=F(e.global(n)),e.setGlobal(n,"++"===t?o+1:o-1)}return!1===r?o:"++"===t?o+1:o-1},assignmember(e,n,t,r){if(H(e)){if(!Q(n))throw new f(null,"ArrayAccessMustBeNumber",null);if(n<0&&(n=e.length+n),n<0||n>e.length)throw new f(null,"OutOfBounds",null);if(n===e.length){if("="!==t)throw new f(null,"OutOfBounds",null);e[n]=this.assign(r,t,e[n])}else e[n]=this.assign(r,t,e[n])}else if(e instanceof p){if(!1===X(n))throw new f(null,"KeyAccessorMustBeString",null);if(!0===e.hasField(n))e.setField(n,this.assign(r,t,e.field(n)));else{if("="!==t)throw new f(null,"FieldNotFound",null);e.setField(n,this.assign(r,t,null))}}else if(I(e)){if(!1===X(n))throw new f(null,"KeyAccessorMustBeString",null);if(!0===e.hasField(n))e.setField(n,this.assign(r,t,e.field(n)));else{if("="!==t)throw new f(null,"FieldNotFound",null);e.setField(n,this.assign(r,t,null))}}else{if(C(e))throw new f(null,"Immutable",null);if(!(e instanceof un))throw new f(null,"InvalidIdentifier",null);if(!1===X(n))throw new f(null,"ModuleAccessorMustBeString",null);if(!e.hasGlobal(n))throw new f(null,"ModuleExportNotFound",null);e.setGlobal(n,this.assign(r,t,e.global(n)))}},member:(e,n)=>u(e,n),tryMember:(e,n)=>i(e,n),callfunc(e,n,t){if(x(e))return e.call(t,{arguments:n,preparsed:!0});throw new f(null,"CallNonFunction",null)},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},getNestedOptionalValue:(e,n)=>s(e,n)};function ln(e){console.log(e)}function an(t,o,l=!1){let a=null;t.usesModules&&(a=new r(null,t.loadedModules));const s=Object.create(null),i=new Set(Object.keys(o?.vars||{}).map(n=>e(n))),u=new Set(Object.keys(o?.customfunctions||{}).map(n=>e(n))),c=ue(t,l?Xe.provided:Qe.provided,new Set([...i,...u]),l,a,s);let m;m=l?["var runtimeCtx = this.prepare(context, true);","var lc = this.lc;","var lang = this.lang;","var gscope = runtimeCtx.globalScope;","return lang.__awaiter(this, void 0, void 0, function* () {"," function mainBody() {"," return lang.__awaiter(this, void 0, void 0, function* () {",` ${c.body}`," });"," }"," return this.postProcess(yield mainBody());","});"].join("\n"):["var runtimeCtx = this.prepare(context, false);","var lc = this.lc;","var lang = this.lang;","var gscope = runtimeCtx.globalScope;","function mainBody() {",` ${c.body}`,"}","return this.postProcess(mainBody());"].join("\n");const{symbolMetadata:p,moduleFactoryMap:d}=c,g={lc:v,lang:on,postProcess(e){if(S(e))return null;if(x(e))throw new f(null,"IllegalResult",null);return e},prepare(e,t){const r=e.spatialReference??J.WebMercator,o=t?new Xe:new Qe;for(const n of u)null!=e.customfunctions&&n in e.customfunctions?o[n]=e.customfunctions[n]??null:o[n]=nn;for(const n of i){if(null==e.vars||!(n in e.vars)){n in o||(o[n]=nn);continue}const t=e.vars[n]??null;Y(t)?o[n]=h.createFromGraphic(t,e.timeZone??null):o[n]=t}return{lrucache:e.lrucache,interceptor:e.interceptor,services:e.services,console:e.console??ln,abortSignal:e.abortSignal??n,timeZone:e.timeZone??null,spatialReference:r,track:e.track,globalScope:o,localStack:[],depthCounter:{depth:1},symbolMetadata:p,moduleFactory:s,moduleFactoryMap:d,moduleSingletons:Object.create(null)}}};return new Function("context",m).bind(g)}async function sn(){return en([await import("./functions/geomasync.js")],"async"),!0}class un extends t{constructor(e){super(),this.moduleContext=e}hasGlobal(n){const t=this.moduleContext.symbolMetadata.exports;return t.has(n)||t.has(e(n))}setGlobal(n,t){if(x(t))throw new f(null,"AssignModuleFunction",null);const r=this.moduleContext.symbolMetadata.globals.get(e(n));if(null==r)throw new f(null,"ModuleExportNotFound",null);this.moduleContext.globalScope[r]=t}global(n){const t=this.moduleContext.symbolMetadata.globals.get(e(n));if(null==t)throw new f(null,"ModuleExportNotFound",null);const r=this.moduleContext.globalScope,o=on.requireInitialized(r[t]);if(x(o)&&!(o instanceof b)){const e=new b;return e.fn=o,e.parameterEvaluator=ie,e.context=this.moduleContext,r[t]=e,e}return o}}function cn(e,t,o){const l=new r(null,e.loadedModules),a=ue(e,o?Xe.provided:Qe.provided,new Set,o,l,t);let s;s=o?["var runtimeCtx = this.prepare(context, true);","var lc = this.lc;","var lang = this.lang;","var gscope = runtimeCtx.globalScope;","return lang.__awaiter(this, void 0, void 0, function* () {"," function mainBody() {"," return lang.__awaiter(this, void 0, void 0, function* () {",` ${a.body}`," });"," }"," yield mainBody();"," return this.prepareModule(runtimeCtx);","});"].join("\n"):["var runtimeCtx = this.prepare(context, false);","var lc = this.lc;","var lang = this.lang;","var gscope = runtimeCtx.globalScope;","function mainBody() {",` ${a.body}`,"}","mainBody();","return this.prepareModule(runtimeCtx);"].join("\n");const{symbolMetadata:i,moduleFactoryMap:u}=a,c={lc:v,lang:on,prepareModule:e=>new un(e),prepare(e,r){const o=e.spatialReference??J.WebMercator,l=r?new Xe:new Qe;return{lrucache:e.lrucache,interceptor:e.interceptor,services:e.services,console:e.console??ln,abortSignal:e.abortSignal??n,timeZone:e.timeZone??null,spatialReference:o,track:null,globalScope:l,localStack:[],depthCounter:e.depthCounter,symbolMetadata:i,moduleFactory:t,moduleFactoryMap:u,moduleSingletons:e.moduleSingletons}}};return new Function("context",s).bind(c)}export{se as UserDefinedCompiledFunction,an as compileScript,sn as enableAsyncSupport,en as extend};
2
+ import{toSymbolId as e,neverAbortedSignal as n}from"./arcadeEnvironment.js";import{ArcadeModule as t}from"./ArcadeModule.js";import{ArcadeModuleLoader as r}from"./ArcadeModuleLoader.js";import{collectDeclaredGlobalNames as o,collectDeclaredLocalNames as l,flattenAccessChain as a}from"./compilerUtils.js";import{getNestedOptionalValue as s,tryGetMember as i,getMember as u,getGeometryMember as c,getGeometryKeys as m}from"./containerUtils.js";import p from"./Dictionary.js";import{ArcadeExecutionError as f,ArcadeCompilationError as d,ArcadeUncompilableError as g}from"./executionError.js";import{Feature as h}from"./Feature.js";import{NativeFunction as y,ArcadeFunction as w,ScopeMarshalledFunction as b,wrapModuleScopedResponse as $}from"./FunctionWrapper.js";import{p as v,q as S,i as x,k as I,j as C,r as F,s as M,v as O,u as j,w as k,x as A,h as E,n as N,y as B}from"../chunks/languageUtils.js";import{addFunctionDeclaration as _}from"./treeAnalysis.js";import{A as V}from"../chunks/aiServices.js";import{A as T}from"../chunks/array.js";import{registerFunctions as L}from"./functions/date.js";import{registerFunctions as R}from"./functions/feature.js";import{registerFunctions as U}from"./functions/geometry.js";import{registerFunctions as D}from"./functions/geomsync.js";import{registerFunctions as G}from"./functions/maths.js";import{registerFunctions as q}from"./functions/stats.js";import{registerFunctions as z}from"./functions/string.js";import{registerFunctions as P}from"./functions/track.js";import W from"../core/Logger.js";import{isPromiseLike as K}from"../core/promiseUtils.js";import{addMany as Z}from"../core/SetUtils.js";import J from"../geometry/SpatialReference.js";import{isGraphic as Y}from"../support/graphicInstanceUtils.js";import{isArray as H,isNumber as Q,isString as X,isBoolean as ee}from"../support/guards.js";const ne=()=>W.getLogger("esri.arcade.arcadeCompiler");class te{constructor(){this._symbolCounter=0,this.safeAccessTempVarId="_Tsat"}nextVarId(){return this._symbolCounter+=1,`_T${this._symbolCounter}`}nextTempVarId(){return this._symbolCounter+=1,`_Tvar${this._symbolCounter}`}nextLocalsSymbolMapId(){return this._symbolCounter+=1,`_Locals${this._symbolCounter}`}}function re(e,n){const t=e.localScope?.get(n);if(null!=t)return{scope:"local",name:n,var:t};const r=e.globalScope.get(n);return null!=r?{scope:"global",name:n,var:r}:e.standardGlobals.has(n)?{scope:"global",name:n,var:n}:null}function oe(n,t,r="InvalidIdentifier"){const o=re(n,e(t));if(null!=o)return o;throw new d(null,r,t)}function le(n,t,r){const o=re(n,e(t));if(null==o)throw ne().error(`Internal error: Symbol "${t.name}" not declared.`),new d(null,"NeverReach",t);if(null!=r&&o.scope!==r)throw ne().error(`Internal error: Expected to resolve "${t.name}" in the ${r} scope but is in the ${o.scope} scope.`),new d(null,"NeverReach",t);return o}function ae(n,t){const r=e(t),o=n.symbolMetadata;if(n.localStack.length>0){const e=n.localStack[n.localStack.length-1],t=o.locals.get(e._SymbolsMapId);if(null==t)return void ne().error(`Internal error: no reflection metadata for ${e._SymbolsMapId}`);const l=t.get(r);if(null!=l)return on.requireInitialized(e[l])}const l=o.globals.get(r);if(null!=l)return on.requireInitialized(n.globalScope[l]);if(o.standardGlobals.has(r))return on.requireInitialized(n.globalScope[r]);throw new f(null,"InvalidIdentifier",null)}class se extends w{constructor(e,n){super(),this.paramCount=n,this.fn=e}get debugName(){return null}createFunction(e){return(...n)=>{if(n.length!==this.paramCount)throw new f(e,"WrongNumberOfParameters",null);return this.fn(...n)}}call(e,n){return this.fn(...n.arguments)}marshalledCall(e,n,t,r){return r(e,n,(n,o,l)=>{l=l.map(n=>!x(n)||n instanceof b?n:$(n,e,r));const a=this.call(t,{arguments:l});return K(a)?a.then(e=>$(e,t,r)):a})}}function ie(e,n,t){try{return t(e,null,n.arguments)}catch(r){throw r}}function ue(e,n,t,r,l,a){const{globals:s,exports:i}=o(e),u=new Set(s.keys());Z(u,t);const c=new te,m=[],p=new Map;for(const o of u)if(t.has(o)||n.has(o))p.set(o,o);else{const e=c.nextVarId();p.set(o,e),m.push(`gscope[${JSON.stringify(e)}] = ${tn};`)}const f=new Map,d=Object.create(null),g={isAsync:r,symbols:c,standardGlobals:n,globalScope:p,exports:i,localScope:null,allLocalSymbolMetadata:f,moduleFactory:a,moduleFactoryMap:d,libraryResolver:l};return{body:[...m,`var ${c.safeAccessTempVarId};`,"var lastStatement = lc.voidOperation;",Ce(g,e),"return lastStatement;"].join("\n"),symbolMetadata:{standardGlobals:n,exports:i,globals:p,locals:f},moduleFactoryMap:d}}function ce(e,n){switch(n.type){case"AssignmentExpression":return ve(e,n);case"UpdateExpression":return be(e,n);case"TemplateLiteral":return Re(e,n);case"Identifier":return Ge(e,n);case"MemberExpression":return Ee(e,n);case"Literal":return null===n.value||void 0===n.value?"null":JSON.stringify(n.value);case"CallExpression":return qe(e,n);case"UnaryExpression":return Te(e,n);case"BinaryExpression":return Ue(e,n);case"LogicalExpression":return De(e,n);case"ArrayExpression":return Le(e,n);case"ObjectExpression":return pe(e,n);case"MemberAccessChainExpression":return Ve(e,n);case"SafeMemberExpression":throw ne().error("SafeMemberExpression outside of MemberAccessChainExpression"),new d(null,"Unrecognized",n);default:throw new d(null,"Unrecognized",n)}}function me(e,n){switch(n.type){case"EmptyStatement":return"lc.voidOperation";case"VariableDeclaration":return ke(e,n);case"BlockStatement":return Ce(e,n);case"FunctionDeclaration":return je(e,n);case"ImportDeclaration":return Me(e,n);case"ExportNamedDeclaration":return me(e,n.declaration);case"ReturnStatement":return Fe(e,n);case"IfStatement":return Ie(e,n);case"ExpressionStatement":return Se(e,n);case"BreakStatement":return"break";case"ContinueStatement":return"continue";case"ForStatement":return we(e,n);case"ForInStatement":return he(e,n);case"ForOfStatement":return ye(e,n);case"WhileStatement":return $e(e,n);default:throw new d(null,"Unrecognized",n)}}function pe(e,n){let t="lang.dictionary([";for(let r=0;r<n.properties.length;r++){const o=n.properties[r];let l;l="Identifier"===o.key.type?"'"+o.key.name+"'":ce(e,o.key);r>0&&(t+=","),t+="lang.strCheck("+l+",'ObjectExpression'),lang.aCheck("+ce(e,o.value)+", 'ObjectExpression')"}return t+="])",t}function fe(e,n,t,r,o=(e,n)=>`${e} = ${n}`){const l=e.symbols.nextTempVarId(),a=e.symbols.nextTempVarId();return[`var ${l} = ${t};`,`for (var ${a} = 0; ${a} < ${l}; ${a}++) {`,` ${o(n,a)}`,` ${me(e,r)}`,"}","lastStatement = lc.voidOperation;"].join("\n")}function de(e,n,t,r,o=e=>e){const l=e.symbols.nextTempVarId(),a=e.symbols.nextTempVarId();return[`var ${l} = ${t};`,`for (var ${a} of ${l}) {`,` ${n} = ${o(a)};`,` ${me(e,r)}`,"}","lastStatement = lc.voidOperation;"].join("\n")}function ge(e,n,t,r){const o=e.symbols.nextTempVarId(),l=e.symbols.nextTempVarId(),a=e.symbols.nextTempVarId(),s=e.symbols.nextTempVarId();return[`var ${o} = yield ${t}.queryAll(runtimeCtx.abortSignal);`,`var ${l} = { done: false, value: [] };`,`for (var ${a} = 0; ${a} < ${l}.value.length || ((${a} = 0), !(${l} = yield ${o}.next()).done); ${a}++) {`,` if (${l}.value.length === 0) continue;`,` var ${s} = ${l}.value[${a}];`,` ${n} = lang.createFeature(${s}, ${t}, runtimeCtx);`,` ${me(e,r)}`,"}"].join("\n")}function he(e,n){const t=e.symbols.nextTempVarId();let r,o,l="var "+t+" = "+ce(e,n.right)+";\n";switch("VariableDeclaration"===n.left.type?(r=le(e,n.left.declarations[0].id),l+=me(e,n.left)):r=oe(e,n.left),r.scope){case"local":o=`lscope['${r.var}']`;break;case"global":o=`gscope['${r.var}']`;break;default:throw r.scope,new d(null,"NeverReach",n.left)}return l+="if ("+t+"===null) { lastStatement = lc.voidOperation; }\n ",l+="else if (lc.isArray("+t+") || lc.isString("+t+")) {\n",l+=fe(e,o,`${t}.length`,n.body),l+="}\n",l+="else if (lc.isImmutableArray("+t+")) {\n",l+=fe(e,o,`${t}.length()`,n.body),l+="}\n",l+="else if (( "+t+" instanceof lang.Dictionary) || lc.isDictionaryLike("+t+")) {\n",l+=de(e,o,`${t}.keys()`,n.body),l+="}\n",e.isAsync&&(l+="else if (lc.isFeatureSet("+t+")) {\n",l+=ge(e,o,t,n.body),l+="}\n"),l+=`else if (lc.isGeometry(${t})) {\n`,l+=de(e,o,`lang.getGeometryKeys(${t})`,n.body),l+="}\n",l+="else { lastStatement = lc.voidOperation; } \n",l}function ye(e,n){const t=e.symbols.nextTempVarId();let r,o,l="var "+t+" = "+ce(e,n.right)+";\n";switch("VariableDeclaration"===n.left.type?(r=le(e,n.left.declarations[0].id),l+=me(e,n.left)):r=oe(e,n.left),r.scope){case"local":o=`lscope['${r.var}']`;break;case"global":o=`gscope['${r.var}']`;break;default:throw r.scope,new d(null,"NeverReach",n.left)}return l+="if ("+t+"===null) { lastStatement = lc.voidOperation; }\n ",l+="else if (lc.isArray("+t+") || lc.isString("+t+")) {\n",l+=fe(e,o,`${t}.length`,n.body,(e,n)=>[`if (${n} >= ${t}.length) {`," lang.error('OutOfBounds');","}",`${e} = ${t}[${n}];`].join("\n")),l+="}\n",l+="else if (lc.isImmutableArray("+t+")) {\n",l+=fe(e,o,`${t}.length()`,n.body,(e,n)=>`${e} = ${t}.get(${n});`),l+="}\n",l+="else if (( "+t+" instanceof lang.Dictionary) || lc.isDictionaryLike("+t+")) {\n",l+=de(e,o,`${t}.keys()`,n.body,e=>`lang.entry(${e}, ${t}.field(${e}))`),l+="}\n",e.isAsync&&(l+="else if (lc.isFeatureSet("+t+")) {\n",l+=ge(e,o,t,n.body),l+="}\n"),l+=`else if (lc.isGeometry(${t})) {\n`,l+=de(e,o,`lang.getGeometryKeys(${t})`,n.body,e=>`lang.entry(${e}, lang.getGeometryMember(${t}, ${e}, runtimeCtx))`),l+="}\n",l+="else { lastStatement = lc.voidOperation; } \n",l}function we(e,n){let t="lastStatement = lc.voidOperation; \n";null!==n.init&&("VariableDeclaration"===n.init.type?t+=me(e,n.init):t+=ce(e,n.init)+"; ");const r=e.symbols.nextTempVarId(),o=e.symbols.nextTempVarId();return t+="var "+r+" = true; ",t+="\n do { ",null!==n.update&&(t+=" if ("+r+"===false) {\n "+ce(e,n.update)+" \n}\n "+r+"=false; \n"),null!==n.test&&(t+="var "+o+" = "+ce(e,n.test)+"; ",t+="if ("+o+"===false) { break; } else if ("+o+"!==true) { lang.error('BooleanConditionRequired'); }\n"),t+=me(e,n.body),null!==n.update&&(t+="\n "+ce(e,n.update)),t+="\n"+r+" = true; \n} while(true); lastStatement = lc.voidOperation; ",t}function be(e,n){if("CallExpression"===n.argument.type)throw new d(null,"NeverReach",n);let t;if("MemberExpression"===n.argument.type){const r=ce(e,n.argument.object);return t=!0===n.argument.computed?ce(e,n.argument.property):"'"+n.argument.property.name+"'","lang.memberupdate("+r+","+t+",'"+n.operator+"',"+n.prefix+")"}const r=oe(e,n.argument);switch(Oe(r),r.scope){case"local":return`lang.update(lscope, '${r.var}', '${n.operator}', ${n.prefix})`;case"global":return`lang.update(gscope, '${r.var}', '${n.operator}', ${n.prefix})`;default:throw r.scope,new d(null,"NeverReach",n.argument)}}function $e(e,n){let t="lastStatement = lc.voidOperation; \n";const r=e.symbols.nextTempVarId();return t+=`\n var ${r} = true;\n do {\n ${r} = ${ce(e,n.test)};\n if (${r}==false) {\n break;\n }\n if (${r}!==true) {\n lang.error('BooleanConditionRequired');\n }\n ${me(e,n.body)}\n }\n while (${r} !== false);\n lastStatement = lc.voidOperation;\n `,t}function ve(e,n){const t=ce(e,n.right);if("MemberExpression"===n.left.type){let r;const o=ce(e,n.left.object);return r=!0===n.left.computed?ce(e,n.left.property):"'"+n.left.property.name+"'","lang.assignmember("+o+","+r+",'"+n.operator+"',"+t+")"}const r=oe(e,n.left);switch(Oe(r),r.scope){case"local":return`lscope['${r.var}']=lang.assign(${t},'${n.operator}', ${"="===n.operator?"null":rn(`lscope['${r.var}']`)})`;case"global":return`gscope['${r.var}']=lang.assign(${t},'${n.operator}', ${"="===n.operator?"null":rn(`gscope['${r.var}']`)})`;default:throw r.scope,new d(null,"NeverReach",n.left)}}function Se(e,n){return"AssignmentExpression"===n.expression.type?"lastStatement = lc.voidOperation; "+ce(e,n.expression)+"; \n ":"lastStatement = "+ce(e,n.expression)+"; "}function xe(e,n){return"BlockStatement"===n.type?me(e,n):"ReturnStatement"===n.type||"BreakStatement"===n.type||"ContinueStatement"===n.type?me(e,n)+"; ":"ExpressionStatement"===n.type?me(e,n):me(e,n)+"; "}function Ie(e,n){return`if (lang.mustBoolean(${ce(e,n.test)}, runtimeCtx) === true) {\n ${xe(e,n.consequent)}\n } `+(null!==n.alternate?"IfStatement"===n.alternate.type?" else "+Ie(e,n.alternate):` else {\n ${xe(e,n.alternate)}\n }\n`:" else {\n lastStatement = lc.voidOperation;\n }\n")}function Ce(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+=me(e,n.body[r])+"; \n":t+=me(e,n.body[r])+" \n");return t}function Fe(e,n){if(null===n.argument)return"return lc.voidOperation";return"return "+ce(e,n.argument)}function Me(e,n){const t=le(e,n.specifiers[0].local,"global"),r=e.libraryResolver?.loadLibrary(t.name),o=e.symbols.nextVarId();void 0===e.moduleFactory[r.uri]&&(e.moduleFactory[r.uri]=cn(r.syntax,e.moduleFactory,e.isAsync)),e.moduleFactoryMap[o]=r.uri;let l="";return l=e.isAsync?"(yield lang.loadModule('"+o+"', runtimeCtx) ); ":"lang.loadModule('"+o+"', runtimeCtx); ",Oe(t),`gscope['${t.var}']=${l}`}function Oe(e){if("global"===e.scope)switch(e.name){case"iif":case"when":case"defaultvalue":case"decode":throw new g}}function je(n,t){const r=new Set(t.params.map(n=>e(n))),o=new Set(l(t).keys());Z(o,r);const a=n.symbols,s=new Map;for(const e of o)s.set(e,a.nextVarId());const i=a.nextLocalsSymbolMapId();n.allLocalSymbolMetadata.set(i,s);const u={...n,localScope:s},c=[`lscope._SymbolsMapId = ${JSON.stringify(i)};`];for(let e=0;e<t.params.length;e++){const n=le(u,t.params[e],"local");Oe(n),c.push(`lscope['${n.var}'] = arguments[${e}];`)}for(const[e,l]of s)r.has(e)||c.push(`lscope['${l}'] = ${tn};`);const m=Ce(u,t.body),p=!0===n.isAsync?["return lang.__awaiter(this, void 0, void 0, function* () {",` ${m}`," return lastStatement;","});"]:[m,"return lastStatement;"],f=["new lang.UserDefinedCompiledFunction("," lang.functionDepthchecker("," function() {"," var lastStatement = lc.voidOperation;"," var lscope = runtimeCtx.localStack[runtimeCtx.localStack.length-1];",...c,...p," },"," runtimeCtx,"," ),",` ${t.params.length},`,")"].join("\n"),d=le(n,t.id,"global");return Oe(d),`gscope['${d.var}']=${f}; lastStatement = lc.voidOperation;`}function ke(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,n){const t=null===n.init?"null":ce(e,n.init),r=le(e,n.id);switch(Oe(r),r.scope){case"local":return`lscope['${r.var}']=${t};`;case"global":return`gscope['${r.var}']=${t};`;default:throw r.scope,new d(null,"NeverReach",n.id)}}function Ee(e,n){return Ne(e,ce(e,n.object),n)}function Ne(e,n,t){return`lang.member(${n}, ${t.computed?ce(e,t.property):`'${t.property.name}'`})`}function Be(e,n,t){for(const r of t)switch(r.type){case"MemberExpression":n=Ne(e,n,r);break;case"CallExpression":n=ze(e,n,r.arguments);break;default:throw new d(null,"Unrecognized",r)}return n}function _e(e,n,t){return`lang.tryMember(${n}, ${t.computed?ce(e,t.property):`'${t.property.name}'`})`}function Ve(e,n){const t=a(n);let r="",o=ce(e,t.root);for(const l of t.sections)r+=`(${e.symbols.safeAccessTempVarId} = ${_e(e,o,l.checked)}) == null ? null : `,o=Be(e,e.symbols.safeAccessTempVarId,l.unchecked);return`(${r}${o})`}function Te(e,n){try{return"lang.unary("+ce(e,n.argument)+",'"+n.operator+"')"}catch(t){throw t}}function Le(e,n){try{const t=[];for(let r=0;r<n.elements.length;r++)"Literal"===n.elements[r].type?t.push(ce(e,n.elements[r])):t.push("lang.aCheck("+ce(e,n.elements[r])+",'ArrayExpression')");return"["+t.join(",")+"]"}catch(t){throw t}}function Re(e,n){try{const t=[];let r=0;for(const o of n.quasis)t.push(o.value?JSON.stringify(o.value.cooked):JSON.stringify("")),!1===o.tail&&(t.push(n.expressions[r]?"lang.castString(lang.aCheck("+ce(e,n.expressions[r])+", 'TemplateLiteral'))":""),r++);return"(["+t.join(",")+"]).join('')"}catch(t){throw t}}function Ue(e,n){try{return"lang.binary("+ce(e,n.left)+","+ce(e,n.right)+",'"+n.operator+"')"}catch(t){throw t}}function De(e,n){try{if("AssignmentExpression"===n.left.type||"UpdateExpression"===n.left.type)throw new d(null,"LogicalExpressionOnlyBoolean",n);if("AssignmentExpression"===n.right.type||"UpdateExpression"===n.right.type)throw new d(null,"LogicalExpressionOnlyBoolean",n);if("&&"===n.operator||"||"===n.operator)return"(lang.logicalCheck("+ce(e,n.left)+") "+n.operator+" lang.logicalCheck("+ce(e,n.right)+"))";throw new d(null,"LogicExpressionOrAnd",null)}catch(t){throw t}}function Ge(e,n){const t=oe(e,n);switch(Oe(t),t.scope){case"local":return rn(`lscope['${t.var}']`);case"global":return rn(`gscope['${t.var}']`);default:throw t.scope,new d(null,"NeverReach",n)}}function qe(e,n){if("Identifier"===n.callee.type){const t=oe(e,n.callee,"FunctionNotFound");if("global"===t.scope)switch(t.name){case"iif":return Pe(e,n);case"when":return Ke(e,n);case"defaultvalue":return We(e,n);case"decode":return Ze(e,n)}}return ze(e,ce(e,n.callee),n.arguments)}function ze(e,n,t){const r=`lang.callfunc(${n}, [${t.map(n=>ce(e,n)).join(", ")}], runtimeCtx)`;return e.isAsync?`(yield ${r})`:r}function Pe(e,n){try{if(3!==n.arguments.length)throw new d(null,"WrongNumberOfParameters",n);const t=e.symbols.nextTempVarId();return`${e.isAsync?"(yield (function() { \n return lang.__awaiter(this, void 0, void 0, function* () {":"function() {"}\n var ${t} = ${ce(e,n.arguments[0])};\n\n if (${t} === true) {\n return ${ce(e,n.arguments[1])};\n }\n else if (${t} === false) {\n return ${ce(e,n.arguments[2])};\n }\n else {\n lang.error('ExecutionErrorCodes.BooleanConditionRequired');\n }\n ${e.isAsync?"})}()))":"}()"}`}catch(t){throw t}}function We(e,n){try{if(n.arguments.length<2||n.arguments.length>3)throw new d(null,"WrongNumberOfParameters",n);const t=e.symbols.nextTempVarId(),r=e.symbols.nextTempVarId();return 3===n.arguments.length?`${e.isAsync?"(yield (function() { \n return lang.__awaiter(this, void 0, void 0, function* () {":"function() {"}\n var ${t} = ${ce(e,n.arguments[0])};\n var ${r} = ${ce(e,n.arguments[1])};\n ${t} = lang.getNestedOptionalValue(${t}, ${r});\n return ${t} != null && ${t} !== "" ? ${t} : ${ce(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} = ${ce(e,n.arguments[0])};\n if (${t} === null) {\n return ${ce(e,n.arguments[1])};\n }\n if (${t} === "") {\n return ${ce(e,n.arguments[1])};\n }\n if (${t} === undefined) {\n return ${ce(e,n.arguments[1])};\n }\n return ${t};\n ${e.isAsync?"})}()))":"}()"}`}catch(t){throw t}}function Ke(e,n){try{if(n.arguments.length<3)throw new d(null,"WrongNumberOfParameters",n);if(n.arguments.length%2==0)throw new d(null,"WrongNumberOfParameters",n);const t=e.symbols.nextTempVarId();let r="var ";for(let o=0;o<n.arguments.length-1;o+=2)r+=`${t} = lang.mustBoolean(${ce(e,n.arguments[o])}, runtimeCtx);\n if (${t} === true ) {\n return ${ce(e,n.arguments[o+1])}\n }\n`;return`${e.isAsync?"(yield (function() { \n return lang.__awaiter(this, void 0, void 0, function* () {":"function() {"}\n ${r}\n return ${ce(e,n.arguments[n.arguments.length-1])}\n ${e.isAsync?"})}()))":"}()"}`}catch(t){throw t}}function Ze(e,n){try{if(n.arguments.length<2)throw new d(null,"WrongNumberOfParameters",n);if(2===n.arguments.length)return`(${ce(e,n.arguments[1])})`;if((n.arguments.length-1)%2==0)throw new d(null,"WrongNumberOfParameters",n);const t=e.symbols.nextTempVarId();let r;if(n.arguments.every((e,n)=>n%2==0||"Literal"===e.type)){r=`switch (${t}) {`;for(let t=1;t<n.arguments.length-1;t+=2){const o=n.arguments[t],l=n.arguments[t+1];null==o.value?r+="\n case null:\n case lc.voidOperation:\n ":r+=`\n case ${JSON.stringify(o.value)}:\n `,r+=`return ${ce(e,l)}`}r+="}"}else{const o=e.symbols.nextTempVarId();r="var ";for(let l=1;l<n.arguments.length-1;l+=2){const a=n.arguments[l],s=n.arguments[l+1];r+=`${o} = ${ce(e,a)};\n if (lang.binary(${o}, ${t}, "==") === true ) {\n return ${ce(e,s)}\n }\n `}}return`${e.isAsync?"(yield (function() { \n return lang.__awaiter(this, void 0, void 0, function* () {":"function() {"}\n var ${t} = ${ce(e,n.arguments[0])};\n ${r}\n return ${ce(e,n.arguments[n.arguments.length-1])}\n ${e.isAsync?"})}()))":"}()"}`}catch(t){throw t}}function Je(e,n){try{return ie(e,n,(e,n)=>{throw new f(e,"Unrecognized",n)})}catch(t){throw t}}function Ye(e){const n=function(){this.textformatting=p.textFormatting()};n.prototype=Object.create(null),n.provided=new Set(["textformatting","infinity","nan","pi"]),n.prototype.infinity=Number.POSITIVE_INFINITY,n.prototype.nan=Number.NaN,n.prototype.pi=Math.PI;for(const[t,r]of Object.entries(e))n.prototype[t]=new y(r),n.provided.add(t);return n}function He(){const e=Object.create(null);L(e,ie),z(e,ie),R(e,ie,ae),G(e,ie),U(e,ie),q(e,ie),P(e,ie),e.iif=Je,e.decode=Je,e.when=Je,e.defaultvalue=Je;const n=Ye(e);D(e,ie);return{ScopeSync:Ye(e),ScopeAsync:n}}const{ScopeSync:Qe,ScopeAsync:Xe}=He();function en(e,n){const t={mode:n,compiled:!0,functions:Object.create(null),signatures:[],standardFunction:ie,standardFunctionAsync:ie,evaluateIdentifier:ae};for(const r of e)r.registerFunctions(t);if("sync"===n)for(const[r,o]of Object.entries(t.functions))Qe.prototype[r]=new y(o),Qe.provided.add(r);else for(const[r,o]of Object.entries(t.functions))Xe.prototype[r]=new y(o),Xe.provided.add(r);for(const r of t.signatures)_(r,n)}en([T],"sync"),en([T],"async"),en([V],"async");const nn=Symbol("uninitialized"),tn="lang.uninitialized";function rn(e){return`lang.requireInitialized(${e})`}const on={uninitialized:nn,requireInitialized(e){if(e===nn)throw new f(null,"InvalidIdentifier",null);return e},isNumber:e=>Q(e),isArray:e=>H(e),isImmutableArray:e=>C(e),isDictionaryLike:e=>B(e),isString:e=>X(e),isDictionary:e=>N(e),isGeometry:e=>E(e),getGeometryKeys:e=>m(e),getGeometryMember:(e,n,t)=>c(e,n,t,null),error(e){throw new f(null,e,null)},__awaiter(e,n,t,r){const o=r.apply(e,n||[]);let l=o.next();for(;!l.done&&!K(l.value);)l=o.next(l.value);return l.done?l.value:new Promise((e,n)=>{function t(r){for(;!r.done;){if(K(r.value))return void Promise.resolve(r.value).then(e=>{try{t(o.next(e))}catch(r){n(r)}},e=>{try{t(o.throw(e))}catch(r){n(r)}});try{r=o.next(r.value)}catch(l){return void n(l)}}e(r.value)}t(l)})},functionDepthchecker:(e,n)=>function(){if(n.depthCounter.depth++,n.localStack.push({}),n.depthCounter.depth>64)throw new f(null,"MaximumCallDepth",null);const t=e.apply(this,arguments);return K(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)},mustBoolean(e,n){if(!0===e||!1===e)return e;throw new f(n,"BooleanConditionRequired",null)},castString:e=>M(e),aCheck(e,n){if(x(e)){if("ArrayExpression"===n)throw new f(null,"NoFunctionInArray",null);if("ObjectExpression"===n)throw new f(null,"NoFunctionInDictionary",null);throw new f(null,"NoFunctionInTemplateLiteral",null)}return e===O?null:e},Dictionary:p,Feature:h,UserDefinedCompiledFunction:se,dictionary(e){const n=Object.create(null),t=new Map;for(let o=0;o<e.length;o+=2){if(x(e[o+1]))throw new f(null,"NoFunctionInDictionary",null);if(!1===X(e[o]))throw new f(null,"KeyMustBeString",null);let r=e[o].toString();const l=r.toLowerCase();t.has(l)?r=t.get(l):t.set(l,r),e[o+1]===O?n[r]=null:n[r]=e[o+1]}const r=new p(n);return r.immutable=!1,r},entry:(e,n)=>p.containerEntry(e,n),strCheck(e){if(!1===X(e))throw new f(null,"KeyMustBeString",null);return e},unary(e,n){if(ee(e)){if("!"===n)return!e;if("-"===n)return-1*F(e);if("+"===n)return 1*F(e);if("~"===n)return~F(e);throw new f(null,"UnsupportUnaryOperator",null)}if("-"===n)return-1*F(e);if("+"===n)return 1*F(e);if("~"===n)return~F(e);throw new f(null,"UnsupportUnaryOperator",null)},logicalCheck(e){if(!1===ee(e))throw new f(null,"LogicExpressionOrAnd",null);return e},logical(e,n,t){if(ee(e)&&ee(n))switch(t){case"||":return e||n;case"&&":return e&&n;default:throw new f(null,"LogicExpressionOrAnd",null)}throw new f(null,"LogicExpressionOrAnd",null)},binary(e,n,t){switch(t){case"|":case"<<":case">>":case">>>":case"^":case"&":return A(F(e),F(n),t);case"==":return k(e,n);case"!=":return!k(e,n);case"<":case">":case"<=":case">=":return j(e,n,t);case"+":return X(e)||X(n)?M(e)+M(n):F(e)+F(n);case"-":return F(e)-F(n);case"*":return F(e)*F(n);case"/":return F(e)/F(n);case"%":return F(e)%F(n);default:throw new f(null,"UnsupportedOperator",null)}},assign(e,n,t){switch(n){case"=":return e===O?null:e;case"/=":return F(t)/F(e);case"*=":return F(t)*F(e);case"-=":return F(t)-F(e);case"+=":return X(t)||X(e)?M(t)+M(e):F(t)+F(e);case"%=":return F(t)%F(e);default:throw new f(null,"UnsupportedOperator",null)}},update(e,n,t,r){const o=F(this.requireInitialized(e[n]));return e[n]="++"===t?o+1:o-1,!1===r?o:"++"===t?o+1:o-1},createFeature:(e,n,t)=>h.createFromGraphicLikeObject(e.geometry,e.attributes,n,t.timeZone),memberupdate(e,n,t,r){let o;if(H(e)){if(!Q(n))throw new f(null,"ArrayAccessMustBeNumber",null);if(n<0&&(n=e.length+n),n<0||n>=e.length)throw new f(null,"OutOfBounds",null);o=F(e[n]),e[n]="++"===t?o+1:o-1}else if(e instanceof p){if(!1===X(n))throw new f(null,"KeyAccessorMustBeString",null);if(!0!==e.hasField(n))throw new f(null,"FieldNotFound",null,{key:n});o=F(e.field(n)),e.setField(n,"++"===t?o+1:o-1)}else if(I(e)){if(!1===X(n))throw new f(null,"KeyAccessorMustBeString",null);if(!0!==e.hasField(n))throw new f(null,"FieldNotFound",null);o=F(e.field(n)),e.setField(n,"++"===t?o+1:o-1)}else{if(C(e))throw new f(null,"Immutable",null);if(!(e instanceof un))throw new f(null,"InvalidIdentifier",null);if(!1===X(n))throw new f(null,"ModuleAccessorMustBeString",null);if(!0!==e.hasGlobal(n))throw new f(null,"ModuleExportNotFound",null);o=F(e.global(n)),e.setGlobal(n,"++"===t?o+1:o-1)}return!1===r?o:"++"===t?o+1:o-1},assignmember(e,n,t,r){if(H(e)){if(!Q(n))throw new f(null,"ArrayAccessMustBeNumber",null);if(n<0&&(n=e.length+n),n<0||n>e.length)throw new f(null,"OutOfBounds",null);if(n===e.length){if("="!==t)throw new f(null,"OutOfBounds",null);e[n]=this.assign(r,t,e[n])}else e[n]=this.assign(r,t,e[n])}else if(e instanceof p){if(!1===X(n))throw new f(null,"KeyAccessorMustBeString",null);if(!0===e.hasField(n))e.setField(n,this.assign(r,t,e.field(n)));else{if("="!==t)throw new f(null,"FieldNotFound",null);e.setField(n,this.assign(r,t,null))}}else if(I(e)){if(!1===X(n))throw new f(null,"KeyAccessorMustBeString",null);if(!0===e.hasField(n))e.setField(n,this.assign(r,t,e.field(n)));else{if("="!==t)throw new f(null,"FieldNotFound",null);e.setField(n,this.assign(r,t,null))}}else{if(C(e))throw new f(null,"Immutable",null);if(!(e instanceof un))throw new f(null,"InvalidIdentifier",null);if(!1===X(n))throw new f(null,"ModuleAccessorMustBeString",null);if(!e.hasGlobal(n))throw new f(null,"ModuleExportNotFound",null);e.setGlobal(n,this.assign(r,t,e.global(n)))}},member:(e,n)=>u(e,n),tryMember:(e,n)=>i(e,n),callfunc(e,n,t){if(x(e))return e.call(t,{arguments:n,preparsed:!0});throw new f(null,"CallNonFunction",null)},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},getNestedOptionalValue:(e,n)=>s(e,n)};function ln(e){console.log(e)}function an(t,o,l=!1){let a=null;t.usesModules&&(a=new r(null,t.loadedModules));const s=Object.create(null),i=new Set(Object.keys(o?.vars||{}).map(n=>e(n))),u=new Set(Object.keys(o?.customfunctions||{}).map(n=>e(n))),c=ue(t,l?Xe.provided:Qe.provided,new Set([...i,...u]),l,a,s);let m;m=l?["var runtimeCtx = this.prepare(context, true);","var lc = this.lc;","var lang = this.lang;","var gscope = runtimeCtx.globalScope;","return lang.__awaiter(this, void 0, void 0, function* () {"," function mainBody() {"," return lang.__awaiter(this, void 0, void 0, function* () {",` ${c.body}`," });"," }"," return this.postProcess(yield mainBody());","});"].join("\n"):["var runtimeCtx = this.prepare(context, false);","var lc = this.lc;","var lang = this.lang;","var gscope = runtimeCtx.globalScope;","function mainBody() {",` ${c.body}`,"}","return this.postProcess(mainBody());"].join("\n");const{symbolMetadata:p,moduleFactoryMap:d}=c,g={lc:v,lang:on,postProcess(e){if(S(e))return null;if(x(e))throw new f(null,"IllegalResult",null);return e},prepare(e,t){const r=e.spatialReference??J.WebMercator,o=t?new Xe:new Qe;for(const n of u)null!=e.customfunctions&&n in e.customfunctions?o[n]=e.customfunctions[n]??null:o[n]=nn;for(const n of i){if(null==e.vars||!(n in e.vars)){n in o||(o[n]=nn);continue}const t=e.vars[n]??null;Y(t)?o[n]=h.createFromGraphic(t,e.timeZone??null):o[n]=t}return{lrucache:e.lrucache,interceptor:e.interceptor,services:e.services,console:e.console??ln,abortSignal:e.abortSignal??n,timeZone:e.timeZone??null,spatialReference:r,track:e.track,globalScope:o,localStack:[],depthCounter:{depth:1},symbolMetadata:p,moduleFactory:s,moduleFactoryMap:d,moduleSingletons:Object.create(null)}}};return new Function("context",m).bind(g)}async function sn(){return en([await import("./functions/geomasync.js")],"async"),!0}class un extends t{constructor(e){super(),this.moduleContext=e}hasGlobal(n){const t=this.moduleContext.symbolMetadata.exports;return t.has(n)||t.has(e(n))}setGlobal(n,t){if(x(t))throw new f(null,"AssignModuleFunction",null);const r=this.moduleContext.symbolMetadata.globals.get(e(n));if(null==r)throw new f(null,"ModuleExportNotFound",null);this.moduleContext.globalScope[r]=t}global(n){const t=this.moduleContext.symbolMetadata.globals.get(e(n));if(null==t)throw new f(null,"ModuleExportNotFound",null);const r=this.moduleContext.globalScope,o=on.requireInitialized(r[t]);if(x(o)&&!(o instanceof b)){const e=new b;return e.fn=o,e.parameterEvaluator=ie,e.context=this.moduleContext,r[t]=e,e}return o}}function cn(e,t,o){const l=new r(null,e.loadedModules),a=ue(e,o?Xe.provided:Qe.provided,new Set,o,l,t);let s;s=o?["var runtimeCtx = this.prepare(context, true);","var lc = this.lc;","var lang = this.lang;","var gscope = runtimeCtx.globalScope;","return lang.__awaiter(this, void 0, void 0, function* () {"," function mainBody() {"," return lang.__awaiter(this, void 0, void 0, function* () {",` ${a.body}`," });"," }"," yield mainBody();"," return this.prepareModule(runtimeCtx);","});"].join("\n"):["var runtimeCtx = this.prepare(context, false);","var lc = this.lc;","var lang = this.lang;","var gscope = runtimeCtx.globalScope;","function mainBody() {",` ${a.body}`,"}","mainBody();","return this.prepareModule(runtimeCtx);"].join("\n");const{symbolMetadata:i,moduleFactoryMap:u}=a,c={lc:v,lang:on,prepareModule:e=>new un(e),prepare(e,r){const o=e.spatialReference??J.WebMercator,l=r?new Xe:new Qe;return{lrucache:e.lrucache,interceptor:e.interceptor,services:e.services,console:e.console??ln,abortSignal:e.abortSignal??n,timeZone:e.timeZone??null,spatialReference:o,track:null,globalScope:l,localStack:[],depthCounter:e.depthCounter,symbolMetadata:i,moduleFactory:t,moduleFactoryMap:u,moduleSingletons:e.moduleSingletons}}};return new Function("context",s).bind(c)}export{se as UserDefinedCompiledFunction,an as compileScript,sn as enableAsyncSupport,en as extend};