@arcgis/core 5.0.0-next.67 → 5.0.0-next.68
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/analysis/ElevationProfile/ElevationProfileLineViewOptions.d.ts +9 -6
- package/analysis/ElevationProfile/ElevationProfileLineViewOptions.js +1 -1
- package/arcade/arcadeAsyncRuntime.js +1 -1
- package/arcade/arcadeCompiler.js +1 -1
- package/arcade/arcadeRuntime.js +1 -1
- package/arcade/batchExec.js +1 -1
- package/arcade/compilerUtils.js +1 -1
- package/arcade/featureset/actions/SpatialFilter.js +1 -1
- package/arcade/geometry/unitConversion.js +1 -1
- package/arcade/treeAnalysis.js +1 -1
- package/arcade.js +1 -1
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/{251eb6e00f99a816d55c.js → 0326314947734b8e640a.js} +1 -1
- package/assets/esri/core/workers/chunks/04176244b0a3539c9681.js +1 -0
- package/assets/esri/core/workers/chunks/{942fad4ec96295672ce8.js → 10e474d664b20adcd917.js} +1 -1
- package/assets/esri/core/workers/chunks/12f9a55253084a910b2e.js +1 -0
- package/assets/esri/core/workers/chunks/{0629087bd5bb8048493e.js → 14dedd80fb797303f91f.js} +1 -1
- package/assets/esri/core/workers/chunks/{81d89107ff82604a3ea0.js → 1b445981fbc8373f4dd8.js} +1 -1
- package/assets/esri/core/workers/chunks/{6ba3c2b9f699d94d62b8.js → 1ec1a1997b5577619040.js} +1 -1
- package/assets/esri/core/workers/chunks/2085084324cd5a81783f.js +1 -0
- package/assets/esri/core/workers/chunks/2c2c0f66cffc521df736.js +1 -0
- package/assets/esri/core/workers/chunks/2dd347aa2a061d536e69.js +1 -0
- package/assets/esri/core/workers/chunks/2dfa7abf2d39fa5a3874.js +1 -0
- package/assets/esri/core/workers/chunks/322085d63719da6e443c.js +1 -0
- package/assets/esri/core/workers/chunks/{76086517591d0eb35156.js → 34a2e0462eb05986cdd1.js} +1 -1
- package/assets/esri/core/workers/chunks/{a6dcd13c792b6538ac50.js → 35593a9790818b689455.js} +1 -1
- package/assets/esri/core/workers/chunks/3a04153ca9d8e4f01185.js +1 -0
- package/assets/esri/core/workers/chunks/{4e9a8fce55cad841c731.js → 3b25f5d9c8f78bb6e011.js} +1 -1
- package/assets/esri/core/workers/chunks/3e7ea06b342e33bc48a5.js +1 -0
- package/assets/esri/core/workers/chunks/3ed317900f0edf635508.js +1 -0
- package/assets/esri/core/workers/chunks/401ce5cb98fa14c1a725.js +1 -0
- package/assets/esri/core/workers/chunks/4319b89cfa02894a8cae.js +1 -0
- package/assets/esri/core/workers/chunks/4a060147d25929680ec8.js +1 -0
- package/assets/esri/core/workers/chunks/{7bed14d9bcd7fc5e2eec.js → 4bcd74951477e8977ba1.js} +1 -1
- package/assets/esri/core/workers/chunks/4d0eaeb4cd6cd55e25fd.js +1 -0
- package/assets/esri/core/workers/chunks/{687d2b761dc5b5cf0c31.js → 4d4d71d24c1a9cb342b8.js} +1 -1
- package/assets/esri/core/workers/chunks/4fa230dc6e5e87b0dec1.js +1 -0
- package/assets/esri/core/workers/chunks/50f03813fba4b752ca9f.js +1 -0
- package/assets/esri/core/workers/chunks/{abc236e99b52be1c83b9.js → 52a14266fe239b95c5ce.js} +1 -1
- package/assets/esri/core/workers/chunks/53b5c77832df7df4d4e3.js +1 -0
- package/assets/esri/core/workers/chunks/{34178ace79e8dea3567d.js → 562cddaf63985e53ee6e.js} +1 -1
- package/assets/esri/core/workers/chunks/{6599cc702a46f81a5634.js → 5dd5be91038df8902dc4.js} +1 -1
- package/assets/esri/core/workers/chunks/{49a1b7f700b8a42de817.js → 60c7f896f2246a8aa6d7.js} +19 -19
- package/assets/esri/core/workers/chunks/60f363ee2add089e8f0b.js +1 -0
- package/assets/esri/core/workers/chunks/61801bb8c7be8fe77086.js +1 -0
- package/assets/esri/core/workers/chunks/68074a484d7f9bc713c0.js +1 -0
- package/assets/esri/core/workers/chunks/6acfa51b81e6f4255118.js +1 -0
- package/assets/esri/core/workers/chunks/{3fe7be535affae31de7e.js → 6b85a8776ec2beff63cb.js} +1 -1
- package/assets/esri/core/workers/chunks/6df484faf54e90a6cc77.js +1 -0
- package/assets/esri/core/workers/chunks/6ea6ad894ac634aa4391.js +1 -0
- package/assets/esri/core/workers/chunks/6f8098f9fe233833245a.js +1 -0
- package/assets/esri/core/workers/chunks/75fd2ef1236a9364ca7f.js +1 -0
- package/assets/esri/core/workers/chunks/7be9bbae23895d1cfa92.js +1 -0
- package/assets/esri/core/workers/chunks/7ea48661f1087d06aa41.js +1 -0
- package/assets/esri/core/workers/chunks/{47e5149765beee46f208.js → 7ee68f67f9cc48a328f0.js} +1 -1
- package/assets/esri/core/workers/chunks/866477acdf03b8a40bc9.js +1 -0
- package/assets/esri/core/workers/chunks/8e83c133b201b9b61e70.js +1 -0
- package/assets/esri/core/workers/chunks/9086a4933d3d3d9ffa72.js +1 -0
- package/assets/esri/core/workers/chunks/94174d40de39dbe7d0bf.js +1 -0
- package/assets/esri/core/workers/chunks/98f4b44eca91c42ca08e.js +1 -0
- package/assets/esri/core/workers/chunks/{dd99b77a7c0a052507bb.js → 9d88b4ba8e511da64583.js} +3 -3
- package/assets/esri/core/workers/chunks/a808be466812db51813d.js +1 -0
- package/assets/esri/core/workers/chunks/{6b4a24248182245167ca.js → a931515a2569713e743b.js} +1 -1
- package/assets/esri/core/workers/chunks/a95e28ade258b144cbb5.js +1 -0
- package/assets/esri/core/workers/chunks/adc68e2c6d2698a52bfe.js +1 -0
- package/assets/esri/core/workers/chunks/b2a1e5e9182b643909eb.js +316 -0
- package/assets/esri/core/workers/chunks/bb4574a87ca21e719f0d.js +1 -0
- package/assets/esri/core/workers/chunks/{07639f406b71bb49ffd6.js → bdbb5b33f0f49661bf6d.js} +1 -1
- package/assets/esri/core/workers/chunks/c042269586921e337be9.js +1 -0
- package/assets/esri/core/workers/chunks/c623918e289a09905cd1.js +1 -0
- package/assets/esri/core/workers/chunks/c7391b0b5a9c916a53f7.js +1 -0
- package/assets/esri/core/workers/chunks/{43d28c6509c21b8917a8.js → ca7523c14d81c470e92e.js} +1 -1
- package/assets/esri/core/workers/chunks/cd2708fb7636b3ace229.js +1 -0
- package/assets/esri/core/workers/chunks/d445e9399fe4ca3d2a50.js +1 -0
- package/assets/esri/core/workers/chunks/d7683a95775c9f401a7e.js +1 -0
- package/assets/esri/core/workers/chunks/{9d6945cda99d14af83ac.js → d7d9656b990ce8be2152.js} +1 -1
- package/assets/esri/core/workers/chunks/df4a0af329ce94a47a7b.js +1 -0
- package/assets/esri/core/workers/chunks/e10d6e511921394474ca.js +1 -0
- package/assets/esri/core/workers/chunks/e4b6aa8f67c2bd285020.js +1 -0
- package/assets/esri/core/workers/chunks/e6ca02f98f855024f74b.js +1 -0
- package/assets/esri/core/workers/chunks/{892157696e8f9e38c472.js → e6e837e43b9348050832.js} +1 -1
- package/assets/esri/core/workers/chunks/{d3325ed8d224e2350db7.js → e8a3ad00936f2ccaf362.js} +1 -1
- package/assets/esri/core/workers/chunks/ef7063ee790d2d64d4b2.js +1 -0
- package/assets/esri/core/workers/chunks/{b65fcfde62d49de1fa54.js → ef977be20a647aeded0a.js} +1 -1
- package/assets/esri/core/workers/chunks/efb631371b6bb3f043bb.js +1 -0
- package/assets/esri/core/workers/chunks/{0f5693541111fcae0c2f.js → f0914715e90e43466f8c.js} +1 -1
- package/assets/esri/core/workers/chunks/f95e488d2b86e320624f.js +1 -0
- package/assets/esri/core/workers/chunks/{bfc063d4431bfa162160.js → fd09f38fb4d99bf34988.js} +1 -1
- package/chunks/boundedPlane.js +1 -1
- package/config.js +1 -1
- package/core/accessorSupport/ensureType.js +1 -1
- package/core/compilerUtils.js +1 -1
- package/core/typedArrayUtil.js +1 -1
- package/core/units.js +1 -1
- package/core/workers/loaderConfig.js +1 -1
- package/editing/sharedTemplates/SharedTemplate.js +1 -1
- package/geometry/support/MeshTexture.js +1 -1
- package/geometry/support/aaBoundingRect.js +1 -1
- package/geometry/support/boundedPlane.js +1 -1
- package/geometry/support/heightModelInfoUtils.js +1 -1
- package/geometry/support/meshUtils/External.js +1 -1
- package/geometry/support/meshUtils/exporters/gltf/imageutils.js +1 -1
- package/geometry/support/meshUtils/loadExternal.js +1 -1
- package/geometry/support/rotate.js +1 -1
- package/interfaces.d.ts +0 -1
- package/kernel.js +1 -1
- package/layers/BuildingSceneLayer.d.ts +1 -1
- package/layers/buildingSublayers/BuildingGroupSublayer.d.ts +1 -1
- package/layers/graphics/controllers/FeatureTileController3D.js +1 -1
- package/layers/graphics/controllers/I3SOnDemandController.js +1 -1
- package/layers/graphics/dehydratedFeatureComparison.js +1 -1
- package/layers/graphics/dehydratedFeatures.js +1 -1
- package/layers/graphics/hydratedFeatures.js +1 -1
- package/layers/orientedImagery/transformations/rectifyMapPoint.js +1 -1
- package/layers/raster/functions/changeDetectionUtils.js +1 -1
- package/layers/raster/functions/customBandIndexUtils.js +1 -1
- package/layers/raster/functions/focalStatUtils.js +1 -1
- package/layers/raster/functions/pixelTransformUtils.js +1 -1
- package/layers/save/featureLayerUtils.js +1 -1
- package/layers/support/ElevationSampler.js +1 -1
- package/layers/support/SubtypeSublayer.js +1 -1
- package/layers/support/domains.js +1 -1
- package/networks/support/TopologyValidationJobInfo.js +1 -1
- package/networks/support/TraceJobInfo.js +1 -1
- package/package.json +2 -2
- package/renderers/support/RasterSymbolizer.js +1 -1
- package/renderers/support/rendererConversion.js +1 -1
- package/renderers/visualVariables/support/visualVariableUtils.js +1 -1
- package/rest/query/operations/pbfDehydratedFeatureSet.js +1 -1
- package/rest/support/JobInfo.js +1 -1
- package/rest/support/ServiceAreaParameters.js +1 -1
- package/smartMapping/heuristics/sizeRange.js +1 -1
- package/smartMapping/renderers/support/utils.js +1 -1
- package/smartMapping/statistics/support/statsWorker.js +1 -1
- package/smartMapping/statistics/support/utils.js +1 -1
- package/smartMapping/support/adapters/FeatureLayerAdapter.js +1 -1
- package/smartMapping/support/adapters/InMemoryLayerAdapter.js +1 -1
- package/smartMapping/support/adapters/support/histogramUtils.js +1 -1
- package/smartMapping/support/utils.js +1 -1
- package/support/revision.js +1 -1
- package/symbols/support/ElevationInfo.d.ts +2 -2
- package/symbols/support/IconSymbol3DLayerResource.d.ts +1 -1
- package/symbols/support/defaults.js +1 -1
- package/symbols/support/defaults3D.js +1 -1
- package/symbols/support/previewSymbol3D.js +1 -1
- package/symbols/support/symbolLayerUtils3D.js +1 -1
- package/symbols/support/symbolUtils.js +1 -1
- package/symbols/support/utils.js +1 -1
- package/views/2d/analysis/ElevationProfile/ElevationProfileLineVisualization2D.js +1 -1
- package/views/2d/analysis/ElevationProfileAnalysisView2D.d.ts +16 -11
- package/views/2d/analysis/ElevationProfileAnalysisView2D.js +1 -1
- package/views/2d/engine/imagery/RasterVFDisplayObject.js +1 -1
- package/views/2d/engine/vectorTiles/VectorTile.js +1 -1
- package/views/2d/engine/vectorTiles/shaders/sources/shaderRepository.js +1 -1
- package/views/2d/engine/webgl/TextureUploadManager.js +1 -1
- package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
- package/views/2d/input/handlers/DoubleTapDragZoom.js +1 -1
- package/views/2d/input/handlers/KeyZoom.js +1 -1
- package/views/2d/layers/FeatureLayerView2D.js +1 -1
- package/views/2d/layers/TileLayerView2D.js +1 -1
- package/views/3d/analysis/AreaMeasurement/support/utils.js +1 -1
- package/views/3d/analysis/Dimension/lengthDimensionConstraintUtils.js +1 -1
- package/views/3d/analysis/ElevationProfile/ElevationProfileLineVisualization3D.js +1 -1
- package/views/3d/analysis/ElevationProfileAnalysisView3D.d.ts +16 -11
- package/views/3d/analysis/ElevationProfileAnalysisView3D.js +1 -1
- package/views/3d/analysis/Slice/sliceToolUtils.js +1 -1
- package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementCutFillController.js +1 -1
- package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementTool.js +1 -1
- package/views/3d/analysis/VolumeMeasurementAnalysisView3D.js +1 -1
- package/views/3d/camera/constraintUtils/tilt.js +1 -1
- package/views/3d/environment/CloudsParameters.js +1 -1
- package/views/3d/environment/CloudsRenderer.js +1 -1
- package/views/3d/environment/SceneViewEnvironment.js +1 -1
- package/views/3d/glTF/internal/Resource.js +1 -1
- package/views/3d/glTF/internal/fillDefaults.js +1 -1
- package/views/3d/interactive/Manipulator3D.js +1 -1
- package/views/3d/interactive/SnappingVisualizer3D.js +1 -1
- package/views/3d/interactive/editingTools/isSupportedObjectUtils.js +1 -1
- package/views/3d/interactive/editingTools/move/isSupportedObject.js +1 -1
- package/views/3d/interactive/editingTools/transform/isSupportedGraphic.js +1 -1
- package/views/3d/interactive/visualElements/ExtendedLineVisualElement.js +1 -1
- package/views/3d/layers/I3SMeshView3D.js +1 -1
- package/views/3d/layers/graphics/Graphics3DCore.js +1 -1
- package/views/3d/layers/graphics/Graphics3DExtrudeSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DFeatureProcessor.js +1 -1
- package/views/3d/layers/graphics/Graphics3DMeshFillSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DPathSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/LabelInfo.js +1 -1
- package/views/3d/layers/graphics/defaultSymbolComplexity.js +1 -1
- package/views/3d/layers/graphics/lineUtils.js +1 -1
- package/views/3d/layers/graphics/pipeline/rendering/FeaturePipelineRenderManager.js +1 -1
- package/views/3d/layers/graphics/pipeline/symbolization/primitiveObjectUtils.js +1 -1
- package/views/3d/layers/graphics/primitiveObjectSymbolUtils.js +1 -1
- package/views/3d/layers/i3s/BuildingFilterUtil.js +1 -1
- package/views/3d/layers/i3s/I3SIntersectionHandler.js +1 -1
- package/views/3d/layers/i3s/I3SNode.js +1 -1
- package/views/3d/layers/i3s/I3SViewportQueries.js +1 -1
- package/views/3d/layers/i3s/PointCloudWorkerUtil.js +1 -1
- package/views/3d/layers/i3s/SphereCone.js +5 -0
- package/views/3d/layers/support/FastSymbolUpdates.js +1 -1
- package/views/3d/layers/support/edgeUtils.js +1 -1
- package/views/3d/layers/support/featureReference.js +1 -1
- package/views/3d/layers/support/featureTileQuery3D.js +1 -1
- package/views/3d/layers/support/patternUtils.js +1 -1
- package/views/3d/state/controllers/GamepadKeyboardController.js +1 -1
- package/views/3d/state/helpers/SceneIntersectionHelper.js +1 -1
- package/views/3d/support/FrustumExtentIntersection.js +1 -1
- package/views/3d/support/buffer/glUtil.js +1 -1
- package/views/3d/support/engineContent/sdfPrimitives.js +1 -1
- package/views/3d/support/viewpointUtils.js +1 -1
- package/views/3d/terrain/isTerrainSurfaceLayer.js +1 -1
- package/views/3d/webgl/RenderNode.js +1 -1
- package/views/3d/webgl-engine/collections/Component/Material/ComponentData.glsl.js +8 -8
- package/views/3d/webgl-engine/core/shaderLibrary/TextureBackedBufferFields.glsl.js +3 -3
- package/views/3d/webgl-engine/core/shaderLibrary/attributes/NormalAttribute.glsl.js +4 -4
- package/views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js +2 -2
- package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexNormal.glsl.js +2 -2
- package/views/3d/webgl-engine/core/shaderLibrary/shading/ComputeFragmentNormals.glsl.js +6 -6
- package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/shading/Normals.glsl.js +5 -5
- package/views/3d/webgl-engine/core/shaderLibrary/terrain/TileBackground.glsl.js +3 -3
- package/views/3d/webgl-engine/core/shaderLibrary/util/BlendModes.glsl.js +1 -1
- package/views/3d/webgl-engine/lib/ManagedTexture.js +1 -1
- package/views/3d/webgl-engine/materials/lineStippleUtils.js +1 -1
- package/views/3d/webgl-engine/shaders/CompositingTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/RibbonLineTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/sources/edgeRenderer/LineAmplitude.glsl.js +4 -4
- package/views/3d/webgl-engine/shaders/sources/edgeRenderer/LineOffset.glsl.js +8 -8
- package/views/VideoView.js +1 -1
- package/views/analysis/ElevationProfile/ElevationProfileController.js +1 -1
- package/views/analysis/ElevationProfile/ElevationProfileIndicatorPointVisualization.js +5 -0
- package/views/analysis/ElevationProfile/ElevationProfileLineComputation.js +1 -1
- package/views/analysis/ElevationProfile/ElevationProfileResult.js +1 -1
- package/views/analysis/ElevationProfile/ElevationProfileTool.js +1 -1
- package/views/analysis/ElevationProfile/constants.js +1 -1
- package/views/draw/Draw.js +1 -1
- package/views/input/ViewEvents.js +1 -1
- package/views/interactive/editGeometry/EditGeometry.js +1 -1
- package/views/interactive/snapping/featureSources/snappingCandidateElevationAlignment.js +1 -1
- package/views/interactive/snapping/featureSources/snappingCandidateElevationFilter.js +1 -1
- package/views/interactive/snapping/featureSources/symbologySnappingCandidates.js +1 -1
- package/views/support/PromiseQueue.js +1 -1
- package/views/support/screenUtils.js +1 -1
- package/views/support/screenshotUtils.js +1 -1
- package/views/webgl/FramebufferObject.js +1 -1
- package/views/webgl/Uniform.js +1 -1
- package/views/webgl/Util.js +1 -1
- package/webscene/Slide.d.ts +2 -2
- package/webscene/spec-certification/api.js +1 -1
- package/widgets/BatchAttributeForm/batchAttributeFormUtils.js +1 -1
- package/widgets/BatchAttributeForm/templates/support/hashElementTemplate.js +1 -1
- package/widgets/BatchAttributeForm.js +1 -1
- package/widgets/Editor/workflowUtils.js +1 -1
- package/widgets/FeatureForm/FeatureFormViewModel.js +1 -1
- package/widgets/FeatureForm/featureFormUtils.js +1 -1
- package/widgets/FeatureForm.js +1 -1
- package/widgets/ShadowCast/ShadowCastViewModel.js +1 -1
- package/widgets/Sketch/support/OperationHandle.js +1 -1
- package/widgets/TimeSlider.js +1 -1
- package/widgets/support/SelectionList/GroupLayerItem.js +1 -1
- package/widgets/support/dateUtils.js +1 -1
- package/assets/esri/core/workers/chunks/055fdc5134d54174444d.js +0 -316
- package/assets/esri/core/workers/chunks/058fb2cd6387acfd458c.js +0 -1
- package/assets/esri/core/workers/chunks/08359ae020238a565955.js +0 -1
- package/assets/esri/core/workers/chunks/0ae018098906d6a88904.js +0 -1
- package/assets/esri/core/workers/chunks/0cd3acfbf9ee991bdab4.js +0 -1
- package/assets/esri/core/workers/chunks/0dc3a04ce717b7ddd957.js +0 -1
- package/assets/esri/core/workers/chunks/0e5cd0cf6ab7cb37d723.js +0 -1
- package/assets/esri/core/workers/chunks/0ee407b8db5c07a00d82.js +0 -1
- package/assets/esri/core/workers/chunks/10373885604655f673df.js +0 -1
- package/assets/esri/core/workers/chunks/119822a646834c1cebc0.js +0 -1
- package/assets/esri/core/workers/chunks/13d61d34e55c80e4ecdf.js +0 -1
- package/assets/esri/core/workers/chunks/17dea03fc4eb414f0022.js +0 -1
- package/assets/esri/core/workers/chunks/1967239713b58dccfd81.js +0 -1
- package/assets/esri/core/workers/chunks/1c350a2c4014146dbcd9.js +0 -1
- package/assets/esri/core/workers/chunks/2266a8f2c2ec37c19bb4.js +0 -1
- package/assets/esri/core/workers/chunks/226acd251ad7d7ee3b57.js +0 -1
- package/assets/esri/core/workers/chunks/22b07c54a5fcc27771b0.js +0 -1
- package/assets/esri/core/workers/chunks/22ca80f491e070b2a5e7.js +0 -1
- package/assets/esri/core/workers/chunks/2402d305a77fef4694a0.js +0 -1
- package/assets/esri/core/workers/chunks/27f096c434f049b8df01.js +0 -1
- package/assets/esri/core/workers/chunks/3371935a4fd6346d3a17.js +0 -1
- package/assets/esri/core/workers/chunks/3c4f8597f602779174f1.js +0 -1
- package/assets/esri/core/workers/chunks/3da53c017f9c5d2d778a.js +0 -1
- package/assets/esri/core/workers/chunks/4773a358832f87963766.js +0 -1
- package/assets/esri/core/workers/chunks/492515860198f38dd698.js +0 -1
- package/assets/esri/core/workers/chunks/4f33a2ecb154a2c2449c.js +0 -1
- package/assets/esri/core/workers/chunks/4f6f181ee83b4d484518.js +0 -1
- package/assets/esri/core/workers/chunks/52726458f590e726d52c.js +0 -1
- package/assets/esri/core/workers/chunks/536c492fdda30f2f1288.js +0 -1
- package/assets/esri/core/workers/chunks/600e2e6b51e2fb9c598c.js +0 -1
- package/assets/esri/core/workers/chunks/63b8cd7d5cafbaeed894.js +0 -1
- package/assets/esri/core/workers/chunks/6cb44cd319cb6c2539c8.js +0 -1
- package/assets/esri/core/workers/chunks/7f4fa2f2e85863d3cfb9.js +0 -1
- package/assets/esri/core/workers/chunks/8f4c480c418eba299c2b.js +0 -1
- package/assets/esri/core/workers/chunks/a3836f6a93924ee4816e.js +0 -1
- package/assets/esri/core/workers/chunks/ab520fd1ae917daf07d8.js +0 -1
- package/assets/esri/core/workers/chunks/acc7ff44bfcb5c195114.js +0 -1
- package/assets/esri/core/workers/chunks/b25a131c04092c3ab75d.js +0 -1
- package/assets/esri/core/workers/chunks/b7960ab9a9da7f88184c.js +0 -1
- package/assets/esri/core/workers/chunks/b9909264cfea68d5f2a1.js +0 -1
- package/assets/esri/core/workers/chunks/bb08359610a41e304b55.js +0 -1
- package/assets/esri/core/workers/chunks/bfbbcaa1fb04f17fc869.js +0 -1
- package/assets/esri/core/workers/chunks/d30cfc5fa302cc08d862.js +0 -1
- package/assets/esri/core/workers/chunks/d75adfd4acb3c92accc9.js +0 -1
- package/assets/esri/core/workers/chunks/da99fd0d3106dd357743.js +0 -1
- package/assets/esri/core/workers/chunks/de71db3b0fb947b13c97.js +0 -1
- package/assets/esri/core/workers/chunks/dfbbead4c24d13682891.js +0 -1
- package/assets/esri/core/workers/chunks/e4ba850e8344ac2c5fc0.js +0 -1
- package/assets/esri/core/workers/chunks/e705d041f6c1632bfbcc.js +0 -1
- package/assets/esri/core/workers/chunks/f9370830051865a3435b.js +0 -1
- package/views/analysis/ElevationProfile/ElevationProfileHoveredPointVisualization.js +0 -5
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Clonable, ClonableMixinProperties } from "../../core/Clonable.js";
|
|
2
2
|
|
|
3
|
-
export interface ElevationProfileLineViewOptionsProperties extends ClonableMixinProperties, Partial<Pick<ElevationProfileLineViewOptions, "
|
|
3
|
+
export interface ElevationProfileLineViewOptionsProperties extends ClonableMixinProperties, Partial<Pick<ElevationProfileLineViewOptions, "indicatorPointVisible" | "lineVisible">> {}
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* Provides configuration options, such as its visibility, for visualizing a specific elevation profile line within a view.
|
|
@@ -14,14 +14,17 @@ export interface ElevationProfileLineViewOptionsProperties extends ClonableMixin
|
|
|
14
14
|
export default class ElevationProfileLineViewOptions extends Clonable {
|
|
15
15
|
constructor(properties?: ElevationProfileLineViewOptionsProperties);
|
|
16
16
|
/**
|
|
17
|
-
* Whether to show
|
|
18
|
-
*
|
|
17
|
+
* Whether to show an indicator point in the view when an
|
|
18
|
+
* {@link views/3d/analysis/ElevationProfileAnalysisView2D#indicatorRelativePosition indicator location} is set.
|
|
19
|
+
* If false, the indicator point is not displayed, but results are still available.
|
|
19
20
|
*
|
|
20
21
|
* @default true
|
|
21
|
-
* @see [ElevationProfileAnalysisView2D#
|
|
22
|
-
* @see [ElevationProfileAnalysisView3D#
|
|
22
|
+
* @see [ElevationProfileAnalysisView2D#indicatorRelativePosition](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-2d-analysis-ElevationProfileAnalysisView2D.html#indicatorRelativePosition)
|
|
23
|
+
* @see [ElevationProfileAnalysisView3D#indicatorRelativePosition](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-3d-analysis-ElevationProfileAnalysisView3D.html#indicatorRelativePosition)
|
|
24
|
+
* @see [ElevationProfileAnalysisView2D#indicatorPoints](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-2d-analysis-ElevationProfileAnalysisView2D.html#indicatorPoints)
|
|
25
|
+
* @see [ElevationProfileAnalysisView3D#indicatorPoints](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-3d-analysis-ElevationProfileAnalysisView3D.html#indicatorPoints)
|
|
23
26
|
*/
|
|
24
|
-
accessor
|
|
27
|
+
accessor indicatorPointVisible: boolean;
|
|
25
28
|
/**
|
|
26
29
|
* Whether to show the profile line in the view.
|
|
27
30
|
* If false, the line is not displayed in the view, but results are still available.
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/5.0/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{__decorate as i}from"tslib";import{Clonable as
|
|
5
|
+
import{__decorate as i}from"tslib";import{Clonable as o}from"../../core/Clonable.js";import{property as e,subclass as t}from"../../core/accessorSupport/decorators.js";let s=class extends o{constructor(i){super(i),this.lineVisible=!0,this.indicatorPointVisible=!0}equals(i){return this===i||this.lineVisible===i.lineVisible&&this.indicatorPointVisible===i.indicatorPointVisible}};i([e()],s.prototype,"lineVisible",void 0),i([e()],s.prototype,"indicatorPointVisible",void 0),s=i([t("esri.analysis.ElevationProfile.ElevationProfileLineViewOptions")],s);const r=s;export{r as default};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/5.0/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{toSymbolId as e,neverAbortedSignal as t}from"./arcadeEnvironment.js";import{ArcadeModule as n}from"./ArcadeModule.js";import{ArcadeModuleLoader as r}from"./ArcadeModuleLoader.js";import{collectDeclaredGlobalNames as o,flattenAccessChain as a,collectDeclaredLocalNames as i}from"./compilerUtils.js";import{getNestedOptionalValue as s,getGeometryKeys as c,tryGetMember as l,getMember as u,getGeometryMember as f}from"./containerUtils.js";import p from"./Dictionary.js";import{ArcadeExecutionError as w,ensureArcadeExecutionError as d}from"./executionError.js";import{Feature as h}from"./Feature.js";import{NativeFunction as m,ScopeMarshalledFunction as g,ArcadeFunction as y,wrapModuleScopedResponse as b}from"./FunctionWrapper.js";import{R as v,I as x,q as S,i as k,z as F,A as j,B as O,v as R,w as C,r as E,s as I,u as M,x as A,k as N,j as B,y as U,m as G,h as L}from"../chunks/languageUtils.js";import{addFunctionDeclaration as z}from"./treeAnalysis.js";import{A as D}from"../chunks/aiServices.js";import{A as _}from"../chunks/array.js";import{registerFunctions as Z}from"./functions/date.js";import{registerFunctions as q}from"./functions/feature.js";import{registerFunctions as P}from"./functions/geomasync.js";import{registerFunctions as W}from"./functions/geometry.js";import{registerFunctions as V}from"./functions/maths.js";import{registerFunctions as K}from"./functions/stats.js";import{registerFunctions as T}from"./functions/string.js";import{registerFunctions as Y}from"./functions/track.js";import{neverReachedSilent as $}from"../core/compilerUtils.js";import H from"../core/Logger.js";import J from"../geometry/SpatialReference.js";import{isGraphic as Q,isBoolean as X,isString as ee,isArray as te,isNumber as ne}from"../support/guards.js";const re=()=>H.getLogger("esri.arcade.arcadeAsyncRuntime"),oe=Symbol("uninitialized");function ae(e){if(e===oe)throw new w(null,"InvalidIdentifier",null)}function ie(e){return ae(e),e}function se(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 w(t,"InvalidIdentifier",n)}function ce(t,n,r="InvalidIdentifier"){const o=e(n);if(null!==t.localScope){const e=t.localScope[o];if(void 0!==e)return ae(e),e.value}const a=t.globalScope[o];if(void 0!==a)return ae(a),a.value;throw new w(t,r,n)}const le=function(){};async function ue(e,t){const n=[];for(let r=0;r<t.arguments.length;r++)n.push(await me(e,t.arguments[r]));return n}async function fe(e,t,n){if(!0===t.preparsed)return n(e,null,t.arguments);return n(e,t,await ue(e,t))}le.prototype=Object.freeze(Object.create(null));class pe extends y{constructor(e,t,n,r){super(),this.definition=e,this.context=t,this._params=n,this._locals=r}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 le,depthCounter:{depth:e.depthCounter.depth+1},globalScope:this.context.globalScope,track:this.context.track};if(n.depthCounter.depth>64)throw new w(e,"MaximumCallDepth",null);return we(n,this.definition.body,this._params,this._locals,t,null)}}call(e,t){return he(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 le,abortSignal:e.abortSignal,globalScope:e.globalScope,depthCounter:{depth:e.depthCounter.depth+1},track:e.track};if(a.depthCounter.depth>64)throw new w(e,"MaximumCallDepth",t);return we(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 le,track:e.track};return i=i.map(t=>!k(t)||t instanceof g?t:b(t,e,r)),b(await we(s,this.definition.body,this._params,this._locals,i,t),n,r)})}}async function we(e,t,n,r,o,a){if(n.length!==o.length)throw new w(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]=oe}const i=await ge(e,t);if(i instanceof v)return i.value;if(i===F)throw new w(e,"UnexpectedToken",a);if(i===j)throw new w(e,"UnexpectedToken",a);return i instanceof x?i.value:i}class de extends n{constructor(e){super(),this.moduleGlobalContext=e}global(t){const n=e(t);if(this.moduleGlobalContext.exports.has(n))throw new w(null,"ModuleExportNotFound",null);const r=this.moduleGlobalContext.globalScope[n];if(ae(r),k(r.value)&&!(r.value instanceof g)){const e=new g;return e.fn=r.value,e.parameterEvaluator=fe,e.context=this.moduleGlobalContext,this.moduleGlobalContext.globalScope[n]={value:e},e}return r.value}setGlobal(t,n){if(k(n))throw new w(null,"AssignModuleFunction",null);const r=e(t);if(this.moduleGlobalContext.exports.has(r))throw new w(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 st;for(const t of a)t in s||(s[t]=oe);const c=e.spatialReference??J.WebMercator,l={lrucache:e.lrucache,interceptor:e.interceptor,services:e.services,console:e.console??lt,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 Ne(l,n),new de(l)}}async function he(e,t,n){if(!0===t.preparsed)return n(e,null,t.arguments);return n(e,t,await ue(e,t))}async function me(e,t){t.breakpoint&&await t.breakpoint();try{switch(t.type){case"UpdateExpression":return await Ce(e,t);case"AssignmentExpression":return await Ie(e,t);case"TemplateLiteral":return await Xe(e,t);case"Identifier":return He(e,t);case"MemberExpression":return await Ze(e,t);case"Literal":return t.value;case"CallExpression":return await Je(e,t);case"UnaryExpression":return await Ke(e,t);case"BinaryExpression":return await Ye(e,t);case"LogicalExpression":return await $e(e,t);case"ArrayExpression":return await Te(e,t);case"ObjectExpression":return await ye(e,t);case"MemberAccessChainExpression":return await Ve(e,t);case"SafeMemberExpression":throw re().error("SafeMemberExpression outside of MemberAccessChainExpression"),new w(null,"Unrecognized",t);default:throw $(t),new w(e,"Unrecognized",t)}}catch(n){throw d(e,t,n)}}async function ge(e,t){t.breakpoint&&await t.breakpoint();try{switch(t.type){case"ImportDeclaration":return await Le(e,t);case"ExportNamedDeclaration":return await ze(e,t);case"VariableDeclaration":return await De(e,t);case"BlockStatement":return await Ne(e,t);case"FunctionDeclaration":return await Ge(e,t);case"ReturnStatement":return await Ue(e,t);case"IfStatement":return await Ae(e,t);case"ExpressionStatement":return await Me(e,t);case"ForStatement":return await ve(e,t);case"WhileStatement":return await be(e,t);case"ForInStatement":return await Oe(e,t);case"ForOfStatement":return await Re(e,t);case"BreakStatement":return F;case"EmptyStatement":return R;case"ContinueStatement":return j;default:throw $(t),new w(e,"Unrecognized",t)}}catch(n){throw d(e,t,n)}}async function ye(e,t){const n=[];for(let i=0;i<t.properties.length;i++){const r=t.properties[i],o=await me(e,r.value),a="Identifier"===r.key.type?r.key.name:await me(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(k(a.value))throw new w(e,"NoFunctionInDictionary",t);if(!1===ee(a.key))throw new w(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===R?r[s]=null:r[s]=a.value}const a=new p(r);return a.immutable=!1,a}async function be(e,t){let n=await me(e,t.test);if(!1===n)return R;if(!0!==n)throw new w(e,"BooleanConditionRequired",t);for(;!0===n;){const r=await ge(e,t.body);if(r===F)break;if(r instanceof v)return r;if(n=await me(e,t.test),!0!==n&&!1!==n)throw new w(e,"BooleanConditionRequired",t)}return R}async function ve(e,t){try{for(null!==t.init&&("VariableDeclaration"===t.init.type?await ge(e,t.init):await me(e,t.init));;){if(null!==t.test){const n=await me(e,t.test);if(!0===e.abortSignal?.aborted)throw new w(e,"Cancelled",t);if(!1===n)break;if(!0!==n)throw new w(e,"BooleanConditionRequired",t)}const n=await ge(e,t.body);if(n===F)break;if(n instanceof v)return n;null!==t.update&&await me(e,t.update)}return R}catch(n){throw n}}async function xe(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 w(e,"OutOfBounds",t);r.scope[r.id]={value:n[i]}}else r.scope[r.id]={value:i};const a=await ge(e,t.body);if(a===F)break;if(a instanceof v)return a}return R}async function Se(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 ge(e,t.body);if(a===F)break;if(a instanceof v)return a}return R}async function ke(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:h.createFromGraphicLikeObject(a.geometry,a.attributes,n,e.timeZone)};const o=await ge(e,t.body);if(o===F)break e;if(o instanceof v)return o}return R}async function Fe(e,t,n,r){for(const o of n.keys()){const a=n.field(o);r.scope[r.id]={value:p.containerEntry(o,a)};const i=await ge(e,t.body);if(i===F)break;if(i instanceof v)return i}return R}async function je(e,t,n,r){for(const o of c(n)){const a=f(n,o,e,t);r.scope[r.id]={value:p.containerEntry(o,a)};const i=await ge(e,t.body);if(i===F)break;if(i instanceof v)return i}return R}async function Oe(e,t){const n=await me(e,t.right);"VariableDeclaration"===t.left.type&&await ge(e,t.left);const r=se(e,"VariableDeclaration"===t.left.type?t.left.declarations[0].id:t.left);return te(n)||ee(n)?await xe(e,t,n,r):B(n)?await Se(e,t,n,r):n instanceof p||U(n)?await xe(e,t,n.keys(),r,"k"):G(n)?await ke(e,t,n,r):L(n)?await xe(e,t,c(n),r,"k"):R}async function Re(e,t){const n=await me(e,t.right);"VariableDeclaration"===t.left.type&&await ge(e,t.left);const r=se(e,"VariableDeclaration"===t.left.type?t.left.declarations[0].id:t.left);return te(n)||ee(n)?await xe(e,t,n,r,"k"):B(n)?await Se(e,t,n,r,"k"):n instanceof p||U(n)?await Fe(e,t,n,r):G(n)?await ke(e,t,n,r):L(n)?await je(e,t,n,r):R}async function Ce(e,t){const n=t.argument;if("CallExpression"===n.type)throw new w(e,"NeverReach",t);if("MemberExpression"===n.type){const r=await me(e,n.object);let o,a;if(!0===n.computed)o=await me(e,n.property);else{if("Identifier"!==n.property.type)throw new w(e,"Unrecognized",t);o=n.property.name}if(te(r)){if(!ne(o))throw new w(e,"ArrayAccessMustBeNumber",t);if(o<0&&(o=r.length+o),o<0||o>=r.length)throw new w(e,"OutOfBounds",t);a=E(r[o]),r[o]="++"===t.operator?a+1:a-1}else if(r instanceof p){if(!1===ee(o))throw new w(e,"KeyAccessorMustBeString",t);if(!0!==r.hasField(o))throw new w(e,"FieldNotFound",t,{key:o});a=E(r.field(o)),r.setField(o,"++"===t.operator?a+1:a-1)}else if(r instanceof de){if(!1===ee(o))throw new w(e,"ModuleAccessorMustBeString",t);if(!0!==r.hasGlobal(o))throw new w(e,"ModuleExportNotFound",t);a=E(r.global(o)),r.setGlobal(o,"++"===t.operator?a+1:a-1)}else{if(!N(r))throw B(r)?new w(e,"Immutable",t):new w(e,"InvalidParameter",t);if(!1===ee(o))throw new w(e,"KeyAccessorMustBeString",t);if(!0!==r.hasField(o))throw new w(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=se(e,n),o=E(ie(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 Ee(e,t,n,r,o){switch(t){case"=":return e===R?null:e;case"/=":return E(n)/E(e);case"*=":return E(n)*E(e);case"-=":return E(n)-E(e);case"+=":return ee(n)||ee(e)?I(n)+I(e):E(n)+E(e);case"%=":return E(n)%E(e);default:throw new w(o,"UnsupportedOperator",r)}}async function Ie(e,t){const n=t.left;if("MemberExpression"===n.type){const r=await me(e,n.object);let o;if(!0===n.computed)o=await me(e,n.property);else{if("Identifier"!==n.property.type)throw new w(e,"InvalidIdentifier",t);o=n.property.name}const a=await me(e,t.right);if(te(r)){if(!ne(o))throw new w(e,"ArrayAccessMustBeNumber",t);if(o<0&&(o=r.length+o),o<0||o>r.length)throw new w(e,"OutOfBounds",t);if(o===r.length){if("="!==t.operator)throw new w(e,"OutOfBounds",t);r[o]=Ee(a,t.operator,r[o],t,e)}else r[o]=Ee(a,t.operator,r[o],t,e)}else if(r instanceof p){if(!1===ee(o))throw new w(e,"KeyAccessorMustBeString",t);if(!0===r.hasField(o))r.setField(o,Ee(a,t.operator,r.field(o),t,e));else{if("="!==t.operator)throw new w(e,"FieldNotFound",t,{key:o});r.setField(o,Ee(a,t.operator,null,t,e))}}else if(r instanceof de){if(!1===ee(o))throw new w(e,"KeyAccessorMustBeString",t);if(!0!==r.hasGlobal(o))throw new w(e,"ModuleExportNotFound",t);r.setGlobal(o,Ee(a,t.operator,r.global(o),t,e))}else{if(!N(r))throw B(r)?new w(e,"Immutable",t):new w(e,"InvalidParameter",t);if(!1===ee(o))throw new w(e,"KeyAccessorMustBeString",t);if(!0===r.hasField(o))r.setField(o,Ee(a,t.operator,r.field(o),t,e));else{if("="!==t.operator)throw new w(e,"FieldNotFound",t,{key:o});r.setField(o,Ee(a,t.operator,null,t,e))}}return R}const r=se(e,n),o=await me(e,t.right);return r.scope[r.id]={value:Ee(o,t.operator,"="!==t.operator?ie(r.var).value:null,t,e)},R}async function Me(e,t){const n=await me(e,t.expression);return n===R?R:new x(n)}async function Ae(e,t){const n=await me(e,t.test);if(!0===n)return ge(e,t.consequent);if(!1===n)return null!==t.alternate?ge(e,t.alternate):R;throw new w(e,"BooleanConditionRequired",t)}async function Ne(e,t){return Be(e,t,0)}async function Be(e,t,n){if(n>=t.body.length)return R;const r=await ge(e,t.body[n]);return r instanceof v||r===F||r===j||n===t.body.length-1?r:Be(e,t,n+1)}async function Ue(e,t){if(null===t.argument)return new v(R);const n=await me(e,t.argument);return new v(n)}async function Ge(t,n){if(null!=t.localScope)throw re().error("Function declarations are only valid in global scope."),new w(t,"NeverReach",n);const r=e(n.id);if(!(r in t.globalScope))throw re().error(`Function "${r}" not declared.`),new w(t,"NeverReach",n);const o=i(n),a=n.params.map(t=>e(t)),s=Array.from(o).filter(e=>!a.includes(e));return t.globalScope[r]={value:new pe(n,t,a,s)},R}async function Le(e,t){const n=se(e,t.specifiers[0].local),r=e.libraryResolver;if(null==r)throw re().error("Internal error: module loader not initialized"),new w(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 de.load(e,o.syntax),r._moduleSingletons?.set(o.uri,a)),n.scope[n.id]={value:a},R}async function ze(e,t){return await ge(e,t.declaration),R}async function De(e,t){for(const n of t.declarations)await _e(e,n);return R}async function _e(e,t){let n=null;n=null===t.init?null:await me(e,t.init),n===R&&(n=null);const r=se(e,t.id);r.scope[r.id]={value:n}}async function Ze(e,t){return qe(e,await me(e,t.object),t)}async function qe(e,t,n){const r=n.computed?await me(e,n.property):n.property.name;return u(t,r)}async function Pe(e,t,n){for(const r of n)switch(r.type){case"MemberExpression":t=await qe(e,t,r);break;case"CallExpression":t=await Qe(e,t,r);break;default:throw new w(null,"Unrecognized",r)}return t}async function We(e,t,n){const r=n.computed?await me(e,n.property):n.property.name;return l(t,r)}async function Ve(e,t){const n=a(t);let r=await me(e,n.root);for(const o of n.sections){const t=await We(e,r,o.checked);if(null==t)return null;r=await Pe(e,t,o.unchecked)}return r}async function Ke(e,t){const n=await me(e,t.argument);if(X(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 w(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 w(e,"UnsupportUnaryOperator",t)}async function Te(e,t){const n=[];for(let r=0;r<t.elements.length;r++)n.push(await me(e,t.elements[r]));for(let r=0;r<n.length;r++){if(k(n[r]))throw new w(e,"NoFunctionInArray",t);n[r]===R&&(n[r]=null)}return n}async function Ye(e,t){const n=await me(e,t.left),r=await me(e,t.right);switch(t.operator){case"|":case"<<":case">>":case">>>":case"^":case"&":return A(E(n),E(r),t.operator);case"==":return C(n,r);case"!=":return!C(n,r);case"<":case">":case"<=":case">=":return M(n,r,t.operator);case"+":return ee(n)||ee(r)?I(n)+I(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 w(e,"UnsupportedOperator",t)}}async function $e(e,t){const n=await me(e,t.left);if(!X(n))throw new w(e,"LogicalExpressionOnlyBoolean",t);switch(t.operator){case"||":{if(!0===n)return n;const r=await me(e,t.right);if(X(r))return r;throw new w(e,"LogicExpressionOrAnd",t)}case"&&":{if(!1===n)return n;const r=await me(e,t.right);if(X(r))return r;throw new w(e,"LogicExpressionOrAnd",t)}default:throw $(t.operator),new w(e,"LogicExpressionOrAnd",t)}}function He(e,t){return ce(e,t)}async function Je(e,t){return Qe(e,"Identifier"===t.callee.type?ce(e,t.callee,"FunctionNotFound"):await me(e,t.callee),t)}async function Qe(e,t,n){if(k(t))return t.call(e,n);throw new w(e,"CallNonFunction",n)}async function Xe(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 me(e,t.expressions[r]);if(k(o))throw new w(e,"NoFunctionInTemplateLiteral",t);n+=I(o)}r++}return n}async function et(e,t){O(null===t.arguments?[]:t.arguments,3,3,e,t);const n=await me(e,t.arguments[0]);if(!1===X(n))throw new w(e,"BooleanConditionRequired",t);return me(e,n?t.arguments[1]:t.arguments[2])}async function tt(e,t){O(null===t.arguments?[]:t.arguments,2,3,e,t);const n=await me(e,t.arguments[0]);if(3===t.arguments.length){const r=await me(e,t.arguments[1]),o=s(n,r);return null!=o&&""!==o?o:me(e,t.arguments[2])}return null==n||""===n?me(e,t.arguments[1]):n}async function nt(e,t){if(t.arguments.length<2)throw new w(e,"WrongNumberOfParameters",t);if(2===t.arguments.length)return me(e,t.arguments[1]);if((t.arguments.length-1)%2==0)throw new w(e,"WrongNumberOfParameters",t);return rt(e,t,1,await me(e,t.arguments[0]))}async function rt(e,t,n,r){const o=await me(e,t.arguments[n]);if(C(o,r))return me(e,t.arguments[n+1]);const a=t.arguments.length-n;return 1===a?me(e,t.arguments[n]):2===a?null:3===a?me(e,t.arguments[n+2]):rt(e,t,n+2,r)}async function ot(e,t){if(t.arguments.length<3)throw new w(e,"WrongNumberOfParameters",t);if(t.arguments.length%2==0)throw new w(e,"WrongNumberOfParameters",t);const n=await me(e,t.arguments[0]);if(!1===X(n))throw new w(e,"BooleanConditionRequired",t.arguments[0]);return at(e,t,0,n)}async function at(e,t,n,r){if(!0===r)return me(e,t.arguments[n+1]);if(3===t.arguments.length-n)return me(e,t.arguments[n+2]);const o=await me(e,t.arguments[n+2]);if(!1===X(o))throw new w(e,"ModuleExportNotFound",t.arguments[n+2]);return at(e,t,n+2,o)}function it(){const e=Object.create(null);Z(e,fe),T(e,fe),q(e,fe,He),V(e,fe),W(e,fe),K(e,fe),Y(e,fe),P({functions:e,compiled:!1,signatures:null,evaluateIdentifier:null,mode:"async",standardFunction:fe,standardFunctionAsync:he}),e.iif=et,e.defaultvalue=tt,e.decode=nt,e.when=ot;const t=function(){this.textformatting={value:p.textFormatting()}};t.prototype=Object.create(null),t.prototype.infinity=Object.freeze({value:Number.POSITIVE_INFINITY}),t.prototype.pi=Object.freeze({value:Math.PI});for(const[n,r]of Object.entries(e))t.prototype[n]=Object.freeze({value:new m(r)});return t}const st=it();function ct(e){const t={mode:"async",compiled:!1,functions:Object.create(null),signatures:[],standardFunction:fe,standardFunctionAsync:he,evaluateIdentifier:He};for(let n=0;n<e.length;n++)e[n].registerFunctions(t);for(const[n,r]of Object.entries(t.functions))st.prototype[n]=Object.freeze({value:new m(r)});for(let n=0;n<t.signatures.length;n++)z(t.signatures[n],"async")}function lt(e){console.log(e)}function ut(n,a){const i=new Set(Object.keys(a?.vars||{}).map(t=>e(t))),s=new Set(Object.keys(a?.customfunctions||{}).map(t=>e(t))),{globals:c,exports:l}=o(n);return async e=>{const o=e.spatialReference??J.WebMercator;let a=null;n.usesModules&&(a=new r(new Map,n.loadedModules));const u=new st;for(const t of s)null!=e.customfunctions&&t in e.customfunctions?u[t]={value:new m(e.customfunctions[t])}:u[t]=oe;for(const t of i){if(null==e.vars||!(t in e.vars)){t in u||(u[t]=oe);continue}const n=e.vars[t]??null;Q(n)?u[t]={value:h.createFromGraphic(n,e.timeZone??null)}:u[t]={value:n}}for(const t of c)t in u||(u[t]=oe);const f={lrucache:e.lrucache,interceptor:e.interceptor,services:e.services,console:e.console??lt,abortSignal:e.abortSignal??t,timeZone:e.timeZone??null,spatialReference:o,track:e.track,depthCounter:{depth:1},libraryResolver:a,exports:l,localScope:null,globalScope:u},p=await Ne(f,n);if(p instanceof v||p instanceof x){const e=p.value;if(S(e))return null;if(k(e))throw new w(f,"IllegalResult",null);return e}if(S(p))return null;if(p===F)throw new w(f,"IllegalResult",null);if(p===j)throw new w(f,"IllegalResult",null);throw new w(f,"NeverReach",null)}}function ft(e,t){return ut(e,t)(t)}ct([_]),ct([D]);export{ft as executeScript,ct as extend,ut as prepareScript};
|
|
5
|
+
import{toSymbolId as e,neverAbortedSignal as t}from"./arcadeEnvironment.js";import{ArcadeModule as n}from"./ArcadeModule.js";import{ArcadeModuleLoader as r}from"./ArcadeModuleLoader.js";import{collectDeclaredGlobalNames as o,flattenAccessChain as a,collectDeclaredLocalNames as i}from"./compilerUtils.js";import{getNestedOptionalValue as s,getGeometryKeys as c,tryGetMember as l,getMember as u,getGeometryMember as f}from"./containerUtils.js";import p from"./Dictionary.js";import{ArcadeExecutionError as w,ensureArcadeExecutionError as d}from"./executionError.js";import{Feature as h}from"./Feature.js";import{NativeFunction as m,ScopeMarshalledFunction as g,ArcadeFunction as y,wrapModuleScopedResponse as b}from"./FunctionWrapper.js";import{R as v,I as x,q as S,i as k,z as F,A as j,B as O,v as R,w as C,r as E,s as I,u as M,x as A,k as N,j as B,y as U,m as G,h as L}from"../chunks/languageUtils.js";import{addFunctionDeclaration as z}from"./treeAnalysis.js";import{A as D}from"../chunks/aiServices.js";import{A as _}from"../chunks/array.js";import{registerFunctions as Z}from"./functions/date.js";import{registerFunctions as q}from"./functions/feature.js";import{registerFunctions as P}from"./functions/geomasync.js";import{registerFunctions as W}from"./functions/geometry.js";import{registerFunctions as V}from"./functions/maths.js";import{registerFunctions as K}from"./functions/stats.js";import{registerFunctions as T}from"./functions/string.js";import{registerFunctions as Y}from"./functions/track.js";import $ from"../core/Logger.js";import H from"../geometry/SpatialReference.js";import{isGraphic as J,isBoolean as Q,isString as X,isArray as ee,isNumber as te}from"../support/guards.js";const ne=()=>$.getLogger("esri.arcade.arcadeAsyncRuntime"),re=Symbol("uninitialized");function oe(e){if(e===re)throw new w(null,"InvalidIdentifier",null)}function ae(e){return oe(e),e}function ie(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 w(t,"InvalidIdentifier",n)}function se(t,n,r="InvalidIdentifier"){const o=e(n);if(null!==t.localScope){const e=t.localScope[o];if(void 0!==e)return oe(e),e.value}const a=t.globalScope[o];if(void 0!==a)return oe(a),a.value;throw new w(t,r,n)}const ce=function(){};async function le(e,t){const n=[];for(let r=0;r<t.arguments.length;r++)n.push(await he(e,t.arguments[r]));return n}async function ue(e,t,n){if(!0===t.preparsed)return n(e,null,t.arguments);return n(e,t,await le(e,t))}ce.prototype=Object.freeze(Object.create(null));class fe extends y{constructor(e,t,n,r){super(),this.definition=e,this.context=t,this._params=n,this._locals=r}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 ce,depthCounter:{depth:e.depthCounter.depth+1},globalScope:this.context.globalScope,track:this.context.track};if(n.depthCounter.depth>64)throw new w(e,"MaximumCallDepth",null);return pe(n,this.definition.body,this._params,this._locals,t,null)}}call(e,t){return de(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 ce,abortSignal:e.abortSignal,globalScope:e.globalScope,depthCounter:{depth:e.depthCounter.depth+1},track:e.track};if(a.depthCounter.depth>64)throw new w(e,"MaximumCallDepth",t);return pe(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 ce,track:e.track};return i=i.map(t=>!k(t)||t instanceof g?t:b(t,e,r)),b(await pe(s,this.definition.body,this._params,this._locals,i,t),n,r)})}}async function pe(e,t,n,r,o,a){if(n.length!==o.length)throw new w(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]=re}const i=await me(e,t);if(i instanceof v)return i.value;if(i===F)throw new w(e,"UnexpectedToken",a);if(i===j)throw new w(e,"UnexpectedToken",a);return i instanceof x?i.value:i}class we extends n{constructor(e){super(),this.moduleGlobalContext=e}global(t){const n=e(t);if(this.moduleGlobalContext.exports.has(n))throw new w(null,"ModuleExportNotFound",null);const r=this.moduleGlobalContext.globalScope[n];if(oe(r),k(r.value)&&!(r.value instanceof g)){const e=new g;return e.fn=r.value,e.parameterEvaluator=ue,e.context=this.moduleGlobalContext,this.moduleGlobalContext.globalScope[n]={value:e},e}return r.value}setGlobal(t,n){if(k(n))throw new w(null,"AssignModuleFunction",null);const r=e(t);if(this.moduleGlobalContext.exports.has(r))throw new w(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 it;for(const t of a)t in s||(s[t]=re);const c=e.spatialReference??H.WebMercator,l={lrucache:e.lrucache,interceptor:e.interceptor,services:e.services,console:e.console??ct,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 Ae(l,n),new we(l)}}async function de(e,t,n){if(!0===t.preparsed)return n(e,null,t.arguments);return n(e,t,await le(e,t))}async function he(e,t){t.breakpoint&&await t.breakpoint();try{switch(t.type){case"UpdateExpression":return await Re(e,t);case"AssignmentExpression":return await Ee(e,t);case"TemplateLiteral":return await Qe(e,t);case"Identifier":return $e(e,t);case"MemberExpression":return await _e(e,t);case"Literal":return t.value;case"CallExpression":return await He(e,t);case"UnaryExpression":return await Ve(e,t);case"BinaryExpression":return await Te(e,t);case"LogicalExpression":return await Ye(e,t);case"ArrayExpression":return await Ke(e,t);case"ObjectExpression":return await ge(e,t);case"MemberAccessChainExpression":return await We(e,t);case"SafeMemberExpression":throw ne().error("SafeMemberExpression outside of MemberAccessChainExpression"),new w(null,"Unrecognized",t);default:throw new w(e,"Unrecognized",t)}}catch(n){throw d(e,t,n)}}async function me(e,t){t.breakpoint&&await t.breakpoint();try{switch(t.type){case"ImportDeclaration":return await Ge(e,t);case"ExportNamedDeclaration":return await Le(e,t);case"VariableDeclaration":return await ze(e,t);case"BlockStatement":return await Ae(e,t);case"FunctionDeclaration":return await Ue(e,t);case"ReturnStatement":return await Be(e,t);case"IfStatement":return await Me(e,t);case"ExpressionStatement":return await Ie(e,t);case"ForStatement":return await be(e,t);case"WhileStatement":return await ye(e,t);case"ForInStatement":return await je(e,t);case"ForOfStatement":return await Oe(e,t);case"BreakStatement":return F;case"EmptyStatement":return R;case"ContinueStatement":return j;default:throw new w(e,"Unrecognized",t)}}catch(n){throw d(e,t,n)}}async function ge(e,t){const n=[];for(let i=0;i<t.properties.length;i++){const r=t.properties[i],o=await he(e,r.value),a="Identifier"===r.key.type?r.key.name:await he(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(k(a.value))throw new w(e,"NoFunctionInDictionary",t);if(!1===X(a.key))throw new w(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===R?r[s]=null:r[s]=a.value}const a=new p(r);return a.immutable=!1,a}async function ye(e,t){let n=await he(e,t.test);if(!1===n)return R;if(!0!==n)throw new w(e,"BooleanConditionRequired",t);for(;!0===n;){const r=await me(e,t.body);if(r===F)break;if(r instanceof v)return r;if(n=await he(e,t.test),!0!==n&&!1!==n)throw new w(e,"BooleanConditionRequired",t)}return R}async function be(e,t){try{for(null!==t.init&&("VariableDeclaration"===t.init.type?await me(e,t.init):await he(e,t.init));;){if(null!==t.test){const n=await he(e,t.test);if(!0===e.abortSignal?.aborted)throw new w(e,"Cancelled",t);if(!1===n)break;if(!0!==n)throw new w(e,"BooleanConditionRequired",t)}const n=await me(e,t.body);if(n===F)break;if(n instanceof v)return n;null!==t.update&&await he(e,t.update)}return R}catch(n){throw n}}async function ve(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 w(e,"OutOfBounds",t);r.scope[r.id]={value:n[i]}}else r.scope[r.id]={value:i};const a=await me(e,t.body);if(a===F)break;if(a instanceof v)return a}return R}async function xe(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 me(e,t.body);if(a===F)break;if(a instanceof v)return a}return R}async function Se(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:h.createFromGraphicLikeObject(a.geometry,a.attributes,n,e.timeZone)};const o=await me(e,t.body);if(o===F)break e;if(o instanceof v)return o}return R}async function ke(e,t,n,r){for(const o of n.keys()){const a=n.field(o);r.scope[r.id]={value:p.containerEntry(o,a)};const i=await me(e,t.body);if(i===F)break;if(i instanceof v)return i}return R}async function Fe(e,t,n,r){for(const o of c(n)){const a=f(n,o,e,t);r.scope[r.id]={value:p.containerEntry(o,a)};const i=await me(e,t.body);if(i===F)break;if(i instanceof v)return i}return R}async function je(e,t){const n=await he(e,t.right);"VariableDeclaration"===t.left.type&&await me(e,t.left);const r=ie(e,"VariableDeclaration"===t.left.type?t.left.declarations[0].id:t.left);return ee(n)||X(n)?await ve(e,t,n,r):B(n)?await xe(e,t,n,r):n instanceof p||U(n)?await ve(e,t,n.keys(),r,"k"):G(n)?await Se(e,t,n,r):L(n)?await ve(e,t,c(n),r,"k"):R}async function Oe(e,t){const n=await he(e,t.right);"VariableDeclaration"===t.left.type&&await me(e,t.left);const r=ie(e,"VariableDeclaration"===t.left.type?t.left.declarations[0].id:t.left);return ee(n)||X(n)?await ve(e,t,n,r,"k"):B(n)?await xe(e,t,n,r,"k"):n instanceof p||U(n)?await ke(e,t,n,r):G(n)?await Se(e,t,n,r):L(n)?await Fe(e,t,n,r):R}async function Re(e,t){const n=t.argument;if("CallExpression"===n.type)throw new w(e,"NeverReach",t);if("MemberExpression"===n.type){const r=await he(e,n.object);let o,a;if(!0===n.computed)o=await he(e,n.property);else{if("Identifier"!==n.property.type)throw new w(e,"Unrecognized",t);o=n.property.name}if(ee(r)){if(!te(o))throw new w(e,"ArrayAccessMustBeNumber",t);if(o<0&&(o=r.length+o),o<0||o>=r.length)throw new w(e,"OutOfBounds",t);a=E(r[o]),r[o]="++"===t.operator?a+1:a-1}else if(r instanceof p){if(!1===X(o))throw new w(e,"KeyAccessorMustBeString",t);if(!0!==r.hasField(o))throw new w(e,"FieldNotFound",t,{key:o});a=E(r.field(o)),r.setField(o,"++"===t.operator?a+1:a-1)}else if(r instanceof we){if(!1===X(o))throw new w(e,"ModuleAccessorMustBeString",t);if(!0!==r.hasGlobal(o))throw new w(e,"ModuleExportNotFound",t);a=E(r.global(o)),r.setGlobal(o,"++"===t.operator?a+1:a-1)}else{if(!N(r))throw B(r)?new w(e,"Immutable",t):new w(e,"InvalidParameter",t);if(!1===X(o))throw new w(e,"KeyAccessorMustBeString",t);if(!0!==r.hasField(o))throw new w(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=ie(e,n),o=E(ae(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 Ce(e,t,n,r,o){switch(t){case"=":return e===R?null:e;case"/=":return E(n)/E(e);case"*=":return E(n)*E(e);case"-=":return E(n)-E(e);case"+=":return X(n)||X(e)?I(n)+I(e):E(n)+E(e);case"%=":return E(n)%E(e);default:throw new w(o,"UnsupportedOperator",r)}}async function Ee(e,t){const n=t.left;if("MemberExpression"===n.type){const r=await he(e,n.object);let o;if(!0===n.computed)o=await he(e,n.property);else{if("Identifier"!==n.property.type)throw new w(e,"InvalidIdentifier",t);o=n.property.name}const a=await he(e,t.right);if(ee(r)){if(!te(o))throw new w(e,"ArrayAccessMustBeNumber",t);if(o<0&&(o=r.length+o),o<0||o>r.length)throw new w(e,"OutOfBounds",t);if(o===r.length){if("="!==t.operator)throw new w(e,"OutOfBounds",t);r[o]=Ce(a,t.operator,r[o],t,e)}else r[o]=Ce(a,t.operator,r[o],t,e)}else if(r instanceof p){if(!1===X(o))throw new w(e,"KeyAccessorMustBeString",t);if(!0===r.hasField(o))r.setField(o,Ce(a,t.operator,r.field(o),t,e));else{if("="!==t.operator)throw new w(e,"FieldNotFound",t,{key:o});r.setField(o,Ce(a,t.operator,null,t,e))}}else if(r instanceof we){if(!1===X(o))throw new w(e,"KeyAccessorMustBeString",t);if(!0!==r.hasGlobal(o))throw new w(e,"ModuleExportNotFound",t);r.setGlobal(o,Ce(a,t.operator,r.global(o),t,e))}else{if(!N(r))throw B(r)?new w(e,"Immutable",t):new w(e,"InvalidParameter",t);if(!1===X(o))throw new w(e,"KeyAccessorMustBeString",t);if(!0===r.hasField(o))r.setField(o,Ce(a,t.operator,r.field(o),t,e));else{if("="!==t.operator)throw new w(e,"FieldNotFound",t,{key:o});r.setField(o,Ce(a,t.operator,null,t,e))}}return R}const r=ie(e,n),o=await he(e,t.right);return r.scope[r.id]={value:Ce(o,t.operator,"="!==t.operator?ae(r.var).value:null,t,e)},R}async function Ie(e,t){const n=await he(e,t.expression);return n===R?R:new x(n)}async function Me(e,t){const n=await he(e,t.test);if(!0===n)return me(e,t.consequent);if(!1===n)return null!==t.alternate?me(e,t.alternate):R;throw new w(e,"BooleanConditionRequired",t)}async function Ae(e,t){return Ne(e,t,0)}async function Ne(e,t,n){if(n>=t.body.length)return R;const r=await me(e,t.body[n]);return r instanceof v||r===F||r===j||n===t.body.length-1?r:Ne(e,t,n+1)}async function Be(e,t){if(null===t.argument)return new v(R);const n=await he(e,t.argument);return new v(n)}async function Ue(t,n){if(null!=t.localScope)throw ne().error("Function declarations are only valid in global scope."),new w(t,"NeverReach",n);const r=e(n.id);if(!(r in t.globalScope))throw ne().error(`Function "${r}" not declared.`),new w(t,"NeverReach",n);const o=i(n),a=n.params.map(t=>e(t)),s=Array.from(o).filter(e=>!a.includes(e));return t.globalScope[r]={value:new fe(n,t,a,s)},R}async function Ge(e,t){const n=ie(e,t.specifiers[0].local),r=e.libraryResolver;if(null==r)throw ne().error("Internal error: module loader not initialized"),new w(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 we.load(e,o.syntax),r._moduleSingletons?.set(o.uri,a)),n.scope[n.id]={value:a},R}async function Le(e,t){return await me(e,t.declaration),R}async function ze(e,t){for(const n of t.declarations)await De(e,n);return R}async function De(e,t){let n=null;n=null===t.init?null:await he(e,t.init),n===R&&(n=null);const r=ie(e,t.id);r.scope[r.id]={value:n}}async function _e(e,t){return Ze(e,await he(e,t.object),t)}async function Ze(e,t,n){const r=n.computed?await he(e,n.property):n.property.name;return u(t,r)}async function qe(e,t,n){for(const r of n)switch(r.type){case"MemberExpression":t=await Ze(e,t,r);break;case"CallExpression":t=await Je(e,t,r);break;default:throw new w(null,"Unrecognized",r)}return t}async function Pe(e,t,n){const r=n.computed?await he(e,n.property):n.property.name;return l(t,r)}async function We(e,t){const n=a(t);let r=await he(e,n.root);for(const o of n.sections){const t=await Pe(e,r,o.checked);if(null==t)return null;r=await qe(e,t,o.unchecked)}return r}async function Ve(e,t){const n=await he(e,t.argument);if(Q(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 w(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 w(e,"UnsupportUnaryOperator",t)}async function Ke(e,t){const n=[];for(let r=0;r<t.elements.length;r++)n.push(await he(e,t.elements[r]));for(let r=0;r<n.length;r++){if(k(n[r]))throw new w(e,"NoFunctionInArray",t);n[r]===R&&(n[r]=null)}return n}async function Te(e,t){const n=await he(e,t.left),r=await he(e,t.right);switch(t.operator){case"|":case"<<":case">>":case">>>":case"^":case"&":return A(E(n),E(r),t.operator);case"==":return C(n,r);case"!=":return!C(n,r);case"<":case">":case"<=":case">=":return M(n,r,t.operator);case"+":return X(n)||X(r)?I(n)+I(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 w(e,"UnsupportedOperator",t)}}async function Ye(e,t){const n=await he(e,t.left);if(!Q(n))throw new w(e,"LogicalExpressionOnlyBoolean",t);switch(t.operator){case"||":{if(!0===n)return n;const r=await he(e,t.right);if(Q(r))return r;throw new w(e,"LogicExpressionOrAnd",t)}case"&&":{if(!1===n)return n;const r=await he(e,t.right);if(Q(r))return r;throw new w(e,"LogicExpressionOrAnd",t)}default:throw t.operator,new w(e,"LogicExpressionOrAnd",t)}}function $e(e,t){return se(e,t)}async function He(e,t){return Je(e,"Identifier"===t.callee.type?se(e,t.callee,"FunctionNotFound"):await he(e,t.callee),t)}async function Je(e,t,n){if(k(t))return t.call(e,n);throw new w(e,"CallNonFunction",n)}async function Qe(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 he(e,t.expressions[r]);if(k(o))throw new w(e,"NoFunctionInTemplateLiteral",t);n+=I(o)}r++}return n}async function Xe(e,t){O(null===t.arguments?[]:t.arguments,3,3,e,t);const n=await he(e,t.arguments[0]);if(!1===Q(n))throw new w(e,"BooleanConditionRequired",t);return he(e,n?t.arguments[1]:t.arguments[2])}async function et(e,t){O(null===t.arguments?[]:t.arguments,2,3,e,t);const n=await he(e,t.arguments[0]);if(3===t.arguments.length){const r=await he(e,t.arguments[1]),o=s(n,r);return null!=o&&""!==o?o:he(e,t.arguments[2])}return null==n||""===n?he(e,t.arguments[1]):n}async function tt(e,t){if(t.arguments.length<2)throw new w(e,"WrongNumberOfParameters",t);if(2===t.arguments.length)return he(e,t.arguments[1]);if((t.arguments.length-1)%2==0)throw new w(e,"WrongNumberOfParameters",t);return nt(e,t,1,await he(e,t.arguments[0]))}async function nt(e,t,n,r){const o=await he(e,t.arguments[n]);if(C(o,r))return he(e,t.arguments[n+1]);const a=t.arguments.length-n;return 1===a?he(e,t.arguments[n]):2===a?null:3===a?he(e,t.arguments[n+2]):nt(e,t,n+2,r)}async function rt(e,t){if(t.arguments.length<3)throw new w(e,"WrongNumberOfParameters",t);if(t.arguments.length%2==0)throw new w(e,"WrongNumberOfParameters",t);const n=await he(e,t.arguments[0]);if(!1===Q(n))throw new w(e,"BooleanConditionRequired",t.arguments[0]);return ot(e,t,0,n)}async function ot(e,t,n,r){if(!0===r)return he(e,t.arguments[n+1]);if(3===t.arguments.length-n)return he(e,t.arguments[n+2]);const o=await he(e,t.arguments[n+2]);if(!1===Q(o))throw new w(e,"ModuleExportNotFound",t.arguments[n+2]);return ot(e,t,n+2,o)}function at(){const e=Object.create(null);Z(e,ue),T(e,ue),q(e,ue,$e),V(e,ue),W(e,ue),K(e,ue),Y(e,ue),P({functions:e,compiled:!1,signatures:null,evaluateIdentifier:null,mode:"async",standardFunction:ue,standardFunctionAsync:de}),e.iif=Xe,e.defaultvalue=et,e.decode=tt,e.when=rt;const t=function(){this.textformatting={value:p.textFormatting()}};t.prototype=Object.create(null),t.prototype.infinity=Object.freeze({value:Number.POSITIVE_INFINITY}),t.prototype.pi=Object.freeze({value:Math.PI});for(const[n,r]of Object.entries(e))t.prototype[n]=Object.freeze({value:new m(r)});return t}const it=at();function st(e){const t={mode:"async",compiled:!1,functions:Object.create(null),signatures:[],standardFunction:ue,standardFunctionAsync:de,evaluateIdentifier:$e};for(let n=0;n<e.length;n++)e[n].registerFunctions(t);for(const[n,r]of Object.entries(t.functions))it.prototype[n]=Object.freeze({value:new m(r)});for(let n=0;n<t.signatures.length;n++)z(t.signatures[n],"async")}function ct(e){console.log(e)}function lt(n,a){const i=new Set(Object.keys(a?.vars||{}).map(t=>e(t))),s=new Set(Object.keys(a?.customfunctions||{}).map(t=>e(t))),{globals:c,exports:l}=o(n);return async e=>{const o=e.spatialReference??H.WebMercator;let a=null;n.usesModules&&(a=new r(new Map,n.loadedModules));const u=new it;for(const t of s)null!=e.customfunctions&&t in e.customfunctions?u[t]={value:new m(e.customfunctions[t])}:u[t]=re;for(const t of i){if(null==e.vars||!(t in e.vars)){t in u||(u[t]=re);continue}const n=e.vars[t]??null;J(n)?u[t]={value:h.createFromGraphic(n,e.timeZone??null)}:u[t]={value:n}}for(const t of c)t in u||(u[t]=re);const f={lrucache:e.lrucache,interceptor:e.interceptor,services:e.services,console:e.console??ct,abortSignal:e.abortSignal??t,timeZone:e.timeZone??null,spatialReference:o,track:e.track,depthCounter:{depth:1},libraryResolver:a,exports:l,localScope:null,globalScope:u},p=await Ae(f,n);if(p instanceof v||p instanceof x){const e=p.value;if(S(e))return null;if(k(e))throw new w(f,"IllegalResult",null);return e}if(S(p))return null;if(p===F)throw new w(f,"IllegalResult",null);if(p===j)throw new w(f,"IllegalResult",null);throw new w(f,"NeverReach",null)}}function ut(e,t){return lt(e,t)(t)}st([_]),st([D]);export{ut as executeScript,st as extend,lt as prepareScript};
|
package/arcade/arcadeCompiler.js
CHANGED
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/5.0/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
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{neverReachedSilent as W}from"../core/compilerUtils.js";import K from"../core/Logger.js";import{isPromiseLike as Z}from"../core/promiseUtils.js";import{addMany as J}from"../core/SetUtils.js";import Y from"../geometry/SpatialReference.js";import{isGraphic as H,isArray as Q,isNumber as X,isString as ee,isBoolean as ne}from"../support/guards.js";const te=()=>K.getLogger("esri.arcade.arcadeCompiler");class re{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 oe(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 le(n,t,r="InvalidIdentifier"){const o=oe(n,e(t));if(null!=o)return o;throw new d(null,r,t)}function ae(n,t,r){const o=oe(n,e(t));if(null==o)throw te().error(`Internal error: Symbol "${t.name}" not declared.`),new d(null,"NeverReach",t);if(null!=r&&o.scope!==r)throw te().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 se(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 te().error(`Internal error: no reflection metadata for ${e._SymbolsMapId}`);const l=t.get(r);if(null!=l)return ln.requireInitialized(e[l])}const l=o.globals.get(r);if(null!=l)return ln.requireInitialized(n.globalScope[l]);if(o.standardGlobals.has(r))return ln.requireInitialized(n.globalScope[r]);throw new f(null,"InvalidIdentifier",null)}class ie extends w{constructor(e,n){super(),this.paramCount=n,this.fn=e}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 Z(a)?a.then(e=>$(e,t,r)):a})}}function ue(e,n,t){try{return t(e,null,n.arguments)}catch(r){throw r}}function ce(e,n,t,r,l,a){const{globals:s,exports:i}=o(e);J(s,t);const u=new re,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)}] = ${rn};`)}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;",Fe(d,e),"return lastStatement;"].join("\n"),symbolMetadata:{standardGlobals:n,exports:i,globals:m,locals:p},moduleFactoryMap:f}}function me(e,n){switch(n.type){case"AssignmentExpression":return Se(e,n);case"UpdateExpression":return $e(e,n);case"TemplateLiteral":return Ue(e,n);case"Identifier":return qe(e,n);case"MemberExpression":return Ne(e,n);case"Literal":return null===n.value||void 0===n.value?"null":JSON.stringify(n.value);case"CallExpression":return ze(e,n);case"UnaryExpression":return Le(e,n);case"BinaryExpression":return De(e,n);case"LogicalExpression":return Ge(e,n);case"ArrayExpression":return Re(e,n);case"ObjectExpression":return fe(e,n);case"MemberAccessChainExpression":return Te(e,n);case"SafeMemberExpression":throw te().error("SafeMemberExpression outside of MemberAccessChainExpression"),new d(null,"Unrecognized",n);default:throw new d(null,"Unrecognized",n)}}function pe(e,n){switch(n.type){case"EmptyStatement":return"lc.voidOperation";case"VariableDeclaration":return ke(e,n);case"BlockStatement":return Fe(e,n);case"FunctionDeclaration":return Ae(e,n);case"ImportDeclaration":return Oe(e,n);case"ExportNamedDeclaration":return pe(e,n.declaration);case"ReturnStatement":return Me(e,n);case"IfStatement":return Ce(e,n);case"ExpressionStatement":return xe(e,n);case"BreakStatement":return"break";case"ContinueStatement":return"continue";case"ForStatement":return be(e,n);case"ForInStatement":return ye(e,n);case"ForOfStatement":return we(e,n);case"WhileStatement":return ve(e,n);default:throw new d(null,"Unrecognized",n)}}function fe(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+"'":me(e,o.key);r>0&&(t+=","),t+="lang.strCheck("+l+",'ObjectExpression'),lang.aCheck("+me(e,o.value)+", 'ObjectExpression')"}return t+="])",t}function de(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)}`,` ${pe(e,r)}`,"}","lastStatement = lc.voidOperation;"].join("\n")}function ge(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)};`,` ${pe(e,r)}`,"}","lastStatement = lc.voidOperation;"].join("\n")}function he(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);`,` ${pe(e,r)}`,"}"].join("\n")}function ye(e,n){const t=e.symbols.nextTempVarId();let r,o,l="var "+t+" = "+me(e,n.right)+";\n";switch("VariableDeclaration"===n.left.type?(r=ae(e,n.left.declarations[0].id),l+=pe(e,n.left)):r=le(e,n.left),r.scope){case"local":o=`lscope['${r.var}']`;break;case"global":o=`gscope['${r.var}']`;break;default:throw W(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+=de(e,o,`${t}.length`,n.body),l+="}\n",l+="else if (lc.isImmutableArray("+t+")) {\n",l+=de(e,o,`${t}.length()`,n.body),l+="}\n",l+="else if (( "+t+" instanceof lang.Dictionary) || lc.isDictionaryLike("+t+")) {\n",l+=ge(e,o,`${t}.keys()`,n.body),l+="}\n",e.isAsync&&(l+="else if (lc.isFeatureSet("+t+")) {\n",l+=he(e,o,t,n.body),l+="}\n"),l+=`else if (lc.isGeometry(${t})) {\n`,l+=ge(e,o,`lang.getGeometryKeys(${t})`,n.body),l+="}\n",l+="else { lastStatement = lc.voidOperation; } \n",l}function we(e,n){const t=e.symbols.nextTempVarId();let r,o,l="var "+t+" = "+me(e,n.right)+";\n";switch("VariableDeclaration"===n.left.type?(r=ae(e,n.left.declarations[0].id),l+=pe(e,n.left)):r=le(e,n.left),r.scope){case"local":o=`lscope['${r.var}']`;break;case"global":o=`gscope['${r.var}']`;break;default:throw W(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+=de(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+=de(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+=ge(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+=he(e,o,t,n.body),l+="}\n"),l+=`else if (lc.isGeometry(${t})) {\n`,l+=ge(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 be(e,n){let t="lastStatement = lc.voidOperation; \n";null!==n.init&&("VariableDeclaration"===n.init.type?t+=pe(e,n.init):t+=me(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 "+me(e,n.update)+" \n}\n "+r+"=false; \n"),null!==n.test&&(t+="var "+o+" = "+me(e,n.test)+"; ",t+="if ("+o+"===false) { break; } else if ("+o+"!==true) { lang.error('BooleanConditionRequired'); }\n"),t+=pe(e,n.body),null!==n.update&&(t+="\n "+me(e,n.update)),t+="\n"+r+" = true; \n} while(true); lastStatement = lc.voidOperation; ",t}function $e(e,n){if("CallExpression"===n.argument.type)throw new d(null,"NeverReach",n);let t;if("MemberExpression"===n.argument.type){const r=me(e,n.argument.object);return t=!0===n.argument.computed?me(e,n.argument.property):"'"+n.argument.property.name+"'","lang.memberupdate("+r+","+t+",'"+n.operator+"',"+n.prefix+")"}const r=le(e,n.argument);switch(je(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 W(r.scope),new d(null,"NeverReach",n.argument)}}function ve(e,n){let t="lastStatement = lc.voidOperation; \n";const r=e.symbols.nextTempVarId();return t+=`\n var ${r} = true;\n do {\n ${r} = ${me(e,n.test)};\n if (${r}==false) {\n break;\n }\n if (${r}!==true) {\n lang.error('BooleanConditionRequired');\n }\n ${pe(e,n.body)}\n }\n while (${r} !== false);\n lastStatement = lc.voidOperation;\n `,t}function Se(e,n){const t=me(e,n.right);if("MemberExpression"===n.left.type){let r;const o=me(e,n.left.object);return r=!0===n.left.computed?me(e,n.left.property):"'"+n.left.property.name+"'","lang.assignmember("+o+","+r+",'"+n.operator+"',"+t+")"}const r=le(e,n.left);switch(je(r),r.scope){case"local":return`lscope['${r.var}']=lang.assign(${t},'${n.operator}', ${"="===n.operator?"null":on(`lscope['${r.var}']`)})`;case"global":return`gscope['${r.var}']=lang.assign(${t},'${n.operator}', ${"="===n.operator?"null":on(`gscope['${r.var}']`)})`;default:throw W(r.scope),new d(null,"NeverReach",n.left)}}function xe(e,n){return"AssignmentExpression"===n.expression.type?"lastStatement = lc.voidOperation; "+me(e,n.expression)+"; \n ":"lastStatement = "+me(e,n.expression)+"; "}function Ie(e,n){return"BlockStatement"===n.type?pe(e,n):"ReturnStatement"===n.type||"BreakStatement"===n.type||"ContinueStatement"===n.type?pe(e,n)+"; ":"ExpressionStatement"===n.type?pe(e,n):pe(e,n)+"; "}function Ce(e,n){return`if (lang.mustBoolean(${me(e,n.test)}, runtimeCtx) === true) {\n ${Ie(e,n.consequent)}\n } `+(null!==n.alternate?"IfStatement"===n.alternate.type?" else "+Ce(e,n.alternate):` else {\n ${Ie(e,n.alternate)}\n }\n`:" else {\n lastStatement = lc.voidOperation;\n }\n")}function Fe(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+=pe(e,n.body[r])+"; \n":t+=pe(e,n.body[r])+" \n");return t}function Me(e,n){if(null===n.argument)return"return lc.voidOperation";return"return "+me(e,n.argument)}function Oe(e,n){const t=ae(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]=mn(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); ",je(t),`gscope['${t.var}']=${l}`}function je(e){if("global"===e.scope)switch(e.name){case"iif":case"when":case"defaultvalue":case"decode":throw new g}}function Ae(n,t){const r=new Set(t.params.map(n=>e(n))),o=l(t);J(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=ae(u,t.params[e],"local");je(n),c.push(`lscope['${n.var}'] = arguments[${e}];`)}for(const[e,l]of s)r.has(e)||c.push(`lscope['${l}'] = ${rn};`);const m=Fe(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=ae(n,t.id,"global");return je(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(Ee(e,n.declarations[r]));return t.join("\n")+" \n lastStatement= lc.voidOperation; \n"}function Ee(e,n){const t=null===n.init?"null":me(e,n.init),r=ae(e,n.id);switch(je(r),r.scope){case"local":return`lscope['${r.var}']=${t};`;case"global":return`gscope['${r.var}']=${t};`;default:throw W(r.scope),new d(null,"NeverReach",n.id)}}function Ne(e,n){return Be(e,me(e,n.object),n)}function Be(e,n,t){return`lang.member(${n}, ${t.computed?me(e,t.property):`'${t.property.name}'`})`}function _e(e,n,t){for(const r of t)switch(r.type){case"MemberExpression":n=Be(e,n,r);break;case"CallExpression":n=Pe(e,n,r.arguments);break;default:throw new d(null,"Unrecognized",r)}return n}function Ve(e,n,t){return`lang.tryMember(${n}, ${t.computed?me(e,t.property):`'${t.property.name}'`})`}function Te(e,n){const t=a(n);let r="",o=me(e,t.root);for(const l of t.sections)r+=`(${e.symbols.safeAccessTempVarId} = ${Ve(e,o,l.checked)}) == null ? null : `,o=_e(e,e.symbols.safeAccessTempVarId,l.unchecked);return`(${r}${o})`}function Le(e,n){try{return"lang.unary("+me(e,n.argument)+",'"+n.operator+"')"}catch(t){throw t}}function Re(e,n){try{const t=[];for(let r=0;r<n.elements.length;r++)"Literal"===n.elements[r].type?t.push(me(e,n.elements[r])):t.push("lang.aCheck("+me(e,n.elements[r])+",'ArrayExpression')");return"["+t.join(",")+"]"}catch(t){throw t}}function Ue(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("+me(e,n.expressions[r])+", 'TemplateLiteral'))":""),r++);return"(["+t.join(",")+"]).join('')"}catch(t){throw t}}function De(e,n){try{return"lang.binary("+me(e,n.left)+","+me(e,n.right)+",'"+n.operator+"')"}catch(t){throw t}}function Ge(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("+me(e,n.left)+") "+n.operator+" lang.logicalCheck("+me(e,n.right)+"))";throw new d(null,"LogicExpressionOrAnd",null)}catch(t){throw t}}function qe(e,n){const t=le(e,n);switch(je(t),t.scope){case"local":return on(`lscope['${t.var}']`);case"global":return on(`gscope['${t.var}']`);default:throw W(t.scope),new d(null,"NeverReach",n)}}function ze(e,n){if("Identifier"===n.callee.type){const t=le(e,n.callee,"FunctionNotFound");if("global"===t.scope)switch(t.name){case"iif":return We(e,n);case"when":return Ze(e,n);case"defaultvalue":return Ke(e,n);case"decode":return Je(e,n)}}return Pe(e,me(e,n.callee),n.arguments)}function Pe(e,n,t){const r=`lang.callfunc(${n}, [${t.map(n=>me(e,n)).join(", ")}], runtimeCtx)`;return e.isAsync?`(yield ${r})`:r}function We(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} = ${me(e,n.arguments[0])};\n\n if (${t} === true) {\n return ${me(e,n.arguments[1])};\n }\n else if (${t} === false) {\n return ${me(e,n.arguments[2])};\n }\n else {\n lang.error('ExecutionErrorCodes.BooleanConditionRequired');\n }\n ${e.isAsync?"})}()))":"}()"}`}catch(t){throw t}}function Ke(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} = ${me(e,n.arguments[0])};\n var ${r} = ${me(e,n.arguments[1])};\n ${t} = lang.getNestedOptionalValue(${t}, ${r});\n return ${t} != null && ${t} !== "" ? ${t} : ${me(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} = ${me(e,n.arguments[0])};\n if (${t} === null) {\n return ${me(e,n.arguments[1])};\n }\n if (${t} === "") {\n return ${me(e,n.arguments[1])};\n }\n if (${t} === undefined) {\n return ${me(e,n.arguments[1])};\n }\n return ${t};\n ${e.isAsync?"})}()))":"}()"}`}catch(t){throw t}}function Ze(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(${me(e,n.arguments[o])}, runtimeCtx);\n if (${t} === true ) {\n return ${me(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 ${me(e,n.arguments[n.arguments.length-1])}\n ${e.isAsync?"})}()))":"}()"}`}catch(t){throw t}}function Je(e,n){try{if(n.arguments.length<2)throw new d(null,"WrongNumberOfParameters",n);if(2===n.arguments.length)return`(${me(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 ${me(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} = ${me(e,a)};\n if (lang.binary(${o}, ${t}, "==") === true ) {\n return ${me(e,s)}\n }\n `}}return`${e.isAsync?"(yield (function() { \n return lang.__awaiter(this, void 0, void 0, function* () {":"function() {"}\n var ${t} = ${me(e,n.arguments[0])};\n ${r}\n return ${me(e,n.arguments[n.arguments.length-1])}\n ${e.isAsync?"})}()))":"}()"}`}catch(t){throw t}}function Ye(e,n){try{return ue(e,n,(e,n)=>{throw new f(e,"Unrecognized",n)})}catch(t){throw t}}function He(e){const n=function(){this.textformatting=p.textFormatting()};n.prototype=Object.create(null),n.provided=new Set(["textformatting","infinity","pi"]),n.prototype.infinity=Number.POSITIVE_INFINITY,n.prototype.pi=Math.PI;for(const[t,r]of Object.entries(e))n.prototype[t]=new y(r),n.provided.add(t);return n}function Qe(){const e=Object.create(null);L(e,ue),z(e,ue),R(e,ue,se),G(e,ue),U(e,ue),q(e,ue),P(e,ue),e.iif=Ye,e.decode=Ye,e.when=Ye,e.defaultvalue=Ye;const n=He(e);D(e,ue);return{ScopeSync:He(e),ScopeAsync:n}}const{ScopeSync:Xe,ScopeAsync:en}=Qe();function nn(e,n){const t={mode:n,compiled:!0,functions:Object.create(null),signatures:[],standardFunction:ue,standardFunctionAsync:ue,evaluateIdentifier:se};for(const r of e)r.registerFunctions(t);if("sync"===n)for(const[r,o]of Object.entries(t.functions))Xe.prototype[r]=new y(o),Xe.provided.add(r);else for(const[r,o]of Object.entries(t.functions))en.prototype[r]=new y(o),en.provided.add(r);for(const r of t.signatures)_(r,n)}nn([T],"sync"),nn([T],"async"),nn([V],"async");const tn=Symbol("uninitialized"),rn="lang.uninitialized";function on(e){return`lang.requireInitialized(${e})`}const ln={uninitialized:tn,requireInitialized(e){if(e===tn)throw new f(null,"InvalidIdentifier",null);return e},isNumber:e=>X(e),isArray:e=>Q(e),isImmutableArray:e=>C(e),isDictionaryLike:e=>B(e),isString:e=>ee(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&&!Z(l.value);)l=o.next(l.value);return l.done?l.value:new Promise((e,n)=>{function t(r){for(;!r.done;){if(Z(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 Z(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:ie,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===ee(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===ee(e))throw new f(null,"KeyMustBeString",null);return e},unary(e,n){if(ne(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===ne(e))throw new f(null,"LogicExpressionOrAnd",null);return e},logical(e,n,t){if(ne(e)&&ne(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 ee(e)||ee(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 ee(t)||ee(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(Q(e)){if(!X(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===ee(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===ee(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 cn))throw new f(null,"InvalidIdentifier",null);if(!1===ee(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(Q(e)){if(!X(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===ee(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===ee(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 cn))throw new f(null,"InvalidIdentifier",null);if(!1===ee(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 an(e){console.log(e)}function sn(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=ce(t,l?en.provided:Xe.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:ln,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??Y.WebMercator,o=t?new en:new Xe;for(const n of u)null!=e.customfunctions&&n in e.customfunctions?o[n]=e.customfunctions[n]??null:o[n]=tn;for(const n of i){if(null==e.vars||!(n in e.vars)){n in o||(o[n]=tn);continue}const t=e.vars[n]??null;H(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??an,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 un(){return nn([await import("./functions/geomasync.js")],"async"),!0}class cn 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=ln.requireInitialized(r[t]);if(x(o)&&!(o instanceof b)){const e=new b;return e.fn=o,e.parameterEvaluator=ue,e.context=this.moduleContext,r[t]=e,e}return o}}function mn(e,t,o){const l=new r(null,e.loadedModules),a=ce(e,o?en.provided:Xe.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:ln,prepareModule:e=>new cn(e),prepare(e,r){const o=e.spatialReference??Y.WebMercator,l=r?new en:new Xe;return{lrucache:e.lrucache,interceptor:e.interceptor,services:e.services,console:e.console??an,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{ie as UserDefinedCompiledFunction,sn as compileScript,un as enableAsyncSupport,nn as extend};
|
|
5
|
+
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 D}from"./functions/geometry.js";import{registerFunctions as U}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,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}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 De(e,n);case"LogicalExpression":return Ue(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 De(e,n){try{return"lang.binary("+ce(e,n.left)+","+ce(e,n.right)+",'"+n.operator+"')"}catch(t){throw t}}function Ue(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","pi"]),n.prototype.infinity=Number.POSITIVE_INFINITY,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),D(e,ie),q(e,ie),P(e,ie),e.iif=Je,e.decode=Je,e.when=Je,e.defaultvalue=Je;const n=Ye(e);U(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};
|
package/arcade/arcadeRuntime.js
CHANGED
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/5.0/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{toSymbolId as e,neverAbortedSignal as t}from"./arcadeEnvironment.js";import{ArcadeModule as r}from"./ArcadeModule.js";import{ArcadeModuleLoader as n}from"./ArcadeModuleLoader.js";import{collectDeclaredGlobalNames as o,collectDeclaredLocalNames as i,flattenAccessChain as s}from"./compilerUtils.js";import{getNestedOptionalValue as a,getGeometryKeys as l,getGeometryMember as c,tryGetMember as u,getMember as f}from"./containerUtils.js";import p from"./Dictionary.js";import{ArcadeExecutionError as h,ensureArcadeExecutionError as d}from"./executionError.js";import{Feature as w}from"./Feature.js";import{NativeFunction as m,ArcadeFunction as g,ScopeMarshalledFunction as b,wrapModuleScopedResponse as y}from"./FunctionWrapper.js";import{R as v,I as x,q as S,i as R,z as F,A as j,v as k,B as I,w as O,j as A,y as C,h as M,r as E,s as N,u as B,x as U,k as G}from"../chunks/languageUtils.js";import{addFunctionDeclaration as z}from"./treeAnalysis.js";import{A as D}from"../chunks/array.js";import{registerFunctions as L}from"./functions/date.js";import{registerFunctions as _}from"./functions/feature.js";import{registerFunctions as Z}from"./functions/geometry.js";import{registerFunctions as q}from"./functions/geomsync.js";import{registerFunctions as W}from"./functions/maths.js";import{registerFunctions as P}from"./functions/stats.js";import{registerFunctions as V}from"./functions/string.js";import{registerFunctions as T}from"./functions/track.js";import{neverReachedSilent as K}from"../core/compilerUtils.js";import Y from"../core/Logger.js";import $ from"../geometry/SpatialReference.js";import{isGraphic as H,isBoolean as J,isArray as Q,isString as X,isNumber as ee}from"../support/guards.js";const te=()=>Y.getLogger("esri.arcade.arcadeRuntime"),re=Symbol("uninitialized");function ne(e){if(e===re)throw new h(null,"InvalidIdentifier",null)}function oe(e){return ne(e),e}function ie(t,r){const n=e(r);if(null!==t.localScope){const e=t.localScope[n];if(void 0!==e)return{scope:t.localScope,id:n,var:e}}const o=t.globalScope[n];if(void 0!==o)return{scope:t.globalScope,id:n,var:o};throw new h(t,"InvalidIdentifier",r)}function se(t,r,n="InvalidIdentifier"){const o=e(r);if(null!==t.localScope){const e=t.localScope[o];if(void 0!==e)return ne(e),e.value}const i=t.globalScope[o];if(void 0!==i)return ne(i),i.value;throw new h(t,n,r)}const ae=function(){};ae.prototype=Object.freeze(Object.create(null));class le extends g{constructor(e,t,r,n){super(),this.definition=e,this.context=t,this._params=r,this._locals=n}createFunction(e){return(...t)=>{const r={spatialReference:this.context.spatialReference,console:this.context.console,services:this.context.services,timeZone:this.context.timeZone??null,lrucache:this.context.lrucache,exports:this.context.exports,libraryResolver:this.context.libraryResolver,interceptor:this.context.interceptor,abortSignal:this.context.abortSignal,localScope:new ae,depthCounter:{depth:e.depthCounter.depth+1},globalScope:this.context.globalScope,track:this.context.track};if(r.depthCounter.depth>64)throw new h(e,"MaximumCallDepth",null);return ce(r,this.definition.body,this._params,this._locals,t,null)}}call(e,t){return pe(e,t,(r,n,o)=>{const i={spatialReference:e.spatialReference,services:e.services,globalScope:e.globalScope,depthCounter:{depth:e.depthCounter.depth+1},libraryResolver:e.libraryResolver,exports:e.exports,timeZone:e.timeZone??null,console:e.console,lrucache:e.lrucache,interceptor:e.interceptor,abortSignal:e.abortSignal,localScope:new ae,track:e.track};if(i.depthCounter.depth>64)throw new h(e,"MaximumCallDepth",t);return ce(i,this.definition.body,this._params,this._locals,o,t)})}marshalledCall(e,t,r,n){return n(e,t,(o,i,s)=>{const a={spatialReference:e.spatialReference,globalScope:r.globalScope,services:e.services,depthCounter:{depth:e.depthCounter.depth+1},libraryResolver:e.libraryResolver,exports:e.exports,console:e.console,timeZone:e.timeZone??null,lrucache:e.lrucache,interceptor:e.interceptor,abortSignal:e.abortSignal,localScope:new ae,track:e.track};return s=s.map(t=>!R(t)||t instanceof b?t:y(t,e,n)),y(ce(a,this.definition.body,this._params,this._locals,s,t),r,n)})}}function ce(e,t,r,n,o,i){try{if(r.length!==o.length)throw new h(e,"WrongNumberOfParameters",i);if(null!=e.localScope){for(let t=0;t<r.length;t++)e.localScope[r[t]]={value:o[t]};for(const t of n)e.localScope[t]=re}const s=de(e,t);if(s instanceof v)return s.value;if(s===F)throw new h(e,"UnexpectedToken",i);if(s===j)throw new h(e,"UnexpectedToken",i);return s instanceof x?s.value:s}catch(s){throw s}}class ue extends r{constructor(e){super(),this.moduleGlobalContext=e}global(t){const r=e(t);if(this.moduleGlobalContext.exports.has(r))throw new h(null,"ModuleExportNotFound",null);const n=this.moduleGlobalContext.globalScope[r];if(ne(n),R(n.value)&&!(n.value instanceof b)){const e=new b;return e.fn=n.value,e.parameterEvaluator=pe,e.context=this.moduleGlobalContext,this.moduleGlobalContext.globalScope[r]={value:e},e}return n.value}setGlobal(t,r){if(R(r))throw new h(null,"AssignModuleFunction",null);const n=e(t);if(this.moduleGlobalContext.exports.has(n))throw new h(null,"ModuleExportNotFound",null);this.moduleGlobalContext.globalScope[n]={value:r}}hasGlobal(t){return this.moduleGlobalContext.exports.has(e(t))}static load(e,r){const{globals:i,exports:s}=o(r),a=new et;for(const t of i)t in a||(a[t]=re);const l=e.spatialReference??$.WebMercator,c={lrucache:e.lrucache,interceptor:e.interceptor,services:e.services,console:e.console??rt,abortSignal:t,timeZone:e.timeZone??null,spatialReference:l,track:e.track,depthCounter:{depth:1},libraryResolver:new n(e.libraryResolver._moduleSingletons,r.loadedModules),exports:s,localScope:null,globalScope:a};return ke(c,r),new ue(c)}}function fe(e,t){const r=[];for(let n=0;n<t.arguments.length;n++)r.push(he(e,t.arguments[n]));return r}function pe(e,t,r){try{return!0===t.preparsed?r(e,null,t.arguments):r(e,t,fe(e,t))}catch(n){throw n}}function he(e,t){try{switch(t.type){case"AssignmentExpression":return Re(e,t);case"UpdateExpression":return xe(e,t);case"TemplateLiteral":return We(e,t);case"Identifier":return Pe(e,t);case"MemberExpression":return Ne(e,t);case"Literal":return t.value;case"CallExpression":return Ve(e,t);case"UnaryExpression":return De(e,t);case"BinaryExpression":return _e(e,t);case"LogicalExpression":return Ze(e,t);case"ArrayExpression":return Le(e,t);case"ObjectExpression":return we(e,t);case"MemberAccessChainExpression":return ze(e,t);case"SafeMemberExpression":throw te().error("SafeMemberExpression outside of MemberAccessChainExpression"),new h(null,"Unrecognized",t);default:throw K(t),new h(e,"Unrecognized",t)}}catch(r){throw d(e,t,r)}}function de(e,t){switch(t.type){case"EmptyStatement":return k;case"VariableDeclaration":return Me(e,t);case"ImportDeclaration":return Ae(e,t);case"ExportNamedDeclaration":return Ce(e,t);case"BlockStatement":return ke(e,t);case"FunctionDeclaration":return Oe(e,t);case"ReturnStatement":return Ie(e,t);case"IfStatement":return je(e,t);case"ExpressionStatement":return Fe(e,t);case"BreakStatement":return F;case"ContinueStatement":return j;case"ForStatement":return be(e,t);case"ForInStatement":return me(e,t);case"ForOfStatement":return ge(e,t);case"WhileStatement":return ye(e,t);default:throw new h(e,"Unrecognized",t)}}function we(e,t){const r=Object.create(null),n=new Map;for(let i=0;i<t.properties.length;i++){const o=t.properties[i],s="Identifier"===o.key.type?o.key.name:he(e,o.key),a=he(e,o.value);if(R(a))throw new h(e,"NoFunctionInDictionary",t);if(!1===X(s))throw new h(e,"KeyMustBeString",t);let l=s.toString();const c=l.toLowerCase();n.has(c)?l=n.get(c):n.set(c,l),r[l]=a===k?null:a}const o=new p(r);return o.immutable=!1,o}function me(e,t){const r=he(e,t.right);"VariableDeclaration"===t.left.type&&Me(e,t.left);const n=ie(e,"VariableDeclaration"===t.left.type?t.left.declarations[0].id:t.left);if(Q(r)||X(r)){const o=r.length;for(let r=0;r<o;r++){n.scope[n.id]={value:r};const o=de(e,t.body);if(o===F)break;if(o instanceof v)return o}return k}if(A(r)){for(let o=0;o<r.length();o++){n.scope[n.id]={value:o};const r=de(e,t.body);if(r===F)break;if(r instanceof v)return r}return k}if(r instanceof p||C(r)){const o=r.keys();for(let r=0;r<o.length;r++){n.scope[n.id]={value:o[r]};const i=de(e,t.body);if(i===F)break;if(i instanceof v)return i}return k}if(M(r)){for(const o of l(r)){n.scope[n.id]={value:o};const r=de(e,t.body);if(r===F)break;if(r instanceof v)return r}return k}return k}function ge(e,t){const r=he(e,t.right);"VariableDeclaration"===t.left.type&&de(e,t.left);const n=ie(e,"VariableDeclaration"===t.left.type?t.left.declarations[0].id:t.left);if(Q(r)||X(r)){const o=r.length;for(let i=0;i<o;i++){if(i>=r.length)throw new h(e,"OutOfBounds",t);n.scope[n.id]={value:r[i]};const o=de(e,t.body);if(o===F)break;if(o instanceof v)return o}return k}if(A(r)){for(let o=0;o<r.length();o++){n.scope[n.id]={value:r.get(o)};const i=de(e,t.body);if(i===F)break;if(i instanceof v)return i}return k}if(r instanceof p||C(r)){for(const o of r.keys()){const i=r.field(o);n.scope[n.id]={value:p.containerEntry(o,i)};const s=de(e,t.body);if(s===F)break;if(s instanceof v)return s}return k}if(M(r)){for(const o of l(r)){const i=c(r,o,e,t);n.scope[n.id]={value:p.containerEntry(o,i)};const s=de(e,t.body);if(s===F)break;if(s instanceof v)return s}return k}return k}function be(e,t){null!==t.init&&("VariableDeclaration"===t.init.type?de(e,t.init):he(e,t.init));const r={testResult:!0,lastAction:k};do{ve(e,t,r)}while(!0===r.testResult);return r.lastAction instanceof v?r.lastAction:k}function ye(e,t){const r={testResult:!0,lastAction:k};if(r.testResult=he(e,t.test),!1===r.testResult)return k;if(!0!==r.testResult)throw new h(e,"BooleanConditionRequired",t);for(;!0===r.testResult&&(r.lastAction=de(e,t.body),r.lastAction!==F)&&!(r.lastAction instanceof v);)if(r.testResult=he(e,t.test),!0!==r.testResult&&!1!==r.testResult)throw new h(e,"BooleanConditionRequired",t);return r.lastAction instanceof v?r.lastAction:k}function ve(e,t,r){if(null!==t.test){if(r.testResult=he(e,t.test),!1===r.testResult)return;if(!0!==r.testResult)throw new h(e,"BooleanConditionRequired",t)}r.lastAction=de(e,t.body),r.lastAction!==F?r.lastAction instanceof v?r.testResult=!1:null!==t.update&&he(e,t.update):r.testResult=!1}function xe(e,t){if("CallExpression"===t.argument.type)throw new h(e,"NeverReach",t);let r;if("MemberExpression"===t.argument.type){const n=he(e,t.argument.object);let o;if(!0===t.argument.computed)o=he(e,t.argument.property);else{if("Identifier"!==t.argument.property.type)throw new h(e,"Unrecognized",t);o=t.argument.property.name}if(Q(n)){if(!ee(o))throw new h(e,"ArrayAccessMustBeNumber",t);if(o<0&&(o=n.length+o),o<0||o>=n.length)throw new h(e,"OutOfBounds",t);r=E(n[o]),n[o]="++"===t.operator?r+1:r-1}else if(n instanceof p){if(!1===X(o))throw new h(e,"KeyAccessorMustBeString",t);if(!0!==n.hasField(o))throw new h(e,"FieldNotFound",t);r=E(n.field(o)),n.setField(o,"++"===t.operator?r+1:r-1)}else if(G(n)){if(!1===X(o))throw new h(e,"KeyAccessorMustBeString",t);if(!0!==n.hasField(o))throw new h(e,"FieldNotFound",t);r=E(n.field(o)),n.setField(o,"++"===t.operator?r+1:r-1)}else{if(A(n))throw new h(e,"Immutable",t);if(!(n instanceof ue))throw new h(e,"InvalidParameter",t);if(!1===X(o))throw new h(e,"ModuleAccessorMustBeString",t);if(!0!==n.hasGlobal(o))throw new h(e,"ModuleExportNotFound",t);r=E(n.global(o)),n.setGlobal(o,"++"===t.operator?r+1:r-1)}return!1===t.prefix?r:"++"===t.operator?r+1:r-1}const n=ie(e,t.argument);r=E(oe(n.var).value);const o="++"===t.operator?r+1:r-1;return n.scope[n.id]={value:o},!1===t.prefix?r:"++"===t.operator?r+1:r-1}function Se(e,t,r,n,o){switch(t){case"=":return e===k?null:e;case"/=":return E(r)/E(e);case"*=":return E(r)*E(e);case"-=":return E(r)-E(e);case"+=":return X(r)||X(e)?N(r)+N(e):E(r)+E(e);case"%=":return E(r)%E(e);default:throw new h(o,"UnsupportedOperator",n)}}function Re(e,t){if("MemberExpression"===t.left.type){const r=he(e,t.left.object);let n;if(!0===t.left.computed)n=he(e,t.left.property);else{if("Identifier"!==t.left.property.type)throw new h(e,"InvalidIdentifier",t);n=t.left.property.name}const o=he(e,t.right);if(Q(r)){if(!ee(n))throw new h(e,"ArrayAccessMustBeNumber",t);if(n<0&&(n=r.length+n),n<0||n>r.length)throw new h(e,"OutOfBounds",t);if(n===r.length){if("="!==t.operator)throw new h(e,"OutOfBounds",t);r[n]=Se(o,t.operator,r[n],t,e)}else r[n]=Se(o,t.operator,r[n],t,e)}else if(r instanceof p){if(!1===X(n))throw new h(e,"KeyAccessorMustBeString",t);if(!0===r.hasField(n))r.setField(n,Se(o,t.operator,r.field(n),t,e));else{if("="!==t.operator)throw new h(e,"FieldNotFound",t,{key:n});r.setField(n,Se(o,t.operator,null,t,e))}}else if(G(r)){if(!1===X(n))throw new h(e,"KeyAccessorMustBeString",t);if(!0===r.hasField(n))r.setField(n,Se(o,t.operator,r.field(n),t,e));else{if("="!==t.operator)throw new h(e,"FieldNotFound",t,{key:n});r.setField(n,Se(o,t.operator,null,t,e))}}else{if(A(r))throw new h(e,"Immutable",t);if(!(r instanceof ue))throw new h(e,"InvalidIdentifier",t);if(!1===X(n))throw new h(e,"ModuleAccessorMustBeString",t);if(!0!==r.hasGlobal(n))throw new h(e,"ModuleExportNotFound",t);r.setGlobal(n,Se(o,t.operator,r.global(n),t,e))}return k}const r=ie(e,t.left),n=he(e,t.right);return r.scope[r.id]={value:Se(n,t.operator,"="!==t.operator?oe(r.var).value:null,t,e)},k}function Fe(e,t){const r=he(e,t.expression);return r===k?k:new x(r)}function je(e,t){const r=he(e,t.test);if(!0===r)return de(e,t.consequent);if(!1===r)return null!==t.alternate?de(e,t.alternate):k;throw new h(e,"BooleanConditionRequired",t)}function ke(e,t){let r=k;for(let n=0;n<t.body.length;n++)if(r=de(e,t.body[n]),r instanceof v||r===F||r===j)return r;return r}function Ie(e,t){if(null===t.argument)return new v(k);const r=he(e,t.argument);return new v(r)}function Oe(t,r){if(null!=t.localScope)throw te().error("Function declarations are only valid in global scope."),new h(t,"NeverReach",r);const n=e(r.id);if(!(n in t.globalScope))throw te().error(`Function "${n}" not declared.`),new h(t,"NeverReach",r);const o=i(r),s=r.params.map(t=>e(t)),a=Array.from(o).filter(e=>!s.includes(e));return t.globalScope[n]={value:new le(r,t,s,a)},k}function Ae(e,t){const r=ie(e,t.specifiers[0].local),n=e.libraryResolver;if(null==n)throw te().error("Internal error: module loader not initialized"),new h(e,"NeverReach",t);const o=n.loadLibrary(r.id);let i;return n._moduleSingletons?.has(o.uri)?i=n._moduleSingletons.get(o.uri):(i=ue.load(e,o.syntax),n._moduleSingletons?.set(o.uri,i)),r.scope[r.id]={value:i},k}function Ce(e,t){return de(e,t.declaration),k}function Me(e,t){for(let r=0;r<t.declarations.length;r++)Ee(e,t.declarations[r]);return k}function Ee(e,t){let r=null===t.init?null:he(e,t.init);if(r===k&&(r=null),"Identifier"!==t.id.type)throw new h(e,"InvalidIdentifier",t);const n=ie(e,t.id);n.scope[n.id]={value:r}}function Ne(e,t){return Be(e,he(e,t.object),t)}function Be(e,t,r){const n=r.computed?he(e,r.property):r.property.name;return f(t,n)}function Ue(e,t,r){for(const n of r)switch(n.type){case"MemberExpression":t=Be(e,t,n);break;case"CallExpression":t=Te(e,t,n);break;default:throw new h(null,"Unrecognized",n)}return t}function Ge(e,t,r){const n=r.computed?he(e,r.property):r.property.name;return u(t,n)}function ze(e,t){const r=s(t);let n=he(e,r.root);for(const o of r.sections){const t=Ge(e,n,o.checked);if(null==t)return null;n=Ue(e,t,o.unchecked)}return n}function De(e,t){try{const r=he(e,t.argument);if(J(r)){if("!"===t.operator)return!r;if("-"===t.operator)return-1*E(r);if("+"===t.operator)return 1*E(r);if("~"===t.operator)return~E(r);throw new h(e,"UnsupportUnaryOperator",t)}if("~"===t.operator)return~E(r);if("-"===t.operator)return-1*E(r);if("+"===t.operator)return 1*E(r);throw new h(e,"UnsupportUnaryOperator",t)}catch(r){throw r}}function Le(e,t){try{const r=[];for(let n=0;n<t.elements.length;n++){const o=he(e,t.elements[n]);if(R(o))throw new h(e,"NoFunctionInArray",t);o===k?r.push(null):r.push(o)}return r}catch(r){throw r}}function _e(e,t){try{const r=he(e,t.left),n=he(e,t.right);switch(t.operator){case"|":case"<<":case">>":case">>>":case"^":case"&":return U(E(r),E(n),t.operator);case"==":return O(r,n);case"!=":return!O(r,n);case"<":case">":case"<=":case">=":return B(r,n,t.operator);case"+":return X(r)||X(n)?N(r)+N(n):E(r)+E(n);case"-":return E(r)-E(n);case"*":return E(r)*E(n);case"/":return E(r)/E(n);case"%":return E(r)%E(n);default:throw K(t.operator),new h(e,"UnsupportedOperator",t)}}catch(r){throw r}}function Ze(e,t){try{const r=he(e,t.left);if(J(r))switch(t.operator){case"||":{if(!0===r)return r;const n=he(e,t.right);if(J(n))return n;throw new h(e,"LogicExpressionOrAnd",t)}case"&&":{if(!1===r)return r;const n=he(e,t.right);if(J(n))return n;throw new h(e,"LogicExpressionOrAnd",t)}default:throw K(t.operator),new h(e,"LogicExpressionOrAnd",t)}throw new h(e,"LogicalExpressionOnlyBoolean",t)}catch(r){throw r}}function qe(e,t,r){if(R(e))throw new h(t,"NoFunctionInTemplateLiteral",r);return e}function We(e,t){let r="",n=0;for(const o of t.quasis)if(r+=o.value?o.value.cooked:"",!1===o.tail){r+=t.expressions[n]?N(qe(he(e,t.expressions[n]),e,t)):"",n++}return r}function Pe(e,t){return se(e,t)}function Ve(e,t){return Te(e,"Identifier"===t.callee.type?se(e,t.callee,"FunctionNotFound"):he(e,t.callee),t)}function Te(e,t,r){if(R(t))return t.call(e,r);throw new h(e,"CallNonFunction",r)}function Ke(e,t){try{if(!0===t.preparsed)throw new h(e,"NeverReach",t);const r=t.arguments;I(null===r?[]:r,3,3,e,t);const n=he(e,r[0]);if(!1===J(n))throw new h(e,"BooleanConditionRequired",t);return he(e,!0===n?r[1]:r[2])}catch(r){throw r}}function Ye(e,t){try{if(!0===t.preparsed)throw new h(e,"NeverReach",t);const r=t.arguments;I(null===r?[]:r,2,3,e,t);const n=he(e,r[0]);if(3===r.length){const t=he(e,r[1]),o=a(n,t);return null!=o&&""!==o?o:he(e,r[2])}return null===n||""===n||void 0===n?he(e,r[1]):n}catch(r){throw r}}function $e(e,t){try{if(!0===t.preparsed)throw new h(e,"NeverReach",t);const r=t.arguments;if(r.length<2)throw new h(e,"WrongNumberOfParameters",t);if(2===r.length)return he(e,r[1]);{if((r.length-1)%2==0)throw new h(e,"WrongNumberOfParameters",t);const n=he(e,r[0]);return He(e,t,1,n)}}catch(r){throw r}}function He(e,t,r,n){try{const o=t.arguments,i=he(e,o[r]);if(O(i,n))return he(e,o[r+1]);{const i=o.length-r;return 1===i?he(e,o[r]):2===i?null:3===i?he(e,o[r+2]):He(e,t,r+2,n)}}catch(o){throw o}}function Je(e,t){try{if(!0===t.preparsed)throw new h(e,"NeverReach",t);const r=t.arguments;if(r.length<3)throw new h(e,"WrongNumberOfParameters",t);if(r.length%2==0)throw new h(e,"WrongNumberOfParameters",t);const n=he(e,r[0]);if(!1===J(n))throw new h(e,"BooleanConditionRequired",r[0]);return Qe(e,t,0,n)}catch(r){throw r}}function Qe(e,t,r,n){try{const o=t.arguments;if(!0===n)return he(e,o[r+1]);if(3===o.length-r)return he(e,o[r+2]);{const n=he(e,o[r+2]);if(!1===J(n))throw new h(e,"BooleanConditionRequired",o[r+2]);return Qe(e,t,r+2,n)}}catch(o){throw o}}function Xe(){const e=Object.create(null);L(e,pe),V(e,pe),_(e,pe,Pe),W(e,pe),Z(e,pe),P(e,pe),q(e,pe),T(e,pe),e.iif=Ke,e.defaultvalue=Ye,e.decode=$e,e.when=Je;const t=function(){this.textformatting={value:p.textFormatting()}};t.prototype=Object.create(null),t.prototype.infinity=Object.freeze({value:Number.POSITIVE_INFINITY}),t.prototype.pi=Object.freeze({value:Math.PI});for(const[r,n]of Object.entries(e))t.prototype[r]=Object.freeze({value:new m(n)});return t}const et=Xe();function tt(e){const t={mode:"sync",compiled:!1,functions:Object.create(null),signatures:[],standardFunction:pe,evaluateIdentifier:Pe};for(let r=0;r<e.length;r++)e[r].registerFunctions(t);for(const[r,n]of Object.entries(t.functions))et.prototype[r]=Object.freeze({value:new m(n)});for(let r=0;r<t.signatures.length;r++)z(t.signatures[r],"sync")}function rt(e){console.log(e)}function nt(r,i){const s=new Set(Object.keys(i?.vars||{}).map(t=>e(t))),a=new Set(Object.keys(i?.customfunctions||{}).map(t=>e(t))),{globals:l,exports:c}=o(r);return e=>{const o=e.spatialReference??$.WebMercator;let i=null;r.usesModules&&(i=new n(new Map,r.loadedModules));const u=new et;for(const t of a)null!=e.customfunctions&&t in e.customfunctions?u[t]={value:new m(e.customfunctions[t])}:u[t]=re;for(const t of s){if(null==e.vars||!(t in e.vars)){t in u||(u[t]=re);continue}const r=e.vars[t]??null;H(r)?u[t]={value:w.createFromGraphic(r,e.timeZone??null)}:u[t]={value:r}}for(const t of l)t in u||(u[t]=re);const f={lrucache:e.lrucache,interceptor:e.interceptor,services:e.services,console:e.console??rt,abortSignal:t,timeZone:e.timeZone??null,spatialReference:o,track:e.track,depthCounter:{depth:1},libraryResolver:i,exports:c,localScope:null,globalScope:u},p=ke(f,r);if(p instanceof v||p instanceof x){const e=p.value;if(S(e))return null;if(R(e))throw new h(f,"IllegalResult",null);return e}if(S(p))return null;if(p===F)throw new h(f,"IllegalResult",null);if(p===j)throw new h(f,"IllegalResult",null);throw new h(f,"NeverReach",null)}}function ot(e,t){return nt(e,t)(t)}tt([D]);export{ot as executeScript,tt as extend,nt as prepareScript};
|
|
5
|
+
import{toSymbolId as e,neverAbortedSignal as t}from"./arcadeEnvironment.js";import{ArcadeModule as r}from"./ArcadeModule.js";import{ArcadeModuleLoader as n}from"./ArcadeModuleLoader.js";import{collectDeclaredGlobalNames as o,collectDeclaredLocalNames as s,flattenAccessChain as i}from"./compilerUtils.js";import{getNestedOptionalValue as a,getGeometryKeys as l,getGeometryMember as c,tryGetMember as u,getMember as f}from"./containerUtils.js";import p from"./Dictionary.js";import{ArcadeExecutionError as h,ensureArcadeExecutionError as d}from"./executionError.js";import{Feature as w}from"./Feature.js";import{NativeFunction as m,ArcadeFunction as g,ScopeMarshalledFunction as b,wrapModuleScopedResponse as y}from"./FunctionWrapper.js";import{R as v,I as x,q as S,i as R,z as F,A as j,v as k,B as I,w as O,j as A,y as C,h as M,r as E,s as N,u as B,x as U,k as G}from"../chunks/languageUtils.js";import{addFunctionDeclaration as z}from"./treeAnalysis.js";import{A as D}from"../chunks/array.js";import{registerFunctions as L}from"./functions/date.js";import{registerFunctions as _}from"./functions/feature.js";import{registerFunctions as Z}from"./functions/geometry.js";import{registerFunctions as q}from"./functions/geomsync.js";import{registerFunctions as W}from"./functions/maths.js";import{registerFunctions as P}from"./functions/stats.js";import{registerFunctions as V}from"./functions/string.js";import{registerFunctions as T}from"./functions/track.js";import K from"../core/Logger.js";import Y from"../geometry/SpatialReference.js";import{isGraphic as $,isBoolean as H,isArray as J,isString as Q,isNumber as X}from"../support/guards.js";const ee=()=>K.getLogger("esri.arcade.arcadeRuntime"),te=Symbol("uninitialized");function re(e){if(e===te)throw new h(null,"InvalidIdentifier",null)}function ne(e){return re(e),e}function oe(t,r){const n=e(r);if(null!==t.localScope){const e=t.localScope[n];if(void 0!==e)return{scope:t.localScope,id:n,var:e}}const o=t.globalScope[n];if(void 0!==o)return{scope:t.globalScope,id:n,var:o};throw new h(t,"InvalidIdentifier",r)}function se(t,r,n="InvalidIdentifier"){const o=e(r);if(null!==t.localScope){const e=t.localScope[o];if(void 0!==e)return re(e),e.value}const s=t.globalScope[o];if(void 0!==s)return re(s),s.value;throw new h(t,n,r)}const ie=function(){};ie.prototype=Object.freeze(Object.create(null));class ae extends g{constructor(e,t,r,n){super(),this.definition=e,this.context=t,this._params=r,this._locals=n}createFunction(e){return(...t)=>{const r={spatialReference:this.context.spatialReference,console:this.context.console,services:this.context.services,timeZone:this.context.timeZone??null,lrucache:this.context.lrucache,exports:this.context.exports,libraryResolver:this.context.libraryResolver,interceptor:this.context.interceptor,abortSignal:this.context.abortSignal,localScope:new ie,depthCounter:{depth:e.depthCounter.depth+1},globalScope:this.context.globalScope,track:this.context.track};if(r.depthCounter.depth>64)throw new h(e,"MaximumCallDepth",null);return le(r,this.definition.body,this._params,this._locals,t,null)}}call(e,t){return fe(e,t,(r,n,o)=>{const s={spatialReference:e.spatialReference,services:e.services,globalScope:e.globalScope,depthCounter:{depth:e.depthCounter.depth+1},libraryResolver:e.libraryResolver,exports:e.exports,timeZone:e.timeZone??null,console:e.console,lrucache:e.lrucache,interceptor:e.interceptor,abortSignal:e.abortSignal,localScope:new ie,track:e.track};if(s.depthCounter.depth>64)throw new h(e,"MaximumCallDepth",t);return le(s,this.definition.body,this._params,this._locals,o,t)})}marshalledCall(e,t,r,n){return n(e,t,(o,s,i)=>{const a={spatialReference:e.spatialReference,globalScope:r.globalScope,services:e.services,depthCounter:{depth:e.depthCounter.depth+1},libraryResolver:e.libraryResolver,exports:e.exports,console:e.console,timeZone:e.timeZone??null,lrucache:e.lrucache,interceptor:e.interceptor,abortSignal:e.abortSignal,localScope:new ie,track:e.track};return i=i.map(t=>!R(t)||t instanceof b?t:y(t,e,n)),y(le(a,this.definition.body,this._params,this._locals,i,t),r,n)})}}function le(e,t,r,n,o,s){try{if(r.length!==o.length)throw new h(e,"WrongNumberOfParameters",s);if(null!=e.localScope){for(let t=0;t<r.length;t++)e.localScope[r[t]]={value:o[t]};for(const t of n)e.localScope[t]=te}const i=he(e,t);if(i instanceof v)return i.value;if(i===F)throw new h(e,"UnexpectedToken",s);if(i===j)throw new h(e,"UnexpectedToken",s);return i instanceof x?i.value:i}catch(i){throw i}}class ce extends r{constructor(e){super(),this.moduleGlobalContext=e}global(t){const r=e(t);if(this.moduleGlobalContext.exports.has(r))throw new h(null,"ModuleExportNotFound",null);const n=this.moduleGlobalContext.globalScope[r];if(re(n),R(n.value)&&!(n.value instanceof b)){const e=new b;return e.fn=n.value,e.parameterEvaluator=fe,e.context=this.moduleGlobalContext,this.moduleGlobalContext.globalScope[r]={value:e},e}return n.value}setGlobal(t,r){if(R(r))throw new h(null,"AssignModuleFunction",null);const n=e(t);if(this.moduleGlobalContext.exports.has(n))throw new h(null,"ModuleExportNotFound",null);this.moduleGlobalContext.globalScope[n]={value:r}}hasGlobal(t){return this.moduleGlobalContext.exports.has(e(t))}static load(e,r){const{globals:s,exports:i}=o(r),a=new Xe;for(const t of s)t in a||(a[t]=te);const l=e.spatialReference??Y.WebMercator,c={lrucache:e.lrucache,interceptor:e.interceptor,services:e.services,console:e.console??tt,abortSignal:t,timeZone:e.timeZone??null,spatialReference:l,track:e.track,depthCounter:{depth:1},libraryResolver:new n(e.libraryResolver._moduleSingletons,r.loadedModules),exports:i,localScope:null,globalScope:a};return je(c,r),new ce(c)}}function ue(e,t){const r=[];for(let n=0;n<t.arguments.length;n++)r.push(pe(e,t.arguments[n]));return r}function fe(e,t,r){try{return!0===t.preparsed?r(e,null,t.arguments):r(e,t,ue(e,t))}catch(n){throw n}}function pe(e,t){try{switch(t.type){case"AssignmentExpression":return Se(e,t);case"UpdateExpression":return ve(e,t);case"TemplateLiteral":return qe(e,t);case"Identifier":return We(e,t);case"MemberExpression":return Ee(e,t);case"Literal":return t.value;case"CallExpression":return Pe(e,t);case"UnaryExpression":return ze(e,t);case"BinaryExpression":return Le(e,t);case"LogicalExpression":return _e(e,t);case"ArrayExpression":return De(e,t);case"ObjectExpression":return de(e,t);case"MemberAccessChainExpression":return Ge(e,t);case"SafeMemberExpression":throw ee().error("SafeMemberExpression outside of MemberAccessChainExpression"),new h(null,"Unrecognized",t);default:throw new h(e,"Unrecognized",t)}}catch(r){throw d(e,t,r)}}function he(e,t){switch(t.type){case"EmptyStatement":return k;case"VariableDeclaration":return Ce(e,t);case"ImportDeclaration":return Oe(e,t);case"ExportNamedDeclaration":return Ae(e,t);case"BlockStatement":return je(e,t);case"FunctionDeclaration":return Ie(e,t);case"ReturnStatement":return ke(e,t);case"IfStatement":return Fe(e,t);case"ExpressionStatement":return Re(e,t);case"BreakStatement":return F;case"ContinueStatement":return j;case"ForStatement":return ge(e,t);case"ForInStatement":return we(e,t);case"ForOfStatement":return me(e,t);case"WhileStatement":return be(e,t);default:throw new h(e,"Unrecognized",t)}}function de(e,t){const r=Object.create(null),n=new Map;for(let s=0;s<t.properties.length;s++){const o=t.properties[s],i="Identifier"===o.key.type?o.key.name:pe(e,o.key),a=pe(e,o.value);if(R(a))throw new h(e,"NoFunctionInDictionary",t);if(!1===Q(i))throw new h(e,"KeyMustBeString",t);let l=i.toString();const c=l.toLowerCase();n.has(c)?l=n.get(c):n.set(c,l),r[l]=a===k?null:a}const o=new p(r);return o.immutable=!1,o}function we(e,t){const r=pe(e,t.right);"VariableDeclaration"===t.left.type&&Ce(e,t.left);const n=oe(e,"VariableDeclaration"===t.left.type?t.left.declarations[0].id:t.left);if(J(r)||Q(r)){const o=r.length;for(let r=0;r<o;r++){n.scope[n.id]={value:r};const o=he(e,t.body);if(o===F)break;if(o instanceof v)return o}return k}if(A(r)){for(let o=0;o<r.length();o++){n.scope[n.id]={value:o};const r=he(e,t.body);if(r===F)break;if(r instanceof v)return r}return k}if(r instanceof p||C(r)){const o=r.keys();for(let r=0;r<o.length;r++){n.scope[n.id]={value:o[r]};const s=he(e,t.body);if(s===F)break;if(s instanceof v)return s}return k}if(M(r)){for(const o of l(r)){n.scope[n.id]={value:o};const r=he(e,t.body);if(r===F)break;if(r instanceof v)return r}return k}return k}function me(e,t){const r=pe(e,t.right);"VariableDeclaration"===t.left.type&&he(e,t.left);const n=oe(e,"VariableDeclaration"===t.left.type?t.left.declarations[0].id:t.left);if(J(r)||Q(r)){const o=r.length;for(let s=0;s<o;s++){if(s>=r.length)throw new h(e,"OutOfBounds",t);n.scope[n.id]={value:r[s]};const o=he(e,t.body);if(o===F)break;if(o instanceof v)return o}return k}if(A(r)){for(let o=0;o<r.length();o++){n.scope[n.id]={value:r.get(o)};const s=he(e,t.body);if(s===F)break;if(s instanceof v)return s}return k}if(r instanceof p||C(r)){for(const o of r.keys()){const s=r.field(o);n.scope[n.id]={value:p.containerEntry(o,s)};const i=he(e,t.body);if(i===F)break;if(i instanceof v)return i}return k}if(M(r)){for(const o of l(r)){const s=c(r,o,e,t);n.scope[n.id]={value:p.containerEntry(o,s)};const i=he(e,t.body);if(i===F)break;if(i instanceof v)return i}return k}return k}function ge(e,t){null!==t.init&&("VariableDeclaration"===t.init.type?he(e,t.init):pe(e,t.init));const r={testResult:!0,lastAction:k};do{ye(e,t,r)}while(!0===r.testResult);return r.lastAction instanceof v?r.lastAction:k}function be(e,t){const r={testResult:!0,lastAction:k};if(r.testResult=pe(e,t.test),!1===r.testResult)return k;if(!0!==r.testResult)throw new h(e,"BooleanConditionRequired",t);for(;!0===r.testResult&&(r.lastAction=he(e,t.body),r.lastAction!==F)&&!(r.lastAction instanceof v);)if(r.testResult=pe(e,t.test),!0!==r.testResult&&!1!==r.testResult)throw new h(e,"BooleanConditionRequired",t);return r.lastAction instanceof v?r.lastAction:k}function ye(e,t,r){if(null!==t.test){if(r.testResult=pe(e,t.test),!1===r.testResult)return;if(!0!==r.testResult)throw new h(e,"BooleanConditionRequired",t)}r.lastAction=he(e,t.body),r.lastAction!==F?r.lastAction instanceof v?r.testResult=!1:null!==t.update&&pe(e,t.update):r.testResult=!1}function ve(e,t){if("CallExpression"===t.argument.type)throw new h(e,"NeverReach",t);let r;if("MemberExpression"===t.argument.type){const n=pe(e,t.argument.object);let o;if(!0===t.argument.computed)o=pe(e,t.argument.property);else{if("Identifier"!==t.argument.property.type)throw new h(e,"Unrecognized",t);o=t.argument.property.name}if(J(n)){if(!X(o))throw new h(e,"ArrayAccessMustBeNumber",t);if(o<0&&(o=n.length+o),o<0||o>=n.length)throw new h(e,"OutOfBounds",t);r=E(n[o]),n[o]="++"===t.operator?r+1:r-1}else if(n instanceof p){if(!1===Q(o))throw new h(e,"KeyAccessorMustBeString",t);if(!0!==n.hasField(o))throw new h(e,"FieldNotFound",t);r=E(n.field(o)),n.setField(o,"++"===t.operator?r+1:r-1)}else if(G(n)){if(!1===Q(o))throw new h(e,"KeyAccessorMustBeString",t);if(!0!==n.hasField(o))throw new h(e,"FieldNotFound",t);r=E(n.field(o)),n.setField(o,"++"===t.operator?r+1:r-1)}else{if(A(n))throw new h(e,"Immutable",t);if(!(n instanceof ce))throw new h(e,"InvalidParameter",t);if(!1===Q(o))throw new h(e,"ModuleAccessorMustBeString",t);if(!0!==n.hasGlobal(o))throw new h(e,"ModuleExportNotFound",t);r=E(n.global(o)),n.setGlobal(o,"++"===t.operator?r+1:r-1)}return!1===t.prefix?r:"++"===t.operator?r+1:r-1}const n=oe(e,t.argument);r=E(ne(n.var).value);const o="++"===t.operator?r+1:r-1;return n.scope[n.id]={value:o},!1===t.prefix?r:"++"===t.operator?r+1:r-1}function xe(e,t,r,n,o){switch(t){case"=":return e===k?null:e;case"/=":return E(r)/E(e);case"*=":return E(r)*E(e);case"-=":return E(r)-E(e);case"+=":return Q(r)||Q(e)?N(r)+N(e):E(r)+E(e);case"%=":return E(r)%E(e);default:throw new h(o,"UnsupportedOperator",n)}}function Se(e,t){if("MemberExpression"===t.left.type){const r=pe(e,t.left.object);let n;if(!0===t.left.computed)n=pe(e,t.left.property);else{if("Identifier"!==t.left.property.type)throw new h(e,"InvalidIdentifier",t);n=t.left.property.name}const o=pe(e,t.right);if(J(r)){if(!X(n))throw new h(e,"ArrayAccessMustBeNumber",t);if(n<0&&(n=r.length+n),n<0||n>r.length)throw new h(e,"OutOfBounds",t);if(n===r.length){if("="!==t.operator)throw new h(e,"OutOfBounds",t);r[n]=xe(o,t.operator,r[n],t,e)}else r[n]=xe(o,t.operator,r[n],t,e)}else if(r instanceof p){if(!1===Q(n))throw new h(e,"KeyAccessorMustBeString",t);if(!0===r.hasField(n))r.setField(n,xe(o,t.operator,r.field(n),t,e));else{if("="!==t.operator)throw new h(e,"FieldNotFound",t,{key:n});r.setField(n,xe(o,t.operator,null,t,e))}}else if(G(r)){if(!1===Q(n))throw new h(e,"KeyAccessorMustBeString",t);if(!0===r.hasField(n))r.setField(n,xe(o,t.operator,r.field(n),t,e));else{if("="!==t.operator)throw new h(e,"FieldNotFound",t,{key:n});r.setField(n,xe(o,t.operator,null,t,e))}}else{if(A(r))throw new h(e,"Immutable",t);if(!(r instanceof ce))throw new h(e,"InvalidIdentifier",t);if(!1===Q(n))throw new h(e,"ModuleAccessorMustBeString",t);if(!0!==r.hasGlobal(n))throw new h(e,"ModuleExportNotFound",t);r.setGlobal(n,xe(o,t.operator,r.global(n),t,e))}return k}const r=oe(e,t.left),n=pe(e,t.right);return r.scope[r.id]={value:xe(n,t.operator,"="!==t.operator?ne(r.var).value:null,t,e)},k}function Re(e,t){const r=pe(e,t.expression);return r===k?k:new x(r)}function Fe(e,t){const r=pe(e,t.test);if(!0===r)return he(e,t.consequent);if(!1===r)return null!==t.alternate?he(e,t.alternate):k;throw new h(e,"BooleanConditionRequired",t)}function je(e,t){let r=k;for(let n=0;n<t.body.length;n++)if(r=he(e,t.body[n]),r instanceof v||r===F||r===j)return r;return r}function ke(e,t){if(null===t.argument)return new v(k);const r=pe(e,t.argument);return new v(r)}function Ie(t,r){if(null!=t.localScope)throw ee().error("Function declarations are only valid in global scope."),new h(t,"NeverReach",r);const n=e(r.id);if(!(n in t.globalScope))throw ee().error(`Function "${n}" not declared.`),new h(t,"NeverReach",r);const o=s(r),i=r.params.map(t=>e(t)),a=Array.from(o).filter(e=>!i.includes(e));return t.globalScope[n]={value:new ae(r,t,i,a)},k}function Oe(e,t){const r=oe(e,t.specifiers[0].local),n=e.libraryResolver;if(null==n)throw ee().error("Internal error: module loader not initialized"),new h(e,"NeverReach",t);const o=n.loadLibrary(r.id);let s;return n._moduleSingletons?.has(o.uri)?s=n._moduleSingletons.get(o.uri):(s=ce.load(e,o.syntax),n._moduleSingletons?.set(o.uri,s)),r.scope[r.id]={value:s},k}function Ae(e,t){return he(e,t.declaration),k}function Ce(e,t){for(let r=0;r<t.declarations.length;r++)Me(e,t.declarations[r]);return k}function Me(e,t){let r=null===t.init?null:pe(e,t.init);if(r===k&&(r=null),"Identifier"!==t.id.type)throw new h(e,"InvalidIdentifier",t);const n=oe(e,t.id);n.scope[n.id]={value:r}}function Ee(e,t){return Ne(e,pe(e,t.object),t)}function Ne(e,t,r){const n=r.computed?pe(e,r.property):r.property.name;return f(t,n)}function Be(e,t,r){for(const n of r)switch(n.type){case"MemberExpression":t=Ne(e,t,n);break;case"CallExpression":t=Ve(e,t,n);break;default:throw new h(null,"Unrecognized",n)}return t}function Ue(e,t,r){const n=r.computed?pe(e,r.property):r.property.name;return u(t,n)}function Ge(e,t){const r=i(t);let n=pe(e,r.root);for(const o of r.sections){const t=Ue(e,n,o.checked);if(null==t)return null;n=Be(e,t,o.unchecked)}return n}function ze(e,t){try{const r=pe(e,t.argument);if(H(r)){if("!"===t.operator)return!r;if("-"===t.operator)return-1*E(r);if("+"===t.operator)return 1*E(r);if("~"===t.operator)return~E(r);throw new h(e,"UnsupportUnaryOperator",t)}if("~"===t.operator)return~E(r);if("-"===t.operator)return-1*E(r);if("+"===t.operator)return 1*E(r);throw new h(e,"UnsupportUnaryOperator",t)}catch(r){throw r}}function De(e,t){try{const r=[];for(let n=0;n<t.elements.length;n++){const o=pe(e,t.elements[n]);if(R(o))throw new h(e,"NoFunctionInArray",t);o===k?r.push(null):r.push(o)}return r}catch(r){throw r}}function Le(e,t){try{const r=pe(e,t.left),n=pe(e,t.right);switch(t.operator){case"|":case"<<":case">>":case">>>":case"^":case"&":return U(E(r),E(n),t.operator);case"==":return O(r,n);case"!=":return!O(r,n);case"<":case">":case"<=":case">=":return B(r,n,t.operator);case"+":return Q(r)||Q(n)?N(r)+N(n):E(r)+E(n);case"-":return E(r)-E(n);case"*":return E(r)*E(n);case"/":return E(r)/E(n);case"%":return E(r)%E(n);default:throw t.operator,new h(e,"UnsupportedOperator",t)}}catch(r){throw r}}function _e(e,t){try{const r=pe(e,t.left);if(H(r))switch(t.operator){case"||":{if(!0===r)return r;const n=pe(e,t.right);if(H(n))return n;throw new h(e,"LogicExpressionOrAnd",t)}case"&&":{if(!1===r)return r;const n=pe(e,t.right);if(H(n))return n;throw new h(e,"LogicExpressionOrAnd",t)}default:throw t.operator,new h(e,"LogicExpressionOrAnd",t)}throw new h(e,"LogicalExpressionOnlyBoolean",t)}catch(r){throw r}}function Ze(e,t,r){if(R(e))throw new h(t,"NoFunctionInTemplateLiteral",r);return e}function qe(e,t){let r="",n=0;for(const o of t.quasis)if(r+=o.value?o.value.cooked:"",!1===o.tail){r+=t.expressions[n]?N(Ze(pe(e,t.expressions[n]),e,t)):"",n++}return r}function We(e,t){return se(e,t)}function Pe(e,t){return Ve(e,"Identifier"===t.callee.type?se(e,t.callee,"FunctionNotFound"):pe(e,t.callee),t)}function Ve(e,t,r){if(R(t))return t.call(e,r);throw new h(e,"CallNonFunction",r)}function Te(e,t){try{if(!0===t.preparsed)throw new h(e,"NeverReach",t);const r=t.arguments;I(null===r?[]:r,3,3,e,t);const n=pe(e,r[0]);if(!1===H(n))throw new h(e,"BooleanConditionRequired",t);return pe(e,!0===n?r[1]:r[2])}catch(r){throw r}}function Ke(e,t){try{if(!0===t.preparsed)throw new h(e,"NeverReach",t);const r=t.arguments;I(null===r?[]:r,2,3,e,t);const n=pe(e,r[0]);if(3===r.length){const t=pe(e,r[1]),o=a(n,t);return null!=o&&""!==o?o:pe(e,r[2])}return null===n||""===n||void 0===n?pe(e,r[1]):n}catch(r){throw r}}function Ye(e,t){try{if(!0===t.preparsed)throw new h(e,"NeverReach",t);const r=t.arguments;if(r.length<2)throw new h(e,"WrongNumberOfParameters",t);if(2===r.length)return pe(e,r[1]);{if((r.length-1)%2==0)throw new h(e,"WrongNumberOfParameters",t);const n=pe(e,r[0]);return $e(e,t,1,n)}}catch(r){throw r}}function $e(e,t,r,n){try{const o=t.arguments,s=pe(e,o[r]);if(O(s,n))return pe(e,o[r+1]);{const s=o.length-r;return 1===s?pe(e,o[r]):2===s?null:3===s?pe(e,o[r+2]):$e(e,t,r+2,n)}}catch(o){throw o}}function He(e,t){try{if(!0===t.preparsed)throw new h(e,"NeverReach",t);const r=t.arguments;if(r.length<3)throw new h(e,"WrongNumberOfParameters",t);if(r.length%2==0)throw new h(e,"WrongNumberOfParameters",t);const n=pe(e,r[0]);if(!1===H(n))throw new h(e,"BooleanConditionRequired",r[0]);return Je(e,t,0,n)}catch(r){throw r}}function Je(e,t,r,n){try{const o=t.arguments;if(!0===n)return pe(e,o[r+1]);if(3===o.length-r)return pe(e,o[r+2]);{const n=pe(e,o[r+2]);if(!1===H(n))throw new h(e,"BooleanConditionRequired",o[r+2]);return Je(e,t,r+2,n)}}catch(o){throw o}}function Qe(){const e=Object.create(null);L(e,fe),V(e,fe),_(e,fe,We),W(e,fe),Z(e,fe),P(e,fe),q(e,fe),T(e,fe),e.iif=Te,e.defaultvalue=Ke,e.decode=Ye,e.when=He;const t=function(){this.textformatting={value:p.textFormatting()}};t.prototype=Object.create(null),t.prototype.infinity=Object.freeze({value:Number.POSITIVE_INFINITY}),t.prototype.pi=Object.freeze({value:Math.PI});for(const[r,n]of Object.entries(e))t.prototype[r]=Object.freeze({value:new m(n)});return t}const Xe=Qe();function et(e){const t={mode:"sync",compiled:!1,functions:Object.create(null),signatures:[],standardFunction:fe,evaluateIdentifier:We};for(let r=0;r<e.length;r++)e[r].registerFunctions(t);for(const[r,n]of Object.entries(t.functions))Xe.prototype[r]=Object.freeze({value:new m(n)});for(let r=0;r<t.signatures.length;r++)z(t.signatures[r],"sync")}function tt(e){console.log(e)}function rt(r,s){const i=new Set(Object.keys(s?.vars||{}).map(t=>e(t))),a=new Set(Object.keys(s?.customfunctions||{}).map(t=>e(t))),{globals:l,exports:c}=o(r);return e=>{const o=e.spatialReference??Y.WebMercator;let s=null;r.usesModules&&(s=new n(new Map,r.loadedModules));const u=new Xe;for(const t of a)null!=e.customfunctions&&t in e.customfunctions?u[t]={value:new m(e.customfunctions[t])}:u[t]=te;for(const t of i){if(null==e.vars||!(t in e.vars)){t in u||(u[t]=te);continue}const r=e.vars[t]??null;$(r)?u[t]={value:w.createFromGraphic(r,e.timeZone??null)}:u[t]={value:r}}for(const t of l)t in u||(u[t]=te);const f={lrucache:e.lrucache,interceptor:e.interceptor,services:e.services,console:e.console??tt,abortSignal:t,timeZone:e.timeZone??null,spatialReference:o,track:e.track,depthCounter:{depth:1},libraryResolver:s,exports:c,localScope:null,globalScope:u},p=je(f,r);if(p instanceof v||p instanceof x){const e=p.value;if(S(e))return null;if(R(e))throw new h(f,"IllegalResult",null);return e}if(S(p))return null;if(p===F)throw new h(f,"IllegalResult",null);if(p===j)throw new h(f,"IllegalResult",null);throw new h(f,"NeverReach",null)}}function nt(e,t){return rt(e,t)(t)}et([D]);export{nt as executeScript,et as extend,rt as prepareScript};
|
package/arcade/batchExec.js
CHANGED
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/5.0/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import
|
|
5
|
+
import{getOrCreateMapValue as t}from"../core/MapUtils.js";import{createResolver as e,settleWithPromise as s,createAbortError as i}from"../core/promiseUtils.js";import{QueueProcessor as r}from"../core/QueueProcessor.js";function n(t,e,s,i){return new h(t,e,s,i)}class o{constructor(t,s,i){this._executor=t,this._data=s,this._impl=i,this._closed=!1,this._resolver=e(),this._impl.open(this)}assertOpen(){if(this._closed)throw new Error("Batch closed.")}get data(){return this.assertOpen(),this._data}get results(){return this._resolver.promise}send(){try{this.assertOpen(),this._closed=!0,this._executor.resume(this),this._impl.close(this),s(this._resolver,this._impl.execute(this._data))}catch(t){this._resolver.reject(t)}}}class h{constructor(t,i,n,o){if(this._runJob=i,this._maxRunning=n,this._abortSignal=o,this._jobIdSeq=0,this._running=new Set,this._blocked=new Set,this._openBatches=new Map,this._state="ready",this._runResolver=null,n<1)throw new Error(`_maxRunning=${n} but cannot be < 1`);this._todo=t[Symbol.iterator](),this._queue=new r({concurrency:1,process:async t=>{if("start"===t.type){const{id:i,args:r}=t,n=e(),o=e(),h={id:i,interrupt:n,finished:o.promise};return s(o,this._runJob(r,{id:i,yieldFor:t=>this.yieldFor(h,t)}).then(()=>{this._blocked.has(i)&&this._fail(new Error(`job ${i} completed before resuming`)),this._running.delete(i)||this._fail(new Error(`job ${i} not running?`))})),await Promise.race([n.promise,h.finished]),void this._tryQueue()}if("continue"===t.type)return t.job.interrupt=e(),"fulfilled"===t.data.status?t.continuation.resolve(t.data.value):t.continuation.reject(t.data.reason),await Promise.race([t.job.interrupt.promise,t.job.finished]),void this._tryQueue()}})}openBatch(t,e){return new o(this,t,e)}_fail(t,e=!1){if(this._runResolver?.reject(t),this._state="stopped",!e)throw t}_schedule(t){this._queue.push(t).catch(t=>this._fail(t,!0))}_tryQueue(){if("running"===this._state)if(this._abortSignal?.aborted)this._fail(i(),!0);else{if(this._running.size<this._maxRunning){const t=this._todo.next();if(!t.done){const e=this._jobIdSeq++;return this._running.add(e),void this._schedule({type:"start",id:e,args:t.value})}}if(0===this._running.size)return this._runResolver?.resolve(),this._runResolver=null,void(this._state="stopped");if(this._blocked.size===this._running.size){let t=null,e=-1/0;for(const[s,i]of this._openBatches)i.size>e&&(t=s,e=i.size);return null==t&&this._fail(new Error("deadlock")),void t.send()}}}resume(t){const e=this._openBatches.get(t);if(this._openBatches.delete(t),null!=e)for(const s of e)this._blocked.delete(s)||this._fail(new Error(`job ${s} not suspended`))}async yieldFor(s,i){i.assertOpen(),this._running.has(s.id)||this._fail(new Error(`job ${s.id} not running`)),this._blocked.has(s.id)&&this._fail(new Error(`job ${s.id} already suspended`)),this._blocked.add(s.id),t(this._openBatches,i,()=>new Set).add(s.id),null==s.interrupt&&this._fail(new Error(`job ${s.id} hasn't resumed yet`)),s.interrupt.resolve(),s.interrupt=null;const r=e();let n;try{n={status:"fulfilled",value:await i.results}}catch(o){n={status:"rejected",reason:o}}return this._schedule({type:"continue",continuation:r,data:n,job:s}),r.promise}run(){"ready"!==this._state&&this._fail(new Error(`executor not ready to start. state=${this._state}`));const t=e();return this._state="running",this._runResolver=t,this._tryQueue(),t.promise}}export{n as createBatchExecutor};
|
package/arcade/compilerUtils.js
CHANGED
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/5.0/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{toSymbolId as e}from"./arcadeEnvironment.js";import{ArcadeCompilationError as t}from"./executionError.js";import
|
|
5
|
+
import{toSymbolId as e}from"./arcadeEnvironment.js";import{ArcadeCompilationError as t}from"./executionError.js";import r from"../core/Logger.js";import{isSubsetOf as o,difference as n}from"../core/SetUtils.js";const a=()=>r.getLogger("esri.arcade.compilerUtils");function c(t,r,o){switch(t.type){case"VariableDeclaration":for(const o of t.declarations)r.add(e(o.id));return;case"BlockStatement":for(const e of t.body)c(e,r,o);return;case"ExportNamedDeclaration":{const e=new Set;c(t.declaration,e,o);for(const t of e)r.add(t),o.add(t);return}case"ForInStatement":case"ForOfStatement":return"VariableDeclaration"===t.left.type&&c(t.left,r,o),void c(t.body,r,o);case"ForStatement":return"VariableDeclaration"===t.init?.type&&c(t.init,r,o),void c(t.body,r,o);case"FunctionDeclaration":return void r.add(e(t.id));case"IfStatement":return c(t.consequent,r,o),void(t.alternate&&c(t.alternate,r,o));case"ImportDeclaration":for(const o of t.specifiers)r.add(e(o.local));return;case"WhileStatement":return void c(t.body,r,o);case"BreakStatement":case"ContinueStatement":case"EmptyStatement":case"ExpressionStatement":case"ReturnStatement":return}}function s(e){const r=new Set,s=new Set;for(const t of e.body)c(t,r,s);if(!o(s,r))throw a().error(`Internal error: exported undeclared symbols {${Array.from(n(s,r)).join(", ")}}`),new t(null,"NeverReach",null);return{globals:r,exports:s}}function i(e){const r=new Set,o=new Set;if(c(e.body,r,o),o.size>0)throw a().error(`Internal error: cannot export locals {${Array.from(o.values()).join(", ")}}`),new t(null,"NeverReach",null);return r}function l(e){const t=[];let r=[],o=e.expression;for(;;)switch(o.type){case"MemberExpression":r.push(o),o=o.object;break;case"CallExpression":r.push(o),o=o.callee;break;case"SafeMemberExpression":t.push({checked:o,unchecked:r.reverse()}),r=[],o=o.object;break;default:return{root:r.at(0)??o,sections:t.reverse()}}}export{s as collectDeclaredGlobalNames,i as collectDeclaredLocalNames,l as flattenAccessChain};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/5.0/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{neverAbortedSignal as t}from"../../arcadeEnvironment.js";import{shapeExtent as e}from"../../kernel.js";import{throwIfCancelled as r,FeatureSetError as a}from"../support/errorsupport.js";import{FeatureSet as i}from"../support/FeatureSet.js";import{defaultMaxRecords as s}from"../support/shared.js";import{invokeRemoteGeometryOp as l}from"../../geometry/operatorsWorkerConnection.js";import{
|
|
5
|
+
import{neverAbortedSignal as t}from"../../arcadeEnvironment.js";import{shapeExtent as e}from"../../kernel.js";import{throwIfCancelled as r,FeatureSetError as a}from"../support/errorsupport.js";import{FeatureSet as i}from"../support/FeatureSet.js";import{defaultMaxRecords as s}from"../support/shared.js";import{invokeRemoteGeometryOp as l}from"../../geometry/operatorsWorkerConnection.js";import{getGeometryExtent as n}from"../../../geometry/support/extentUtils.js";class o extends i{constructor(t){super(),this.declaredClass="esri.arcade.featureset.actions.SpatialFilter",this._maxProcessing=40,this._parent=t.parentfeatureset,this._relation=t.relation,this._relationString=t.relationString??"",this._relationGeom=t.relationGeom}get _spatialFilter(){return{relation:"esriSpatialRelRelation"!==this._relation?this._relation:`esriSpatialRelRelation:${this._relationString}`,geometry:this._relationGeom}}async _queryAll(){return(await this.query({abortSignal:t})).features}async query(t){await this._ensureLoaded();const e=await this._parent.query({...t,spatialFilter:this._spatialFilter});return r(t.abortSignal),{...e,spatialFilterApplied:null==t.spatialFilter,features:e.spatialFilterApplied?e.features:this._applySpatialFilter(e.features,t.abortSignal)}}async*_applySpatialFilter(t,e){for await(const a of t){r(e);const t=[];for(const e of a)await this._executeSpatialRelationTest(e)&&t.push(e);t.length>0&&(yield t)}}async queryStat(t){if(null!=t.spatialFilter)return{calculated:!1};const e=await this._parent.queryStat({...t,spatialFilter:this._spatialFilter});return e.calculated?e:null==t.where&&null==t.spatialFilter?this._manualStat(t.stat,t.field,t.limit??s,t.abortSignal):{calculated:!1}}async canQueryAggregate(t){return null==t.spatialFilter&&this._parent.canQueryAggregate({...t,spatialFilter:this._spatialFilter})}async queryAggregate(t){if(null!=t.spatialFilter)throw new a("NeverReach");return this._parent.queryAggregate({...t,spatialFilter:this._spatialFilter})}async _executeSpatialRelationTest(t){if(null==t.geometry)return!1;switch(this._relation){case"esriSpatialRelEnvelopeIntersects":{const r=e(this._relationGeom),a=n(t.geometry);return null!=r&&null!=a&&l("intersects",[r.toJSON(),a])}case"esriSpatialRelIntersects":return l("intersects",[this._relationGeom.toJSON(),t.geometry]);case"esriSpatialRelContains":return l("contains",[this._relationGeom.toJSON(),t.geometry]);case"esriSpatialRelOverlaps":return l("overlaps",[this._relationGeom.toJSON(),t.geometry]);case"esriSpatialRelWithin":return l("within",[this._relationGeom.toJSON(),t.geometry]);case"esriSpatialRelTouches":return l("touches",[this._relationGeom.toJSON(),t.geometry]);case"esriSpatialRelCrosses":return l("crosses",[this._relationGeom.toJSON(),t.geometry]);case"esriSpatialRelRelation":return l("relate",[this._relationGeom.toJSON(),t.geometry,this._relationString]);default:return this._relation,!1}}getFieldsIndex(){return this._parent.getFieldsIndex()}}export{o as default};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/5.0/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{toStringEnumKey as e}from"../enum.js";import{ArcadeExecutionError as r}from"../executionError.js";import{linearUnitLookup as a,angularUnitLookup as s,areaUnitLookup as t,linearUnitToAreaUnit as n}from"./extendedUnitData.js";export{meters,squareMeters}from"./extendedUnitData.js";import{findSpatialReferenceUnitFromWkt as c}from"./wkt.js";import
|
|
5
|
+
import{toStringEnumKey as e}from"../enum.js";import{ArcadeExecutionError as r}from"../executionError.js";import{linearUnitLookup as a,angularUnitLookup as s,areaUnitLookup as t,linearUnitToAreaUnit as n}from"./extendedUnitData.js";export{meters,squareMeters}from"./extendedUnitData.js";import{findSpatialReferenceUnitFromWkt as c}from"./wkt.js";import{gradGcsIds as u}from"../../core/units.js";import i from"../../geometry/support/WKIDUnitConversion.js";const l=-1;function o(e,r){let n;switch(e){case"linear":n=a;break;case"angular":n=s;break;case"area":n=t;break;default:return null}return n.get(r)}function m(e){const r=e.wkid;if(null!=r){const e=i.units[i[r]];if(null!=e)switch(e){case"Meter":return o("linear",9001);case"Foot":return o("linear",9002);case"Foot_US":return o("linear",9003);case"Foot_Clarke":return o("linear",9005);case"Yard_Clarke":return o("linear",9037);case"Link_Clarke":return o("linear",9039);case"Yard_Sears":return o("linear",9040);case"Foot_Sears":return o("linear",9041);case"Chain_Sears":return o("linear",9042);case"Chain_Benoit_1895_B":return o("linear",9062);case"Yard_Indian":return o("linear",9084);case"Yard_Indian_1937":return o("linear",9085);case"Foot_Gold_Coast":return o("linear",9094);case"Chain":return o("linear",9097);case"Chain_Sears_1922_Truncated":return o("linear",9301);case"50_Kilometers":return o("linear",109030);case"150_Kilometers":return o("linear",109031);default:throw new Error(`Unknown unit name: ${e}`)}return u.has(r)?o("angular",9105):o("angular",9102)}const a=e.wkt2||e.wkt;if(null!=a){const e=c(a);if(null!=e){if(null!=e.wkid){const r=o(e.type,e.wkid);if(null!=r)return r}return{type:e.type,wkid:l,factor:e.factor}}}return null}function f(e){if("linear"!==e.type)return null;if(e.wkid===l)return{type:"area",wkid:l,factor:e.factor**2};const r=n.get(e.wkid);return null==r?null:o("area",r)}function q(n){if(null!=n){if("number"==typeof n)return t.get(n)??a.get(n)??s.get(n);if("string"!=typeof n)throw new r(null,"InvalidParameter",null);switch(e(n)){case"meters":case"meter":case"m":case"squaremeters":case"squaremeter":return t.get(109404);case"miles":case"mile":case"squaremile":case"squaremiles":return t.get(109439);case"kilometers":case"kilometer":case"squarekilometers":case"squarekilometer":case"km":return t.get(109414);case"acres":case"acre":case"ac":return t.get(109402);case"hectares":case"hectare":case"ha":return t.get(109401);case"yard":case"yd":case"yards":case"squareyards":case"squareyard":return t.get(109442);case"feet":case"ft":case"foot":case"squarefeet":case"squarefoot":return t.get(109405);case"nmi":case"nauticalmile":case"nauticalmiles":case"squarenauticalmile":case"squarenauticalmiles":return t.get(109409);case"millimeter":case"millimeters":case"squaremillimeter":case"squaremillimeters":return t.get(109452);case"centimeter":case"centimeters":case"squarecentimeter":case"squarecentimeters":return t.get(109451);case"decimeter":case"decimeters":case"squaredecimeter":case"squaredecimeters":return t.get(109450);case"inch":case"inches":case"squareinch":case"squareinches":return t.get(109453);case"usfoot":case"usfeet":case"squareusfoot":case"squareusfeet":return t.get(109406);case"usmile":case"usmiles":case"squareusmile":case"squareusmiles":return t.get(109413)}}}function d(n){if(null!=n){if("number"==typeof n)return a.get(n)??s.get(n)??t.get(n);if("string"!=typeof n)throw new r(null,"InvalidParameter",null);switch(e(n)){case"meters":case"meter":case"m":case"squaremeters":case"squaremeter":case"hectares":case"hectare":case"ha":return a.get(9001);case"miles":case"mile":case"squaremile":case"squaremiles":return a.get(9093);case"kilometers":case"kilometer":case"squarekilometers":case"squarekilometer":case"km":return a.get(9036);case"yard":case"yd":case"yards":case"squareyards":case"squareyard":case"acres":case"acre":case"ac":return a.get(9096);case"feet":case"ft":case"foot":case"squarefeet":case"squarefoot":return a.get(9002);case"nmi":case"nauticalmile":case"nauticalmiles":case"squarenauticalmile":case"squarenauticalmiles":return a.get(9030);case"millimeter":case"millimeters":case"squaremillimeter":case"squaremillimeters":return a.get(109007);case"centimeter":case"centimeters":case"squarecentimeter":case"squarecentimeters":return a.get(109006);case"decimeter":case"decimeters":case"squaredecimeter":case"squaredecimeters":return a.get(109005);case"inch":case"inches":case"squareinch":case"squareinches":return a.get(109008);case"usfoot":case"usfeet":case"squareusfoot":case"squareusfeet":return a.get(9003);case"usmile":case"usmiles":case"squareusmile":case"squareusmiles":return a.get(9035)}}}function g(e,r,a){if(e.type!==r.type)throw new Error(`Incompatible unit types. src=${e.type} dest=${r.type}`);return a*(e.factor/r.factor)}function p(e,r,a){if(null==e||null==r)return a;const s=m(e);if(null==s)throw new Error("Unknown spatial reference unit.");const t="area"===r.type&&"linear"===s.type?f(s):s;if(null==t)throw new Error(`Unknown spatial reference ${r.type} unit.`);return g(t,r,a)}function w(e,r,a){if(null==e||null==r)return a;const s=m(r);if(null==s)throw new Error("Unknown spatial reference unit.");const t="area"===e.type&&"linear"===s.type?f(s):s;if(null==t)throw new Error(`Unknown spatial reference ${e.type} unit.`);return g(e,t,a)}function k(e,r,a){return null==e||null==r?a:g(e,r,a)}export{k as convert,p as convertFromSpatialReferenceUnit,w as convertToSpatialReferenceUnit,m as getSpatialReferenceUnit,q as toAreaUnit,d as toLengthUnit};
|