@arcgis/core 5.2.0-next.62 → 5.2.0-next.64

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (530) hide show
  1. package/WebDocument2D.d.ts +17 -1
  2. package/WebDocument2D.js +1 -1
  3. package/WebLinkChart.js +1 -1
  4. package/WebMap.js +1 -1
  5. package/WebScene.js +1 -1
  6. package/arcade/Feature.js +1 -1
  7. package/arcade/ImmutableArray.js +1 -1
  8. package/arcade/ImmutablePathArray.js +1 -1
  9. package/arcade/ImmutablePointArray.js +1 -1
  10. package/arcade/Pixel.js +1 -1
  11. package/arcade/Voxel.js +1 -1
  12. package/arcade/arcadeAsyncRuntime.js +1 -1
  13. package/arcade/arcadeCompiler.js +1 -1
  14. package/arcade/arcadeRuntime.js +1 -1
  15. package/arcade/containerUtils.js +1 -1
  16. package/arcade/debug.js +1 -1
  17. package/arcade/deepClone.js +1 -1
  18. package/arcade/featureset/sources/FeatureLayerDynamic.js +1 -1
  19. package/arcade/functions/convertdirection.js +1 -1
  20. package/arcade/functions/date.js +1 -1
  21. package/arcade/functions/feature.js +1 -1
  22. package/arcade/functions/featuresetbase.js +1 -1
  23. package/arcade/functions/featuresetgeom.js +1 -1
  24. package/arcade/functions/featuresetstats.js +1 -1
  25. package/arcade/functions/featuresetstring.js +1 -1
  26. package/arcade/functions/fieldStats.js +1 -1
  27. package/arcade/functions/geomasync.js +1 -1
  28. package/arcade/functions/geometry.js +1 -1
  29. package/arcade/functions/geomsync.js +1 -1
  30. package/arcade/functions/knowledgegraph.js +1 -1
  31. package/arcade/functions/maths.js +1 -1
  32. package/arcade/functions/stats.js +1 -1
  33. package/arcade/functions/string.js +1 -1
  34. package/arcade/functions/track.js +1 -1
  35. package/arcade/geometry/functions.js +1 -1
  36. package/arcade/languageUtils.js +1 -1
  37. package/arcade.js +1 -1
  38. package/arcgisGlobal.d.ts +14 -0
  39. package/assets/esri/core/workers/RemoteClient.js +1 -1
  40. package/assets/esri/core/workers/chunks/{44e64186318728d1be51.js → 067b00498ae85f635f60.js} +1 -1
  41. package/assets/esri/core/workers/chunks/0977f4d77c36175c2895.js +1 -0
  42. package/assets/esri/core/workers/chunks/09c43bcb09aad02e83a9.js +1 -0
  43. package/assets/esri/core/workers/chunks/0b20f92bae2b4c40d299.js +1 -0
  44. package/assets/esri/core/workers/chunks/0c3c311400ee352187ea.js +1 -0
  45. package/assets/esri/core/workers/chunks/0c582abc8d25249eb530.js +1 -0
  46. package/assets/esri/core/workers/chunks/0d6776055e9b34c14151.js +1 -0
  47. package/assets/esri/core/workers/chunks/0d7d54e74b5639a0be6e.js +1 -0
  48. package/assets/esri/core/workers/chunks/0da5b27b070ab780f8b3.js +1 -0
  49. package/assets/esri/core/workers/chunks/0e6b6fcc55cc43ede1fc.js +1 -0
  50. package/assets/esri/core/workers/chunks/{bcb5017500d144b73908.js → 126f1f6b355723db6c4f.js} +1 -1
  51. package/assets/esri/core/workers/chunks/12a64eca4c571926d9d4.js +1 -0
  52. package/assets/esri/core/workers/chunks/{b2c0262c4a76b8a86200.js → 149284464115981694ff.js} +1 -1
  53. package/assets/esri/core/workers/chunks/1642fa1263d8f4a45101.js +1 -0
  54. package/assets/esri/core/workers/chunks/1840d74ebae777a0200b.js +1 -0
  55. package/assets/esri/core/workers/chunks/19bf6826e7d9a4d52035.js +1 -0
  56. package/assets/esri/core/workers/chunks/1bfbdec791e19f5a2534.js +1 -0
  57. package/assets/esri/core/workers/chunks/1d8280f63a6698e74f20.js +1 -0
  58. package/assets/esri/core/workers/chunks/{1b68b1b724ad30396723.js → 2426601b8cae7f06af4d.js} +1 -1
  59. package/assets/esri/core/workers/chunks/{a12803108c3b12808698.js → 242cad472fbc38b24dbc.js} +2 -2
  60. package/assets/esri/core/workers/chunks/25197ecb324d6f08e03e.js +1 -0
  61. package/assets/esri/core/workers/chunks/253c231b5a52f1d2d3a5.js +1 -0
  62. package/assets/esri/core/workers/chunks/25999b6f96ec305a7679.js +1 -0
  63. package/assets/esri/core/workers/chunks/259bdacfb7b0f866a8d0.js +1 -0
  64. package/assets/esri/core/workers/chunks/28565756f884d0851003.js +1 -0
  65. package/assets/esri/core/workers/chunks/2a5a165848413764381b.js +1 -0
  66. package/assets/esri/core/workers/chunks/2e7a5bb740281ef59199.js +1 -0
  67. package/assets/esri/core/workers/chunks/{285a5bd708f0fe1c620c.js → 2ea3ca68cfa4d34e8f3b.js} +1 -1
  68. package/assets/esri/core/workers/chunks/2f87a49bdd00f899d81d.js +1 -0
  69. package/assets/esri/core/workers/chunks/{37a95f097533bad1b338.js → 302d91b7c480c6c9304b.js} +1 -1
  70. package/assets/esri/core/workers/chunks/{3d6d2b42ba2ad7086d5d.js → 3b493e8043ec1a2a5d96.js} +1 -1
  71. package/assets/esri/core/workers/chunks/40e48b720d89cd067892.js +1 -0
  72. package/assets/esri/core/workers/chunks/{a833fc9250635eb4152f.js → 41f7f3615d3ecb87c59a.js} +1 -1
  73. package/assets/esri/core/workers/chunks/{17acbf40e7c1cb42d9bd.js → 44b1cdf28269b4fa8a39.js} +1 -1
  74. package/assets/esri/core/workers/chunks/44e8cd4b3dad777ab0c9.js +1 -0
  75. package/assets/esri/core/workers/chunks/{95b3b8fe45ef4ac6b277.js → 450bc48a7389607bce1e.js} +1 -1
  76. package/assets/esri/core/workers/chunks/465a050fd838ee8eddf3.js +1 -0
  77. package/assets/esri/core/workers/chunks/46d8a1d6f7341ad20749.js +1 -0
  78. package/assets/esri/core/workers/chunks/4710f21b138a2c9a0345.js +1 -0
  79. package/assets/esri/core/workers/chunks/48a0dfaabb9b4bce4191.js +1 -0
  80. package/assets/esri/core/workers/chunks/49a3888bf9e2481642ac.js +1 -0
  81. package/assets/esri/core/workers/chunks/{4ee900e5dbb130fa0c7b.js → 4a40b894ec89b0a4f9bf.js} +1 -1
  82. package/assets/esri/core/workers/chunks/{d847c3cb2043a983145b.js → 4addea2e35b0c845743e.js} +1 -1
  83. package/assets/esri/core/workers/chunks/{e0a4d0288abd334b0673.js → 4ae626868e14bedd7fc5.js} +1 -1
  84. package/assets/esri/core/workers/chunks/529ee4670940720e888b.js +1 -0
  85. package/assets/esri/core/workers/chunks/{a3c882fe7599dc0f4f27.js → 59d1708ae13c6e7e6e55.js} +1 -1
  86. package/assets/esri/core/workers/chunks/59dd83e5aee2908c7eca.js +1 -0
  87. package/assets/esri/core/workers/chunks/5dbd8ca7e7b8eb9a0bf7.js +1 -0
  88. package/assets/esri/core/workers/chunks/{b8bdacebd4d24ba90f3f.js → 5fde1234c5cccaee6763.js} +1 -1
  89. package/assets/esri/core/workers/chunks/60f9b37dd738d884c48d.js +1 -0
  90. package/assets/esri/core/workers/chunks/6123894e2ae9233cdf89.js +1 -0
  91. package/assets/esri/core/workers/chunks/62c8413f3bbc1378273d.js +1 -0
  92. package/assets/esri/core/workers/chunks/6501ee40bf25f9f75d02.js +1 -0
  93. package/assets/esri/core/workers/chunks/663cf8bff17c894cd5f8.js +1 -0
  94. package/assets/esri/core/workers/chunks/6b536d03b4bef408035b.js +1 -0
  95. package/assets/esri/core/workers/chunks/6c98a64d92c9bca78203.js +1 -0
  96. package/assets/esri/core/workers/chunks/6d1371b521c7f94fd77e.js +1 -0
  97. package/assets/esri/core/workers/chunks/6d5038d4351fe29e2718.js +1 -0
  98. package/assets/esri/core/workers/chunks/6f102c90908c9900cdaa.js +1 -0
  99. package/assets/esri/core/workers/chunks/6f39545710d1b35d922c.js +1 -0
  100. package/assets/esri/core/workers/chunks/7278fdf6bfcdffa10a7f.js +1 -0
  101. package/assets/esri/core/workers/chunks/72eb0ac55026a4f5d6a7.js +1 -0
  102. package/assets/esri/core/workers/chunks/73cb499d7d68c59ba34e.js +1 -0
  103. package/assets/esri/core/workers/chunks/{b8d788e110c212a879ab.js → 73f228d966b89c73c9e9.js} +1 -1
  104. package/assets/esri/core/workers/chunks/{e7402dfd683f82878360.js → 752343d92ed48e674351.js} +1 -1
  105. package/assets/esri/core/workers/chunks/7538a0fe0cec3156769e.js +1 -0
  106. package/assets/esri/core/workers/chunks/76bccc318d7cc33829a7.js +1 -0
  107. package/assets/esri/core/workers/chunks/771ead806efbe9c91fdc.js +1 -0
  108. package/assets/esri/core/workers/chunks/777eafdb86b26b35c803.js +1 -0
  109. package/assets/esri/core/workers/chunks/7821aeba3e414b318a75.js +1 -0
  110. package/assets/esri/core/workers/chunks/78b80da3bbc1b608fe83.js +1 -0
  111. package/assets/esri/core/workers/chunks/7b531feba4fd662575f9.js +1 -0
  112. package/assets/esri/core/workers/chunks/7c57354d026e27e056d4.js +1 -0
  113. package/assets/esri/core/workers/chunks/7d163d9d90393e491ee5.js +1 -0
  114. package/assets/esri/core/workers/chunks/7d4c65311064a5c2e0b1.js +1 -0
  115. package/assets/esri/core/workers/chunks/{0474af7687466d8befd2.js → 7e2794705b4e679fcb3f.js} +1 -1
  116. package/assets/esri/core/workers/chunks/7ebbb90d80600d9ba889.js +1 -0
  117. package/assets/esri/core/workers/chunks/7f125963555dc1ce63ad.js +1 -0
  118. package/assets/esri/core/workers/chunks/{763cbb6716e398436a6d.js → 7f6eee102871769fdf8f.js} +1 -1
  119. package/assets/esri/core/workers/chunks/805c97b875d3066fb8df.js +1 -0
  120. package/assets/esri/core/workers/chunks/8566449c39eba55147f5.js +1 -0
  121. package/assets/esri/core/workers/chunks/86ed75b7169b8ee43025.js +1 -0
  122. package/assets/esri/core/workers/chunks/{9482a6d7baa24bbf5693.js → 89132395eca329b9ab92.js} +1 -1
  123. package/assets/esri/core/workers/chunks/{28bc5e8e82f188b30eb9.js → 894343e415639df88243.js} +1 -1
  124. package/assets/esri/core/workers/chunks/8b4759cef5ae5e43253b.js +1 -0
  125. package/assets/esri/core/workers/chunks/8ba4175f5e9a24ffecf7.js +1 -0
  126. package/assets/esri/core/workers/chunks/8be707044d992ef5f1d8.js +1 -0
  127. package/assets/esri/core/workers/chunks/{bd862382f72ebd446b46.js → 8d2cac1952e817daaf1f.js} +1 -1
  128. package/assets/esri/core/workers/chunks/8e1d4867406753c5483c.js +1 -0
  129. package/assets/esri/core/workers/chunks/8e38c5e63aae42bdf5a4.js +29 -0
  130. package/assets/esri/core/workers/chunks/{02ab09285a5c4ca98066.js → 8f785b722b1a131bf370.js} +1 -1
  131. package/assets/esri/core/workers/chunks/8f9874f42f21a4cb3acd.js +1 -0
  132. package/assets/esri/core/workers/chunks/90f4b81c6034253b70d7.js +1 -0
  133. package/assets/esri/core/workers/chunks/917c11cb40a7742d7f98.js +1 -0
  134. package/assets/esri/core/workers/chunks/93ab247ff34694ac60eb.js +1 -0
  135. package/assets/esri/core/workers/chunks/{6e45d0db97ffa4509177.js → 94bf7f0da6ad3f7ea277.js} +1 -1
  136. package/assets/esri/core/workers/chunks/{580451761cadfe308919.js → 9954149def644c371894.js} +1 -1
  137. package/assets/esri/core/workers/chunks/9c57161ad48d8d546dc7.js +1 -0
  138. package/assets/esri/core/workers/chunks/{33bd9785bd0b6ccef21b.js → 9c5dff4f13102871786e.js} +1 -1
  139. package/assets/esri/core/workers/chunks/9d0bda096cdbd7e22f4b.js +1 -0
  140. package/assets/esri/core/workers/chunks/9dfb7d120195991e9672.js +1 -0
  141. package/assets/esri/core/workers/chunks/9ed5e6b06afea6c85330.js +1 -0
  142. package/assets/esri/core/workers/chunks/9f65cc6d9f7390bb1d5b.js +1 -0
  143. package/assets/esri/core/workers/chunks/{79b857bb301f9c4169d6.js → 9fee8441fbac9f723f77.js} +1 -1
  144. package/assets/esri/core/workers/chunks/a108f276659d5f25352c.js +1 -0
  145. package/assets/esri/core/workers/chunks/a2d8bc0efddd2e13b1ad.js +1 -0
  146. package/assets/esri/core/workers/chunks/{b32ede7805c7c6644e4c.js → a3bf8aa81ee398da5b52.js} +1 -1
  147. package/assets/esri/core/workers/chunks/{5b30231ae0a8f4b8435f.js → a504fa17d83facf1c01f.js} +1 -1
  148. package/assets/esri/core/workers/chunks/{538fe46dfd685a490e23.js → a7f42ada0aa69873a938.js} +1 -1
  149. package/assets/esri/core/workers/chunks/a97e0b9b057664911c14.js +1 -0
  150. package/assets/esri/core/workers/chunks/{cb58aff1ff186fa18345.js → a9f616f22042b0dce8b9.js} +1 -1
  151. package/assets/esri/core/workers/chunks/{128799741dd3c6fc69b9.js → ac4131121230cfc14f21.js} +1 -1
  152. package/assets/esri/core/workers/chunks/afd63c18ce4656271c8e.js +1 -0
  153. package/assets/esri/core/workers/chunks/{f04cb48fc73635d0572f.js → b059dabb1c732829487c.js} +1 -1
  154. package/assets/esri/core/workers/chunks/b13d2da33ec07e9d41ff.js +1 -0
  155. package/assets/esri/core/workers/chunks/b313464b987db8a3987a.js +1 -0
  156. package/assets/esri/core/workers/chunks/b318823aefcefad6fad5.js +1 -0
  157. package/assets/esri/core/workers/chunks/b378e504a5b1afc8d0ce.js +1 -0
  158. package/assets/esri/core/workers/chunks/{9fb87a7dba62b527c0ba.js → b3a1a93c6dc9247cb048.js} +1 -1
  159. package/assets/esri/core/workers/chunks/b5397dc03fa0bd654ba6.js +1 -0
  160. package/assets/esri/core/workers/chunks/b5b698008b8f3f4d5d61.js +1 -0
  161. package/assets/esri/core/workers/chunks/b7bcb31737b01d7736d0.js +1 -0
  162. package/assets/esri/core/workers/chunks/b9a1046ca2cd0cca5da5.js +1 -0
  163. package/assets/esri/core/workers/chunks/{cda04571d7623c17ada2.js → b9c7aa04861f545a559c.js} +1 -1
  164. package/assets/esri/core/workers/chunks/{7df795bc4fa1d433463b.js → ba030767cf935f967454.js} +1 -1
  165. package/assets/esri/core/workers/chunks/{53d165b4f30fd64e5d8a.js → bd311c85437743cf7d2f.js} +1 -1
  166. package/assets/esri/core/workers/chunks/bd88228f781a0399d8bd.js +1 -0
  167. package/assets/esri/core/workers/chunks/bfb626805405646a0419.js +1 -0
  168. package/assets/esri/core/workers/chunks/{61d3fcb419d6bf7e355e.js → c1e45e24f5ef719a714c.js} +18 -18
  169. package/assets/esri/core/workers/chunks/c203df41f9d2e4b80889.js +1 -0
  170. package/assets/esri/core/workers/chunks/{278409028bc5af45b507.js → c4c83b5129c279c3615b.js} +1 -1
  171. package/assets/esri/core/workers/chunks/c53b2be005721591e29b.js +1 -0
  172. package/assets/esri/core/workers/chunks/c6ef0636073e28350c91.js +1 -0
  173. package/assets/esri/core/workers/chunks/c7e391df714839484cd1.js +1 -0
  174. package/assets/esri/core/workers/chunks/{e287113777a94ded8de6.js → c82ab4f0908290e70ee9.js} +1 -1
  175. package/assets/esri/core/workers/chunks/cded485ad893a7dd2948.js +1 -0
  176. package/assets/esri/core/workers/chunks/{1cf8fb704c48ac3d3b15.js → cf360767310fb45660a8.js} +1 -1
  177. package/assets/esri/core/workers/chunks/{8f2fecd8a0a972d68590.js → cf8ce63711488f2e677c.js} +1 -1
  178. package/assets/esri/core/workers/chunks/d214ac457ac970479536.js +1 -0
  179. package/assets/esri/core/workers/chunks/d4058352db1e8255b52e.js +1 -0
  180. package/assets/esri/core/workers/chunks/d456520e4b119a2816b6.js +1 -0
  181. package/assets/esri/core/workers/chunks/d4d385d19e62ef1c286f.js +1 -0
  182. package/assets/esri/core/workers/chunks/d4f005dadba75422b401.js +1 -0
  183. package/assets/esri/core/workers/chunks/{52c4b4dabcb0d162be72.js → d5e15021928e95c11463.js} +1 -1
  184. package/assets/esri/core/workers/chunks/{fc639c730115e07a4a1a.js → d6500f6b2ff115d9eb09.js} +1 -1
  185. package/assets/esri/core/workers/chunks/e02f02040b63d9c2e654.js +1 -0
  186. package/assets/esri/core/workers/chunks/e08c64e4ae5a68eae2be.js +1 -0
  187. package/assets/esri/core/workers/chunks/e1492d2404c3ed82931e.js +1 -0
  188. package/assets/esri/core/workers/chunks/e2ddfc96ddba92302e0c.js +1 -0
  189. package/assets/esri/core/workers/chunks/e34ed3b818b2eb4116c5.js +1 -0
  190. package/assets/esri/core/workers/chunks/e7149d23615fee31ab7e.js +1 -0
  191. package/assets/esri/core/workers/chunks/ec774f5d6ea5c29536e5.js +1 -0
  192. package/assets/esri/core/workers/chunks/{35cbf00f0c37a86517af.js → ed1de8b7406269e217b9.js} +1 -1
  193. package/assets/esri/core/workers/chunks/ed4ac5568dc2815b066d.js +1 -0
  194. package/assets/esri/core/workers/chunks/ed71a4e353715db0a6e9.js +1 -0
  195. package/assets/esri/core/workers/chunks/{f4891345507df63cff3c.js → ef27bf1d7941ae265ca4.js} +3 -3
  196. package/assets/esri/core/workers/chunks/f029c12f1afee0e9b2a1.js +1 -0
  197. package/assets/esri/core/workers/chunks/{1e342d532925569daadb.js → f475672ff4c2ec9367c2.js} +1 -1
  198. package/assets/esri/core/workers/chunks/{cc414fd2e313d89d524d.js → f54eba484f40d5eeb590.js} +1 -1
  199. package/assets/esri/core/workers/chunks/f5c9659fc5d571d501c9.js +1 -0
  200. package/assets/esri/core/workers/chunks/f622b27ebdf1c918fd6d.js +1 -0
  201. package/assets/esri/core/workers/chunks/{dd95f50dac3f33cdb6d2.js → f6a13f07a5f7b781a9a8.js} +1 -1
  202. package/assets/esri/core/workers/chunks/{d849bdaf5bdfdc37531a.js → f6f7d885b4d6080e3f58.js} +1 -1
  203. package/assets/esri/core/workers/chunks/f8b8d3d2710c83acccf3.js +1 -0
  204. package/assets/esri/core/workers/chunks/f95870bb4d8e4e13e69e.js +1 -0
  205. package/assets/esri/core/workers/chunks/fa377112ef3b78f6ed18.js +1 -0
  206. package/assets/esri/core/workers/chunks/fa59f10ed0f182a2a7f3.js +1 -0
  207. package/assets/esri/core/workers/chunks/faa55265020591fd2224.js +1 -0
  208. package/assets/esri/core/workers/chunks/fc827f58db3194922056.js +1 -0
  209. package/chunks/VolumeMask.glsl.js +3 -0
  210. package/chunks/_commonjsHelpers.js +1 -1
  211. package/chunks/aiServices.js +1 -1
  212. package/chunks/array.js +1 -1
  213. package/chunks/languageUtils.js +1 -1
  214. package/chunks/persistableUrlUtils.js +1 -1
  215. package/config.js +1 -1
  216. package/core/Collection.d.ts +42 -6
  217. package/core/Collection.js +1 -1
  218. package/form/ExpressionInfo.d.ts +1 -1
  219. package/form/ExpressionInfo.js +1 -1
  220. package/form/elements/FieldElement.d.ts +3 -2
  221. package/form/elements/inputs/ComboBoxInput.d.ts +4 -15
  222. package/form/elements/inputs/ComboBoxInput.js +1 -1
  223. package/form/elements/inputs/DynamicChoiceInput.d.ts +31 -0
  224. package/form/elements/inputs/DynamicChoiceInput.js +2 -0
  225. package/form/elements/inputs/Input.d.ts +1 -1
  226. package/form/elements/inputs/RadioButtonsInput.d.ts +4 -15
  227. package/form/elements/inputs/RadioButtonsInput.js +1 -1
  228. package/form/elements/inputs/SingleChoiceInput.d.ts +18 -0
  229. package/form/elements/inputs/SingleChoiceInput.js +2 -0
  230. package/form/elements/inputs.d.ts +11 -2
  231. package/form/elements/inputs.js +1 -1
  232. package/geometry/SpatialReference.d.ts +1 -4
  233. package/geometry/support/normalizeUtils.d.ts +1 -1
  234. package/kernel.js +1 -1
  235. package/layers/BaseElevationLayer.js +1 -1
  236. package/layers/ElevationLayer.js +1 -1
  237. package/layers/ImageryTileLayer.d.ts +1 -1
  238. package/layers/IntegratedMesh3DTilesLayer.js +1 -1
  239. package/layers/KnowledgeGraphLayer.js +1 -1
  240. package/layers/Lyr3DWasmPerSceneView.js +1 -1
  241. package/layers/RouteLayer.d.ts +1 -1
  242. package/layers/StreamLayer.js +1 -1
  243. package/layers/VoxelWasmPerSceneView.js +1 -1
  244. package/layers/graphics/sources/connections/createConnection.js +1 -1
  245. package/layers/graphics/sources/parquet/ParquetFileStatistics.js +1 -1
  246. package/layers/graphics/sources/support/ParquetSourceWorker.js +1 -1
  247. package/layers/graphics/sources/support/QueryTask.js +1 -1
  248. package/layers/mixins/ArcGISImageService.d.ts +24 -24
  249. package/layers/mixins/SceneService.js +1 -1
  250. package/layers/mixins/TiledImagery.d.ts +1 -1
  251. package/layers/orientedImagery/transformations/rectifyMapPoint.js +1 -1
  252. package/layers/raster/datasets/BaseRaster.js +1 -1
  253. package/layers/save/groupLayerUtils.js +1 -1
  254. package/layers/save/mediaLayerUtils.js +1 -1
  255. package/layers/support/ElevationQueryTileCache.js +1 -1
  256. package/layers/video/VideoController.js +1 -1
  257. package/layers/video/types.d.ts +17 -1
  258. package/linkChart/LinkChartProperties.js +1 -1
  259. package/networks/support/CircuitExportJobInfo.d.ts +1 -1
  260. package/networks/support/CircuitVerifyJobInfo.d.ts +1 -1
  261. package/networks/support/TopologyValidationJobInfo.d.ts +1 -1
  262. package/networks/support/TraceJobInfo.d.ts +1 -1
  263. package/package.json +2 -2
  264. package/portal/jsonTypes.d.ts +1 -1
  265. package/portal/support/jsonContext.js +1 -1
  266. package/rest/closestFacility.d.ts +1 -1
  267. package/rest/find.d.ts +1 -1
  268. package/rest/geometryService.d.ts +21 -21
  269. package/rest/geoprocessor.d.ts +2 -2
  270. package/rest/identify.d.ts +1 -1
  271. package/rest/imageService.d.ts +19 -19
  272. package/rest/lastMileDelivery.d.ts +8 -8
  273. package/rest/locator.d.ts +4 -4
  274. package/rest/networkService.d.ts +1 -1
  275. package/rest/networks/queryAssociations.d.ts +1 -1
  276. package/rest/networks/synthesizeAssociationGeometries.d.ts +1 -1
  277. package/rest/networks/trace.d.ts +1 -1
  278. package/rest/networks/traverseAssociations.d.ts +1 -1
  279. package/rest/places.d.ts +3 -3
  280. package/rest/print.d.ts +1 -1
  281. package/rest/query.d.ts +11 -11
  282. package/rest/route.d.ts +1 -1
  283. package/rest/serviceArea.d.ts +1 -1
  284. package/rest/support/JobInfo.d.ts +5 -5
  285. package/rest/symbolService.d.ts +1 -1
  286. package/support/persistableUrlUtils.js +1 -1
  287. package/support/revision.js +1 -1
  288. package/views/2d/layers/features/sources/strategies/AFeatureLoadStrategy.js +1 -1
  289. package/views/2d/layers/features/sources/strategies/FeatureHybridTileLoadStrategy.js +1 -1
  290. package/views/3d/GroundView3D.js +1 -1
  291. package/views/3d/analysis/LineOfSight/LineOfSightReshapeTool3D.js +1 -1
  292. package/views/3d/analysis/LineOfSight/LineOfSightTool.js +1 -1
  293. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementCutFillController.js +1 -1
  294. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementShiftTool.js +1 -1
  295. package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
  296. package/views/3d/layers/graphics/Graphics3DPathSymbolLayer.js +1 -1
  297. package/views/3d/layers/graphics/Graphics3DPathSymbolLayerConstants.js +1 -1
  298. package/views/3d/layers/graphics/defaultSymbolComplexity.js +1 -1
  299. package/views/3d/layers/i3s/I3SIntersectionHandler.js +1 -1
  300. package/views/3d/layers/i3s/PointCloudRenderer.js +1 -1
  301. package/views/3d/layers/support/Tiles3DMeshIntersectionHandler.js +1 -1
  302. package/views/3d/state/helpers/SceneIntersectionHelper.js +1 -1
  303. package/views/3d/support/gaussianSplatting/GaussianSplatHeaderTexture.js +1 -1
  304. package/views/3d/support/gaussianSplatting/GaussianSplatIntersectionHandler.js +1 -1
  305. package/views/3d/support/hitTest.js +1 -1
  306. package/views/3d/support/pointsOfInterest/CameraOnSurface.js +1 -1
  307. package/views/3d/support/pointsOfInterest/PointsOfInterest.js +1 -1
  308. package/views/3d/support/pointsOfInterest/StableSurfaceCenter.js +1 -1
  309. package/views/3d/terrain/TerrainRenderer.js +1 -1
  310. package/views/3d/terrain/TerrainSurface.js +1 -1
  311. package/views/3d/webgl-engine/collections/Component/ComponentObjectElevationAgnosticBVH.js +1 -1
  312. package/views/3d/webgl-engine/collections/Component/ComponentObjectFixedBVH.js +1 -1
  313. package/views/3d/webgl-engine/collections/Component/IntersectionGeometry.js +1 -1
  314. package/views/3d/webgl-engine/core/shaderLibrary/TextureBackedBufferFields.glsl.js +1 -1
  315. package/views/3d/webgl-engine/core/shaderLibrary/attributes/PathEvaluate.glsl.js +49 -32
  316. package/views/3d/webgl-engine/core/shaderLibrary/attributes/PathVertexInfo.glsl.js +5 -5
  317. package/views/3d/webgl-engine/core/shaderLibrary/attributes/PathVertexPosition.glsl.js +23 -23
  318. package/views/3d/webgl-engine/effects/focusArea/FocusAreaMask.js +1 -1
  319. package/views/3d/webgl-engine/lib/CutFillVisualization.js +1 -1
  320. package/views/3d/webgl-engine/lib/GaussianSplatRenderer.js +1 -1
  321. package/views/3d/webgl-engine/lib/Intersector.js +1 -1
  322. package/views/3d/webgl-engine/lib/IntersectorResult.js +1 -1
  323. package/views/3d/webgl-engine/lib/PathBuilder.js +1 -1
  324. package/views/3d/webgl-engine/lib/PathEvaluator.js +1 -1
  325. package/views/3d/webgl-engine/lib/PathExtruder.js +1 -1
  326. package/views/3d/webgl-engine/lib/RayIntersections.js +1 -1
  327. package/views/3d/webgl-engine/lib/ShadowAccumulator.js +1 -1
  328. package/views/3d/webgl-engine/lib/SortedRenderGeometryRenderer.js +1 -1
  329. package/views/3d/webgl-engine/lib/TextureBackedBuffer/TextureBackedBufferFieldCreation.js +1 -1
  330. package/views/3d/webgl-engine/lib/lodRendering/LodResources.js +1 -1
  331. package/views/3d/webgl-engine/materials/HUDMaterial.js +1 -1
  332. package/views/3d/webgl-engine/materials/HeatmapDensityMaterial.js +1 -1
  333. package/views/3d/webgl-engine/materials/NativeLineMaterial.js +1 -1
  334. package/views/3d/webgl-engine/materials/PathMaterial.js +1 -1
  335. package/views/3d/webgl-engine/materials/PathTechniqueConfiguration.js +1 -1
  336. package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
  337. package/views/3d/webgl-engine/materials/intersectWithPolygonOffset.js +1 -1
  338. package/views/3d/webgl-engine/shaders/ShadowCastMaskTechnique.js +1 -1
  339. package/views/3d/webgl-engine/shaders/{CutFillMask.glsl.js → VolumeMask.glsl.js} +1 -1
  340. package/views/3d/webgl-engine/shaders/VolumeMaskTechnique.js +2 -0
  341. package/views/draw/support/InteractiveHandle.js +1 -1
  342. package/views/draw/support/managers/SurfaceManager.js +1 -1
  343. package/views/interactive/Tooltip.d.ts +3 -3
  344. package/views/interactive/Tooltip.js +1 -1
  345. package/views/interactive/options/ElevationOptions.d.ts +20 -0
  346. package/views/interactive/options/ElevationOptions.js +2 -0
  347. package/views/interactive/options/LabelOptions.d.ts +74 -0
  348. package/views/interactive/options/LabelOptions.js +2 -0
  349. package/views/interactive/options/SnappingOptions.d.ts +157 -0
  350. package/views/interactive/options/SnappingOptions.js +2 -0
  351. package/views/interactive/options/TooltipOptions.d.ts +152 -0
  352. package/views/interactive/options/TooltipOptions.js +2 -0
  353. package/views/interactive/options/TooltipVisibleElements.d.ts +105 -0
  354. package/views/interactive/options/TooltipVisibleElements.js +2 -0
  355. package/views/interactive/options/ValueOptions.d.ts +63 -0
  356. package/views/interactive/options/ValueOptions.js +2 -0
  357. package/views/interactive/sketch/SketchLabelOptions.d.ts +7 -9
  358. package/views/interactive/sketch/SketchLabelOptions.js +1 -1
  359. package/views/interactive/sketch/SketchTooltipElevationOptions.js +1 -1
  360. package/views/interactive/sketch/SketchTooltipOptions.d.ts +8 -50
  361. package/views/interactive/sketch/SketchTooltipOptions.js +1 -1
  362. package/views/interactive/sketch/SketchTooltipVisibleElements.d.ts +10 -95
  363. package/views/interactive/sketch/SketchTooltipVisibleElements.js +1 -1
  364. package/views/interactive/sketch/SketchValueOptions.d.ts +7 -45
  365. package/views/interactive/sketch/SketchValueOptions.js +1 -1
  366. package/views/interactive/sketch/Units.d.ts +10 -29
  367. package/views/interactive/sketch/Units.js +1 -1
  368. package/views/interactive/snapping/SnappingOptions.d.ts +7 -78
  369. package/views/interactive/snapping/SnappingOptions.js +1 -1
  370. package/views/interactive/support/Units.d.ts +33 -0
  371. package/views/interactive/support/Units.js +2 -0
  372. package/views/interactive/support/types.d.ts +33 -0
  373. package/views/interactive/tooltip/types.d.ts +6 -2
  374. package/webdoc/support/resourceUtils.js +1 -1
  375. package/webdoc/support/types.d.ts +2 -0
  376. package/webdoc/support/utils.js +2 -0
  377. package/webdoc/support/webdocLoadUtils.js +1 -1
  378. package/webdoc/support/webdocSaveUtils.js +1 -1
  379. package/widgets/BatchAttributeForm/BatchAttributeFormViewModel.js +1 -1
  380. package/widgets/BatchAttributeForm/batchAttributeFormUtils.js +1 -1
  381. package/widgets/BatchAttributeForm/expressions/ArcadeExecutorProvider.js +1 -1
  382. package/widgets/BatchAttributeForm/expressions/ExpressionsManager.js +1 -1
  383. package/widgets/BatchAttributeForm/expressions/ExpressionsModel.js +1 -1
  384. package/widgets/BatchAttributeForm/inputs/AttachmentElementInput.js +1 -1
  385. package/widgets/BatchAttributeForm/inputs/BatchFormInputs.js +1 -1
  386. package/widgets/BatchAttributeForm/inputs/FieldInput.js +1 -1
  387. package/widgets/BatchAttributeForm/inputs/RelationshipElementInput.js +1 -1
  388. package/widgets/BatchAttributeForm/inputs/support/inputUtils.js +1 -1
  389. package/widgets/BatchAttributeForm/rendered-content/RelationshipDetails.js +1 -1
  390. package/widgets/BatchAttributeForm/templates/support/createBatchFormTemplate.js +1 -1
  391. package/widgets/BatchAttributeForm.js +1 -1
  392. package/widgets/Editor/UpdateWorkflow.js +1 -1
  393. package/widgets/Editor.js +1 -1
  394. package/widgets/FeatureForm.js +1 -1
  395. package/widgets/FeatureTable/Grid/Column.d.ts +6 -0
  396. package/widgets/Legend/support/ActiveLayerInfo.js +1 -1
  397. package/widgets/Sketch/SketchViewModel.js +1 -1
  398. package/widgets/support/SelectionList/FeatureItem.d.ts +116 -0
  399. package/widgets/support/SelectionList/GroupLayerItem.d.ts +94 -0
  400. package/widgets/support/SelectionList/ItemBase.d.ts +70 -0
  401. package/widgets/support/SelectionList/LayerItem.d.ts +140 -0
  402. package/widgets/support/SelectionList/LayerItem.js +1 -1
  403. package/widgets/support/SelectionList/SelectionListViewModel.d.ts +265 -0
  404. package/widgets/support/SelectionList/SelectionListViewModel.js +1 -1
  405. package/widgets/support/SelectionList/types.d.ts +42 -0
  406. package/widgets/support/forms/formUtils.js +1 -1
  407. package/assets/esri/core/workers/chunks/003a87b16f8a4b476e14.js +0 -1
  408. package/assets/esri/core/workers/chunks/069b6d8bdb34ee88d437.js +0 -1
  409. package/assets/esri/core/workers/chunks/0790bf0eb276cd9166f6.js +0 -1
  410. package/assets/esri/core/workers/chunks/0a50efb07eee36237e21.js +0 -1
  411. package/assets/esri/core/workers/chunks/0ae0483b72f5e8d00d55.js +0 -1
  412. package/assets/esri/core/workers/chunks/0d1224693a62a26a0e72.js +0 -1
  413. package/assets/esri/core/workers/chunks/10b367563f894ceb9864.js +0 -1
  414. package/assets/esri/core/workers/chunks/11e00ca5ac1b004f4ecc.js +0 -1
  415. package/assets/esri/core/workers/chunks/129fdd1636e67997337c.js +0 -1
  416. package/assets/esri/core/workers/chunks/12e0c5b7cc5c3f9e6f0f.js +0 -1
  417. package/assets/esri/core/workers/chunks/13033178de9f637a2356.js +0 -1
  418. package/assets/esri/core/workers/chunks/13c893e448bedc5c1cef.js +0 -1
  419. package/assets/esri/core/workers/chunks/147a89553188cc6aabf4.js +0 -1
  420. package/assets/esri/core/workers/chunks/15c2d9bec0455fc363a9.js +0 -1
  421. package/assets/esri/core/workers/chunks/246cd372d4184233f48e.js +0 -1
  422. package/assets/esri/core/workers/chunks/268ab65afc3fce775ad2.js +0 -1
  423. package/assets/esri/core/workers/chunks/26a2d4b95cda0a41d980.js +0 -1
  424. package/assets/esri/core/workers/chunks/26f1fd3f2be5102aae1d.js +0 -1
  425. package/assets/esri/core/workers/chunks/279a9a38b04a21cdfd11.js +0 -1
  426. package/assets/esri/core/workers/chunks/3406a01dad6338e3c548.js +0 -1
  427. package/assets/esri/core/workers/chunks/34fbeeeeef4bd01672c6.js +0 -1
  428. package/assets/esri/core/workers/chunks/36781219ca9ba5d7fe52.js +0 -1
  429. package/assets/esri/core/workers/chunks/36999a2e383c8eb3c398.js +0 -1
  430. package/assets/esri/core/workers/chunks/36f8a912842181e1f0aa.js +0 -1
  431. package/assets/esri/core/workers/chunks/36fe6adf6517d8f80125.js +0 -1
  432. package/assets/esri/core/workers/chunks/3f1a7f8a9ead64bf0b7b.js +0 -1
  433. package/assets/esri/core/workers/chunks/403f08e0c1a9203f7fba.js +0 -1
  434. package/assets/esri/core/workers/chunks/461c2de938bf4c9b1442.js +0 -1
  435. package/assets/esri/core/workers/chunks/478540265c86436da05e.js +0 -1
  436. package/assets/esri/core/workers/chunks/479f486ec1797629ec70.js +0 -1
  437. package/assets/esri/core/workers/chunks/484b3e2a220c440ccbb4.js +0 -1
  438. package/assets/esri/core/workers/chunks/4a340836ddbc856993f2.js +0 -1
  439. package/assets/esri/core/workers/chunks/4f2170609742b51bd7b8.js +0 -1
  440. package/assets/esri/core/workers/chunks/4f59357f535f30a6b5cc.js +0 -1
  441. package/assets/esri/core/workers/chunks/5133083222588799493f.js +0 -1
  442. package/assets/esri/core/workers/chunks/52993a9dc0c56e9bda19.js +0 -1
  443. package/assets/esri/core/workers/chunks/57b07448da06d0302a46.js +0 -1
  444. package/assets/esri/core/workers/chunks/5a9ff50fdcc99ae28cce.js +0 -1
  445. package/assets/esri/core/workers/chunks/5dc17b76c6ecc24e7b9a.js +0 -1
  446. package/assets/esri/core/workers/chunks/5e35828216020f33e26b.js +0 -1
  447. package/assets/esri/core/workers/chunks/5eb6f37c74a217772eca.js +0 -1
  448. package/assets/esri/core/workers/chunks/5f0d6c853873a7f32527.js +0 -1
  449. package/assets/esri/core/workers/chunks/6121cd0264b6841a5bac.js +0 -1
  450. package/assets/esri/core/workers/chunks/6210fb6cd31844f23964.js +0 -1
  451. package/assets/esri/core/workers/chunks/638ed1297efdb24f4711.js +0 -1
  452. package/assets/esri/core/workers/chunks/64247e439ef3e1f712e9.js +0 -1
  453. package/assets/esri/core/workers/chunks/661a59133ae34f172174.js +0 -1
  454. package/assets/esri/core/workers/chunks/6823ba1688dfedba0107.js +0 -1
  455. package/assets/esri/core/workers/chunks/6c2b5087a9df65267f4e.js +0 -1
  456. package/assets/esri/core/workers/chunks/6d247ff53421d27628ce.js +0 -1
  457. package/assets/esri/core/workers/chunks/700c08dd2e734c15e621.js +0 -1
  458. package/assets/esri/core/workers/chunks/70452f6d63e9be8d03dd.js +0 -1
  459. package/assets/esri/core/workers/chunks/705d6b108fd121cea887.js +0 -1
  460. package/assets/esri/core/workers/chunks/733b2e181683d5fc7c95.js +0 -1
  461. package/assets/esri/core/workers/chunks/73aa1bfa6e1dc271c9d7.js +0 -1
  462. package/assets/esri/core/workers/chunks/7659391f952d134164cf.js +0 -1
  463. package/assets/esri/core/workers/chunks/7889f4a17cf249f2acc5.js +0 -1
  464. package/assets/esri/core/workers/chunks/7a2dcd57849048c6e00d.js +0 -1
  465. package/assets/esri/core/workers/chunks/7a2dfa42610fe8414ed7.js +0 -1
  466. package/assets/esri/core/workers/chunks/7ce52b850dd785bfa33f.js +0 -1
  467. package/assets/esri/core/workers/chunks/81accb1820e2735fa376.js +0 -1
  468. package/assets/esri/core/workers/chunks/8210fc9e072209e26fa9.js +0 -1
  469. package/assets/esri/core/workers/chunks/825eb845216762a1ed2f.js +0 -1
  470. package/assets/esri/core/workers/chunks/83991475aa54fd5aa008.js +0 -1
  471. package/assets/esri/core/workers/chunks/84fa102a93b2144c28fb.js +0 -1
  472. package/assets/esri/core/workers/chunks/85ce7673d42526a79fd2.js +0 -1
  473. package/assets/esri/core/workers/chunks/8722e2790272e90a1897.js +0 -1
  474. package/assets/esri/core/workers/chunks/88df19742edb0cdc3e67.js +0 -1
  475. package/assets/esri/core/workers/chunks/8977c85aecc7e08ab13c.js +0 -1
  476. package/assets/esri/core/workers/chunks/8a1970e68bc1e833cb7f.js +0 -1
  477. package/assets/esri/core/workers/chunks/8bb20ef549ec1c86b38e.js +0 -1
  478. package/assets/esri/core/workers/chunks/8bdca809dd88eab9e5d8.js +0 -29
  479. package/assets/esri/core/workers/chunks/8c5726c7ce40a92901e6.js +0 -1
  480. package/assets/esri/core/workers/chunks/8c5e65982c3f9295e844.js +0 -1
  481. package/assets/esri/core/workers/chunks/8ce649e55fefc8eca55c.js +0 -1
  482. package/assets/esri/core/workers/chunks/90ae80b797642bff0efa.js +0 -1
  483. package/assets/esri/core/workers/chunks/94e9cf8e729ec36de5be.js +0 -1
  484. package/assets/esri/core/workers/chunks/97c758f736f28c5dab84.js +0 -1
  485. package/assets/esri/core/workers/chunks/98b27cf8acbfa4259758.js +0 -1
  486. package/assets/esri/core/workers/chunks/9a6208ab670ad74e6f7d.js +0 -1
  487. package/assets/esri/core/workers/chunks/a10f63a08d976be058be.js +0 -1
  488. package/assets/esri/core/workers/chunks/a494abeb026d536d9fae.js +0 -1
  489. package/assets/esri/core/workers/chunks/a5f058567419ea70dff6.js +0 -1
  490. package/assets/esri/core/workers/chunks/a8ade34612e73862de6f.js +0 -1
  491. package/assets/esri/core/workers/chunks/a9d391071803b1e9e8a0.js +0 -1
  492. package/assets/esri/core/workers/chunks/aa3abc07de2921ef6ca1.js +0 -1
  493. package/assets/esri/core/workers/chunks/b03f09ee2224f0cc526a.js +0 -1
  494. package/assets/esri/core/workers/chunks/b3f1a442d6b7826e917f.js +0 -1
  495. package/assets/esri/core/workers/chunks/b5c7813495657f844171.js +0 -1
  496. package/assets/esri/core/workers/chunks/b7170816736769d3b7b0.js +0 -1
  497. package/assets/esri/core/workers/chunks/b819a9187426d0c146df.js +0 -1
  498. package/assets/esri/core/workers/chunks/b8e5d7aefddddbd0a10c.js +0 -1
  499. package/assets/esri/core/workers/chunks/b958f87f23f984131d09.js +0 -1
  500. package/assets/esri/core/workers/chunks/b9f40681af1fa00b5bbe.js +0 -1
  501. package/assets/esri/core/workers/chunks/c4c25db769a78e677e33.js +0 -1
  502. package/assets/esri/core/workers/chunks/c85ba0700eafdc8d6f9e.js +0 -1
  503. package/assets/esri/core/workers/chunks/ca118c42c0f609ca7912.js +0 -1
  504. package/assets/esri/core/workers/chunks/cb17cd8aaf77238c0236.js +0 -1
  505. package/assets/esri/core/workers/chunks/d03f427442bb0c287d05.js +0 -1
  506. package/assets/esri/core/workers/chunks/d08d3c6f21e6ba8268ca.js +0 -1
  507. package/assets/esri/core/workers/chunks/d37a72111dffc4c4db70.js +0 -1
  508. package/assets/esri/core/workers/chunks/d41ab2abcfacc87809b5.js +0 -1
  509. package/assets/esri/core/workers/chunks/d4ed094962a41d756c95.js +0 -1
  510. package/assets/esri/core/workers/chunks/d51c41c1944df0cbab3e.js +0 -1
  511. package/assets/esri/core/workers/chunks/dc24e80d061f7b063608.js +0 -1
  512. package/assets/esri/core/workers/chunks/df30053a10d4930924d5.js +0 -1
  513. package/assets/esri/core/workers/chunks/e3623e557ab463580fd2.js +0 -1
  514. package/assets/esri/core/workers/chunks/e5bb7ee670a3ba5ba3fe.js +0 -1
  515. package/assets/esri/core/workers/chunks/e5c75459de85a6dd2f14.js +0 -1
  516. package/assets/esri/core/workers/chunks/e798ca23f02a2dd65bd4.js +0 -1
  517. package/assets/esri/core/workers/chunks/f0225829f7d941914815.js +0 -1
  518. package/assets/esri/core/workers/chunks/f1299b4fc760ccca1518.js +0 -1
  519. package/assets/esri/core/workers/chunks/f65adaaa33d9f3b131f6.js +0 -1
  520. package/assets/esri/core/workers/chunks/f7fa932ade85cb2847b6.js +0 -1
  521. package/assets/esri/core/workers/chunks/f9b654f801cb416e9e17.js +0 -1
  522. package/assets/esri/core/workers/chunks/fb34d6d96c8c0d53fcf6.js +0 -1
  523. package/assets/esri/core/workers/chunks/fdec3a2e100688c42e41.js +0 -1
  524. package/assets/esri/core/workers/chunks/fefbde2c2e527bb716ee.js +0 -1
  525. package/chunks/CutFillMask.glsl.js +0 -3
  526. package/chunks/FocusAreaMask.glsl.js +0 -3
  527. package/views/3d/webgl-engine/effects/focusArea/FocusAreaMask.glsl.js +0 -2
  528. package/views/3d/webgl-engine/effects/focusArea/FocusAreaMaskTechnique.js +0 -2
  529. package/views/3d/webgl-engine/shaders/CutFillMaskTechnique.js +0 -2
  530. /package/assets/esri/core/workers/chunks/{a12803108c3b12808698.js.LICENSE.txt → 242cad472fbc38b24dbc.js.LICENSE.txt} +0 -0
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{toSymbolId as e,neverAbortedSignal as t}from"./arcadeEnvironment.js";import{ArcadeModule as n}from"./ArcadeModule.js";import{ArcadeModuleLoader as r}from"./ArcadeModuleLoader.js";import{collectDeclaredGlobalNames as o,collectDeclaredLocalNames as a,flattenAccessChain as s}from"./compilerUtils.js";import{getNestedOptionalValue as l,tryGetMember as i,getMember as c,getGeometryMember as u,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,h as I,g as F,r as C,s as M,v as O,u as k,w as j,x as A,f as E,l as N,y as B}from"../chunks/languageUtils.js";import{addFunctionDeclaration as _}from"./treeAnalysis.js";import{A as V}from"../chunks/aiServices.js";import{A as T}from"../chunks/array.js";import{registerFunctions as L}from"./functions/date.js";import{registerFunctions as R}from"./functions/feature.js";import{registerFunctions as U}from"./functions/geometry.js";import{registerFunctions as D}from"./functions/geomsync.js";import{registerFunctions as G}from"./functions/maths.js";import{registerFunctions as q}from"./functions/stats.js";import{registerFunctions as z}from"./functions/string.js";import{registerFunctions as P}from"./functions/track.js";import W from"../core/Logger.js";import{isPromiseLike as K}from"../core/promiseUtils.js";import{addMany as Z}from"../core/SetUtils.js";import J from"../geometry/SpatialReference.js";import{isGraphic as Y}from"../support/graphicInstanceUtils.js";import{isArray as H,isNumber as Q,isString as X,isBoolean as ee}from"../support/guards.js";const te=()=>W.getLogger("esri.arcade.arcadeCompiler");class ne{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,t){const n=e.localScope?.get(t);if(null!=n)return{scope:"local",name:t,var:n};const r=e.globalScope.get(t);return null!=r?{scope:"global",name:t,var:r}:e.standardGlobals.has(t)?{scope:"global",name:t,var:t}:null}function oe(t,n,r="InvalidIdentifier"){const o=re(t,e(n));if(null!=o)return o;throw new d(r,n)}function ae(t,n,r){const o=re(t,e(n));if(null==o)throw te().error(`Internal error: Symbol "${n.name}" not declared.`),new d("NeverReach",n);if(null!=r&&o.scope!==r)throw te().error(`Internal error: Expected to resolve "${n.name}" in the ${r} scope but is in the ${o.scope} scope.`),new d("NeverReach",n);return o}function se(t,n){const r=e(n),o=t.symbolMetadata;if(t.localStack.length>0){const e=t.localStack[t.localStack.length-1],n=o.locals.get(e._SymbolsMapId);if(null==n)return void te().error(`Internal error: no reflection metadata for ${e._SymbolsMapId}`);const a=n.get(r);if(null!=a)return ot.requireInitialized(e[a])}const a=o.globals.get(r);if(null!=a)return ot.requireInitialized(t.globalScope[a]);if(o.standardGlobals.has(r))return ot.requireInitialized(t.globalScope[r]);throw new f("InvalidIdentifier",null)}class le extends w{constructor(e,t){super(),this.paramCount=t,this.fn=e}get debugName(){return null}createFunction(e){return(...e)=>{if(e.length!==this.paramCount)throw new f("WrongNumberOfParameters",null);return this.fn(...e)}}call(e,t){return this.fn(...t.arguments)}marshalledCall(e,t,n,r){return r(e,t,(t,o,a)=>{a=a.map(t=>!x(t)||t instanceof b?t:$(t,e,r));const s=this.call(n,{arguments:a});return K(s)?s.then(e=>$(e,n,r)):s})}}function ie(e,t,n){try{return n(e,null,t.arguments)}catch(r){throw r}}function ce(e,t,n,r,a,s){const{globals:l,exports:i}=o(e),c=new Set(l.keys());Z(c,n);const u=new ne,m=[],p=new Map;for(const o of c)if(n.has(o)||t.has(o))p.set(o,o);else{const e=u.nextVarId();p.set(o,e),m.push(`gscope[${JSON.stringify(e)}] = ${nt};`)}const f=new Map,d=Object.create(null),g={isAsync:r,symbols:u,standardGlobals:t,globalScope:p,exports:i,localScope:null,allLocalSymbolMetadata:f,moduleFactory:s,moduleFactoryMap:d,libraryResolver:a};return{body:[...m,`var ${u.safeAccessTempVarId};`,"var lastStatement = lc.voidOperation;",Fe(g,e),"return lastStatement;"].join("\n"),symbolMetadata:{standardGlobals:t,exports:i,globals:p,locals:f},moduleFactoryMap:d}}function ue(e,t){switch(t.type){case"AssignmentExpression":return ve(e,t);case"UpdateExpression":return be(e,t);case"TemplateLiteral":return Re(e,t);case"Identifier":return Ge(e,t);case"MemberExpression":return Ee(e,t);case"Literal":return null===t.value||void 0===t.value?"null":JSON.stringify(t.value);case"CallExpression":return qe(e,t);case"UnaryExpression":return Te(e,t);case"BinaryExpression":return Ue(e,t);case"LogicalExpression":return De(e,t);case"ArrayExpression":return Le(e,t);case"ObjectExpression":return pe(e,t);case"MemberAccessChainExpression":return Ve(e,t);case"SafeMemberExpression":throw te().error("SafeMemberExpression outside of MemberAccessChainExpression"),new d("Unrecognized",t);default:throw new d("Unrecognized",t)}}function me(e,t){switch(t.type){case"EmptyStatement":return"lc.voidOperation";case"VariableDeclaration":return je(e,t);case"BlockStatement":return Fe(e,t);case"FunctionDeclaration":return ke(e,t);case"ImportDeclaration":return Me(e,t);case"ExportNamedDeclaration":return me(e,t.declaration);case"ReturnStatement":return Ce(e,t);case"IfStatement":return Ie(e,t);case"ExpressionStatement":return Se(e,t);case"BreakStatement":return"break";case"ContinueStatement":return"continue";case"ForStatement":return we(e,t);case"ForInStatement":return he(e,t);case"ForOfStatement":return ye(e,t);case"WhileStatement":return $e(e,t);default:throw new d("Unrecognized",t)}}function pe(e,t){let n="lang.dictionary([";for(let r=0;r<t.properties.length;r++){const o=t.properties[r];let a;a="Identifier"===o.key.type?"'"+o.key.name+"'":ue(e,o.key);r>0&&(n+=","),n+="lang.strCheck("+a+",'ObjectExpression'),lang.aCheck("+ue(e,o.value)+", 'ObjectExpression')"}return n+="])",n}function fe(e,t,n,r,o=(e,t)=>`${e} = ${t}`){const a=e.symbols.nextTempVarId(),s=e.symbols.nextTempVarId();return[`var ${a} = ${n};`,`for (var ${s} = 0; ${s} < ${a}; ${s}++) {`,` ${o(t,s)}`,` ${me(e,r)}`,"}","lastStatement = lc.voidOperation;"].join("\n")}function de(e,t,n,r,o=e=>e){const a=e.symbols.nextTempVarId(),s=e.symbols.nextTempVarId();return[`var ${a} = ${n};`,`for (var ${s} of ${a}) {`,` ${t} = ${o(s)};`,` ${me(e,r)}`,"}","lastStatement = lc.voidOperation;"].join("\n")}function ge(e,t,n,r){const o=e.symbols.nextTempVarId(),a=e.symbols.nextTempVarId(),s=e.symbols.nextTempVarId(),l=e.symbols.nextTempVarId();return[`var ${o} = yield ${n}.queryAll(runtimeCtx.abortSignal);`,`var ${a} = { done: false, value: [] };`,`for (var ${s} = 0; ${s} < ${a}.value.length || ((${s} = 0), !(${a} = yield ${o}.next()).done); ${s}++) {`,` if (${a}.value.length === 0) continue;`,` var ${l} = ${a}.value[${s}];`,` ${t} = lang.createFeature(${l}, ${n}, runtimeCtx);`,` ${me(e,r)}`,"}"].join("\n")}function he(e,t){const n=e.symbols.nextTempVarId();let r,o,a="var "+n+" = "+ue(e,t.right)+";\n";switch("VariableDeclaration"===t.left.type?(r=ae(e,t.left.declarations[0].id),a+=me(e,t.left)):r=oe(e,t.left),r.scope){case"local":o=`lscope['${r.var}']`;break;case"global":o=`gscope['${r.var}']`;break;default:throw r.scope,new d("NeverReach",t.left)}return a+="if ("+n+"===null) { lastStatement = lc.voidOperation; }\n ",a+="else if (lc.isArray("+n+") || lc.isString("+n+")) {\n",a+=fe(e,o,`${n}.length`,t.body),a+="}\n",a+="else if (lc.isImmutableArray("+n+")) {\n",a+=fe(e,o,`${n}.length()`,t.body),a+="}\n",a+="else if (( "+n+" instanceof lang.Dictionary) || lc.isDictionaryLike("+n+")) {\n",a+=de(e,o,`${n}.keys()`,t.body),a+="}\n",e.isAsync&&(a+="else if (lc.isFeatureSet("+n+")) {\n",a+=ge(e,o,n,t.body),a+="}\n"),a+=`else if (lc.isGeometry(${n})) {\n`,a+=de(e,o,`lang.getGeometryKeys(${n})`,t.body),a+="}\n",a+="else { lastStatement = lc.voidOperation; } \n",a}function ye(e,t){const n=e.symbols.nextTempVarId();let r,o,a="var "+n+" = "+ue(e,t.right)+";\n";switch("VariableDeclaration"===t.left.type?(r=ae(e,t.left.declarations[0].id),a+=me(e,t.left)):r=oe(e,t.left),r.scope){case"local":o=`lscope['${r.var}']`;break;case"global":o=`gscope['${r.var}']`;break;default:throw r.scope,new d("NeverReach",t.left)}return a+="if ("+n+"===null) { lastStatement = lc.voidOperation; }\n ",a+="else if (lc.isArray("+n+") || lc.isString("+n+")) {\n",a+=fe(e,o,`${n}.length`,t.body,(e,t)=>[`if (${t} >= ${n}.length) {`," lang.error('OutOfBounds');","}",`${e} = ${n}[${t}];`].join("\n")),a+="}\n",a+="else if (lc.isImmutableArray("+n+")) {\n",a+=fe(e,o,`${n}.length()`,t.body,(e,t)=>`${e} = ${n}.get(${t});`),a+="}\n",a+="else if (( "+n+" instanceof lang.Dictionary) || lc.isDictionaryLike("+n+")) {\n",a+=de(e,o,`${n}.keys()`,t.body,e=>`lang.entry(${e}, ${n}.field(${e}))`),a+="}\n",e.isAsync&&(a+="else if (lc.isFeatureSet("+n+")) {\n",a+=ge(e,o,n,t.body),a+="}\n"),a+=`else if (lc.isGeometry(${n})) {\n`,a+=de(e,o,`lang.getGeometryKeys(${n})`,t.body,e=>`lang.entry(${e}, lang.getGeometryMember(${n}, ${e}))`),a+="}\n",a+="else { lastStatement = lc.voidOperation; } \n",a}function we(e,t){let n="lastStatement = lc.voidOperation; \n";null!==t.init&&("VariableDeclaration"===t.init.type?n+=me(e,t.init):n+=ue(e,t.init)+"; ");const r=e.symbols.nextTempVarId(),o=e.symbols.nextTempVarId();return n+="var "+r+" = true; ",n+="\n do { ",null!==t.update&&(n+=" if ("+r+"===false) {\n "+ue(e,t.update)+" \n}\n "+r+"=false; \n"),null!==t.test&&(n+="var "+o+" = "+ue(e,t.test)+"; ",n+="if ("+o+"===false) { break; } else if ("+o+"!==true) { lang.error('BooleanConditionRequired'); }\n"),n+=me(e,t.body),null!==t.update&&(n+="\n "+ue(e,t.update)),n+="\n"+r+" = true; \n} while(true); lastStatement = lc.voidOperation; ",n}function be(e,t){if("CallExpression"===t.argument.type)throw new d("NeverReach",t);let n;if("MemberExpression"===t.argument.type){const r=ue(e,t.argument.object);return n=!0===t.argument.computed?ue(e,t.argument.property):"'"+t.argument.property.name+"'","lang.memberupdate("+r+","+n+",'"+t.operator+"',"+t.prefix+")"}const r=oe(e,t.argument);switch(Oe(r),r.scope){case"local":return`lang.update(lscope, '${r.var}', '${t.operator}', ${t.prefix})`;case"global":return`lang.update(gscope, '${r.var}', '${t.operator}', ${t.prefix})`;default:throw r.scope,new d("NeverReach",t.argument)}}function $e(e,t){let n="lastStatement = lc.voidOperation; \n";const r=e.symbols.nextTempVarId();return n+=`\n var ${r} = true;\n do {\n ${r} = ${ue(e,t.test)};\n if (${r}==false) {\n break;\n }\n if (${r}!==true) {\n lang.error('BooleanConditionRequired');\n }\n ${me(e,t.body)}\n }\n while (${r} !== false);\n lastStatement = lc.voidOperation;\n `,n}function ve(e,t){const n=ue(e,t.right);if("MemberExpression"===t.left.type){let r;const o=ue(e,t.left.object);return r=!0===t.left.computed?ue(e,t.left.property):"'"+t.left.property.name+"'","lang.assignmember("+o+","+r+",'"+t.operator+"',"+n+")"}const r=oe(e,t.left);switch(Oe(r),r.scope){case"local":return`lscope['${r.var}']=lang.assign(${n},'${t.operator}', ${"="===t.operator?"null":rt(`lscope['${r.var}']`)})`;case"global":return`gscope['${r.var}']=lang.assign(${n},'${t.operator}', ${"="===t.operator?"null":rt(`gscope['${r.var}']`)})`;default:throw r.scope,new d("NeverReach",t.left)}}function Se(e,t){return"AssignmentExpression"===t.expression.type?"lastStatement = lc.voidOperation; "+ue(e,t.expression)+"; \n ":"lastStatement = "+ue(e,t.expression)+"; "}function xe(e,t){return"BlockStatement"===t.type?me(e,t):"ReturnStatement"===t.type||"BreakStatement"===t.type||"ContinueStatement"===t.type?me(e,t)+"; ":"ExpressionStatement"===t.type?me(e,t):me(e,t)+"; "}function Ie(e,t){return`if (lang.mustBoolean(${ue(e,t.test)}) === true) {\n ${xe(e,t.consequent)}\n } `+(null!==t.alternate?"IfStatement"===t.alternate.type?" else "+Ie(e,t.alternate):` else {\n ${xe(e,t.alternate)}\n }\n`:" else {\n lastStatement = lc.voidOperation;\n }\n")}function Fe(e,t){let n="";for(let r=0;r<t.body.length;r++)"EmptyStatement"!==t.body[r].type&&("ReturnStatement"===t.body[r].type||"BreakStatement"===t.body[r].type||"ContinueStatement"===t.body[r].type?n+=me(e,t.body[r])+"; \n":n+=me(e,t.body[r])+" \n");return n}function Ce(e,t){if(null===t.argument)return"return lc.voidOperation";return"return "+ue(e,t.argument)}function Me(e,t){const n=ae(e,t.specifiers[0].local,"global"),r=e.libraryResolver?.loadLibrary(n.name),o=e.symbols.nextVarId();void 0===e.moduleFactory[r.uri]&&(e.moduleFactory[r.uri]=ct(r.syntax,e.moduleFactory,e.isAsync)),e.moduleFactoryMap[o]=r.uri;let a="";return a=e.isAsync?"(yield lang.loadModule('"+o+"', runtimeCtx) ); ":"lang.loadModule('"+o+"', runtimeCtx); ",Oe(n),`gscope['${n.var}']=${a}`}function Oe(e){if("global"===e.scope)switch(e.name){case"iif":case"when":case"defaultvalue":case"decode":throw new g}}function ke(t,n){const r=new Set(n.params.map(t=>e(t))),o=new Set(a(n).keys());Z(o,r);const s=t.symbols,l=new Map;for(const e of o)l.set(e,s.nextVarId());const i=s.nextLocalsSymbolMapId();t.allLocalSymbolMetadata.set(i,l);const c={...t,localScope:l},u=[`lscope._SymbolsMapId = ${JSON.stringify(i)};`];for(let e=0;e<n.params.length;e++){const t=ae(c,n.params[e],"local");Oe(t),u.push(`lscope['${t.var}'] = arguments[${e}];`)}for(const[e,a]of l)r.has(e)||u.push(`lscope['${a}'] = ${nt};`);const m=Fe(c,n.body),p=!0===t.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];",...u,...p," },"," runtimeCtx,"," ),",` ${n.params.length},`,")"].join("\n"),d=ae(t,n.id,"global");return Oe(d),`gscope['${d.var}']=${f}; lastStatement = lc.voidOperation;`}function je(e,t){const n=[];for(let r=0;r<t.declarations.length;r++)n.push(Ae(e,t.declarations[r]));return n.join("\n")+" \n lastStatement= lc.voidOperation; \n"}function Ae(e,t){const n=null===t.init?"null":ue(e,t.init),r=ae(e,t.id);switch(Oe(r),r.scope){case"local":return`lscope['${r.var}']=${n};`;case"global":return`gscope['${r.var}']=${n};`;default:throw r.scope,new d("NeverReach",t.id)}}function Ee(e,t){return Ne(e,ue(e,t.object),t)}function Ne(e,t,n){return`lang.member(${t}, ${n.computed?ue(e,n.property):`'${n.property.name}'`})`}function Be(e,t,n){for(const r of n)switch(r.type){case"MemberExpression":t=Ne(e,t,r);break;case"CallExpression":t=ze(e,t,r.arguments);break;default:throw new d("Unrecognized",r)}return t}function _e(e,t,n){return`lang.tryMember(${t}, ${n.computed?ue(e,n.property):`'${n.property.name}'`})`}function Ve(e,t){const n=s(t);let r="",o=ue(e,n.root);for(const a of n.sections)r+=`(${e.symbols.safeAccessTempVarId} = ${_e(e,o,a.checked)}) == null ? null : `,o=Be(e,e.symbols.safeAccessTempVarId,a.unchecked);return`(${r}${o})`}function Te(e,t){try{return"lang.unary("+ue(e,t.argument)+",'"+t.operator+"')"}catch(n){throw n}}function Le(e,t){try{const n=[];for(let r=0;r<t.elements.length;r++)"Literal"===t.elements[r].type?n.push(ue(e,t.elements[r])):n.push("lang.aCheck("+ue(e,t.elements[r])+",'ArrayExpression')");return"["+n.join(",")+"]"}catch(n){throw n}}function Re(e,t){try{const n=[];let r=0;for(const o of t.quasis)n.push(o.value?JSON.stringify(o.value.cooked):JSON.stringify("")),!1===o.tail&&(n.push(t.expressions[r]?"lang.castString(lang.aCheck("+ue(e,t.expressions[r])+", 'TemplateLiteral'))":""),r++);return"(["+n.join(",")+"]).join('')"}catch(n){throw n}}function Ue(e,t){try{return"lang.binary("+ue(e,t.left)+","+ue(e,t.right)+",'"+t.operator+"')"}catch(n){throw n}}function De(e,t){try{if("AssignmentExpression"===t.left.type||"UpdateExpression"===t.left.type)throw new d("LogicalExpressionOnlyBoolean",t);if("AssignmentExpression"===t.right.type||"UpdateExpression"===t.right.type)throw new d("LogicalExpressionOnlyBoolean",t);if("&&"===t.operator||"||"===t.operator)return"(lang.logicalCheck("+ue(e,t.left)+") "+t.operator+" lang.logicalCheck("+ue(e,t.right)+"))";throw new d("LogicExpressionOrAnd",null)}catch(n){throw n}}function Ge(e,t){const n=oe(e,t);switch(Oe(n),n.scope){case"local":return rt(`lscope['${n.var}']`);case"global":return rt(`gscope['${n.var}']`);default:throw n.scope,new d("NeverReach",t)}}function qe(e,t){if("Identifier"===t.callee.type){const n=oe(e,t.callee,"FunctionNotFound");if("global"===n.scope)switch(n.name){case"iif":return Pe(e,t);case"when":return Ke(e,t);case"defaultvalue":return We(e,t);case"decode":return Ze(e,t)}}return ze(e,ue(e,t.callee),t.arguments)}function ze(e,t,n){const r=`lang.callfunc(${t}, [${n.map(t=>ue(e,t)).join(", ")}], runtimeCtx)`;return e.isAsync?`(yield ${r})`:r}function Pe(e,t){try{if(3!==t.arguments.length)throw new d("WrongNumberOfParameters",t);const n=e.symbols.nextTempVarId();return`${e.isAsync?"(yield (function() { \n return lang.__awaiter(this, void 0, void 0, function* () {":"function() {"}\n var ${n} = ${ue(e,t.arguments[0])};\n\n if (${n} === true) {\n return ${ue(e,t.arguments[1])};\n }\n else if (${n} === false) {\n return ${ue(e,t.arguments[2])};\n }\n else {\n lang.error('ExecutionErrorCodes.BooleanConditionRequired');\n }\n ${e.isAsync?"})}()))":"}()"}`}catch(n){throw n}}function We(e,t){try{if(t.arguments.length<2||t.arguments.length>3)throw new d("WrongNumberOfParameters",t);const n=e.symbols.nextTempVarId(),r=e.symbols.nextTempVarId();return 3===t.arguments.length?`${e.isAsync?"(yield (function() { \n return lang.__awaiter(this, void 0, void 0, function* () {":"function() {"}\n var ${n} = ${ue(e,t.arguments[0])};\n var ${r} = ${ue(e,t.arguments[1])};\n ${n} = lang.getNestedOptionalValue(${n}, ${r});\n return ${n} != null && ${n} !== "" ? ${n} : ${ue(e,t.arguments[2])};\n ${e.isAsync?"})}()))":"}()"}`:`${e.isAsync?"(yield (function() { \n return lang.__awaiter(this, void 0, void 0, function* () {":"function() {"}\n var ${n} = ${ue(e,t.arguments[0])};\n if (${n} === null) {\n return ${ue(e,t.arguments[1])};\n }\n if (${n} === "") {\n return ${ue(e,t.arguments[1])};\n }\n if (${n} === undefined) {\n return ${ue(e,t.arguments[1])};\n }\n return ${n};\n ${e.isAsync?"})}()))":"}()"}`}catch(n){throw n}}function Ke(e,t){try{if(t.arguments.length<3)throw new d("WrongNumberOfParameters",t);if(t.arguments.length%2==0)throw new d("WrongNumberOfParameters",t);const n=e.symbols.nextTempVarId();let r="var ";for(let o=0;o<t.arguments.length-1;o+=2)r+=`${n} = lang.mustBoolean(${ue(e,t.arguments[o])});\n if (${n} === true ) {\n return ${ue(e,t.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 ${ue(e,t.arguments[t.arguments.length-1])}\n ${e.isAsync?"})}()))":"}()"}`}catch(n){throw n}}function Ze(e,t){try{if(t.arguments.length<2)throw new d("WrongNumberOfParameters",t);if(2===t.arguments.length)return`(${ue(e,t.arguments[1])})`;if((t.arguments.length-1)%2==0)throw new d("WrongNumberOfParameters",t);const n=e.symbols.nextTempVarId();let r;if(t.arguments.every((e,t)=>t%2==0||"Literal"===e.type)){r=`switch (${n}) {`;for(let n=1;n<t.arguments.length-1;n+=2){const o=t.arguments[n],a=t.arguments[n+1];null==o.value?r+="\n case null:\n case lc.voidOperation:\n ":r+=`\n case ${JSON.stringify(o.value)}:\n `,r+=`return ${ue(e,a)}`}r+="}"}else{const o=e.symbols.nextTempVarId();r="var ";for(let a=1;a<t.arguments.length-1;a+=2){const s=t.arguments[a],l=t.arguments[a+1];r+=`${o} = ${ue(e,s)};\n if (lang.binary(${o}, ${n}, "==") === true ) {\n return ${ue(e,l)}\n }\n `}}return`${e.isAsync?"(yield (function() { \n return lang.__awaiter(this, void 0, void 0, function* () {":"function() {"}\n var ${n} = ${ue(e,t.arguments[0])};\n ${r}\n return ${ue(e,t.arguments[t.arguments.length-1])}\n ${e.isAsync?"})}()))":"}()"}`}catch(n){throw n}}function Je(e,t){try{return ie(e,t,(e,t)=>{throw new f("Unrecognized",t)})}catch(n){throw n}}function Ye(e){const t=function(){this.textformatting=p.textFormatting()};t.prototype=Object.create(null),t.provided=new Set(["textformatting","infinity","nan","pi"]),t.prototype.infinity=Number.POSITIVE_INFINITY,t.prototype.nan=Number.NaN,t.prototype.pi=Math.PI;for(const[n,r]of Object.entries(e))t.prototype[n]=new y(r),t.provided.add(n);return t}function He(){const e=Object.create(null);L(e,ie),z(e,ie),R(e,ie,se),G(e,ie),U(e,ie),q(e,ie),P(e,ie),e.iif=Je,e.decode=Je,e.when=Je,e.defaultvalue=Je;const t=Ye(e);D(e,ie);return{ScopeSync:Ye(e),ScopeAsync:t}}const{ScopeSync:Qe,ScopeAsync:Xe}=He();function et(e,t){const n={mode:t,compiled:!0,functions:Object.create(null),signatures:[],standardFunction:ie,standardFunctionAsync:ie,evaluateIdentifier:se};for(const r of e)r.registerFunctions(n);if("sync"===t)for(const[r,o]of Object.entries(n.functions))Qe.prototype[r]=new y(o),Qe.provided.add(r);else for(const[r,o]of Object.entries(n.functions))Xe.prototype[r]=new y(o),Xe.provided.add(r);for(const r of n.signatures)_(r,t)}et([T],"sync"),et([T],"async"),et([V],"async");const tt=Symbol("uninitialized"),nt="lang.uninitialized";function rt(e){return`lang.requireInitialized(${e})`}const ot={uninitialized:tt,requireInitialized(e){if(e===tt)throw new f("InvalidIdentifier",null);return e},isNumber:e=>Q(e),isArray:e=>H(e),isImmutableArray:e=>F(e),isDictionaryLike:e=>B(e),isString:e=>X(e),isDictionary:e=>N(e),isGeometry:e=>E(e),getGeometryKeys:e=>m(e),getGeometryMember:(e,t)=>u(e,t,null),error(e){throw new f(e,null)},__awaiter(e,t,n,r){const o=r.apply(e,t||[]);let a=o.next();for(;!a.done&&!K(a.value);)a=o.next(a.value);return a.done?a.value:new Promise((e,t)=>{function n(r){for(;!r.done;){if(K(r.value))return void Promise.resolve(r.value).then(e=>{try{n(o.next(e))}catch(r){t(r)}},e=>{try{n(o.throw(e))}catch(r){t(r)}});try{r=o.next(r.value)}catch(a){return void t(a)}}e(r.value)}n(a)})},functionDepthchecker:(e,t)=>function(){if(t.depthCounter.depth++,t.localStack.push({}),t.depthCounter.depth>64)throw new f("MaximumCallDepth",null);const n=e.apply(this,arguments);return K(n)?n.then(e=>(t.depthCounter.depth--,t.localStack.length=t.localStack.length-1,e)):(t.depthCounter.depth--,t.localStack.length=t.localStack.length-1,n)},mustBoolean(e){if(!0===e||!1===e)return e;throw new f("BooleanConditionRequired",null)},castString:e=>M(e),aCheck(e,t){if(x(e)){if("ArrayExpression"===t)throw new f("NoFunctionInArray",null);if("ObjectExpression"===t)throw new f("NoFunctionInDictionary",null);throw new f("NoFunctionInTemplateLiteral",null)}return e===O?null:e},Dictionary:p,Feature:h,UserDefinedCompiledFunction:le,dictionary(e){const t=Object.create(null),n=new Map;for(let o=0;o<e.length;o+=2){if(x(e[o+1]))throw new f("NoFunctionInDictionary",null);if(!1===X(e[o]))throw new f("KeyMustBeString",null);let r=e[o].toString();const a=r.toLowerCase();n.has(a)?r=n.get(a):n.set(a,r),e[o+1]===O?t[r]=null:t[r]=e[o+1]}const r=new p(t);return r.immutable=!1,r},entry:(e,t)=>p.containerEntry(e,t),strCheck(e){if(!1===X(e))throw new f("KeyMustBeString",null);return e},unary(e,t){if(ee(e)){if("!"===t)return!e;if("-"===t)return-1*C(e);if("+"===t)return 1*C(e);if("~"===t)return~C(e);throw new f("UnsupportUnaryOperator",null)}if("-"===t)return-1*C(e);if("+"===t)return 1*C(e);if("~"===t)return~C(e);throw new f("UnsupportUnaryOperator",null)},logicalCheck(e){if(!1===ee(e))throw new f("LogicExpressionOrAnd",null);return e},logical(e,t,n){if(ee(e)&&ee(t))switch(n){case"||":return e||t;case"&&":return e&&t;default:throw new f("LogicExpressionOrAnd",null)}throw new f("LogicExpressionOrAnd",null)},binary(e,t,n){switch(n){case"|":case"<<":case">>":case">>>":case"^":case"&":return A(C(e),C(t),n);case"==":return j(e,t);case"!=":return!j(e,t);case"<":case">":case"<=":case">=":return k(e,t,n);case"+":return X(e)||X(t)?M(e)+M(t):C(e)+C(t);case"-":return C(e)-C(t);case"*":return C(e)*C(t);case"/":return C(e)/C(t);case"%":return C(e)%C(t);default:throw new f("UnsupportedOperator",null)}},assign(e,t,n){switch(t){case"=":return e===O?null:e;case"/=":return C(n)/C(e);case"*=":return C(n)*C(e);case"-=":return C(n)-C(e);case"+=":return X(n)||X(e)?M(n)+M(e):C(n)+C(e);case"%=":return C(n)%C(e);default:throw new f("UnsupportedOperator",null)}},update(e,t,n,r){const o=C(this.requireInitialized(e[t]));return e[t]="++"===n?o+1:o-1,!1===r?o:"++"===n?o+1:o-1},createFeature:(e,t,n)=>h.createFromGraphicLikeObject(e.geometry,e.attributes,t,n.timeZone),memberupdate(e,t,n,r){let o;if(H(e)){if(!Q(t))throw new f("ArrayAccessMustBeNumber",null);if(t<0&&(t=e.length+t),t<0||t>=e.length)throw new f("OutOfBounds",null);o=C(e[t]),e[t]="++"===n?o+1:o-1}else if(e instanceof p){if(!1===X(t))throw new f("KeyAccessorMustBeString",null);if(!0!==e.hasField(t))throw new f("FieldNotFound",null,{key:t});o=C(e.field(t)),e.setField(t,"++"===n?o+1:o-1)}else if(I(e)){if(!1===X(t))throw new f("KeyAccessorMustBeString",null);if(!0!==e.hasField(t))throw new f("FieldNotFound",null,{key:t});o=C(e.field(t)),e.setField(t,"++"===n?o+1:o-1)}else{if(F(e))throw new f("Immutable",null);if(!(e instanceof it))throw new f("InvalidIdentifier",null);if(!1===X(t))throw new f("ModuleAccessorMustBeString",null);if(!0!==e.hasGlobal(t))throw new f("ModuleExportNotFound",null);o=C(e.global(t)),e.setGlobal(t,"++"===n?o+1:o-1)}return!1===r?o:"++"===n?o+1:o-1},assignmember(e,t,n,r){if(H(e)){if(!Q(t))throw new f("ArrayAccessMustBeNumber",null);if(t<0&&(t=e.length+t),t<0||t>e.length)throw new f("OutOfBounds",null);if(t===e.length){if("="!==n)throw new f("OutOfBounds",null);e[t]=this.assign(r,n,e[t])}else e[t]=this.assign(r,n,e[t])}else if(e instanceof p){if(!1===X(t))throw new f("KeyAccessorMustBeString",null);if(!0===e.hasField(t))e.setField(t,this.assign(r,n,e.field(t)));else{if("="!==n)throw new f("FieldNotFound",null,{key:t});e.setField(t,this.assign(r,n,null))}}else if(I(e)){if(!1===X(t))throw new f("KeyAccessorMustBeString",null);if(!0===e.hasField(t))e.setField(t,this.assign(r,n,e.field(t)));else{if("="!==n)throw new f("FieldNotFound",null,{key:t});e.setField(t,this.assign(r,n,null))}}else{if(F(e))throw new f("Immutable",null);if(!(e instanceof it))throw new f("InvalidIdentifier",null);if(!1===X(t))throw new f("ModuleAccessorMustBeString",null);if(!e.hasGlobal(t))throw new f("ModuleExportNotFound",null);e.setGlobal(t,this.assign(r,n,e.global(t)))}},member:(e,t)=>c(e,t),tryMember:(e,t)=>i(e,t),callfunc(e,t,n){if(x(e))return e.call(n,{arguments:t,preparsed:!0});throw new f("CallNonFunction",null)},loadModule(e,t){const n=t.moduleFactoryMap[e];if(t.moduleSingletons[n])return t.moduleSingletons[n];const r=t.moduleFactory[n]({moduleSingletons:t.moduleSingletons,depthCounter:t.depthCounter,lrucache:t.lrucache,interceptor:t.interceptor,services:t.services,console:t.console,abortSignal:t.abortSignal,timeZone:t.timeZone??null,spatialReference:t.spatialReference});return t.moduleSingletons[n]=r,r},getNestedOptionalValue:(e,t)=>l(e,t)};function at(e){console.log(e)}function st(n,o,a=!1){let s=null;n.usesModules&&(s=new r(null,n.loadedModules));const l=Object.create(null),i=new Set(Object.keys(o?.vars||{}).map(t=>e(t))),c=new Set(Object.keys(o?.customfunctions||{}).map(t=>e(t))),u=ce(n,a?Xe.provided:Qe.provided,new Set([...i,...c]),a,s,l);let m;m=a?["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* () {",` ${u.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() {",` ${u.body}`,"}","return this.postProcess(mainBody());"].join("\n");const{symbolMetadata:p,moduleFactoryMap:d}=u,g={lc:v,lang:ot,postProcess(e){if(S(e))return null;if(x(e))throw new f("IllegalResult",null);return e},prepare(e,n){const r=e.spatialReference??J.WebMercator,o=n?new Xe:new Qe;for(const t of c)null!=e.customfunctions&&t in e.customfunctions?o[t]=e.customfunctions[t]??null:o[t]=tt;for(const t of i){if(null==e.vars||!(t in e.vars)){t in o||(o[t]=tt);continue}const n=e.vars[t]??null;Y(n)?o[t]=h.createFromGraphic(n,e.timeZone??null):o[t]=n}return{lrucache:e.lrucache,interceptor:e.interceptor,services:e.services,console:e.console??at,abortSignal:e.abortSignal??t,timeZone:e.timeZone??null,spatialReference:r,track:e.track,globalScope:o,localStack:[],depthCounter:{depth:1},symbolMetadata:p,moduleFactory:l,moduleFactoryMap:d,moduleSingletons:Object.create(null)}}};return new Function("context",m).bind(g)}async function lt(){return et([await import("./functions/geomasync.js")],"async"),!0}class it extends n{constructor(e){super(),this.moduleContext=e}hasGlobal(t){const n=this.moduleContext.symbolMetadata.exports;return n.has(t)||n.has(e(t))}setGlobal(t,n){if(x(n))throw new f("AssignModuleFunction",null);const r=this.moduleContext.symbolMetadata.globals.get(e(t));if(null==r)throw new f("ModuleExportNotFound",null);this.moduleContext.globalScope[r]=n}global(t){const n=this.moduleContext.symbolMetadata.globals.get(e(t));if(null==n)throw new f("ModuleExportNotFound",null);const r=this.moduleContext.globalScope,o=ot.requireInitialized(r[n]);if(x(o)&&!(o instanceof b)){const e=new b;return e.fn=o,e.parameterEvaluator=ie,e.context=this.moduleContext,r[n]=e,e}return o}}function ct(e,n,o){const a=new r(null,e.loadedModules),s=ce(e,o?Xe.provided:Qe.provided,new Set,o,a,n);let l;l=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* () {",` ${s.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() {",` ${s.body}`,"}","mainBody();","return this.prepareModule(runtimeCtx);"].join("\n");const{symbolMetadata:i,moduleFactoryMap:c}=s,u={lc:v,lang:ot,prepareModule:e=>new it(e),prepare(e,r){const o=e.spatialReference??J.WebMercator,a=r?new Xe:new Qe;return{lrucache:e.lrucache,interceptor:e.interceptor,services:e.services,console:e.console??at,abortSignal:e.abortSignal??t,timeZone:e.timeZone??null,spatialReference:o,track:null,globalScope:a,localStack:[],depthCounter:e.depthCounter,symbolMetadata:i,moduleFactory:n,moduleFactoryMap:c,moduleSingletons:e.moduleSingletons}}};return new Function("context",l).bind(u)}export{le as UserDefinedCompiledFunction,st as compileScript,lt as enableAsyncSupport,et as extend};
2
+ import{toSymbolId as e,neverAbortedSignal as t}from"./arcadeEnvironment.js";import{ArcadeModule as n}from"./ArcadeModule.js";import{ArcadeModuleLoader as r}from"./ArcadeModuleLoader.js";import{collectDeclaredGlobalNames as o,collectDeclaredLocalNames as a,flattenAccessChain as s}from"./compilerUtils.js";import{getNestedOptionalValue as l,tryGetMember as i,getMember as c,getGeometryMember as u,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{s as v,u as S,i as x,h as I,g as F,v as C,w as M,x as O,y as k,z as j,A,f as E,l as N,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 z}from"./functions/stats.js";import{registerFunctions as q}from"./functions/string.js";import{registerFunctions as P}from"./functions/track.js";import W from"../core/Logger.js";import{isPromiseLike as K}from"../core/promiseUtils.js";import{addMany as Z}from"../core/SetUtils.js";import J from"../geometry/SpatialReference.js";import{isGraphic as Y}from"../support/graphicInstanceUtils.js";import{isArray as H,isNumber as Q,isString as X,isBoolean as ee}from"../support/guards.js";const te=()=>W.getLogger("esri.arcade.arcadeCompiler");class ne{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,t){const n=e.localScope?.get(t);if(null!=n)return{scope:"local",name:t,var:n};const r=e.globalScope.get(t);return null!=r?{scope:"global",name:t,var:r}:e.standardGlobals.has(t)?{scope:"global",name:t,var:t}:null}function oe(t,n,r="InvalidIdentifier"){const o=re(t,e(n));if(null!=o)return o;throw new d(r,n)}function ae(t,n,r){const o=re(t,e(n));if(null==o)throw te().error(`Internal error: Symbol "${n.name}" not declared.`),new d("NeverReach",n);if(null!=r&&o.scope!==r)throw te().error(`Internal error: Expected to resolve "${n.name}" in the ${r} scope but is in the ${o.scope} scope.`),new d("NeverReach",n);return o}function se(t,n){const r=e(n),o=t.symbolMetadata;if(t.localStack.length>0){const e=t.localStack[t.localStack.length-1],n=o.locals.get(e._SymbolsMapId);if(null==n)return void te().error(`Internal error: no reflection metadata for ${e._SymbolsMapId}`);const a=n.get(r);if(null!=a)return ot.requireInitialized(e[a])}const a=o.globals.get(r);if(null!=a)return ot.requireInitialized(t.globalScope[a]);if(o.standardGlobals.has(r))return ot.requireInitialized(t.globalScope[r]);throw new f("InvalidIdentifier",null)}class le extends w{constructor(e,t){super(),this.paramCount=t,this.fn=e}get debugName(){return null}createFunction(e){return(...e)=>{if(e.length!==this.paramCount)throw new f("WrongNumberOfParameters",null);return this.fn(...e)}}call(e,t){return this.fn(...t.arguments)}marshalledCall(e,t,n,r){return r(e,t,(t,o,a)=>{a=a.map(t=>!x(t)||t instanceof b?t:$(t,e,r));const s=this.call(n,{arguments:a});return K(s)?s.then(e=>$(e,n,r)):s})}}function ie(e,t,n){try{return n(e,null,t.arguments)}catch(r){throw r}}function ce(e,t,n,r,a,s){const{globals:l,exports:i}=o(e),c=new Set(l.keys());Z(c,n);const u=new ne,m=[],p=new Map;for(const o of c)if(n.has(o)||t.has(o))p.set(o,o);else{const e=u.nextVarId();p.set(o,e),m.push(`gscope[${JSON.stringify(e)}] = ${nt};`)}const f=new Map,d=Object.create(null),g={isAsync:r,symbols:u,standardGlobals:t,globalScope:p,exports:i,localScope:null,allLocalSymbolMetadata:f,moduleFactory:s,moduleFactoryMap:d,libraryResolver:a};return{body:[...m,`var ${u.safeAccessTempVarId};`,"var lastStatement = lc.voidOperation;",Fe(g,e),"return lastStatement;"].join("\n"),symbolMetadata:{standardGlobals:t,exports:i,globals:p,locals:f},moduleFactoryMap:d}}function ue(e,t){switch(t.type){case"AssignmentExpression":return ve(e,t);case"UpdateExpression":return be(e,t);case"TemplateLiteral":return Re(e,t);case"Identifier":return Ge(e,t);case"MemberExpression":return Ee(e,t);case"Literal":return null===t.value||void 0===t.value?"null":JSON.stringify(t.value);case"CallExpression":return ze(e,t);case"UnaryExpression":return Te(e,t);case"BinaryExpression":return Ue(e,t);case"LogicalExpression":return De(e,t);case"ArrayExpression":return Le(e,t);case"ObjectExpression":return pe(e,t);case"MemberAccessChainExpression":return Ve(e,t);case"SafeMemberExpression":throw te().error("SafeMemberExpression outside of MemberAccessChainExpression"),new d("Unrecognized",t);default:throw new d("Unrecognized",t)}}function me(e,t){switch(t.type){case"EmptyStatement":return"lc.voidOperation";case"VariableDeclaration":return je(e,t);case"BlockStatement":return Fe(e,t);case"FunctionDeclaration":return ke(e,t);case"ImportDeclaration":return Me(e,t);case"ExportNamedDeclaration":return me(e,t.declaration);case"ReturnStatement":return Ce(e,t);case"IfStatement":return Ie(e,t);case"ExpressionStatement":return Se(e,t);case"BreakStatement":return"break";case"ContinueStatement":return"continue";case"ForStatement":return we(e,t);case"ForInStatement":return he(e,t);case"ForOfStatement":return ye(e,t);case"WhileStatement":return $e(e,t);default:throw new d("Unrecognized",t)}}function pe(e,t){let n="lang.dictionary([";for(let r=0;r<t.properties.length;r++){const o=t.properties[r];let a;a="Identifier"===o.key.type?"'"+o.key.name+"'":ue(e,o.key);r>0&&(n+=","),n+="lang.strCheck("+a+",'ObjectExpression'),lang.aCheck("+ue(e,o.value)+", 'ObjectExpression')"}return n+="])",n}function fe(e,t,n,r,o=(e,t)=>`${e} = ${t}`){const a=e.symbols.nextTempVarId(),s=e.symbols.nextTempVarId();return[`var ${a} = ${n};`,`for (var ${s} = 0; ${s} < ${a}; ${s}++) {`,` ${o(t,s)}`,` ${me(e,r)}`,"}","lastStatement = lc.voidOperation;"].join("\n")}function de(e,t,n,r,o=e=>e){const a=e.symbols.nextTempVarId(),s=e.symbols.nextTempVarId();return[`var ${a} = ${n};`,`for (var ${s} of ${a}) {`,` ${t} = ${o(s)};`,` ${me(e,r)}`,"}","lastStatement = lc.voidOperation;"].join("\n")}function ge(e,t,n,r){const o=e.symbols.nextTempVarId(),a=e.symbols.nextTempVarId(),s=e.symbols.nextTempVarId(),l=e.symbols.nextTempVarId();return[`var ${o} = yield ${n}.queryAll(runtimeCtx.abortSignal);`,`var ${a} = { done: false, value: [] };`,`for (var ${s} = 0; ${s} < ${a}.value.length || ((${s} = 0), !(${a} = yield ${o}.next()).done); ${s}++) {`,` if (${a}.value.length === 0) continue;`,` var ${l} = ${a}.value[${s}];`,` ${t} = lang.createFeature(${l}, ${n}, runtimeCtx);`,` ${me(e,r)}`,"}"].join("\n")}function he(e,t){const n=e.symbols.nextTempVarId();let r,o,a="var "+n+" = "+ue(e,t.right)+";\n";switch("VariableDeclaration"===t.left.type?(r=ae(e,t.left.declarations[0].id),a+=me(e,t.left)):r=oe(e,t.left),r.scope){case"local":o=`lscope['${r.var}']`;break;case"global":o=`gscope['${r.var}']`;break;default:throw r.scope,new d("NeverReach",t.left)}return a+="if ("+n+"===null) { lastStatement = lc.voidOperation; }\n ",a+="else if (lc.isArray("+n+") || lc.isString("+n+")) {\n",a+=fe(e,o,`${n}.length`,t.body),a+="}\n",a+="else if (lc.isImmutableArray("+n+")) {\n",a+=fe(e,o,`${n}.length()`,t.body),a+="}\n",a+="else if (( "+n+" instanceof lang.Dictionary) || lc.isDictionaryLike("+n+")) {\n",a+=de(e,o,`${n}.keys()`,t.body),a+="}\n",e.isAsync&&(a+="else if (lc.isFeatureSet("+n+")) {\n",a+=ge(e,o,n,t.body),a+="}\n"),a+=`else if (lc.isGeometry(${n})) {\n`,a+=de(e,o,`lang.getGeometryKeys(${n})`,t.body),a+="}\n",a+="else { lastStatement = lc.voidOperation; } \n",a}function ye(e,t){const n=e.symbols.nextTempVarId();let r,o,a="var "+n+" = "+ue(e,t.right)+";\n";switch("VariableDeclaration"===t.left.type?(r=ae(e,t.left.declarations[0].id),a+=me(e,t.left)):r=oe(e,t.left),r.scope){case"local":o=`lscope['${r.var}']`;break;case"global":o=`gscope['${r.var}']`;break;default:throw r.scope,new d("NeverReach",t.left)}return a+="if ("+n+"===null) { lastStatement = lc.voidOperation; }\n ",a+="else if (lc.isArray("+n+") || lc.isString("+n+")) {\n",a+=fe(e,o,`${n}.length`,t.body,(e,t)=>[`if (${t} >= ${n}.length) {`," lang.error('OutOfBounds');","}",`${e} = ${n}[${t}];`].join("\n")),a+="}\n",a+="else if (lc.isImmutableArray("+n+")) {\n",a+=fe(e,o,`${n}.length()`,t.body,(e,t)=>`${e} = ${n}.get(${t});`),a+="}\n",a+="else if (( "+n+" instanceof lang.Dictionary) || lc.isDictionaryLike("+n+")) {\n",a+=de(e,o,`${n}.keys()`,t.body,e=>`lang.entry(${e}, ${n}.field(${e}))`),a+="}\n",e.isAsync&&(a+="else if (lc.isFeatureSet("+n+")) {\n",a+=ge(e,o,n,t.body),a+="}\n"),a+=`else if (lc.isGeometry(${n})) {\n`,a+=de(e,o,`lang.getGeometryKeys(${n})`,t.body,e=>`lang.entry(${e}, lang.getGeometryMember(${n}, ${e}))`),a+="}\n",a+="else { lastStatement = lc.voidOperation; } \n",a}function we(e,t){let n="lastStatement = lc.voidOperation; \n";null!==t.init&&("VariableDeclaration"===t.init.type?n+=me(e,t.init):n+=ue(e,t.init)+"; ");const r=e.symbols.nextTempVarId(),o=e.symbols.nextTempVarId();return n+="var "+r+" = true; ",n+="\n do { ",null!==t.update&&(n+=" if ("+r+"===false) {\n "+ue(e,t.update)+" \n}\n "+r+"=false; \n"),null!==t.test&&(n+="var "+o+" = "+ue(e,t.test)+"; ",n+="if ("+o+"===false) { break; } else if ("+o+"!==true) { lang.error('BooleanConditionRequired'); }\n"),n+=me(e,t.body),null!==t.update&&(n+="\n "+ue(e,t.update)),n+="\n"+r+" = true; \n} while(true); lastStatement = lc.voidOperation; ",n}function be(e,t){if("CallExpression"===t.argument.type)throw new d("NeverReach",t);let n;if("MemberExpression"===t.argument.type){const r=ue(e,t.argument.object);return n=!0===t.argument.computed?ue(e,t.argument.property):"'"+t.argument.property.name+"'","lang.memberupdate("+r+","+n+",'"+t.operator+"',"+t.prefix+")"}const r=oe(e,t.argument);switch(Oe(r),r.scope){case"local":return`lang.update(lscope, '${r.var}', '${t.operator}', ${t.prefix})`;case"global":return`lang.update(gscope, '${r.var}', '${t.operator}', ${t.prefix})`;default:throw r.scope,new d("NeverReach",t.argument)}}function $e(e,t){let n="lastStatement = lc.voidOperation; \n";const r=e.symbols.nextTempVarId();return n+=`\n var ${r} = true;\n do {\n ${r} = ${ue(e,t.test)};\n if (${r}==false) {\n break;\n }\n if (${r}!==true) {\n lang.error('BooleanConditionRequired');\n }\n ${me(e,t.body)}\n }\n while (${r} !== false);\n lastStatement = lc.voidOperation;\n `,n}function ve(e,t){const n=ue(e,t.right);if("MemberExpression"===t.left.type){let r;const o=ue(e,t.left.object);return r=!0===t.left.computed?ue(e,t.left.property):"'"+t.left.property.name+"'","lang.assignmember("+o+","+r+",'"+t.operator+"',"+n+")"}const r=oe(e,t.left);switch(Oe(r),r.scope){case"local":return`lscope['${r.var}']=lang.assign(${n},'${t.operator}', ${"="===t.operator?"null":rt(`lscope['${r.var}']`)})`;case"global":return`gscope['${r.var}']=lang.assign(${n},'${t.operator}', ${"="===t.operator?"null":rt(`gscope['${r.var}']`)})`;default:throw r.scope,new d("NeverReach",t.left)}}function Se(e,t){return"AssignmentExpression"===t.expression.type?"lastStatement = lc.voidOperation; "+ue(e,t.expression)+"; \n ":"lastStatement = "+ue(e,t.expression)+"; "}function xe(e,t){return"BlockStatement"===t.type?me(e,t):"ReturnStatement"===t.type||"BreakStatement"===t.type||"ContinueStatement"===t.type?me(e,t)+"; ":"ExpressionStatement"===t.type?me(e,t):me(e,t)+"; "}function Ie(e,t){return`if (lang.mustBoolean(${ue(e,t.test)}) === true) {\n ${xe(e,t.consequent)}\n } `+(null!==t.alternate?"IfStatement"===t.alternate.type?" else "+Ie(e,t.alternate):` else {\n ${xe(e,t.alternate)}\n }\n`:" else {\n lastStatement = lc.voidOperation;\n }\n")}function Fe(e,t){let n="";for(let r=0;r<t.body.length;r++)"EmptyStatement"!==t.body[r].type&&("ReturnStatement"===t.body[r].type||"BreakStatement"===t.body[r].type||"ContinueStatement"===t.body[r].type?n+=me(e,t.body[r])+"; \n":n+=me(e,t.body[r])+" \n");return n}function Ce(e,t){if(null===t.argument)return"return lc.voidOperation";return"return "+ue(e,t.argument)}function Me(e,t){const n=ae(e,t.specifiers[0].local,"global"),r=e.libraryResolver?.loadLibrary(n.name),o=e.symbols.nextVarId();void 0===e.moduleFactory[r.uri]&&(e.moduleFactory[r.uri]=ct(r.syntax,e.moduleFactory,e.isAsync)),e.moduleFactoryMap[o]=r.uri;let a="";return a=e.isAsync?"(yield lang.loadModule('"+o+"', runtimeCtx) ); ":"lang.loadModule('"+o+"', runtimeCtx); ",Oe(n),`gscope['${n.var}']=${a}`}function Oe(e){if("global"===e.scope)switch(e.name){case"iif":case"when":case"defaultvalue":case"decode":throw new g}}function ke(t,n){const r=new Set(n.params.map(t=>e(t))),o=new Set(a(n).keys());Z(o,r);const s=t.symbols,l=new Map;for(const e of o)l.set(e,s.nextVarId());const i=s.nextLocalsSymbolMapId();t.allLocalSymbolMetadata.set(i,l);const c={...t,localScope:l},u=[`lscope._SymbolsMapId = ${JSON.stringify(i)};`];for(let e=0;e<n.params.length;e++){const t=ae(c,n.params[e],"local");Oe(t),u.push(`lscope['${t.var}'] = arguments[${e}];`)}for(const[e,a]of l)r.has(e)||u.push(`lscope['${a}'] = ${nt};`);const m=Fe(c,n.body),p=!0===t.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];",...u,...p," },"," runtimeCtx,"," ),",` ${n.params.length},`,")"].join("\n"),d=ae(t,n.id,"global");return Oe(d),`gscope['${d.var}']=${f}; lastStatement = lc.voidOperation;`}function je(e,t){const n=[];for(let r=0;r<t.declarations.length;r++)n.push(Ae(e,t.declarations[r]));return n.join("\n")+" \n lastStatement= lc.voidOperation; \n"}function Ae(e,t){const n=null===t.init?"null":ue(e,t.init),r=ae(e,t.id);switch(Oe(r),r.scope){case"local":return`lscope['${r.var}']=${n};`;case"global":return`gscope['${r.var}']=${n};`;default:throw r.scope,new d("NeverReach",t.id)}}function Ee(e,t){return Ne(e,ue(e,t.object),t)}function Ne(e,t,n){return`lang.member(${t}, ${n.computed?ue(e,n.property):`'${n.property.name}'`})`}function Be(e,t,n){for(const r of n)switch(r.type){case"MemberExpression":t=Ne(e,t,r);break;case"CallExpression":t=qe(e,t,r.arguments);break;default:throw new d("Unrecognized",r)}return t}function _e(e,t,n){return`lang.tryMember(${t}, ${n.computed?ue(e,n.property):`'${n.property.name}'`})`}function Ve(e,t){const n=s(t);let r="",o=ue(e,n.root);for(const a of n.sections)r+=`(${e.symbols.safeAccessTempVarId} = ${_e(e,o,a.checked)}) == null ? null : `,o=Be(e,e.symbols.safeAccessTempVarId,a.unchecked);return`(${r}${o})`}function Te(e,t){try{return"lang.unary("+ue(e,t.argument)+",'"+t.operator+"')"}catch(n){throw n}}function Le(e,t){try{const n=[];for(let r=0;r<t.elements.length;r++)"Literal"===t.elements[r].type?n.push(ue(e,t.elements[r])):n.push("lang.aCheck("+ue(e,t.elements[r])+",'ArrayExpression')");return"["+n.join(",")+"]"}catch(n){throw n}}function Re(e,t){try{const n=[];let r=0;for(const o of t.quasis)n.push(o.value?JSON.stringify(o.value.cooked):JSON.stringify("")),!1===o.tail&&(n.push(t.expressions[r]?"lang.castString(lang.aCheck("+ue(e,t.expressions[r])+", 'TemplateLiteral'))":""),r++);return"(["+n.join(",")+"]).join('')"}catch(n){throw n}}function Ue(e,t){try{return"lang.binary("+ue(e,t.left)+","+ue(e,t.right)+",'"+t.operator+"')"}catch(n){throw n}}function De(e,t){try{if("AssignmentExpression"===t.left.type||"UpdateExpression"===t.left.type)throw new d("LogicalExpressionOnlyBoolean",t);if("AssignmentExpression"===t.right.type||"UpdateExpression"===t.right.type)throw new d("LogicalExpressionOnlyBoolean",t);if("&&"===t.operator||"||"===t.operator)return"(lang.logicalCheck("+ue(e,t.left)+") "+t.operator+" lang.logicalCheck("+ue(e,t.right)+"))";throw new d("LogicExpressionOrAnd",null)}catch(n){throw n}}function Ge(e,t){const n=oe(e,t);switch(Oe(n),n.scope){case"local":return rt(`lscope['${n.var}']`);case"global":return rt(`gscope['${n.var}']`);default:throw n.scope,new d("NeverReach",t)}}function ze(e,t){if("Identifier"===t.callee.type){const n=oe(e,t.callee,"FunctionNotFound");if("global"===n.scope)switch(n.name){case"iif":return Pe(e,t);case"when":return Ke(e,t);case"defaultvalue":return We(e,t);case"decode":return Ze(e,t)}}return qe(e,ue(e,t.callee),t.arguments)}function qe(e,t,n){const r=`lang.callfunc(${t}, [${n.map(t=>ue(e,t)).join(", ")}], runtimeCtx)`;return e.isAsync?`(yield ${r})`:r}function Pe(e,t){try{if(3!==t.arguments.length)throw new d("WrongNumberOfParameters",t);const n=e.symbols.nextTempVarId();return`${e.isAsync?"(yield (function() { \n return lang.__awaiter(this, void 0, void 0, function* () {":"function() {"}\n var ${n} = ${ue(e,t.arguments[0])};\n\n if (${n} === true) {\n return ${ue(e,t.arguments[1])};\n }\n else if (${n} === false) {\n return ${ue(e,t.arguments[2])};\n }\n else {\n lang.error('ExecutionErrorCodes.BooleanConditionRequired');\n }\n ${e.isAsync?"})}()))":"}()"}`}catch(n){throw n}}function We(e,t){try{if(t.arguments.length<2||t.arguments.length>3)throw new d("WrongNumberOfParameters",t);const n=e.symbols.nextTempVarId(),r=e.symbols.nextTempVarId();return 3===t.arguments.length?`${e.isAsync?"(yield (function() { \n return lang.__awaiter(this, void 0, void 0, function* () {":"function() {"}\n var ${n} = ${ue(e,t.arguments[0])};\n var ${r} = ${ue(e,t.arguments[1])};\n ${n} = lang.getNestedOptionalValue(${n}, ${r});\n return ${n} != null && ${n} !== "" ? ${n} : ${ue(e,t.arguments[2])};\n ${e.isAsync?"})}()))":"}()"}`:`${e.isAsync?"(yield (function() { \n return lang.__awaiter(this, void 0, void 0, function* () {":"function() {"}\n var ${n} = ${ue(e,t.arguments[0])};\n if (${n} === null) {\n return ${ue(e,t.arguments[1])};\n }\n if (${n} === "") {\n return ${ue(e,t.arguments[1])};\n }\n if (${n} === undefined) {\n return ${ue(e,t.arguments[1])};\n }\n return ${n};\n ${e.isAsync?"})}()))":"}()"}`}catch(n){throw n}}function Ke(e,t){try{if(t.arguments.length<3)throw new d("WrongNumberOfParameters",t);if(t.arguments.length%2==0)throw new d("WrongNumberOfParameters",t);const n=e.symbols.nextTempVarId();let r="var ";for(let o=0;o<t.arguments.length-1;o+=2)r+=`${n} = lang.mustBoolean(${ue(e,t.arguments[o])});\n if (${n} === true ) {\n return ${ue(e,t.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 ${ue(e,t.arguments[t.arguments.length-1])}\n ${e.isAsync?"})}()))":"}()"}`}catch(n){throw n}}function Ze(e,t){try{if(t.arguments.length<2)throw new d("WrongNumberOfParameters",t);if(2===t.arguments.length)return`(${ue(e,t.arguments[1])})`;if((t.arguments.length-1)%2==0)throw new d("WrongNumberOfParameters",t);const n=e.symbols.nextTempVarId();let r;if(t.arguments.every((e,t)=>t%2==0||"Literal"===e.type)){r=`switch (${n}) {`;for(let n=1;n<t.arguments.length-1;n+=2){const o=t.arguments[n],a=t.arguments[n+1];null==o.value?r+="\n case null:\n case lc.voidOperation:\n ":r+=`\n case ${JSON.stringify(o.value)}:\n `,r+=`return ${ue(e,a)}`}r+="}"}else{const o=e.symbols.nextTempVarId();r="var ";for(let a=1;a<t.arguments.length-1;a+=2){const s=t.arguments[a],l=t.arguments[a+1];r+=`${o} = ${ue(e,s)};\n if (lang.binary(${o}, ${n}, "==") === true ) {\n return ${ue(e,l)}\n }\n `}}return`${e.isAsync?"(yield (function() { \n return lang.__awaiter(this, void 0, void 0, function* () {":"function() {"}\n var ${n} = ${ue(e,t.arguments[0])};\n ${r}\n return ${ue(e,t.arguments[t.arguments.length-1])}\n ${e.isAsync?"})}()))":"}()"}`}catch(n){throw n}}function Je(e,t){try{return ie(e,t,(e,t)=>{throw new f("Unrecognized",t)})}catch(n){throw n}}function Ye(e){const t=function(){this.textformatting=p.textFormatting()};t.prototype=Object.create(null),t.provided=new Set(["textformatting","infinity","nan","pi"]),t.prototype.infinity=Number.POSITIVE_INFINITY,t.prototype.nan=Number.NaN,t.prototype.pi=Math.PI;for(const[n,r]of Object.entries(e))t.prototype[n]=new y(r),t.provided.add(n);return t}function He(){const e=Object.create(null);L(e,ie),q(e,ie),R(e,ie,se),G(e,ie),U(e,ie),z(e,ie),P(e,ie),e.iif=Je,e.decode=Je,e.when=Je,e.defaultvalue=Je;const t=Ye(e);D(e,ie);return{ScopeSync:Ye(e),ScopeAsync:t}}const{ScopeSync:Qe,ScopeAsync:Xe}=He();function et(e,t){const n={mode:t,compiled:!0,functions:Object.create(null),signatures:[],standardFunction:ie,standardFunctionAsync:ie,evaluateIdentifier:se};for(const r of e)r.registerFunctions(n);if("sync"===t)for(const[r,o]of Object.entries(n.functions))Qe.prototype[r]=new y(o),Qe.provided.add(r);else for(const[r,o]of Object.entries(n.functions))Xe.prototype[r]=new y(o),Xe.provided.add(r);for(const r of n.signatures)_(r,t)}et([T],"sync"),et([T],"async"),et([V],"async");const tt=Symbol("uninitialized"),nt="lang.uninitialized";function rt(e){return`lang.requireInitialized(${e})`}const ot={uninitialized:tt,requireInitialized(e){if(e===tt)throw new f("InvalidIdentifier",null);return e},isNumber:e=>Q(e),isArray:e=>H(e),isImmutableArray:e=>F(e),isDictionaryLike:e=>B(e),isString:e=>X(e),isDictionary:e=>N(e),isGeometry:e=>E(e),getGeometryKeys:e=>m(e),getGeometryMember:(e,t)=>u(e,t,null),error(e){throw new f(e,null)},__awaiter(e,t,n,r){const o=r.apply(e,t||[]);let a=o.next();for(;!a.done&&!K(a.value);)a=o.next(a.value);return a.done?a.value:new Promise((e,t)=>{function n(r){for(;!r.done;){if(K(r.value))return void Promise.resolve(r.value).then(e=>{try{n(o.next(e))}catch(r){t(r)}},e=>{try{n(o.throw(e))}catch(r){t(r)}});try{r=o.next(r.value)}catch(a){return void t(a)}}e(r.value)}n(a)})},functionDepthchecker:(e,t)=>function(){if(t.depthCounter.depth++,t.localStack.push({}),t.depthCounter.depth>64)throw new f("MaximumCallDepth",null);const n=e.apply(this,arguments);return K(n)?n.then(e=>(t.depthCounter.depth--,t.localStack.length=t.localStack.length-1,e)):(t.depthCounter.depth--,t.localStack.length=t.localStack.length-1,n)},mustBoolean(e){if(!0===e||!1===e)return e;throw new f("BooleanConditionRequired",null)},castString:e=>M(e),aCheck(e,t){if(x(e)){if("ArrayExpression"===t)throw new f("NoFunctionInArray",null);if("ObjectExpression"===t)throw new f("NoFunctionInDictionary",null);throw new f("NoFunctionInTemplateLiteral",null)}return e===O?null:e},Dictionary:p,Feature:h,UserDefinedCompiledFunction:le,dictionary(e){const t=Object.create(null),n=new Map;for(let o=0;o<e.length;o+=2){if(x(e[o+1]))throw new f("NoFunctionInDictionary",null);if(!1===X(e[o]))throw new f("KeyMustBeString",null);let r=e[o].toString();const a=r.toLowerCase();n.has(a)?r=n.get(a):n.set(a,r),e[o+1]===O?t[r]=null:t[r]=e[o+1]}const r=new p(t);return r.immutable=!1,r},entry:(e,t)=>p.containerEntry(e,t),strCheck(e){if(!1===X(e))throw new f("KeyMustBeString",null);return e},unary(e,t){if(ee(e)){if("!"===t)return!e;if("-"===t)return-1*C(e);if("+"===t)return 1*C(e);if("~"===t)return~C(e);throw new f("UnsupportUnaryOperator",null)}if("-"===t)return-1*C(e);if("+"===t)return 1*C(e);if("~"===t)return~C(e);throw new f("UnsupportUnaryOperator",null)},logicalCheck(e){if(!1===ee(e))throw new f("LogicExpressionOrAnd",null);return e},logical(e,t,n){if(ee(e)&&ee(t))switch(n){case"||":return e||t;case"&&":return e&&t;default:throw new f("LogicExpressionOrAnd",null)}throw new f("LogicExpressionOrAnd",null)},binary(e,t,n){switch(n){case"|":case"<<":case">>":case">>>":case"^":case"&":return A(C(e),C(t),n);case"==":return j(e,t);case"!=":return!j(e,t);case"<":case">":case"<=":case">=":return k(e,t,n);case"+":return X(e)||X(t)?M(e)+M(t):C(e)+C(t);case"-":return C(e)-C(t);case"*":return C(e)*C(t);case"/":return C(e)/C(t);case"%":return C(e)%C(t);default:throw new f("UnsupportedOperator",null)}},assign(e,t,n){switch(t){case"=":return e===O?null:e;case"/=":return C(n)/C(e);case"*=":return C(n)*C(e);case"-=":return C(n)-C(e);case"+=":return X(n)||X(e)?M(n)+M(e):C(n)+C(e);case"%=":return C(n)%C(e);default:throw new f("UnsupportedOperator",null)}},update(e,t,n,r){const o=C(this.requireInitialized(e[t]));return e[t]="++"===n?o+1:o-1,!1===r?o:"++"===n?o+1:o-1},createFeature:(e,t,n)=>h.createFromGraphicLikeObject(e.geometry,e.attributes,t,n.timeZone),memberupdate(e,t,n,r){let o;if(H(e)){if(!Q(t))throw new f("ArrayAccessMustBeNumber",null);if(t<0&&(t=e.length+t),t<0||t>=e.length)throw new f("OutOfBounds",null);o=C(e[t]),e[t]="++"===n?o+1:o-1}else if(e instanceof p){if(!1===X(t))throw new f("KeyAccessorMustBeString",null);if(!0!==e.hasField(t))throw new f("FieldNotFound",null,{key:t});o=C(e.field(t)),e.setField(t,"++"===n?o+1:o-1)}else if(I(e)){if(!1===X(t))throw new f("KeyAccessorMustBeString",null);if(!0!==e.hasField(t))throw new f("FieldNotFound",null,{key:t});o=C(e.field(t)),e.setField(t,"++"===n?o+1:o-1)}else{if(F(e))throw new f("Immutable",null);if(!(e instanceof it))throw new f("InvalidIdentifier",null);if(!1===X(t))throw new f("ModuleAccessorMustBeString",null);if(!0!==e.hasGlobal(t))throw new f("ModuleExportNotFound",null);o=C(e.global(t)),e.setGlobal(t,"++"===n?o+1:o-1)}return!1===r?o:"++"===n?o+1:o-1},assignmember(e,t,n,r){if(H(e)){if(!Q(t))throw new f("ArrayAccessMustBeNumber",null);if(t<0&&(t=e.length+t),t<0||t>e.length)throw new f("OutOfBounds",null);if(t===e.length){if("="!==n)throw new f("OutOfBounds",null);e[t]=this.assign(r,n,e[t])}else e[t]=this.assign(r,n,e[t])}else if(e instanceof p){if(!1===X(t))throw new f("KeyAccessorMustBeString",null);if(!0===e.hasField(t))e.setField(t,this.assign(r,n,e.field(t)));else{if("="!==n)throw new f("FieldNotFound",null,{key:t});e.setField(t,this.assign(r,n,null))}}else if(I(e)){if(!1===X(t))throw new f("KeyAccessorMustBeString",null);if(!0===e.hasField(t))e.setField(t,this.assign(r,n,e.field(t)));else{if("="!==n)throw new f("FieldNotFound",null,{key:t});e.setField(t,this.assign(r,n,null))}}else{if(F(e))throw new f("Immutable",null);if(!(e instanceof it))throw new f("InvalidIdentifier",null);if(!1===X(t))throw new f("ModuleAccessorMustBeString",null);if(!e.hasGlobal(t))throw new f("ModuleExportNotFound",null);e.setGlobal(t,this.assign(r,n,e.global(t)))}},member:(e,t)=>c(e,t),tryMember:(e,t)=>i(e,t),callfunc(e,t,n){if(x(e))return e.call(n,{arguments:t,preparsed:!0});throw new f("CallNonFunction",null)},loadModule(e,t){const n=t.moduleFactoryMap[e];if(t.moduleSingletons[n])return t.moduleSingletons[n];const r=t.moduleFactory[n]({moduleSingletons:t.moduleSingletons,depthCounter:t.depthCounter,lrucache:t.lrucache,interceptor:t.interceptor,services:t.services,console:t.console,abortSignal:t.abortSignal,timeZone:t.timeZone??null,spatialReference:t.spatialReference});return t.moduleSingletons[n]=r,r},getNestedOptionalValue:(e,t)=>l(e,t)};function at(e){console.log(e)}function st(n,o,a=!1){let s=null;n.usesModules&&(s=new r(null,n.loadedModules));const l=Object.create(null),i=new Set(Object.keys(o?.vars||{}).map(t=>e(t))),c=new Set(Object.keys(o?.customfunctions||{}).map(t=>e(t))),u=ce(n,a?Xe.provided:Qe.provided,new Set([...i,...c]),a,s,l);let m;m=a?["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* () {",` ${u.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() {",` ${u.body}`,"}","return this.postProcess(mainBody());"].join("\n");const{symbolMetadata:p,moduleFactoryMap:d}=u,g={lc:v,lang:ot,postProcess(e){if(S(e))return null;if(x(e))throw new f("IllegalResult",null);return e},prepare(e,n){const r=e.spatialReference??J.WebMercator,o=n?new Xe:new Qe;for(const t of c)null!=e.customfunctions&&t in e.customfunctions?o[t]=e.customfunctions[t]??null:o[t]=tt;for(const t of i){if(null==e.vars||!(t in e.vars)){t in o||(o[t]=tt);continue}const n=e.vars[t]??null;Y(n)?o[t]=h.createFromGraphic(n,e.timeZone??null):o[t]=n}return{lrucache:e.lrucache,interceptor:e.interceptor,services:e.services,console:e.console??at,abortSignal:e.abortSignal??t,timeZone:e.timeZone??null,spatialReference:r,track:e.track,globalScope:o,localStack:[],depthCounter:{depth:1},symbolMetadata:p,moduleFactory:l,moduleFactoryMap:d,moduleSingletons:Object.create(null)}}};return new Function("context",m).bind(g)}async function lt(){return et([await import("./functions/geomasync.js")],"async"),!0}class it extends n{constructor(e){super(),this.moduleContext=e}hasGlobal(t){const n=this.moduleContext.symbolMetadata.exports;return n.has(t)||n.has(e(t))}setGlobal(t,n){if(x(n))throw new f("AssignModuleFunction",null);const r=this.moduleContext.symbolMetadata.globals.get(e(t));if(null==r)throw new f("ModuleExportNotFound",null);this.moduleContext.globalScope[r]=n}global(t){const n=this.moduleContext.symbolMetadata.globals.get(e(t));if(null==n)throw new f("ModuleExportNotFound",null);const r=this.moduleContext.globalScope,o=ot.requireInitialized(r[n]);if(x(o)&&!(o instanceof b)){const e=new b;return e.fn=o,e.parameterEvaluator=ie,e.context=this.moduleContext,r[n]=e,e}return o}}function ct(e,n,o){const a=new r(null,e.loadedModules),s=ce(e,o?Xe.provided:Qe.provided,new Set,o,a,n);let l;l=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* () {",` ${s.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() {",` ${s.body}`,"}","mainBody();","return this.prepareModule(runtimeCtx);"].join("\n");const{symbolMetadata:i,moduleFactoryMap:c}=s,u={lc:v,lang:ot,prepareModule:e=>new it(e),prepare(e,r){const o=e.spatialReference??J.WebMercator,a=r?new Xe:new Qe;return{lrucache:e.lrucache,interceptor:e.interceptor,services:e.services,console:e.console??at,abortSignal:e.abortSignal??t,timeZone:e.timeZone??null,spatialReference:o,track:null,globalScope:a,localStack:[],depthCounter:e.depthCounter,symbolMetadata:i,moduleFactory:n,moduleFactoryMap:c,moduleSingletons:e.moduleSingletons}}};return new Function("context",l).bind(u)}export{le as UserDefinedCompiledFunction,st as compileScript,lt as enableAsyncSupport,et as extend};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- 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,ensureLocatableError 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 k,v as j,B as I,g as O,y as A,f as N,w as C,r as M,s as E,u as B,x as U,h 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 $}from"../support/graphicInstanceUtils.js";import{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("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("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(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}get debugName(){return null}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("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("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("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("UnexpectedToken",s);if(i===k)throw new h("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("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("AssignModuleFunction",null);const n=e(t);if(!this.moduleGlobalContext.exports.has(n))throw new h("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.keys())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 ke(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 Me(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("Unrecognized",t);default:throw new h("Unrecognized",t)}}catch(r){throw d(r,t)}}function he(e,t){switch(t.type){case"EmptyStatement":return j;case"VariableDeclaration":return Ne(e,t);case"ImportDeclaration":return Oe(e,t);case"ExportNamedDeclaration":return Ae(e,t);case"BlockStatement":return ke(e,t);case"FunctionDeclaration":return Ie(e,t);case"ReturnStatement":return je(e,t);case"IfStatement":return Fe(e,t);case"ExpressionStatement":return Re(e,t);case"BreakStatement":return F;case"ContinueStatement":return k;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("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("NoFunctionInDictionary",t);if(!1===Q(i))throw new h("KeyMustBeString",t);let l=i.toString();const c=l.toLowerCase();n.has(c)?l=n.get(c):n.set(c,l),r[l]=a===j?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&&Ne(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 j}if(O(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 j}if(r instanceof p||A(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 j}if(N(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 j}return j}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("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 j}if(O(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 j}if(r instanceof p||A(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 j}if(N(r)){for(const o of l(r)){const s=c(r,o,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 j}return j}function ge(e,t){null!==t.init&&("VariableDeclaration"===t.init.type?he(e,t.init):pe(e,t.init));const r={testResult:!0,lastAction:j};do{ye(e,t,r)}while(!0===r.testResult);return r.lastAction instanceof v?r.lastAction:j}function be(e,t){const r={testResult:!0,lastAction:j};if(r.testResult=pe(e,t.test),!1===r.testResult)return j;if(!0!==r.testResult)throw new h("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("BooleanConditionRequired",t);return r.lastAction instanceof v?r.lastAction:j}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("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("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("Unrecognized",t);o=t.argument.property.name}if(J(n)){if(!X(o))throw new h("ArrayAccessMustBeNumber",t);if(o<0&&(o=n.length+o),o<0||o>=n.length)throw new h("OutOfBounds",t);r=M(n[o]),n[o]="++"===t.operator?r+1:r-1}else if(n instanceof p){if(!1===Q(o))throw new h("KeyAccessorMustBeString",t);if(!0!==n.hasField(o))throw new h("FieldNotFound",t,{key:o});r=M(n.field(o)),n.setField(o,"++"===t.operator?r+1:r-1)}else if(G(n)){if(!1===Q(o))throw new h("KeyAccessorMustBeString",t);if(!0!==n.hasField(o))throw new h("FieldNotFound",t,{key:o});r=M(n.field(o)),n.setField(o,"++"===t.operator?r+1:r-1)}else{if(O(n))throw new h("Immutable",t);if(!(n instanceof ce))throw new h("InvalidParameter",t);if(!1===Q(o))throw new h("ModuleAccessorMustBeString",t);if(!0!==n.hasGlobal(o))throw new h("ModuleExportNotFound",t);r=M(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=M(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){switch(t){case"=":return e===j?null:e;case"/=":return M(r)/M(e);case"*=":return M(r)*M(e);case"-=":return M(r)-M(e);case"+=":return Q(r)||Q(e)?E(r)+E(e):M(r)+M(e);case"%=":return M(r)%M(e);default:throw new h("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("InvalidIdentifier",t);n=t.left.property.name}const o=pe(e,t.right);if(J(r)){if(!X(n))throw new h("ArrayAccessMustBeNumber",t);if(n<0&&(n=r.length+n),n<0||n>r.length)throw new h("OutOfBounds",t);if(n===r.length){if("="!==t.operator)throw new h("OutOfBounds",t);r[n]=xe(o,t.operator,r[n],t)}else r[n]=xe(o,t.operator,r[n],t)}else if(r instanceof p){if(!1===Q(n))throw new h("KeyAccessorMustBeString",t);if(!0===r.hasField(n))r.setField(n,xe(o,t.operator,r.field(n),t));else{if("="!==t.operator)throw new h("FieldNotFound",t,{key:n});r.setField(n,xe(o,t.operator,null,t))}}else if(G(r)){if(!1===Q(n))throw new h("KeyAccessorMustBeString",t);if(!0===r.hasField(n))r.setField(n,xe(o,t.operator,r.field(n),t));else{if("="!==t.operator)throw new h("FieldNotFound",t,{key:n});r.setField(n,xe(o,t.operator,null,t))}}else{if(O(r))throw new h("Immutable",t);if(!(r instanceof ce))throw new h("InvalidIdentifier",t);if(!1===Q(n))throw new h("ModuleAccessorMustBeString",t);if(!0!==r.hasGlobal(n))throw new h("ModuleExportNotFound",t);r.setGlobal(n,xe(o,t.operator,r.global(n),t))}return j}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)},j}function Re(e,t){const r=pe(e,t.expression);return r===j?j: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):j;throw new h("BooleanConditionRequired",t)}function ke(e,t){let r=j;for(let n=0;n<t.body.length;n++)if(r=he(e,t.body[n]),r instanceof v||r===F||r===k)return r;return r}function je(e,t){if(null===t.argument)return new v(j);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("NeverReach",r);const n=e(r.id);if(!(n in t.globalScope))throw ee().error(`Function "${n}" not declared.`),new h("NeverReach",r);const o=s(r),i=r.params.map(t=>e(t)),a=Array.from(o.keys()).filter(e=>!i.includes(e));return t.globalScope[n]={value:new ae(r,t,i,a)},j}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("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},j}function Ae(e,t){return he(e,t.declaration),j}function Ne(e,t){for(let r=0;r<t.declarations.length;r++)Ce(e,t.declarations[r]);return j}function Ce(e,t){let r=null===t.init?null:pe(e,t.init);if(r===j&&(r=null),"Identifier"!==t.id.type)throw new h("InvalidIdentifier",t);const n=oe(e,t.id);n.scope[n.id]={value:r}}function Me(e,t){return Ee(e,pe(e,t.object),t)}function Ee(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=Ee(e,t,n);break;case"CallExpression":t=Ve(e,t,n);break;default:throw new h("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*M(r);if("+"===t.operator)return 1*M(r);if("~"===t.operator)return~M(r);throw new h("UnsupportUnaryOperator",t)}if("~"===t.operator)return~M(r);if("-"===t.operator)return-1*M(r);if("+"===t.operator)return 1*M(r);throw new h("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("NoFunctionInArray",t);o===j?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(M(r),M(n),t.operator);case"==":return C(r,n);case"!=":return!C(r,n);case"<":case">":case"<=":case">=":return B(r,n,t.operator);case"+":return Q(r)||Q(n)?E(r)+E(n):M(r)+M(n);case"-":return M(r)-M(n);case"*":return M(r)*M(n);case"/":return M(r)/M(n);case"%":return M(r)%M(n);default:throw t.operator,new h("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("LogicExpressionOrAnd",t)}case"&&":{if(!1===r)return r;const n=pe(e,t.right);if(H(n))return n;throw new h("LogicExpressionOrAnd",t)}default:throw t.operator,new h("LogicExpressionOrAnd",t)}throw new h("LogicalExpressionOnlyBoolean",t)}catch(r){throw r}}function Ze(e,t){if(R(e))throw new h("NoFunctionInTemplateLiteral",t);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]?E(Ze(pe(e,t.expressions[n]),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("CallNonFunction",r)}function Te(e,t){try{if(!0===t.preparsed)throw new h("NeverReach",null);const r=t.arguments;I(null===r?[]:r,3,3,t);const n=pe(e,r[0]);if(!1===H(n))throw new h("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("NeverReach",null);const r=t.arguments;I(null===r?[]:r,2,3,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("NeverReach",null);const r=t.arguments;if(r.length<2)throw new h("WrongNumberOfParameters",t);if(2===r.length)return pe(e,r[1]);{if((r.length-1)%2==0)throw new h("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(C(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("NeverReach",null);const r=t.arguments;if(r.length<3)throw new h("WrongNumberOfParameters",t);if(r.length%2==0)throw new h("WrongNumberOfParameters",t);const n=pe(e,r[0]);if(!1===H(n))throw new h("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("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.nan=Object.freeze({value:Number.NaN}),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),u=new Set(l.keys());return e=>{const o=e.spatialReference??Y.WebMercator;let s=null;r.usesModules&&(s=new n(new Map,r.loadedModules));const l=new Xe;for(const t of a)null!=e.customfunctions&&t in e.customfunctions?l[t]={value:new m(e.customfunctions[t])}:l[t]=te;for(const t of i){if(null==e.vars||!(t in e.vars)){t in l||(l[t]=te);continue}const r=e.vars[t]??null;$(r)?l[t]={value:w.createFromGraphic(r,e.timeZone??null)}:l[t]={value:r}}for(const t of u)t in l||(l[t]=te);const f=ke({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:l},r);if(f instanceof v||f instanceof x){const e=f.value;if(S(e))return null;if(R(e))throw new h("IllegalResult",null);return e}if(S(f))return null;if(f===F)throw new h("IllegalResult",null);if(f===k)throw new h("IllegalResult",null);throw new h("NeverReach",null)}}function nt(e,t){return rt(e,t)(t)}et([D]);export{nt as executeScript,et as extend,rt as prepareScript};
2
+ 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,ensureLocatableError 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,u as S,i as R,C as F,D as k,x as j,E as I,g as O,B as A,f as C,z as N,v as E,w as M,y as B,A as U,h 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 $}from"../support/graphicInstanceUtils.js";import{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("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("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(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}get debugName(){return null}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("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("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("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("UnexpectedToken",s);if(i===k)throw new h("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("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("AssignModuleFunction",null);const n=e(t);if(!this.moduleGlobalContext.exports.has(n))throw new h("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.keys())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 ke(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("Unrecognized",t);default:throw new h("Unrecognized",t)}}catch(r){throw d(r,t)}}function he(e,t){switch(t.type){case"EmptyStatement":return j;case"VariableDeclaration":return Ce(e,t);case"ImportDeclaration":return Oe(e,t);case"ExportNamedDeclaration":return Ae(e,t);case"BlockStatement":return ke(e,t);case"FunctionDeclaration":return Ie(e,t);case"ReturnStatement":return je(e,t);case"IfStatement":return Fe(e,t);case"ExpressionStatement":return Re(e,t);case"BreakStatement":return F;case"ContinueStatement":return k;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("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("NoFunctionInDictionary",t);if(!1===Q(i))throw new h("KeyMustBeString",t);let l=i.toString();const c=l.toLowerCase();n.has(c)?l=n.get(c):n.set(c,l),r[l]=a===j?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 j}if(O(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 j}if(r instanceof p||A(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 j}if(C(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 j}return j}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("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 j}if(O(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 j}if(r instanceof p||A(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 j}if(C(r)){for(const o of l(r)){const s=c(r,o,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 j}return j}function ge(e,t){null!==t.init&&("VariableDeclaration"===t.init.type?he(e,t.init):pe(e,t.init));const r={testResult:!0,lastAction:j};do{ye(e,t,r)}while(!0===r.testResult);return r.lastAction instanceof v?r.lastAction:j}function be(e,t){const r={testResult:!0,lastAction:j};if(r.testResult=pe(e,t.test),!1===r.testResult)return j;if(!0!==r.testResult)throw new h("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("BooleanConditionRequired",t);return r.lastAction instanceof v?r.lastAction:j}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("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("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("Unrecognized",t);o=t.argument.property.name}if(J(n)){if(!X(o))throw new h("ArrayAccessMustBeNumber",t);if(o<0&&(o=n.length+o),o<0||o>=n.length)throw new h("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("KeyAccessorMustBeString",t);if(!0!==n.hasField(o))throw new h("FieldNotFound",t,{key:o});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("KeyAccessorMustBeString",t);if(!0!==n.hasField(o))throw new h("FieldNotFound",t,{key:o});r=E(n.field(o)),n.setField(o,"++"===t.operator?r+1:r-1)}else{if(O(n))throw new h("Immutable",t);if(!(n instanceof ce))throw new h("InvalidParameter",t);if(!1===Q(o))throw new h("ModuleAccessorMustBeString",t);if(!0!==n.hasGlobal(o))throw new h("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){switch(t){case"=":return e===j?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)?M(r)+M(e):E(r)+E(e);case"%=":return E(r)%E(e);default:throw new h("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("InvalidIdentifier",t);n=t.left.property.name}const o=pe(e,t.right);if(J(r)){if(!X(n))throw new h("ArrayAccessMustBeNumber",t);if(n<0&&(n=r.length+n),n<0||n>r.length)throw new h("OutOfBounds",t);if(n===r.length){if("="!==t.operator)throw new h("OutOfBounds",t);r[n]=xe(o,t.operator,r[n],t)}else r[n]=xe(o,t.operator,r[n],t)}else if(r instanceof p){if(!1===Q(n))throw new h("KeyAccessorMustBeString",t);if(!0===r.hasField(n))r.setField(n,xe(o,t.operator,r.field(n),t));else{if("="!==t.operator)throw new h("FieldNotFound",t,{key:n});r.setField(n,xe(o,t.operator,null,t))}}else if(G(r)){if(!1===Q(n))throw new h("KeyAccessorMustBeString",t);if(!0===r.hasField(n))r.setField(n,xe(o,t.operator,r.field(n),t));else{if("="!==t.operator)throw new h("FieldNotFound",t,{key:n});r.setField(n,xe(o,t.operator,null,t))}}else{if(O(r))throw new h("Immutable",t);if(!(r instanceof ce))throw new h("InvalidIdentifier",t);if(!1===Q(n))throw new h("ModuleAccessorMustBeString",t);if(!0!==r.hasGlobal(n))throw new h("ModuleExportNotFound",t);r.setGlobal(n,xe(o,t.operator,r.global(n),t))}return j}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)},j}function Re(e,t){const r=pe(e,t.expression);return r===j?j: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):j;throw new h("BooleanConditionRequired",t)}function ke(e,t){let r=j;for(let n=0;n<t.body.length;n++)if(r=he(e,t.body[n]),r instanceof v||r===F||r===k)return r;return r}function je(e,t){if(null===t.argument)return new v(j);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("NeverReach",r);const n=e(r.id);if(!(n in t.globalScope))throw ee().error(`Function "${n}" not declared.`),new h("NeverReach",r);const o=s(r),i=r.params.map(t=>e(t)),a=Array.from(o.keys()).filter(e=>!i.includes(e));return t.globalScope[n]={value:new ae(r,t,i,a)},j}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("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},j}function Ae(e,t){return he(e,t.declaration),j}function Ce(e,t){for(let r=0;r<t.declarations.length;r++)Ne(e,t.declarations[r]);return j}function Ne(e,t){let r=null===t.init?null:pe(e,t.init);if(r===j&&(r=null),"Identifier"!==t.id.type)throw new h("InvalidIdentifier",t);const n=oe(e,t.id);n.scope[n.id]={value:r}}function Ee(e,t){return Me(e,pe(e,t.object),t)}function Me(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=Me(e,t,n);break;case"CallExpression":t=Ve(e,t,n);break;default:throw new h("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("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("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("NoFunctionInArray",t);o===j?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 N(r,n);case"!=":return!N(r,n);case"<":case">":case"<=":case">=":return B(r,n,t.operator);case"+":return Q(r)||Q(n)?M(r)+M(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("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("LogicExpressionOrAnd",t)}case"&&":{if(!1===r)return r;const n=pe(e,t.right);if(H(n))return n;throw new h("LogicExpressionOrAnd",t)}default:throw t.operator,new h("LogicExpressionOrAnd",t)}throw new h("LogicalExpressionOnlyBoolean",t)}catch(r){throw r}}function Ze(e,t){if(R(e))throw new h("NoFunctionInTemplateLiteral",t);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]?M(Ze(pe(e,t.expressions[n]),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("CallNonFunction",r)}function Te(e,t){try{if(!0===t.preparsed)throw new h("NeverReach",null);const r=t.arguments;I(null===r?[]:r,3,3,t);const n=pe(e,r[0]);if(!1===H(n))throw new h("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("NeverReach",null);const r=t.arguments;I(null===r?[]:r,2,3,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("NeverReach",null);const r=t.arguments;if(r.length<2)throw new h("WrongNumberOfParameters",t);if(2===r.length)return pe(e,r[1]);{if((r.length-1)%2==0)throw new h("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(N(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("NeverReach",null);const r=t.arguments;if(r.length<3)throw new h("WrongNumberOfParameters",t);if(r.length%2==0)throw new h("WrongNumberOfParameters",t);const n=pe(e,r[0]);if(!1===H(n))throw new h("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("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.nan=Object.freeze({value:Number.NaN}),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),u=new Set(l.keys());return e=>{const o=e.spatialReference??Y.WebMercator;let s=null;r.usesModules&&(s=new n(new Map,r.loadedModules));const l=new Xe;for(const t of a)null!=e.customfunctions&&t in e.customfunctions?l[t]={value:new m(e.customfunctions[t])}:l[t]=te;for(const t of i){if(null==e.vars||!(t in e.vars)){t in l||(l[t]=te);continue}const r=e.vars[t]??null;$(r)?l[t]={value:w.createFromGraphic(r,e.timeZone??null)}:l[t]={value:r}}for(const t of u)t in l||(l[t]=te);const f=ke({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:l},r);if(f instanceof v||f instanceof x){const e=f.value;if(S(e))return null;if(R(e))throw new h("IllegalResult",null);return e}if(S(f))return null;if(f===F)throw new h("IllegalResult",null);if(f===k)throw new h("IllegalResult",null);throw new h("NeverReach",null)}}function nt(e,t){return rt(e,t)(t)}et([D]);export{nt as executeScript,et as extend,rt as prepareScript};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import e from"./Dictionary.js";import{ArcadeExecutionError as n}from"./executionError.js";import t from"./ImmutableArray.js";import r from"./ImmutablePathArray.js";import a from"./ImmutablePointArray.js";import{P as l,g as s,y as c,f as i,G as u}from"../chunks/languageUtils.js";import o from"../core/Accessor.js";import{isArray as f,isString as h,isNumber as m}from"../support/guards.js";const p={point:["hasZ","hasM","spatialReference","type","x","y","z","m"],multipoint:["hasZ","hasM","spatialReference","type","points"],polyline:["hasZ","hasM","spatialReference","type","paths"],polygon:["hasZ","hasM","spatialReference","type","rings"],extent:["hasZ","hasM","spatialReference","type","xmin","xmax","ymin","ymax","zmin","zmax","mmin","mmax"]};function y(e){return p[e.type]}function w(e,t,r){const a=b(e,t);if(a===d)throw new n("InvalidMemberAccessKey",r);return a}const d=Symbol("keyNotFound");let g=0;function b(n,t){switch(t=t.toLowerCase()){case"hasz":return n.hasZ??!1;case"hasm":return n.hasM??!1;case"spatialreference":{let t=n.spatialReference._arcadeCacheId;null!=t||o.isFrozen(n.spatialReference)||(g++,n.spatialReference._arcadeCacheId=g,t=g);const r=new e({__proto__:null,wkt:n.spatialReference.wkt,wkid:n.spatialReference.wkid});return null!=t&&(r._arcadeCacheId="SPREF"+t.toString()),r}}switch(n.type){case"extent":switch(t){case"xmin":case"xmax":case"ymin":case"ymax":case"zmin":case"zmax":case"mmin":case"mmax":return n[t]??null;case"type":return"Extent"}break;case"polygon":switch(t){case"rings":{let e=n.cache._arcadeCacheId;return null==e&&(g++,e=g,n.cache._arcadeCacheId=e),new r(n.rings,n.spatialReference,!0===n.hasZ,!0===n.hasM,e)}case"type":return"Polygon"}break;case"point":switch(t){case"x":case"y":case"z":case"m":return n[t]??null;case"type":return"Point"}break;case"polyline":switch(t){case"paths":{let e=n.cache._arcadeCacheId;return null==e&&(g++,e=g,n.cache._arcadeCacheId=e),new r(n.paths,n.spatialReference,!0===n.hasZ,!0===n.hasM,e)}case"type":return"Polyline"}break;case"multipoint":switch(t){case"points":{let e=n.cache._arcadeCacheId;return null==e&&(g++,e=g,n.cache._arcadeCacheId=e),new a(n.points,n.spatialReference,!0===n.hasZ,!0===n.hasM,e,1)}case"type":return"Multipoint"}}return d}function I(e,n){let t,r=e;if(null==r)return null;if(f(n))t=n;else if(s(n))t=n.toArray();else{if(null==n)return null;t=[n]}for(const a of t)if(r=M(r,a),null==r)return null;return r}function x(e){return!!l(e)||(f(e)?0===e.length:s(e)?0===e.length():!!c(e)&&e.isEmpty())}function M(n,t){if(null==n)return null;if(n instanceof e||c(n))return h(t)&&n.hasField(t)?n.field(t):null;if(i(n)){if(!h(t))return null;const e=b(n,t);return e===d?null:e}return f(n)||h(n)?m(t)&&Number.isInteger(t)?(t<0&&(t=n.length+t),t>=n.length||t<0?null:n[t]):null:s(n)?m(t)&&Number.isInteger(t)?(t<0&&(t=n.length()+t),t>=n.length()||t<0?null:n.get(t)):null:u(n)&&h(t)&&n.hasGlobal(t)?n.global(t):null}function A(t,r){if(null==t)throw new n("MemberOfNull",null);if(t instanceof e||c(t)){if(h(r))return t.field(r);throw new n("InvalidMemberAccessKey",null)}if(i(t)){if(h(r))return w(t,r,null);throw new n("InvalidMemberAccessKey",null)}if(f(t)||h(t)){if(m(r)&&Number.isInteger(r)){if(r<0&&(r=t.length+r),r>=t.length||r<0)throw new n("OutOfBounds",null);return t[r]}throw new n("InvalidMemberAccessKey",null)}if(s(t)){if(m(r)&&Number.isInteger(r)){if(r<0&&(r=t.length()+r),r>=t.length()||r<0)throw new n("OutOfBounds",null);return t.get(r)}throw new n("InvalidMemberAccessKey",null)}if(u(t)){if(h(r))return t.global(r);throw new n("InvalidMemberAccessKey",null)}throw new n("InvalidMemberAccessKey",null)}function R(e){return j(e,!0)}function _(e){return j(e,!1)}function j(n,r){if(null==n)return null;if("string"==typeof n||"number"==typeof n||"boolean"==typeof n)return n;if(Array.isArray(n)){const e=n.map(e=>j(e,r));return r?new t(e):e}if("object"==typeof n){const t=Object.create(null);for(const e of Object.entries(n))void 0!==e[1]&&(t[e[0]]=j(e[1],r));const a=new e(t);return a.immutable=r,a}throw new Error(`Unsupported json value: ${n}`)}export{R as convertJsonValueToImmutableArcadeValue,_ as convertJsonValueToMutableArcadeValue,y as getGeometryKeys,w as getGeometryMember,A as getMember,I as getNestedOptionalValue,x as isEmpty,M as tryGetMember};
2
+ import e from"./Dictionary.js";import{ArcadeExecutionError as n}from"./executionError.js";import t from"./ImmutableArray.js";import r from"./ImmutablePathArray.js";import a from"./ImmutablePointArray.js";import{P as l,g as s,B as c,f as i,p as u}from"../chunks/languageUtils.js";import o from"../core/Accessor.js";import{isArray as f,isString as h,isNumber as m}from"../support/guards.js";const p={point:["hasZ","hasM","spatialReference","type","x","y","z","m"],multipoint:["hasZ","hasM","spatialReference","type","points"],polyline:["hasZ","hasM","spatialReference","type","paths"],polygon:["hasZ","hasM","spatialReference","type","rings"],extent:["hasZ","hasM","spatialReference","type","xmin","xmax","ymin","ymax","zmin","zmax","mmin","mmax"]};function y(e){return p[e.type]}function w(e,t,r){const a=b(e,t);if(a===d)throw new n("InvalidMemberAccessKey",r);return a}const d=Symbol("keyNotFound");let g=0;function b(n,t){switch(t=t.toLowerCase()){case"hasz":return n.hasZ??!1;case"hasm":return n.hasM??!1;case"spatialreference":{let t=n.spatialReference._arcadeCacheId;null!=t||o.isFrozen(n.spatialReference)||(g++,n.spatialReference._arcadeCacheId=g,t=g);const r=new e({__proto__:null,wkt:n.spatialReference.wkt,wkid:n.spatialReference.wkid});return null!=t&&(r._arcadeCacheId="SPREF"+t.toString()),r}}switch(n.type){case"extent":switch(t){case"xmin":case"xmax":case"ymin":case"ymax":case"zmin":case"zmax":case"mmin":case"mmax":return n[t]??null;case"type":return"Extent"}break;case"polygon":switch(t){case"rings":{let e=n.cache._arcadeCacheId;return null==e&&(g++,e=g,n.cache._arcadeCacheId=e),new r(n.rings,n.spatialReference,!0===n.hasZ,!0===n.hasM,e)}case"type":return"Polygon"}break;case"point":switch(t){case"x":case"y":case"z":case"m":return n[t]??null;case"type":return"Point"}break;case"polyline":switch(t){case"paths":{let e=n.cache._arcadeCacheId;return null==e&&(g++,e=g,n.cache._arcadeCacheId=e),new r(n.paths,n.spatialReference,!0===n.hasZ,!0===n.hasM,e)}case"type":return"Polyline"}break;case"multipoint":switch(t){case"points":{let e=n.cache._arcadeCacheId;return null==e&&(g++,e=g,n.cache._arcadeCacheId=e),new a(n.points,n.spatialReference,!0===n.hasZ,!0===n.hasM,e,1)}case"type":return"Multipoint"}}return d}function I(e,n){let t,r=e;if(null==r)return null;if(f(n))t=n;else if(s(n))t=n.toArray();else{if(null==n)return null;t=[n]}for(const a of t)if(r=M(r,a),null==r)return null;return r}function x(e){return!!l(e)||(f(e)?0===e.length:s(e)?0===e.length():!!c(e)&&e.isEmpty())}function M(n,t){if(null==n)return null;if(n instanceof e||c(n))return h(t)&&n.hasField(t)?n.field(t):null;if(i(n)){if(!h(t))return null;const e=b(n,t);return e===d?null:e}return f(n)||h(n)?m(t)&&Number.isInteger(t)?(t<0&&(t=n.length+t),t>=n.length||t<0?null:n[t]):null:s(n)?m(t)&&Number.isInteger(t)?(t<0&&(t=n.length()+t),t>=n.length()||t<0?null:n.get(t)):null:u(n)&&h(t)&&n.hasGlobal(t)?n.global(t):null}function A(t,r){if(null==t)throw new n("MemberOfNull",null);if(t instanceof e||c(t)){if(h(r))return t.field(r);throw new n("InvalidMemberAccessKey",null)}if(i(t)){if(h(r))return w(t,r,null);throw new n("InvalidMemberAccessKey",null)}if(f(t)||h(t)){if(m(r)&&Number.isInteger(r)){if(r<0&&(r=t.length+r),r>=t.length||r<0)throw new n("OutOfBounds",null);return t[r]}throw new n("InvalidMemberAccessKey",null)}if(s(t)){if(m(r)&&Number.isInteger(r)){if(r<0&&(r=t.length()+r),r>=t.length()||r<0)throw new n("OutOfBounds",null);return t.get(r)}throw new n("InvalidMemberAccessKey",null)}if(u(t)){if(h(r))return t.global(r);throw new n("InvalidMemberAccessKey",null)}throw new n("InvalidMemberAccessKey",null)}function R(e){return j(e,!0)}function _(e){return j(e,!1)}function j(n,r){if(null==n)return null;if("string"==typeof n||"number"==typeof n||"boolean"==typeof n)return n;if(Array.isArray(n)){const e=n.map(e=>j(e,r));return r?t.from(e):e}if("object"==typeof n){const t=Object.create(null);for(const e of Object.entries(n))void 0!==e[1]&&(t[e[0]]=j(e[1],r));const a=new e(t);return a.immutable=r,a}throw new Error(`Unsupported json value: ${n}`)}export{R as convertJsonValueToImmutableArcadeValue,_ as convertJsonValueToMutableArcadeValue,y as getGeometryKeys,w as getGeometryMember,A as getMember,I as getNestedOptionalValue,x as isEmpty,M as tryGetMember};
package/arcade/debug.js CHANGED
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{neverAbortedSignal as e}from"./arcadeEnvironment.js";import{getGeometryKeys as a,getGeometryMember as t,convertJsonValueToImmutableArcadeValue as n}from"./containerUtils.js";import{ArcadeExecutionError as r}from"./executionError.js";import{q as i,e as c,n as o,o as p,i as u,g as l,l as s,C as m,D as y,f as d,h as f,E as T,F as g,k as v,j as h,m as w,G as F}from"../chunks/languageUtils.js";import{getLocale as b}from"../intl/locale.js";import{isNumber as j,isString as x,isBoolean as S,isArray as A}from"../support/guards.js";const Z=Object.freeze({type:"primitive",arcadeType:"",value:null}),k=Object.freeze({type:"minimal",arcadeType:"Unrecognized Type"}),q=Object.freeze({type:"minimal",arcadeType:"KnowledgeGraph"}),z=Object.freeze({type:"minimal",arcadeType:"Module"});function D(e){return{type:"simple",arcadeType:"Date",render:()=>e.toFormat(e.isUnknownTimeZone?"FF":"FF ZZZZZ",{locale:b()})}}function M(e){return{type:"simple",arcadeType:"Time",render:()=>e.toString()}}function O(e){return{type:"simple",arcadeType:"DateOnly",render:()=>e.toString()}}function N(e,a){return{type:"sequence-container",arcadeType:"Array",mutable:!0,length:e.length,expand:()=>e.map(e=>V(e,a))}}function U(e,a){return{type:"sequence-container",arcadeType:"Array",mutable:!1,length:e.length(),expand:()=>e.toArray().map(e=>V(e,a))}}function B(e,a,t){return{type:"associative-container",arcadeType:a,mutable:"Dictionary"===a?!e.immutable:void 0,expand(){const a=e.values().map(e=>V(e,t));return new Map(e.keys().map((e,t)=>[e,a[t]]))}}}function E(e,n){return{type:"associative-container",arcadeType:t(e,"type",null),expand(){const r=a(e);return new Map(r.map(a=>[a,V(t(e,a,null),n)]))}}}function G(e,a){return{type:"associative-container",arcadeType:"Feature",expand(){const t=e.keys(),n=new Map(t.map(t=>[t,V(e.field(t),a)])),r=e.geometry();return null!=r&&n.set("Geometry()",E(r,a)),n}}}function C(e,a,t){return{type:"associative-container",arcadeType:a,expand:()=>new Map(e.keys().map(a=>[a,V(e.field(a),t)]))}}function P(a,t){return{type:"feature-set",arcadeType:"FeatureSet",async schema(){await a.load();return V(n(a.schema()),t)},querySample:async n=>({fields:(await a.load()).fields.map(e=>e.name),features:(await a.iterator(n??e).nextBatchAsArcadeFeatures(100,t.defaultTimeZone)??[]).map(e=>G(e,t))})}}function I(e,a,t){let n;async function i(){if(null==n){const i=await e.featureSetById(t,!0,["*"]);if(null==i)throw new r("NeverReach",null);n=P(i,a)}return n}return{type:"feature-set",arcadeType:"FeatureSet",schema:async()=>(await i()).schema(),querySample:async e=>(await i()).querySample(e)}}function K(e,a){return{type:"feature-set-collection",arcadeType:"FeatureSetCollection",load:async()=>(await e.listAll()).map(({id:t,name:n})=>({id:t,name:n,featureSet:I(e,a,t)}))}}function R(e){return null!=e.debugName?`ƒ ${e.debugName}(...)`:"ƒ <anonymous>(...)"}function V(e,a){return null==e||i(e)?Z:j(e)?{type:"primitive",arcadeType:"Number",value:e}:x(e)?{type:"primitive",arcadeType:"String",value:e}:S(e)?{type:"primitive",arcadeType:"Boolean",value:e}:c(e)?D(e):o(e)?M(e):p(e)?O(e):u(e)?{type:"simple",arcadeType:"Function",render:(a.renderFunction??R).bind(null,e)}:A(e)?N(e,a):l(e)?U(e,a):s(e)?B(e,"Dictionary",a):m(e)?B(e,"Portal",a):y(e)?B(e,"Attachment",a):d(e)?E(e,a):f(e)?G(e,a):T(e)?C(e,"Pixel",a):g(e)?C(e,"Voxel",a):v(e)?P(e,a):h(e)?K(e,a):w(e)?q:F(e)?z:k}export{R as renderFunctionDebugName,V as wrapDebugValue};
2
+ import{neverAbortedSignal as e}from"./arcadeEnvironment.js";import{getGeometryKeys as a,getGeometryMember as t,convertJsonValueToImmutableArcadeValue as n}from"./containerUtils.js";import{ArcadeExecutionError as r}from"./executionError.js";import{u as i,e as c,r as o,q as p,i as u,g as l,l as s,n as m,m as y,f as d,h as f,F as T,G as g,k as v,j as h,o as w,p as F}from"../chunks/languageUtils.js";import{getLocale as b}from"../intl/locale.js";import{isNumber as j,isString as x,isBoolean as S,isArray as A}from"../support/guards.js";const Z=Object.freeze({type:"primitive",arcadeType:"",value:null}),k=Object.freeze({type:"minimal",arcadeType:"Unrecognized Type"}),q=Object.freeze({type:"minimal",arcadeType:"KnowledgeGraph"}),z=Object.freeze({type:"minimal",arcadeType:"Module"});function M(e){return{type:"simple",arcadeType:"Date",render:()=>e.toFormat(e.isUnknownTimeZone?"FF":"FF ZZZZZ",{locale:b()})}}function O(e){return{type:"simple",arcadeType:"Time",render:()=>e.toString()}}function D(e){return{type:"simple",arcadeType:"DateOnly",render:()=>e.toString()}}function N(e,a){return{type:"sequence-container",arcadeType:"Array",mutable:!0,length:e.length,expand:()=>e.map(e=>V(e,a))}}function U(e,a){return{type:"sequence-container",arcadeType:"Array",mutable:!1,length:e.length(),expand:()=>e.toArray().map(e=>V(e,a))}}function B(e,a,t){return{type:"associative-container",arcadeType:a,mutable:"Dictionary"===a?!e.immutable:void 0,expand(){const a=e.values().map(e=>V(e,t));return new Map(e.keys().map((e,t)=>[e,a[t]]))}}}function G(e,n){return{type:"associative-container",arcadeType:t(e,"type",null),expand(){const r=a(e);return new Map(r.map(a=>[a,V(t(e,a,null),n)]))}}}function E(e,a){return{type:"associative-container",arcadeType:"Feature",expand(){const t=e.keys(),n=new Map(t.map(t=>[t,V(e.field(t),a)])),r=e.geometry();return null!=r&&n.set("Geometry()",G(r,a)),n}}}function P(e,a,t){return{type:"associative-container",arcadeType:a,expand:()=>new Map(e.keys().map(a=>[a,V(e.field(a),t)]))}}function C(a,t){return{type:"feature-set",arcadeType:"FeatureSet",async schema(){await a.load();return V(n(a.schema()),t)},querySample:async n=>({fields:(await a.load()).fields.map(e=>e.name),features:(await a.iterator(n??e).nextBatchAsArcadeFeatures(100,t.defaultTimeZone)??[]).map(e=>E(e,t))})}}function I(e,a,t){let n;async function i(){if(null==n){const i=await e.featureSetById(t,!0,["*"]);if(null==i)throw new r("NeverReach",null);n=C(i,a)}return n}return{type:"feature-set",arcadeType:"FeatureSet",schema:async()=>(await i()).schema(),querySample:async e=>(await i()).querySample(e)}}function K(e,a){return{type:"feature-set-collection",arcadeType:"FeatureSetCollection",load:async()=>(await e.listAll()).map(({id:t,name:n})=>({id:t,name:n,featureSet:I(e,a,t)}))}}function R(e){return null!=e.debugName?`ƒ ${e.debugName}(...)`:"ƒ <anonymous>(...)"}function V(e,a){return null==e||i(e)?Z:j(e)?{type:"primitive",arcadeType:"Number",value:e}:x(e)?{type:"primitive",arcadeType:"String",value:e}:S(e)?{type:"primitive",arcadeType:"Boolean",value:e}:c(e)?M(e):o(e)?O(e):p(e)?D(e):u(e)?{type:"simple",arcadeType:"Function",render:(a.renderFunction??R).bind(null,e)}:A(e)?N(e,a):l(e)?U(e,a):s(e)?B(e,"Dictionary",a):m(e)?B(e,"Portal",a):y(e)?B(e,"Attachment",a):d(e)?G(e,a):f(e)?E(e,a):T(e)?P(e,"Pixel",a):g(e)?P(e,"Voxel",a):v(e)?C(e,a):h(e)?K(e,a):w(e)?q:F(e)?z:k}export{R as renderFunctionDebugName,V as wrapDebugValue};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{ArcadeModule as a}from"./ArcadeModule.js";import{e,b as r,f as s,g as o,h as t,j as l,k as n,l as c,m as d,i as m}from"../chunks/languageUtils.js";import{isArray as u}from"../support/guards.js";function i(a){p=a}let p;function f(i){return null===i?null:e(i)?i.clone():r(i)?i:s(i)?i.clone():o(i)?i.toArray().map(a=>f(a)):u(i)?i.map(a=>f(a)):t(i)?p.createFromArcadeFeature(i):l(i)||n(i)?i:c(i)||"esri.arcade.Attachment"===i?.declaredClass?i.deepClone():("esri.arcade.Portal"===i?.declaredClass||d(i)||i instanceof a||m(i),i)}export{i as configureDeepClone,f as deepClone};
2
+ import{e as a,b as s,f as e,g as r,h as o,j as n,k as t,l,m as u,n as p,o as m,p as c,i}from"../chunks/languageUtils.js";import{isArray as f}from"../support/guards.js";function g(a){d=a}let d;function j(g){return null==g?null:a(g)?g.clone():s(g)?g:e(g)?g.clone():r(g)?g.toArray().map(a=>j(a)):f(g)?g.map(a=>j(a)):o(g)?d.createFromArcadeFeature(g):n(g)||t(g)?g:l(g)||u(g)?g.deepClone():(p(g)||m(g)||c(g)||i(g),g)}export{g as configureDeepClone,j as deepClone};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{id as e}from"../../../kernel.js";import t from"../../../request.js";import{neverAbortedSignal as r}from"../../arcadeEnvironment.js";import a from"../../Attachment.js";import{convertJsonValueToImmutableArcadeValue as i}from"../../containerUtils.js";import{throwIfCancelled as s,FeatureSetError as l}from"../support/errorsupport.js";import{RootFeatureSet as n,emptyFeaturesResult as o,getSpatialFilterRelationRestQueryParams as u,assignSpatialReferenceOnFeatures as c}from"../support/FeatureSet.js";import{defaultMaxRecords as d,stableStringify as h,extractServiceUrl as y}from"../support/shared.js";import{toWhereClause as p,isSingleField as _}from"../support/sqlUtils.js";import{decodeStatType as f}from"../support/stats.js";import{splitIntoChunks as m,sliceEquals as F}from"../../../core/arrayUtils.js";import{createMD5Hash as w,outputTypes as g}from"../../../core/MD5.js";import{sqlAnd as b}from"../../../core/sql.js";import S from"../../../core/sql/WhereClause.js";import I from"../../../layers/FeatureLayer.js";import{toQueryStringParameters as R}from"../../../rest/query/operations/queryRelatedRecords.js";import q from"../../../rest/support/AttachmentQuery.js";import T from"../../../rest/support/Query.js";import Q from"../../../rest/support/StatisticDefinition.js";function x(e){if(0===e.length)throw new l("NeverReach");const t=[];for(let a=0;a<e.length;a++){const r=e[a],i=[`"${r.name.replaceAll('"','""')}" ${r.asc?">":"<"} @last_${a}`];for(let t=0;t<a;t++){const r=e[t];i.push(`"${r.name.replaceAll('"','""')}" = @last_${t}`)}t.push(i.join(" AND "))}const r=t.join(" OR ");return S.create(r)}function j(e,t){null==e.clause&&(e.clause=x(e.keyFields));for(let r=0;r<e.keyFields.length;r++){const a=e.keyFields[r].name;e.clause.parameters[`last_${r}`]=t.attributes[a]}}class v extends n{constructor(e){super(),this.declaredClass="esri.arcade.featureset.sources.FeatureLayerDynamic",this._removeGeometry=!1,this._overrideFields=null,this._requestStandardised=!1,this._useDefinitionExpression=!0,this._recentlyUsedQueries=null,this._featureSetQueryInterceptor=null,this._featureSetInfo=null,this._maxProcessing=1e3,this._layer=e.layer,e.spatialReference&&(this.spatialReference=e.spatialReference),void 0!==e.outFields&&(this._overrideFields=e.outFields),void 0!==e.includeGeometry&&(this._removeGeometry=!1===e.includeGeometry),e.lrucache&&(this._recentlyUsedQueries=e.lrucache),e.interceptor&&(this._featureSetQueryInterceptor=e.interceptor)}_maxQueryRate(){return d}get urlQueryPath(){return this._layer.parsedUrl.path||""}convertQueryToLruCacheKey(e){const t=this.urlQueryPath+","+h(e.toJSON());return w(t,g.String)}async loadImpl(){return!0===this._layer.loaded?(this._initialiseFeatureSet(),this):(await this._layer.load(),this._initialiseFeatureSet(),this)}_initialiseFeatureSet(){if(this.spatialReference??=this._layer.spatialReference,this.geometryType=this._layer.geometryType??"",this.fields=this._layer.fields.slice(),this.hasZ=!0===this._layer.capabilities?.data?.supportsZ,this.hasM=!0===this._layer.capabilities?.data?.supportsM,null!==this._overrideFields)if(1===this._overrideFields.length&&"*"===this._overrideFields[0])this._overrideFields=null;else{const e=new Set(this._overrideFields.map(e=>e.toLowerCase()));this.fields=this.fields.filter(({type:t,name:r})=>"oid"===t||e.has(r.toLowerCase())),this._overrideFields=this.fields.map(({name:e})=>e)}if(this._layer.source&&this._layer.source.sourceJSON){const e=this._layer.source.sourceJSON.currentVersion;!0===this._layer.source.sourceJSON.useStandardizedQueries?(this._databaseType=1,null!=e&&e>=10.61&&(this._databaseType=0)):null!=e&&(e>=10.5&&(this._databaseType=1,this._requestStandardised=!0),e>=10.61&&(this._databaseType=0))}this.objectIdField=this._layer.objectIdField;for(const e of this.fields)"global-id"===e.type&&(this.globalIdField=e.name);this.subtypeField=this._layer.subtypeField??"",this.subtypes=this._layer.subtypes,this.typeIdField=("typeIdField"in this._layer?this._layer.typeIdField:null)??"",this.types="types"in this._layer?this._layer.types:null}async _runDatabaseProbe(e){await this._ensureLoaded();const t=new T;this.datesInUnknownTimezone&&(t.timeReferenceUnknownClient=!0),t.where=e.replace("OBJECTID",this._layer.objectIdField);try{return await this._layer.queryObjectIds(t),!0}catch{return!1}}_canUsePagination(){return!(!this._layer.capabilities||!this._layer.capabilities.query||!0!==this._layer.capabilities.query.supportsPagination)}_cacheableFeatureSetSourceKey(){return this._layer.url}get gdbVersion(){return this._layer&&this._layer.capabilities&&this._layer.capabilities.data&&this._layer.capabilities.data.isVersioned?this._layer.gdbVersion||"SDE.DEFAULT":""}nativeCapabilities(){return{title:this._layer.title??"",source:this,canQueryRelated:!0,capabilities:this._layer.capabilities,databaseType:this._databaseType,requestStandardised:this._requestStandardised}}async _queryAll(){return(await this.query({abortSignal:r})).features}async query(e){return await this._ensureLoaded(),this.isTable()&&null!=e.spatialFilter?o:this._canUsePagination()?this._queryUsingPaging(e):this._queryUsingIdSetTraversal(e)}async _queryUsingPaging(e){const t=this._layer.capabilities.query;let r=!0,a=null,i=!1;null!=e.orderBy&&(t.supportsOrderBy?(a=e.orderBy.toOrderByFields(),i=!0):r=!1);const s=await this.databaseType(),l=null==e.where?null==e.spatialFilter?"1=1":"":p(e.where,s),n=!0!==this._removeGeometry,o=this._overrideFields??this._fieldsIncludingObjectId(["*"]),c=o.includes("*")?this._layer.fields.length:o.length,d=(this.isTable()||!n?t.standardMaxRecordCountNoGeometry:void 0)??t.standardMaxRecordCount??t.maxRecordCount??this._maxQueryRate(),h=c<=50?1:c<=100?.5:c<=200?.25:.125,y=Math.max(Math.ceil(d*h),t.maxRecordCount??this._maxQueryRate());let _=this._maxQueryRate();const f=this._layer.capabilities?.query.maxRecordCount;null!=f&&f<_&&(_=f);const m=this._createQuery();if(m.where=b(m.where,l),null!=e.spatialFilter){const t=u(e.spatialFilter.relation);m.spatialRelationship=t.spatialRelationship,m.relationParameter=t.relationParameter,m.geometry=e.spatialFilter.geometry}return m.orderByFields=a,m.outFields=o,m.returnGeometry=n,m.outSpatialReference=this.spatialReference,m.resultType="standard",{ordered:i,filterApplied:!0,spatialFilterApplied:!0,features:this._queryPaginated(m,y,_,r?e.limit:null,e.abortSignal)}}async*_queryPaginated(e,t,r,a,i){let l;e.num=Math.max(null!=a?Math.min(a,t):t,r),e.start=0;do{if(s(i),l=await this.executeQuery(e,"execute"),l.features.length<=0)break;yield*m(l.features,this._maxQueryRate()),e.start+=l.features.length;const n=null!=a?Math.min(a-e.start,t):t;if(n<=0)break;e.num=Math.max(n,r)}while(e.num>0&&!0===l.exceededTransferLimit)}async _queryUsingIdSetTraversal(e){let t=!0,r=null,a=!1;null!=e.orderBy&&(this._layer.capabilities?.query?.supportsOrderBy?(r=e.orderBy.toOrderByFields(),a=!0):t=!1);const i=await this.databaseType(),l=null==e.where?null==e.spatialFilter?"1=1":"":p(e.where,i),n=this._createQuery();if(n.where=b(n.where,l),null!=e.spatialFilter){const t=u(e.spatialFilter.relation);n.spatialRelationship=t.spatialRelationship,n.relationParameter=t.relationParameter,n.geometry=e.spatialFilter.geometry}n.orderByFields=r,n.outSpatialReference=this.spatialReference,n.num=t?e.limit:null;const c=await this.executeQuery(n,"executeForIds");if(s(e.abortSignal),null==c||c.length<=0)return o;let d=this._maxQueryRate();const h=this._layer.capabilities?.query.maxRecordCount;null!=h&&h<d&&(d=h);const y=this._createQuery();return n.outFields=this._overrideFields??this._fieldsIncludingObjectId(["*"]),n.returnGeometry=!0!==this._removeGeometry,n.outSpatialReference=this.spatialReference,{ordered:a,filterApplied:!0,spatialFilterApplied:!0,features:this._traverseIdSet(y,c,d,e.abortSignal)}}async*_traverseIdSet(e,t,r,a){for(let i=0;i<t.length;i+=r){e.objectIds=t.slice(i,i+r),s(a);const l=await this.executeQuery(e,"execute");yield l.features}}async queryStat(e){await this._ensureLoaded();const t=this._layer.capabilities?.query,r=!!t?.supportsSqlExpression,a=!!t?.supportsStatistics,i=!!t?.supportsDistinct,s=f(e.stat);if("count"===s)return i?this._queryCount(e):{calculated:!1};const n=e.field;if(null==n)return{calculated:!1};if(!1===a||!1===_(n)&&!1===r||!1===n.isStandardized)return null!=e.spatialFilter||null!=e.where?{calculated:!1}:this._manualStat(e.stat,n,e.limit??d,e.abortSignal);if("distinct"===s)return!1===i?null!=e.spatialFilter||null!=e.where?{calculated:!1}:this._manualStat(s,n,e.limit??d,e.abortSignal):{calculated:!1};const o=await this.databaseType();if(this.isTable()&&null!=e.spatialFilter)return{calculated:!0,result:null};const c=this._createQuery();if(c.where=b(c.where,null==e.where?null==e.spatialFilter?"1=1":"":p(e.where,o)),null!=e.spatialFilter){const t=u(e.spatialFilter.relation);c.spatialRelationship=t.spatialRelationship,c.relationParameter=t.relationParameter,c.geometry=e.spatialFilter.geometry}const h=new Q;h.statisticType=s,h.onStatisticField=p(n,o),h.outStatisticFieldName="ARCADE_STAT_RESULT",c.returnGeometry=!1;let y="ARCADE_STAT_RESULT";c.outStatistics=[h];const m=await this.executeQuery(c,"execute");if(!m.hasOwnProperty("features")||0===m.features.length)throw new l("InvalidStatResponse");let F=!1;const w=m.fields??[];for(const l of w)if("ARCADE_STAT_RESULT"===l.name.toUpperCase()){y=l.name,"esriFieldTypeDate"===l.type&&(F=!0);break}const g=m.features[0].attributes[y];return{calculated:!0,result:F&&null!=g?new Date(g):g}}async _queryCount(e){const t=await this.databaseType();if(this.isTable()&&null!=e.spatialFilter)return{calculated:!0,result:0};const r=this._createQuery();if(r.where=b(r.where,null==e.where?null==e.spatialFilter?"1=1":"":p(e.where,t)),null!=e.spatialFilter){const t=u(e.spatialFilter.relation);r.spatialRelationship=t.spatialRelationship,r.relationParameter=t.relationParameter,r.geometry=e.spatialFilter.geometry}r.returnGeometry=!1;return{calculated:!0,result:await this.executeQuery(r,"executeForCount")}}async canQueryAggregate(e){await this._ensureLoaded();let t=!1;const r=this._layer.capabilities?.query,a=!0===r?.supportsSqlExpression;if(null!=r&&!0===r.supportsStatistics&&!0===r.supportsOrderBy&&(t=!0),t)for(const i of e.statistics)(!1===i.workingexpr?.isStandardized||!1===_(i.workingexpr)&&!1===a)&&(t=!1);return t}async queryAggregate(e){if(await this._ensureLoaded(),this.isTable()&&null!=e.spatialFilter)return o;const t=await this.databaseType(),r=e.groupBy,a=e.orderBy;let i=null;if(!this._layer.capabilities.query.supportsPaginationOnAggregatedQueries){const e=this.getFieldsIndex();i={keyFields:r.map((t,r)=>({name:e.normalizeFieldName(t)??t,asc:null==a||1===a._directions[r]}))}}let s=null,l=!1;null!=a&&!0===this._layer.capabilities?.query?.supportsOrderBy&&(null==i||F(r,0,r.length,a._fields,0,Math.min(a._fields.length,r.length),(e,t)=>e.toLowerCase()===t.toLowerCase()))&&(s=a.toOrderByFields(),l=!0),null==s&&(s=r.slice());const n=e.statistics.map(e=>new Q({onStatisticField:null!==e.workingexpr?p(e.workingexpr,t):"",outStatisticFieldName:e.field,statisticType:e.toStatisticsName()}));let c=this._maxQueryRate();const d=this._layer.capabilities?.query.maxRecordCount;null!=d&&d<c&&(c=d);const h=null==e.where?null==e.spatialFilter?"1=1":"":p(e.where,t),y=this._createQuery();if(y.where=b(y.where,h),null!=e.spatialFilter){const t=u(e.spatialFilter.relation);y.spatialRelationship=t.spatialRelationship,y.relationParameter=t.relationParameter,y.geometry=e.spatialFilter.geometry}return y.orderByFields=s,y.outFields=["*"],y.outStatistics=n,y.groupByFieldsForStatistics=r,y.returnGeometry=!1,null==i?{filterApplied:!0,spatialFilterApplied:!0,ordered:l,features:this._queryPaginated(y,c,c,null,e.abortSignal)}:{filterApplied:!0,spatialFilterApplied:!0,ordered:l,features:this._queryKeysetPaginated(y,i,e.abortSignal)}}async*_queryKeysetPaginated(e,t,r){const a=e.where;for(;;){if(null!=t.clause){if(!this._layer.capabilities.query.supportsOrderBy)throw new l("NotImplemented");e.where=b(a,p(t.clause,await this.databaseType()))}const i=await this.executeQuery(e,"execute");if(s(r),!i.hasOwnProperty("features"))throw new l("InvalidStatResponse");if(yield i.features,0===i.features.length||!0!==i.exceededTransferLimit)break;j(t,i.features.at(-1))}}_createQuery(){const e=this._layer.createQuery();return e.returnZ=this.hasZ,e.returnM=this.hasM,this.datesInUnknownTimezone&&(e.timeReferenceUnknownClient=!0),this._requestStandardised&&(e.sqlFormat="standard"),this._useDefinitionExpression?"subtype-group"===this._layer.type&&(e.where=this._layer.definitionExpression):e.where=null,e}executeQuery(e,t){const r="execute"===t?async e=>{const t=await this._layer.source.queryFeaturesJSON(e);return c(t.features,t.spatialReference??this.spatialReference.toJSON()),t}:"executeForCount"===t?this._layer.queryFeatureCount.bind(this._layer):this._layer.queryObjectIds.bind(this._layer);let a=null;if(this._recentlyUsedQueries){const t=this.convertQueryToLruCacheKey(e);a=this._recentlyUsedQueries.getFromCache(t),null===a&&(a=r(e),this._recentlyUsedQueries.addToCache(t,a),a=a.catch(e=>{throw this._recentlyUsedQueries?.removeFromCache(t),e}))}return this._featureSetQueryInterceptor&&this._featureSetQueryInterceptor.preLayerQueryCallback({layer:this._layer,query:e,method:t}),null===a&&(a=r(e)),a}_fieldsIncludingObjectId(e){if(null===e)return[this.objectIdField];const t=e.slice();if(t.includes("*"))return t;let r=!1;for(const a of t)if(a.toUpperCase()===this.objectIdField.toUpperCase()){r=!0;break}return r||t.push(this.objectIdField),t}isTable(){return this._layer.isTable||null===this._layer.geometryType||"table"===this._layer.type||""===this._layer.geometryType||"esriGeometryNull"===this._layer.geometryType}static create(e,t,r,a,i){const s=new I({url:e,outFields:null===t?["*"]:t});return new v({layer:s,spatialReference:r,lrucache:a,interceptor:i})}relationshipMetadata(){return this._layer&&this._layer.source&&this._layer.source.sourceJSON?.relationships?this._layer.source.sourceJSON.relationships:[]}serviceUrl(){return y(this._layer.parsedUrl.path)}async queryAttachments(e,t,r,s,l){function n(e){const t=e.capabilities;return t?.data.supportsAttachment&&t?.operations.supportsQueryAttachments}const o=this._layer;if(!n(o))return[];const u=new q({objectIds:[e],returnMetadata:l});(t&&t>0||r&&r>0)&&(u.size=[t&&t>0?t:0,r&&r>0?r:t+1]),s&&s.length>0&&(u.attachmentTypes=s),this._featureSetQueryInterceptor&&this._featureSetQueryInterceptor.preLayerQueryCallback({layer:o,query:u,method:"attachments"});const c=await o.queryAttachments(u);return c?.[e]?c[e].map(t=>{const r=`${this._layer.parsedUrl.path}/${e}/attachments/${t.id}`;let s=null;return l&&t.exifInfo&&(s=i(t.exifInfo)),new a(t.id,t.name,t.contentType,t.size,r,s,t.keywords??null)}):[]}async queryRelatedFeatures(e){const r=R(e);r.f="json",this._requestStandardised&&(r.sqlFormat="standard"),this._featureSetQueryInterceptor&&this._featureSetQueryInterceptor.preRequestCallback({layer:this._layer,queryPayload:r,method:"relatedrecords",url:this._layer.parsedUrl.path+"/queryRelatedRecords"});const a=await t(this._layer.parsedUrl.path+"/queryRelatedRecords",{responseType:"json",query:r});if(a.data){const e={},t=a.data;if(t?.relatedRecordGroups){const r=t.spatialReference,a=!0===t.exceededTransferLimit;for(const i of t.relatedRecordGroups)c(i.relatedRecords,r),e[i.objectId]={features:i.relatedRecords,exceededTransferLimit:a}}return e}throw new l("InvalidRequest")}async getFeatureByObjectId(e,t){const r=this._createQuery();r.outFields=t,r.returnGeometry=!1,r.outSpatialReference=this.spatialReference,r.where=b(r.where,this.objectIdField+"="+e.toString()),this._featureSetQueryInterceptor&&this._featureSetQueryInterceptor.preLayerQueryCallback({layer:this._layer,query:r,method:"execute"});const a=await this._layer.source.queryFeaturesJSON(r);return 1===a.features.length?(c(a.features,a.spatialReference??this.spatialReference.toJSON()),a.features[0]):null}async getIdentityUser(){await this.load();const t=e?.findCredential(this._layer.url);return t?t.userId:null}async getOwningSystemUrl(){await this.load();const r=e?.findServerInfo(this._layer.url);if(r)return r.owningSystemUrl??"";let a=this._layer.url;const i=a.toLowerCase().indexOf("/rest/services");if(a=i>-1?a.slice(0,i):a,a){a+="/rest/info";try{const e=await t(a,{query:{f:"json"}});let r="";return e.data?.owningSystemUrl&&(r=e.data.owningSystemUrl),r}catch{return""}}return""}getDataSourceFeatureSet(){const e=new v({layer:this._layer,spatialReference:this.spatialReference??void 0,outFields:this._overrideFields??void 0,includeGeometry:!this._removeGeometry,lrucache:this._recentlyUsedQueries??void 0,interceptor:this._featureSetQueryInterceptor??void 0});return e._useDefinitionExpression=!1,e}get preferredTimeZone(){return this._layer.preferredTimeZone??null}get dateFieldsTimeZone(){return this._layer.dateFieldsTimeZone??null}get datesInUnknownTimezone(){return this._layer.datesInUnknownTimezone??!1}get editFieldsInfo(){return this._layer.editFieldsInfo??null}get timeInfo(){return this._layer.timeInfo??null}async getFeatureSetInfo(){if(this._featureSetInfo)return this._featureSetInfo;let e=null,r="serviceItemId"in this._layer?this._layer.serviceItemId:null;const a=this._layer.parsedUrl?.path??null;if(a){const i=await t(a,{responseType:"json",query:{f:"json"}});e=i?.data?.name??null,r=i?.data?.serviceItemId??null}const i=this._layer.title&&null!==(this._layer.parent??null);return this._featureSetInfo={layerId:this._layer.layerId,layerName:""===e?null:e,itemId:""===r?null:r,serviceLayerUrl:""===a?null:a,webMapLayerId:i?this._layer.id??null:null,webMapLayerTitle:i?this._layer.title??null:null,className:null,objectClassId:null},this._featureSetInfo}}export{v as default};
2
+ import{id as e}from"../../../kernel.js";import t from"../../../request.js";import{neverAbortedSignal as r}from"../../arcadeEnvironment.js";import a from"../../Attachment.js";import{convertJsonValueToImmutableArcadeValue as i}from"../../containerUtils.js";import{throwIfCancelled as s,FeatureSetError as l}from"../support/errorsupport.js";import{RootFeatureSet as n,emptyFeaturesResult as o,getSpatialFilterRelationRestQueryParams as u,assignSpatialReferenceOnFeatures as c}from"../support/FeatureSet.js";import{defaultMaxRecords as d,stableStringify as h,extractServiceUrl as y}from"../support/shared.js";import{toWhereClause as p,isSingleField as _}from"../support/sqlUtils.js";import{decodeStatType as f}from"../support/stats.js";import{splitIntoChunks as m,sliceEquals as F}from"../../../core/arrayUtils.js";import{createMD5Hash as w,outputTypes as g}from"../../../core/MD5.js";import{sqlAnd as S}from"../../../core/sql.js";import b from"../../../core/sql/WhereClause.js";import I from"../../../layers/FeatureLayer.js";import{toQueryStringParameters as R}from"../../../rest/query/operations/queryRelatedRecords.js";import q from"../../../rest/support/AttachmentQuery.js";import T from"../../../rest/support/Query.js";import Q from"../../../rest/support/StatisticDefinition.js";function x(e){if(0===e.length)throw new l("NeverReach");const t=[];for(let a=0;a<e.length;a++){const r=e[a],i=[`"${r.name.replaceAll('"','""')}" ${r.asc?">":"<"} @last_${a}`];for(let t=0;t<a;t++){const r=e[t];i.push(`"${r.name.replaceAll('"','""')}" = @last_${t}`)}t.push(i.join(" AND "))}const r=t.join(" OR ");return b.create(r)}function j(e,t){null==e.clause&&(e.clause=x(e.keyFields));for(let r=0;r<e.keyFields.length;r++){const a=e.keyFields[r].name;e.clause.parameters[`last_${r}`]=t.attributes[a]}}class v extends n{constructor(e){super(),this.declaredClass="esri.arcade.featureset.sources.FeatureLayerDynamic",this._removeGeometry=!1,this._overrideFields=null,this._requestStandardised=!1,this._useDefinitionExpression=!0,this._recentlyUsedQueries=null,this._featureSetQueryInterceptor=null,this._featureSetInfo=null,this._maxProcessing=1e3,this._layer=e.layer,e.spatialReference&&(this.spatialReference=e.spatialReference),void 0!==e.outFields&&(this._overrideFields=e.outFields),void 0!==e.includeGeometry&&(this._removeGeometry=!1===e.includeGeometry),e.lrucache&&(this._recentlyUsedQueries=e.lrucache),e.interceptor&&(this._featureSetQueryInterceptor=e.interceptor)}_maxQueryRate(){return d}get urlQueryPath(){return this._layer.parsedUrl.path||""}convertQueryToLruCacheKey(e){const t=this.urlQueryPath+","+h(e.toJSON());return w(t,g.String)}async loadImpl(){return!0===this._layer.loaded?(this._initialiseFeatureSet(),this):(await this._layer.load(),this._initialiseFeatureSet(),this)}_initialiseFeatureSet(){if(this.spatialReference??=this._layer.spatialReference,this.geometryType=this._layer.geometryType??"",this.fields=this._layer.fields.slice(),this.hasZ=!0===this._layer.capabilities?.data?.supportsZ,this.hasM=!0===this._layer.capabilities?.data?.supportsM,null!==this._overrideFields)if(1===this._overrideFields.length&&"*"===this._overrideFields[0])this._overrideFields=null;else{const e=new Set(this._overrideFields.map(e=>e.toLowerCase()));this.fields=this.fields.filter(({type:t,name:r})=>"oid"===t||e.has(r.toLowerCase())),this._overrideFields=this.fields.map(({name:e})=>e)}if(this._layer.source&&this._layer.source.sourceJSON){const e=this._layer.source.sourceJSON.currentVersion;!0===this._layer.source.sourceJSON.useStandardizedQueries?(this._databaseType=1,null!=e&&e>=10.61&&(this._databaseType=0)):null!=e&&(e>=10.5&&(this._databaseType=1,this._requestStandardised=!0),e>=10.61&&(this._databaseType=0))}this.objectIdField=this._layer.objectIdField;for(const e of this.fields)"global-id"===e.type&&(this.globalIdField=e.name);this.subtypeField=this._layer.subtypeField??"",this.subtypes=this._layer.subtypes,this.typeIdField=("typeIdField"in this._layer?this._layer.typeIdField:null)??"",this.types="types"in this._layer?this._layer.types:null}async _runDatabaseProbe(e){await this._ensureLoaded();const t=new T;this.datesInUnknownTimezone&&(t.timeReferenceUnknownClient=!0),t.where=e.replace("OBJECTID",this._layer.objectIdField);try{return await this._layer.queryObjectIds(t),!0}catch{return!1}}_canUsePagination(){return!(!this._layer.capabilities||!this._layer.capabilities.query||!0!==this._layer.capabilities.query.supportsPagination)}_cacheableFeatureSetSourceKey(){return this._layer.url}get gdbVersion(){return this._layer&&this._layer.capabilities&&this._layer.capabilities.data&&this._layer.capabilities.data.isVersioned?this._layer.gdbVersion||"SDE.DEFAULT":""}nativeCapabilities(){return{title:this._layer.title??"",source:this,canQueryRelated:!0,capabilities:this._layer.capabilities,databaseType:this._databaseType,requestStandardised:this._requestStandardised}}async _queryAll(){return(await this.query({abortSignal:r})).features}async query(e){return await this._ensureLoaded(),this.isTable()&&null!=e.spatialFilter?o:this._canUsePagination()?this._queryUsingPaging(e):this._queryUsingIdSetTraversal(e)}async _queryUsingPaging(e){const t=this._layer.capabilities.query;let r=!0,a=null,i=!1;null!=e.orderBy&&(t.supportsOrderBy?(a=e.orderBy.toOrderByFields(),i=!0):r=!1);const s=await this.databaseType(),l=null==e.where?null==e.spatialFilter?"1=1":"":p(e.where,s),n=!0!==this._removeGeometry,o=this._overrideFields??this._fieldsIncludingObjectId(["*"]),c=o.includes("*")?this._layer.fields.length:o.length,d=(this.isTable()||!n?t.standardMaxRecordCountNoGeometry:void 0)??t.standardMaxRecordCount??t.maxRecordCount??this._maxQueryRate(),h=c<=50?1:c<=100?.5:c<=200?.25:.125,y=Math.max(Math.ceil(d*h),t.maxRecordCount??this._maxQueryRate());let _=this._maxQueryRate();const f=this._layer.capabilities?.query.maxRecordCount;null!=f&&f<_&&(_=f);const m=this._createQuery();if(m.where=S(m.where,l),null!=e.spatialFilter){const t=u(e.spatialFilter.relation);m.spatialRelationship=t.spatialRelationship,m.relationParameter=t.relationParameter,m.geometry=e.spatialFilter.geometry}return m.orderByFields=a,m.outFields=o,m.returnGeometry=n,m.outSpatialReference=this.spatialReference,m.resultType="standard",{ordered:i,filterApplied:!0,spatialFilterApplied:!0,features:this._queryPaginated(m,y,_,r?e.limit:null,e.abortSignal)}}async*_queryPaginated(e,t,r,a,i){e.start=0;let l,n=null!=a?a:1/0;do{s(i),e.num=Math.max(r,Math.min(n,t)),l=await this.executeQuery(e,"execute"),e.start+=e.num,n-=l.features.length,yield*m(l.features,this._maxQueryRate())}while(n>0&&!0===l.exceededTransferLimit)}async _queryUsingIdSetTraversal(e){let t=!0,r=null,a=!1;null!=e.orderBy&&(this._layer.capabilities?.query?.supportsOrderBy?(r=e.orderBy.toOrderByFields(),a=!0):t=!1);const i=await this.databaseType(),l=null==e.where?null==e.spatialFilter?"1=1":"":p(e.where,i),n=this._createQuery();if(n.where=S(n.where,l),null!=e.spatialFilter){const t=u(e.spatialFilter.relation);n.spatialRelationship=t.spatialRelationship,n.relationParameter=t.relationParameter,n.geometry=e.spatialFilter.geometry}n.orderByFields=r,n.outSpatialReference=this.spatialReference,n.num=t?e.limit:null;const c=await this.executeQuery(n,"executeForIds");if(s(e.abortSignal),null==c||c.length<=0)return o;let d=this._maxQueryRate();const h=this._layer.capabilities?.query.maxRecordCount;null!=h&&h<d&&(d=h);const y=this._createQuery();return n.outFields=this._overrideFields??this._fieldsIncludingObjectId(["*"]),n.returnGeometry=!0!==this._removeGeometry,n.outSpatialReference=this.spatialReference,{ordered:a,filterApplied:!0,spatialFilterApplied:!0,features:this._traverseIdSet(y,c,d,e.abortSignal)}}async*_traverseIdSet(e,t,r,a){for(let i=0;i<t.length;i+=r){e.objectIds=t.slice(i,i+r),s(a);const l=await this.executeQuery(e,"execute");yield l.features}}async queryStat(e){await this._ensureLoaded();const t=this._layer.capabilities?.query,r=!!t?.supportsSqlExpression,a=!!t?.supportsStatistics,i=!!t?.supportsDistinct,s=f(e.stat);if("count"===s)return i?this._queryCount(e):{calculated:!1};const n=e.field;if(null==n)return{calculated:!1};if(!1===a||!1===_(n)&&!1===r||!1===n.isStandardized)return null!=e.spatialFilter||null!=e.where?{calculated:!1}:this._manualStat(e.stat,n,e.limit??d,e.abortSignal);if("distinct"===s)return!1===i?null!=e.spatialFilter||null!=e.where?{calculated:!1}:this._manualStat(s,n,e.limit??d,e.abortSignal):{calculated:!1};const o=await this.databaseType();if(this.isTable()&&null!=e.spatialFilter)return{calculated:!0,result:null};const c=this._createQuery();if(c.where=S(c.where,null==e.where?null==e.spatialFilter?"1=1":"":p(e.where,o)),null!=e.spatialFilter){const t=u(e.spatialFilter.relation);c.spatialRelationship=t.spatialRelationship,c.relationParameter=t.relationParameter,c.geometry=e.spatialFilter.geometry}const h=new Q;h.statisticType=s,h.onStatisticField=p(n,o),h.outStatisticFieldName="ARCADE_STAT_RESULT",c.returnGeometry=!1;let y="ARCADE_STAT_RESULT";c.outStatistics=[h];const m=await this.executeQuery(c,"execute");if(!m.hasOwnProperty("features")||0===m.features.length)throw new l("InvalidStatResponse");let F=!1;const w=m.fields??[];for(const l of w)if("ARCADE_STAT_RESULT"===l.name.toUpperCase()){y=l.name,"esriFieldTypeDate"===l.type&&(F=!0);break}const g=m.features[0].attributes[y];return{calculated:!0,result:F&&null!=g?new Date(g):g}}async _queryCount(e){const t=await this.databaseType();if(this.isTable()&&null!=e.spatialFilter)return{calculated:!0,result:0};const r=this._createQuery();if(r.where=S(r.where,null==e.where?null==e.spatialFilter?"1=1":"":p(e.where,t)),null!=e.spatialFilter){const t=u(e.spatialFilter.relation);r.spatialRelationship=t.spatialRelationship,r.relationParameter=t.relationParameter,r.geometry=e.spatialFilter.geometry}r.returnGeometry=!1;return{calculated:!0,result:await this.executeQuery(r,"executeForCount")}}async canQueryAggregate(e){await this._ensureLoaded();let t=!1;const r=this._layer.capabilities?.query,a=!0===r?.supportsSqlExpression;if(null!=r&&!0===r.supportsStatistics&&!0===r.supportsOrderBy&&(t=!0),t)for(const i of e.statistics)(!1===i.workingexpr?.isStandardized||!1===_(i.workingexpr)&&!1===a)&&(t=!1);return t}async queryAggregate(e){if(await this._ensureLoaded(),this.isTable()&&null!=e.spatialFilter)return o;const t=await this.databaseType(),r=e.groupBy,a=e.orderBy;let i=null;if(!this._layer.capabilities.query.supportsPaginationOnAggregatedQueries){const e=this.getFieldsIndex();i={keyFields:r.map((t,r)=>({name:e.normalizeFieldName(t)??t,asc:null==a||1===a._directions[r]}))}}let s=null,l=!1;null!=a&&!0===this._layer.capabilities?.query?.supportsOrderBy&&(null==i||F(r,0,r.length,a._fields,0,Math.min(a._fields.length,r.length),(e,t)=>e.toLowerCase()===t.toLowerCase()))&&(s=a.toOrderByFields(),l=!0),null==s&&(s=r.slice());const n=e.statistics.map(e=>new Q({onStatisticField:null!==e.workingexpr?p(e.workingexpr,t):"",outStatisticFieldName:e.field,statisticType:e.toStatisticsName()}));let c=this._maxQueryRate();const d=this._layer.capabilities?.query.maxRecordCount;null!=d&&d<c&&(c=d);const h=null==e.where?null==e.spatialFilter?"1=1":"":p(e.where,t),y=this._createQuery();if(y.where=S(y.where,h),null!=e.spatialFilter){const t=u(e.spatialFilter.relation);y.spatialRelationship=t.spatialRelationship,y.relationParameter=t.relationParameter,y.geometry=e.spatialFilter.geometry}return y.orderByFields=s,y.outFields=["*"],y.outStatistics=n,y.groupByFieldsForStatistics=r,y.returnGeometry=!1,null==i?{filterApplied:!0,spatialFilterApplied:!0,ordered:l,features:this._queryPaginated(y,c,c,null,e.abortSignal)}:{filterApplied:!0,spatialFilterApplied:!0,ordered:l,features:this._queryKeysetPaginated(y,i,e.abortSignal)}}async*_queryKeysetPaginated(e,t,r){const a=e.where;for(;;){if(null!=t.clause){if(!this._layer.capabilities.query.supportsOrderBy)throw new l("NotImplemented");e.where=S(a,p(t.clause,await this.databaseType()))}const i=await this.executeQuery(e,"execute");if(s(r),!i.hasOwnProperty("features"))throw new l("InvalidStatResponse");if(yield i.features,0===i.features.length||!0!==i.exceededTransferLimit)break;j(t,i.features.at(-1))}}_createQuery(){const e=this._layer.createQuery();return e.returnZ=this.hasZ,e.returnM=this.hasM,this.datesInUnknownTimezone&&(e.timeReferenceUnknownClient=!0),this._requestStandardised&&(e.sqlFormat="standard"),this._useDefinitionExpression?"subtype-group"===this._layer.type&&(e.where=this._layer.definitionExpression):e.where=null,e}executeQuery(e,t){const r="execute"===t?async e=>{const t=await this._layer.source.queryFeaturesJSON(e);return c(t.features,t.spatialReference??this.spatialReference.toJSON()),t}:"executeForCount"===t?this._layer.queryFeatureCount.bind(this._layer):this._layer.queryObjectIds.bind(this._layer);let a=null;if(this._recentlyUsedQueries){const t=this.convertQueryToLruCacheKey(e);a=this._recentlyUsedQueries.getFromCache(t),null===a&&(a=r(e),this._recentlyUsedQueries.addToCache(t,a),a=a.catch(e=>{throw this._recentlyUsedQueries?.removeFromCache(t),e}))}return this._featureSetQueryInterceptor&&this._featureSetQueryInterceptor.preLayerQueryCallback({layer:this._layer,query:e,method:t}),null===a&&(a=r(e)),a}_fieldsIncludingObjectId(e){if(null===e)return[this.objectIdField];const t=e.slice();if(t.includes("*"))return t;let r=!1;for(const a of t)if(a.toUpperCase()===this.objectIdField.toUpperCase()){r=!0;break}return r||t.push(this.objectIdField),t}isTable(){return this._layer.isTable||null===this._layer.geometryType||"table"===this._layer.type||""===this._layer.geometryType||"esriGeometryNull"===this._layer.geometryType}static create(e,t,r,a,i){const s=new I({url:e,outFields:null===t?["*"]:t});return new v({layer:s,spatialReference:r,lrucache:a,interceptor:i})}relationshipMetadata(){return this._layer&&this._layer.source&&this._layer.source.sourceJSON?.relationships?this._layer.source.sourceJSON.relationships:[]}serviceUrl(){return y(this._layer.parsedUrl.path)}async queryAttachments(e,t,r,s,l){function n(e){const t=e.capabilities;return t?.data.supportsAttachment&&t?.operations.supportsQueryAttachments}const o=this._layer;if(!n(o))return[];const u=new q({objectIds:[e],returnMetadata:l});(t&&t>0||r&&r>0)&&(u.size=[t&&t>0?t:0,r&&r>0?r:t+1]),s&&s.length>0&&(u.attachmentTypes=s),this._featureSetQueryInterceptor&&this._featureSetQueryInterceptor.preLayerQueryCallback({layer:o,query:u,method:"attachments"});const c=await o.queryAttachments(u);return c?.[e]?c[e].map(t=>{const r=`${this._layer.parsedUrl.path}/${e}/attachments/${t.id}`;let s=null;return l&&t.exifInfo&&(s=i(t.exifInfo)),new a(t.id,t.name,t.contentType,t.size,r,s,t.keywords??null)}):[]}async queryRelatedFeatures(e){const r=R(e);r.f="json",this._requestStandardised&&(r.sqlFormat="standard"),this._featureSetQueryInterceptor&&this._featureSetQueryInterceptor.preRequestCallback({layer:this._layer,queryPayload:r,method:"relatedrecords",url:this._layer.parsedUrl.path+"/queryRelatedRecords"});const a=await t(this._layer.parsedUrl.path+"/queryRelatedRecords",{responseType:"json",query:r});if(a.data){const e={},t=a.data;if(t?.relatedRecordGroups){const r=t.spatialReference,a=!0===t.exceededTransferLimit;for(const i of t.relatedRecordGroups)c(i.relatedRecords,r),e[i.objectId]={features:i.relatedRecords,exceededTransferLimit:a}}return e}throw new l("InvalidRequest")}async getFeatureByObjectId(e,t){const r=this._createQuery();r.outFields=t,r.returnGeometry=!1,r.outSpatialReference=this.spatialReference,r.where=S(r.where,this.objectIdField+"="+e.toString()),this._featureSetQueryInterceptor&&this._featureSetQueryInterceptor.preLayerQueryCallback({layer:this._layer,query:r,method:"execute"});const a=await this._layer.source.queryFeaturesJSON(r);return 1===a.features.length?(c(a.features,a.spatialReference??this.spatialReference.toJSON()),a.features[0]):null}async getIdentityUser(){await this.load();const t=e?.findCredential(this._layer.url);return t?t.userId:null}async getOwningSystemUrl(){await this.load();const r=e?.findServerInfo(this._layer.url);if(r)return r.owningSystemUrl??"";let a=this._layer.url;const i=a.toLowerCase().indexOf("/rest/services");if(a=i>-1?a.slice(0,i):a,a){a+="/rest/info";try{const e=await t(a,{query:{f:"json"}});let r="";return e.data?.owningSystemUrl&&(r=e.data.owningSystemUrl),r}catch{return""}}return""}getDataSourceFeatureSet(){const e=new v({layer:this._layer,spatialReference:this.spatialReference??void 0,outFields:this._overrideFields??void 0,includeGeometry:!this._removeGeometry,lrucache:this._recentlyUsedQueries??void 0,interceptor:this._featureSetQueryInterceptor??void 0});return e._useDefinitionExpression=!1,e}get preferredTimeZone(){return this._layer.preferredTimeZone??null}get dateFieldsTimeZone(){return this._layer.dateFieldsTimeZone??null}get datesInUnknownTimezone(){return this._layer.datesInUnknownTimezone??!1}get editFieldsInfo(){return this._layer.editFieldsInfo??null}get timeInfo(){return this._layer.timeInfo??null}async getFeatureSetInfo(){if(this._featureSetInfo)return this._featureSetInfo;let e=null,r="serviceItemId"in this._layer?this._layer.serviceItemId:null;const a=this._layer.parsedUrl?.path??null;if(a){const i=await t(a,{responseType:"json",query:{f:"json"}});e=i?.data?.name??null,r=i?.data?.serviceItemId??null}const i=this._layer.title&&null!==(this._layer.parent??null);return this._featureSetInfo={layerId:this._layer.layerId,layerName:""===e?null:e,itemId:""===r?null:r,serviceLayerUrl:""===a?null:a,webMapLayerId:i?this._layer.id??null:null,webMapLayerTitle:i?this._layer.title??null:null,className:null,objectClassId:null},this._featureSetInfo}}export{v as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import e from"../Dictionary.js";import{StringEnum as n}from"../enum.js";import{ArcadeExecutionError as t}from"../executionError.js";import{s as r,r as s,g as i}from"../../chunks/languageUtils.js";import{assertIsSome as o}from"../../core/maybe.js";import{isString as c,isNumber as a,isArray as u}from"../../support/guards.js";const l=e=>(n,t,r=14)=>+e(n,t).toFixed(r),d=(e,n)=>e+n,h=(e,n)=>e-n,g=(e,n)=>e*n,m=(e,n)=>e/n,f=(e,n,t)=>l(d)(e,n,t),w=(e,n,t)=>l(h)(e,n,t),A=(e,n,t)=>l(g)(e,n,t),D=(e,n,t)=>l(m)(e,n,t),p=360,T=400,E=2*Math.PI,S=3600,_=3240,R=60,F=60,M=180*S/Math.PI,v=p*R*F,L=90*S,U=180*S,x=270*S,N=String.fromCharCode(7501),b="°";function O(e){if(!1===c(e))throw new t("InvalidParameter",null);return e}function G(e,n){const t=10**n;return Math.round(e*t)/t}function I(e,n){return e%n}function y(e){const n=parseFloat(e.toString().replace(Math.trunc(e).toString(),"0"))*Math.sign(e);if(e<0){return{fraction:n,integer:Math.ceil(e)}}return{fraction:n,integer:Math.floor(e)}}function H(e,n){switch(e){case 0:return"SHORT"===n?"N":"North";case 1:return"SHORT"===n?"E":"East";case 2:return"SHORT"===n?"S":"South";case 3:return"SHORT"===n?"W":"West"}}function k(e,n){return e-Math.floor(e/n)*n}function P(e){switch(e){case 6:case 1:return p;case 4:return E;case 5:return T;case 2:return v;case 7:return R;case 8:return F;default:throw new t("LogicError",null,{reason:"unsupported evaluations"})}}const z=new n([],[["NORTH",1],["NORTH AZIMUTH",1],["POLAR",2],["QUADRANT",3],["SOUTH",4],["SOUTH AZIMUTH",4]]);function Q(e){const n=z.lookup(e);if(null==n)throw new t("LogicError",null,{reason:"unsupported directionType"});return n}const j=new n([],[["D",1],["DD",1],["DECIMAL DEGREE",1],["DEGREE",1],["DECIMAL DEGREES",1],["DEGREES",1],["DMS",3],["DEGREES MINUTES SECONDS",3],["R",4],["RAD",4],["RADS",4],["RADIAN",4],["RADIANS",4],["G",5],["GON",5],["GONS",5],["GRAD",5],["GRADS",5],["GRADIAN",5],["GRADIANS",5]]);function C(e){const n=j.lookup(e);if(null==n)throw new t("LogicError",null,{reason:"unsupported units"});return n}class W{constructor(e,n,t){this.m_degrees=e,this.m_minutes=n,this.m_seconds=t}getField(e){switch(e){case 1:case 6:return this.m_degrees;case 7:return this.m_minutes;case 2:case 8:return this.m_seconds;default:throw new t("LogicError",null,{reason:"unexpected evaluation"})}}static secondsToDMS(e){const n=y(e).fraction;let t=y(e).integer;const r=Math.floor(t/S);t-=r*S;const s=Math.floor(t/F);return t-=s*F,new W(r,s,t+n)}static numberToDms(e){const n=y(e).fraction,t=y(e).integer,r=A(y(100*n).fraction,100),s=y(100*n).integer;return new W(t,s,r)}format(e,n){let t=G(this.m_seconds,n),r=this.m_minutes,s=this.m_degrees;if(2===e||8===e)F<=t&&(t-=F,++r),R<=r&&(r=0,++s),p<=s&&(s=0);else if(7===e)t=0,r=30<=this.m_seconds?this.m_minutes+1:this.m_minutes,s=this.m_degrees,R<=r&&(r=0,++s),p<=s&&(s=0);else if(1===e||6===e){const e=D(this.m_seconds,S),n=D(this.m_minutes,R);s=Math.round(this.m_degrees+n+e),r=0,t=0}return new W(s,r,t)}static dmsToSeconds(e,n,t){return e*S+n*F+t}}class B{constructor(e,n,t){this.meridian=e,this.angle=n,this.direction=t}fetchAzimuth(e){return 0===e?this.meridian:this.direction}}class V{constructor(e){this._angle=e}static createFromAngleAndDirection(e,n){return new V(new Z(V._convertDirectionFormat(e.extractAngularUnits(2),n,1)))}getAngle(e){const n=this._angle.extractAngularUnits(2);switch(e){case 1:case 4:case 2:return new Z(V._convertDirectionFormat(n,1,e));case 3:{const e=V.secondsNorthAzimuthToQuadrant(n);return new Z(e.angle)}}}getMeridian(e){const n=this._angle.extractAngularUnits(2);switch(e){case 1:return 0;case 4:return 2;case 2:return 1;case 3:return V.secondsNorthAzimuthToQuadrant(n).meridian}}getDirection(e){const n=this._angle.extractAngularUnits(2);switch(e){case 1:return 1;case 4:return 3;case 2:return 0;case 3:return V.secondsNorthAzimuthToQuadrant(n).direction}}static secondsNorthAzimuthToQuadrant(e){const n=e<=L||e>=x?0:2,t=0===n?Math.min(v-e,e):Math.abs(e-U);return new B(n,t,e>U?3:1)}static createFromAngleMeridianAndDirection(e,n,t){return new V(new Z(V.secondsQuadrantToNorthAzimuth(e.extractAngularUnits(2),n,t)))}static secondsQuadrantToNorthAzimuth(e,n,t){return 0===n?1===t?e:v-e:1===t?U-e:U+e}static _convertDirectionFormat(e,n,r){let s=0;switch(n){case 1:s=e;break;case 2:s=L-e;break;case 3:throw new t("LogicError",null,{reason:"unexpected evaluation"});case 4:s=e+U}let i=0;switch(r){case 1:i=s;break;case 2:i=L-s;break;case 3:throw new t("LogicError",null,{reason:"unexpected evaluation"});case 4:i=s-U}return i=I(i,v),i<0?v+i:i}}function X(e,n,r){let s=null;switch(n){case 1:s=A(e,S);break;case 2:s=e;break;case 5:s=A(e,_);break;case 4:s=A(e,M);break;default:throw new t("LogicError",null,{reason:"unexpected evaluation"})}switch(r){case 1:return D(s,S);case 2:return s;case 5:return D(s,_);case 4:return s/M;default:throw new t("LogicError",null,{reason:"unexpected evaluation"})}}class Z{constructor(e){this._seconds=e}static createFromAngleAndUnits(e,n){return new Z(X(e,n,2))}extractAngularUnits(e){return X(this._seconds,2,q(e))}static createFromDegreesMinutesSeconds(e,n,t){return new Z(f(f(A(e,S),A(n,F)),t))}}function q(e){switch(o(e),e){case 1:case 6:case 3:return 1;case 5:return 5;case 7:return 7;case 4:return 4;case 2:case 8:return 2}}class J{constructor(e,n,t,r){this.view=e,this.angle=n,this.merdian=t,this.direction=r,this._dms=null,this._formattedDms=null}static createFromStringAndBearing(e,n,t){return new J(e,n.getAngle(t),n.getMeridian(t),n.getDirection(t))}fetchAngle(){return this.angle}fetchMeridian(){return this.merdian}fetchDirection(){return this.direction}fetchView(){return this.view}fetchDms(){return null===this._dms&&this._calculateDms(),this._dms}fetchFormattedDms(){return null===this._formattedDms&&this._calculateDms(),this._formattedDms}_calculateDms(){let e=null,n=6,t=0;for(let r=0;r<this.view.length;r++){const s=this.view[r];switch(s){case"m":e=ae(this.view,r,s),n=6===n?7:n,r=e.newpos;continue;case"s":e=ae(this.view,r,s),n=8,t=t<e.rounding?e.rounding:t,r=e.newpos;continue;default:continue}}this._dms=W.secondsToDMS(this.angle.extractAngularUnits(2)),this._formattedDms=W.secondsToDMS(this.angle.extractAngularUnits(2)).format(n,t)}}function K(e,n,r,s,i){let o=null;switch(n){case 1:case 4:case 5:return o=k(G(e.extractAngularUnits(n),s),P(n)),o.toFixed(s).padStart(r+s+(s>0?1:0),"0");case 6:case 7:return o=k(i.fetchFormattedDms().getField(n),P(n)),o.toFixed(s).padStart(r+s+(s>0?1:0),"0");case 8:return o=k(G(i.fetchDms().getField(n),s),P(n)),o.toFixed(s).padStart(r+s+(s>0?1:0),"0");default:throw new t("LogicError",null,{reason:"unexpected evaluation"})}}function Y(e,n,r){if(3===r)throw new t("LogicError",null,{reason:"conversion error"});if(3===n){const n=W.numberToDms(e);return V.createFromAngleAndDirection(Z.createFromDegreesMinutesSeconds(n.m_degrees,n.m_minutes,n.m_seconds),r)}return V.createFromAngleAndDirection(Z.createFromAngleAndUnits(e,q(n)),r)}function $(e){switch(s(e)){case 1:return{first:0,second:1};case 2:return{first:2,second:1};case 3:return{first:2,second:3};case 4:return{first:0,second:3}}return null}function ee(e){switch(e.toUpperCase().trim()){case"N":case"NORTH":return 0;case"E":case"EAST":return 1;case"S":case"SOUTH":return 2;case"W":case"WEST":return 3}return null}function ne(e){const n=parseFloat(e);if(a(n)){if(isNaN(n))throw new t("LogicError",null,{reason:"invalid conversion"});return n}throw new t("LogicError",null,{reason:"invalid conversion"})}function te(e,n,s){const i=3===s;let o=null,c=null,a=0,u=0,l=0;if(i){if(e.length<2)throw new t("LogicError",null,{reason:"conversion error"});l=1;const n=$(r(e[e.length-1]));if(n?(o=n.first,c=n.second):(a=1,o=ee(r(e[0])),c=ee(r(e[e.length-1]))),null===o||null===c)throw new t("LogicError",null,{reason:"invalid conversion"})}switch(n){case 1:case 4:case 5:if(0===e.length)throw new t("LogicError",null,{reason:"invalid conversion"});return i?V.createFromAngleMeridianAndDirection(Z.createFromAngleAndUnits(ne(e[a]),q(n)),o,c):V.createFromAngleAndDirection(Z.createFromAngleAndUnits(ne(e[a]),q(n)),s);case 3:if(u=e.length-l-a,3===u){const n=Z.createFromDegreesMinutesSeconds(ne(e[a]),ne(e[a+1]),ne(e[a+2]));return i?V.createFromAngleMeridianAndDirection(n,o,c):V.createFromAngleAndDirection(n,s)}if(1===u){const n=ne(e[a]),t=W.numberToDms(n),r=Z.createFromDegreesMinutesSeconds(t.m_degrees,t.m_minutes,t.m_seconds);return i?V.createFromAngleMeridianAndDirection(r,o,c):V.createFromAngleAndDirection(r,s)}}throw new t("LogicError",null,{reason:"invalid conversion"})}function re(e){const n=new Set([" ","-","/","'",'"',"\\","^",b,N,"\t","\r","\n","*"]);let t="";for(let r=0;r<e.length;r++){const s=e.charAt(r);n.has(s)?t+="RRSPLITRRSPLITRR":t+=s}return t.split("RRSPLITRRSPLITRR").filter(e=>""!==e)}function se(e,n,r){if(a(e))return Y(s(e),n,r);if(c(e))return te(re(e),n,r);if(u(e))return te(e,n,r);if(i(e))return te(e.toArray(),n,r);throw new t("LogicError",null,{reason:"conversion error"})}function ie(e,n,r){const s=q(r);if(s&&3!==r){return e.getAngle(n).extractAngularUnits(s)}throw new t("LogicError",null,{reason:"conversion error"})}function oe(e,n,t){const r=e.getAngle(n);if(3===n&&3===t){const t=W.secondsToDMS(r.extractAngularUnits(2));return[H(e.getMeridian(n),"SHORT"),t.m_degrees,t.m_minutes,t.m_seconds,H(e.getDirection(n),"SHORT")]}if(3===t){const e=W.secondsToDMS(r.extractAngularUnits(2));return[e.m_degrees,e.m_minutes,e.m_seconds]}return 3===n?[H(e.getMeridian(n),"SHORT"),r.extractAngularUnits(t),H(e.getDirection(n),"SHORT")]:[r.extractAngularUnits(t)]}function ce(e,n){let r="";switch(e){case 1:r=3===n?"DD.DD"+b:"DDD.DD"+b;break;case 3:r=3===n?"dd"+b+" mm' ss\"":"ddd"+b+" mm' ss.ss\"";break;case 4:r="R.RR";break;case 5:r="GGG.GG"+N;break;default:throw new t("LogicError",null,{reason:"conversion error"})}return 3===n&&(r="p "+r+" b"),r}function ae(e,n,t){const r={padding:0,rounding:0,newpos:n};let s=!1;for(;n<e.length;){const i=e[n];if(i===t)s?r.rounding++:r.padding++,n++;else{if("."!==i)break;s=!0,n++}}return r.newpos=n-1,r}function ue(e,n,t){const r={escaped:"",newpos:n};for(n++;n<e.length;){const t=e[n];if(n++,"]"===t)break;r.escaped+=t}return r.newpos=n-1,r}function le(e,n,t){let r="",s=null,i=null;const o=J.createFromStringAndBearing(n,e,t),c={D:1,d:6,m:7,s:8,R:4,G:5};for(let a=0;a<n.length;a++){const u=n[a];switch(u){case"[":s=ue(n,a),r+=s.escaped,a=s.newpos;continue;case"D":case"d":case"m":case"s":case"R":case"G":s=ae(n,a,u),i=e.getAngle(t),r+=K(i,c[u],s.padding,s.rounding,o),a=s.newpos;continue;case"P":case"p":r+=H(o.fetchMeridian(),"p"===u?"SHORT":"LONG");continue;case"B":case"b":r+=H(o.fetchDirection(),"b"===u?"SHORT":"LONG");continue;default:r+=u}}return r}const de=new n(["TEXT","VALUE"]);function he(n,s,i){if(!(s instanceof e))throw new t("InvalidParameter",null);if(!1===s.hasField("directionType"))throw new t("LogicError",null,{reason:"missing directionType"});if(!1===s.hasField("angleType"))throw new t("LogicError",null,{reason:"missing angleType"});const o=Q(O(s.field("directiontype"))),c=se(n,C(O(s.field("angletype"))),o);if(!(i instanceof e))throw new t("InvalidParameter",null);if(!1===i.hasField("directionType"))throw new t("LogicError",null,{reason:"missing directionType"});if(!1===i.hasField("outputType"))throw new t("LogicError",null,{reason:"missing angleType"});const a=Q(O(i.field("directiontype"))),u=i.hasField("angleType")?C(O(i.field("angletype"))):null,l=de.get(O(i.field("outputType")));if(!a||!l)throw new t("LogicError",null,{reason:"conversion error"});if(!(u||"TEXT"===l&&i.hasField("format")))throw new t("LogicError",null,{reason:"invalid unit"});switch(l){case"VALUE":return 3===a||3===u?oe(c,a,u):ie(c,a,u);case"TEXT":{let e="";return i.hasField("format")&&(e=r(i.field("format"))),null!==e&&""!==e||(e=ce(u,a)),le(c,e,a)}default:throw new t("InvalidParameter",null)}}export{he as convertDirection,f as preciseAdd,D as preciseDivide,w as preciseMinus,A as preciseMultiply};
2
+ import e from"../Dictionary.js";import{StringEnum as n}from"../enum.js";import{ArcadeExecutionError as t}from"../executionError.js";import{w as r,v as s,g as i}from"../../chunks/languageUtils.js";import{assertIsSome as o}from"../../core/maybe.js";import{isString as c,isNumber as a,isArray as u}from"../../support/guards.js";const l=e=>(n,t,r=14)=>+e(n,t).toFixed(r),d=(e,n)=>e+n,h=(e,n)=>e-n,g=(e,n)=>e*n,m=(e,n)=>e/n,f=(e,n,t)=>l(d)(e,n,t),w=(e,n,t)=>l(h)(e,n,t),A=(e,n,t)=>l(g)(e,n,t),D=(e,n,t)=>l(m)(e,n,t),p=360,T=400,E=2*Math.PI,S=3600,_=3240,R=60,F=60,v=180*S/Math.PI,M=p*R*F,L=90*S,U=180*S,x=270*S,N=String.fromCharCode(7501),b="°";function O(e){if(!1===c(e))throw new t("InvalidParameter",null);return e}function G(e,n){const t=10**n;return Math.round(e*t)/t}function I(e,n){return e%n}function y(e){const n=parseFloat(e.toString().replace(Math.trunc(e).toString(),"0"))*Math.sign(e);if(e<0){return{fraction:n,integer:Math.ceil(e)}}return{fraction:n,integer:Math.floor(e)}}function H(e,n){switch(e){case 0:return"SHORT"===n?"N":"North";case 1:return"SHORT"===n?"E":"East";case 2:return"SHORT"===n?"S":"South";case 3:return"SHORT"===n?"W":"West"}}function k(e,n){return e-Math.floor(e/n)*n}function P(e){switch(e){case 6:case 1:return p;case 4:return E;case 5:return T;case 2:return M;case 7:return R;case 8:return F;default:throw new t("LogicError",null,{reason:"unsupported evaluations"})}}const z=new n([],[["NORTH",1],["NORTH AZIMUTH",1],["POLAR",2],["QUADRANT",3],["SOUTH",4],["SOUTH AZIMUTH",4]]);function Q(e){const n=z.lookup(e);if(null==n)throw new t("LogicError",null,{reason:"unsupported directionType"});return n}const j=new n([],[["D",1],["DD",1],["DECIMAL DEGREE",1],["DEGREE",1],["DECIMAL DEGREES",1],["DEGREES",1],["DMS",3],["DEGREES MINUTES SECONDS",3],["R",4],["RAD",4],["RADS",4],["RADIAN",4],["RADIANS",4],["G",5],["GON",5],["GONS",5],["GRAD",5],["GRADS",5],["GRADIAN",5],["GRADIANS",5]]);function C(e){const n=j.lookup(e);if(null==n)throw new t("LogicError",null,{reason:"unsupported units"});return n}class W{constructor(e,n,t){this.m_degrees=e,this.m_minutes=n,this.m_seconds=t}getField(e){switch(e){case 1:case 6:return this.m_degrees;case 7:return this.m_minutes;case 2:case 8:return this.m_seconds;default:throw new t("LogicError",null,{reason:"unexpected evaluation"})}}static secondsToDMS(e){const n=y(e).fraction;let t=y(e).integer;const r=Math.floor(t/S);t-=r*S;const s=Math.floor(t/F);return t-=s*F,new W(r,s,t+n)}static numberToDms(e){const n=y(e).fraction,t=y(e).integer,r=A(y(100*n).fraction,100),s=y(100*n).integer;return new W(t,s,r)}format(e,n){let t=G(this.m_seconds,n),r=this.m_minutes,s=this.m_degrees;if(2===e||8===e)F<=t&&(t-=F,++r),R<=r&&(r=0,++s),p<=s&&(s=0);else if(7===e)t=0,r=30<=this.m_seconds?this.m_minutes+1:this.m_minutes,s=this.m_degrees,R<=r&&(r=0,++s),p<=s&&(s=0);else if(1===e||6===e){const e=D(this.m_seconds,S),n=D(this.m_minutes,R);s=Math.round(this.m_degrees+n+e),r=0,t=0}return new W(s,r,t)}static dmsToSeconds(e,n,t){return e*S+n*F+t}}class B{constructor(e,n,t){this.meridian=e,this.angle=n,this.direction=t}fetchAzimuth(e){return 0===e?this.meridian:this.direction}}class V{constructor(e){this._angle=e}static createFromAngleAndDirection(e,n){return new V(new Z(V._convertDirectionFormat(e.extractAngularUnits(2),n,1)))}getAngle(e){const n=this._angle.extractAngularUnits(2);switch(e){case 1:case 4:case 2:return new Z(V._convertDirectionFormat(n,1,e));case 3:{const e=V.secondsNorthAzimuthToQuadrant(n);return new Z(e.angle)}}}getMeridian(e){const n=this._angle.extractAngularUnits(2);switch(e){case 1:return 0;case 4:return 2;case 2:return 1;case 3:return V.secondsNorthAzimuthToQuadrant(n).meridian}}getDirection(e){const n=this._angle.extractAngularUnits(2);switch(e){case 1:return 1;case 4:return 3;case 2:return 0;case 3:return V.secondsNorthAzimuthToQuadrant(n).direction}}static secondsNorthAzimuthToQuadrant(e){const n=e<=L||e>=x?0:2,t=0===n?Math.min(M-e,e):Math.abs(e-U);return new B(n,t,e>U?3:1)}static createFromAngleMeridianAndDirection(e,n,t){return new V(new Z(V.secondsQuadrantToNorthAzimuth(e.extractAngularUnits(2),n,t)))}static secondsQuadrantToNorthAzimuth(e,n,t){return 0===n?1===t?e:M-e:1===t?U-e:U+e}static _convertDirectionFormat(e,n,r){let s=0;switch(n){case 1:s=e;break;case 2:s=L-e;break;case 3:throw new t("LogicError",null,{reason:"unexpected evaluation"});case 4:s=e+U}let i=0;switch(r){case 1:i=s;break;case 2:i=L-s;break;case 3:throw new t("LogicError",null,{reason:"unexpected evaluation"});case 4:i=s-U}return i=I(i,M),i<0?M+i:i}}function X(e,n,r){let s=null;switch(n){case 1:s=A(e,S);break;case 2:s=e;break;case 5:s=A(e,_);break;case 4:s=A(e,v);break;default:throw new t("LogicError",null,{reason:"unexpected evaluation"})}switch(r){case 1:return D(s,S);case 2:return s;case 5:return D(s,_);case 4:return s/v;default:throw new t("LogicError",null,{reason:"unexpected evaluation"})}}class Z{constructor(e){this._seconds=e}static createFromAngleAndUnits(e,n){return new Z(X(e,n,2))}extractAngularUnits(e){return X(this._seconds,2,q(e))}static createFromDegreesMinutesSeconds(e,n,t){return new Z(f(f(A(e,S),A(n,F)),t))}}function q(e){switch(o(e),e){case 1:case 6:case 3:return 1;case 5:return 5;case 7:return 7;case 4:return 4;case 2:case 8:return 2}}class J{constructor(e,n,t,r){this.view=e,this.angle=n,this.merdian=t,this.direction=r,this._dms=null,this._formattedDms=null}static createFromStringAndBearing(e,n,t){return new J(e,n.getAngle(t),n.getMeridian(t),n.getDirection(t))}fetchAngle(){return this.angle}fetchMeridian(){return this.merdian}fetchDirection(){return this.direction}fetchView(){return this.view}fetchDms(){return null===this._dms&&this._calculateDms(),this._dms}fetchFormattedDms(){return null===this._formattedDms&&this._calculateDms(),this._formattedDms}_calculateDms(){let e=null,n=6,t=0;for(let r=0;r<this.view.length;r++){const s=this.view[r];switch(s){case"m":e=ae(this.view,r,s),n=6===n?7:n,r=e.newpos;continue;case"s":e=ae(this.view,r,s),n=8,t=t<e.rounding?e.rounding:t,r=e.newpos;continue;default:continue}}this._dms=W.secondsToDMS(this.angle.extractAngularUnits(2)),this._formattedDms=W.secondsToDMS(this.angle.extractAngularUnits(2)).format(n,t)}}function K(e,n,r,s,i){let o=null;switch(n){case 1:case 4:case 5:return o=k(G(e.extractAngularUnits(n),s),P(n)),o.toFixed(s).padStart(r+s+(s>0?1:0),"0");case 6:case 7:return o=k(i.fetchFormattedDms().getField(n),P(n)),o.toFixed(s).padStart(r+s+(s>0?1:0),"0");case 8:return o=k(G(i.fetchDms().getField(n),s),P(n)),o.toFixed(s).padStart(r+s+(s>0?1:0),"0");default:throw new t("LogicError",null,{reason:"unexpected evaluation"})}}function Y(e,n,r){if(3===r)throw new t("LogicError",null,{reason:"conversion error"});if(3===n){const n=W.numberToDms(e);return V.createFromAngleAndDirection(Z.createFromDegreesMinutesSeconds(n.m_degrees,n.m_minutes,n.m_seconds),r)}return V.createFromAngleAndDirection(Z.createFromAngleAndUnits(e,q(n)),r)}function $(e){switch(s(e)){case 1:return{first:0,second:1};case 2:return{first:2,second:1};case 3:return{first:2,second:3};case 4:return{first:0,second:3}}return null}function ee(e){switch(e.toUpperCase().trim()){case"N":case"NORTH":return 0;case"E":case"EAST":return 1;case"S":case"SOUTH":return 2;case"W":case"WEST":return 3}return null}function ne(e){const n=parseFloat(e);if(a(n)){if(isNaN(n))throw new t("LogicError",null,{reason:"invalid conversion"});return n}throw new t("LogicError",null,{reason:"invalid conversion"})}function te(e,n,s){const i=3===s;let o=null,c=null,a=0,u=0,l=0;if(i){if(e.length<2)throw new t("LogicError",null,{reason:"conversion error"});l=1;const n=$(r(e[e.length-1]));if(n?(o=n.first,c=n.second):(a=1,o=ee(r(e[0])),c=ee(r(e[e.length-1]))),null===o||null===c)throw new t("LogicError",null,{reason:"invalid conversion"})}switch(n){case 1:case 4:case 5:if(0===e.length)throw new t("LogicError",null,{reason:"invalid conversion"});return i?V.createFromAngleMeridianAndDirection(Z.createFromAngleAndUnits(ne(e[a]),q(n)),o,c):V.createFromAngleAndDirection(Z.createFromAngleAndUnits(ne(e[a]),q(n)),s);case 3:if(u=e.length-l-a,3===u){const n=Z.createFromDegreesMinutesSeconds(ne(e[a]),ne(e[a+1]),ne(e[a+2]));return i?V.createFromAngleMeridianAndDirection(n,o,c):V.createFromAngleAndDirection(n,s)}if(1===u){const n=ne(e[a]),t=W.numberToDms(n),r=Z.createFromDegreesMinutesSeconds(t.m_degrees,t.m_minutes,t.m_seconds);return i?V.createFromAngleMeridianAndDirection(r,o,c):V.createFromAngleAndDirection(r,s)}}throw new t("LogicError",null,{reason:"invalid conversion"})}function re(e){const n=new Set([" ","-","/","'",'"',"\\","^",b,N,"\t","\r","\n","*"]);let t="";for(let r=0;r<e.length;r++){const s=e.charAt(r);n.has(s)?t+="RRSPLITRRSPLITRR":t+=s}return t.split("RRSPLITRRSPLITRR").filter(e=>""!==e)}function se(e,n,r){if(a(e))return Y(s(e),n,r);if(c(e))return te(re(e),n,r);if(u(e))return te(e,n,r);if(i(e))return te(e.toArray(),n,r);throw new t("LogicError",null,{reason:"conversion error"})}function ie(e,n,r){const s=q(r);if(s&&3!==r){return e.getAngle(n).extractAngularUnits(s)}throw new t("LogicError",null,{reason:"conversion error"})}function oe(e,n,t){const r=e.getAngle(n);if(3===n&&3===t){const t=W.secondsToDMS(r.extractAngularUnits(2));return[H(e.getMeridian(n),"SHORT"),t.m_degrees,t.m_minutes,t.m_seconds,H(e.getDirection(n),"SHORT")]}if(3===t){const e=W.secondsToDMS(r.extractAngularUnits(2));return[e.m_degrees,e.m_minutes,e.m_seconds]}return 3===n?[H(e.getMeridian(n),"SHORT"),r.extractAngularUnits(t),H(e.getDirection(n),"SHORT")]:[r.extractAngularUnits(t)]}function ce(e,n){let r="";switch(e){case 1:r=3===n?"DD.DD"+b:"DDD.DD"+b;break;case 3:r=3===n?"dd"+b+" mm' ss\"":"ddd"+b+" mm' ss.ss\"";break;case 4:r="R.RR";break;case 5:r="GGG.GG"+N;break;default:throw new t("LogicError",null,{reason:"conversion error"})}return 3===n&&(r="p "+r+" b"),r}function ae(e,n,t){const r={padding:0,rounding:0,newpos:n};let s=!1;for(;n<e.length;){const i=e[n];if(i===t)s?r.rounding++:r.padding++,n++;else{if("."!==i)break;s=!0,n++}}return r.newpos=n-1,r}function ue(e,n,t){const r={escaped:"",newpos:n};for(n++;n<e.length;){const t=e[n];if(n++,"]"===t)break;r.escaped+=t}return r.newpos=n-1,r}function le(e,n,t){let r="",s=null,i=null;const o=J.createFromStringAndBearing(n,e,t),c={D:1,d:6,m:7,s:8,R:4,G:5};for(let a=0;a<n.length;a++){const u=n[a];switch(u){case"[":s=ue(n,a),r+=s.escaped,a=s.newpos;continue;case"D":case"d":case"m":case"s":case"R":case"G":s=ae(n,a,u),i=e.getAngle(t),r+=K(i,c[u],s.padding,s.rounding,o),a=s.newpos;continue;case"P":case"p":r+=H(o.fetchMeridian(),"p"===u?"SHORT":"LONG");continue;case"B":case"b":r+=H(o.fetchDirection(),"b"===u?"SHORT":"LONG");continue;default:r+=u}}return r}const de=new n(["TEXT","VALUE"]);function he(n,s,i){if(!(s instanceof e))throw new t("InvalidParameter",null);if(!1===s.hasField("directionType"))throw new t("LogicError",null,{reason:"missing directionType"});if(!1===s.hasField("angleType"))throw new t("LogicError",null,{reason:"missing angleType"});const o=Q(O(s.field("directiontype"))),c=se(n,C(O(s.field("angletype"))),o);if(!(i instanceof e))throw new t("InvalidParameter",null);if(!1===i.hasField("directionType"))throw new t("LogicError",null,{reason:"missing directionType"});if(!1===i.hasField("outputType"))throw new t("LogicError",null,{reason:"missing angleType"});const a=Q(O(i.field("directiontype"))),u=i.hasField("angleType")?C(O(i.field("angletype"))):null,l=de.get(O(i.field("outputType")));if(!a||!l)throw new t("LogicError",null,{reason:"conversion error"});if(!(u||"TEXT"===l&&i.hasField("format")))throw new t("LogicError",null,{reason:"invalid unit"});switch(l){case"VALUE":return 3===a||3===u?oe(c,a,u):ie(c,a,u);case"TEXT":{let e="";return i.hasField("format")&&(e=r(i.field("format"))),null!==e&&""!==e||(e=ce(u,a)),le(c,e,a)}default:throw new t("InvalidParameter",null)}}export{he as convertDirection,f as preciseAdd,D as preciseDivide,w as preciseMinus,A as preciseMultiply};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{ArcadeDate as n,createDateTimeZone as r}from"../ArcadeDate.js";import{toStringEnumKey as e,StringEnum as t}from"../enum.js";import{ArcadeExecutionError as o}from"../executionError.js";import{B as u,T as l,r as i,n as a,e as s,o as c,s as f,U as m,O as d,V as h,W as N}from"../../chunks/languageUtils.js";import{DateOnly as y}from"../../core/sql/DateOnly.js";import{TimeOnly as w}from"../../core/sql/TimeOnly.js";import{getLocale as g}from"../../intl/locale.js";import{DateTime as T}from"luxon";import{isString as A}from"../../support/guards.js";function D(n,r,e){return n+(k(e)?P:p)[r]}function k(n){return n%4==0&&(n%100!=0||n%400==0)}const p=[0,31,59,90,120,151,181,212,243,273,304,334],P=[0,31,60,91,121,152,182,213,244,274,305,335];function S(n){return null===n?n:!1===n.isValid?null:n}function Z(n,r){switch(e(n)){case"":case"default":return l(r);case"z":return"UTC";default:return n}}function O(n,r){return c(n)?n.toArcadeDate():m(n,l(r))}const C=new t(["days","months","minutes","seconds","hours","years","milliseconds"],[["day","days"],["d","days"],["month","months"],["minute","minutes"],["m","minutes"],["second","seconds"],["s","seconds"],["hour","hours"],["h","hours"],["year","years"],["y","years"],["millisecond","milliseconds"],["ms","milliseconds"]]);function U(n){return"M"===n?"months":C.lookup(f(n))??"milliseconds"}function j(e,t){e.today=function(r,e){return t(r,e,(t,o,i)=>{u(i,0,0,e);const a=new Date;return a.setHours(0,0,0,0),n.dateJSAndZoneToArcadeDate(a,l(r))})},e.time=function(r,e){return t(r,e,(t,f,m)=>{switch(u(m,0,4,e),m.length){case 0:{const e=n.nowToArcadeDate(l(r));return new w(e.hour,e.minute,e.second,e.millisecond)}case 1:{if(a(m[0]))return m[0].clone();if(s(m[0]))return new w(m[0].hour,m[0].minute,m[0].second,m[0].millisecond);if(c(m[0]))return new w(0,0,0,0);if(A(m[0]))return w.fromString(m[0]);const n=i(m[0]);return!1===isNaN(n)?w.fromMilliseconds(n):null}case 2:return A(m[0])&&A(m[1])?w.fromString(m[0],m[1]):w.fromParts(i(m[0]),i(m[1]),0,0);case 3:return w.fromParts(i(m[0]),i(m[1]),i(m[2]),0);case 4:return w.fromParts(i(m[0]),i(m[1]),i(m[2]),i(m[3]))}throw new o("InvalidParameter",e)})},e.dateonly=function(r,e){return t(r,e,(t,o,a)=>{if(u(a,0,3,e),3===a.length)return y.fromParts(i(a[0]),i(a[1])+1,i(a[2]));if(2===a.length){const n=f(a[1]);return""===n?null:"X"===n?y.fromSeconds(i(a[0])):"x"===n?y.fromMilliseconds(i(a[0])):y.fromString(f(a[0]),n)}if(1===a.length){if(A(a[0])){if(""===a[0].replaceAll(/^\s+|\s+$/g,""))return null;if(!0===/^[0-9][0-9][0-9][0-9]$/.test(a[0]))return y.fromString(a[0]+"-01-01")}if(c(a[0]))return a[0].clone();if(s(a[0]))return y.fromParts(a[0].year,a[0].monthJS+1,a[0].day);const n=i(a[0]);return!1===isNaN(n)?y.fromMilliseconds(n):A(a[0])?y.fromString(a[0]):null}if(0===a.length){const e=n.nowToArcadeDate(l(r));return!1===e.isValid?null:y.fromParts(e.year,e.monthJS+1,e.day)}return null})},e.changetimezone=function(e,i){return t(e,i,(t,a,s)=>{if(u(s,2,2,i),null===s[0])return null;if(c(s[0]))throw new o("CannotChangeTimeZoneDateOnly",i);if(c(s[0]))throw new o("CannotChangeTimeZoneTime",i);const d=m(s[0],l(e));if(null===d)throw new o("InvalidParameter",i);const h=r(Z(f(s[1]),e),!1);if(null===h)return null;const N=n.arcadeDateAndZoneToArcadeDate(d,h);return!1===N.isValid?null:N})},e.timezone=function(r,e){return t(r,e,(t,o,i)=>{if(u(i,1,2,e),a(i[0]))return"Unknown";if(c(i[0]))return"Unknown";const s=m(i[0],l(r));if(null===s)return null;const f=s.timeZone;return"system"===f?n.systemTimeZoneCanonicalName:"utc"===f.toLowerCase()?"UTC":"unknown"===f.toLowerCase()?"Unknown":f})},e.timezoneoffset=function(n,r){return t(n,r,(e,t,o)=>{u(o,1,1,r);const i=m(o[0],l(n));return null===i?null:60*i.timeZoneOffset*1e3})},e.now=function(r,e){return t(r,e,(t,o,i)=>{u(i,0,0,e);const a=n.nowToArcadeDate(l(r));return!1===a.isValid?null:a})},e.timestamp=function(r,e){return t(r,e,(r,t,o)=>{u(o,0,0,e);const l=n.nowUTCToArcadeDate();return!1===l.isValid?null:l})},e.toutc=function(n,r){return t(n,r,(e,t,o)=>{u(o,1,1,r);const i=m(o[0],l(n));return null===i?null:i.toUTC()})},e.tolocal=function(n,r){return t(n,r,(e,t,o)=>{u(o,1,1,r);const i=m(o[0],l(n));return null===i?null:i.toLocal()})},e.day=function(n,r){return t(n,r,(e,t,o)=>{u(o,1,1,r);const i=O(o[0],l(n));return null===i?NaN:i.day})},e.month=function(n,r){return t(n,r,(e,t,o)=>{u(o,1,1,r);const i=O(o[0],l(n));return null===i?NaN:i.monthJS})},e.year=function(n,r){return t(n,r,(e,t,o)=>{u(o,1,1,r);const i=O(o[0],l(n));return null===i?NaN:i.year})},e.hour=function(n,r){return t(n,r,(e,t,o)=>{if(u(o,1,1,r),a(o[0]))return o[0].hour;const i=m(o[0],l(n));return null===i?NaN:i.hour})},e.second=function(n,r){return t(n,r,(e,t,o)=>{if(u(o,1,1,r),a(o[0]))return o[0].second;const i=m(o[0],l(n));return null===i?NaN:i.second})},e.millisecond=function(n,r){return t(n,r,(e,t,o)=>{if(u(o,1,1,r),a(o[0]))return o[0].millisecond;const i=m(o[0],l(n));return null===i?NaN:i.millisecond})},e.minute=function(n,r){return t(n,r,(e,t,o)=>{if(u(o,1,1,r),a(o[0]))return o[0].minute;const i=m(o[0],l(n));return null===i?NaN:i.minute})},e.week=function(n,r){return t(n,r,(e,t,a)=>{u(a,1,2,r);const s=O(a[0],l(n));if(null===s)return NaN;const c=i(d(a[1],0));if(c<0||c>6)throw new o("InvalidParameter",r);const f=s.day,m=s.monthJS,h=s.year,N=s.dayOfWeekJS,y=D(f,m,h)-1,w=Math.floor(y/7);return N-c+(N-c<0?7:0)<y-7*w?w+1:w})},e.weekday=function(n,r){return t(n,r,(e,t,o)=>{u(o,1,1,r);const i=O(o[0],l(n));return null===i?NaN:i.dayOfWeekJS})},e.isoweekday=function(n,r){return t(n,r,(e,t,o)=>{u(o,1,1,r);const i=O(o[0],l(n));return null===i?NaN:i.dayOfWeekISO})},e.isomonth=function(n,r){return t(n,r,(e,t,o)=>{u(o,1,1,r);const i=O(o[0],l(n));return null===i?NaN:i.monthISO})},e.isoweek=function(n,r){return t(n,r,(e,t,o)=>{u(o,1,1,r);const i=O(o[0],l(n));return null===i?NaN:i.weekISO})},e.isoyear=function(n,r){return t(n,r,(e,t,o)=>{u(o,1,1,r);const i=O(o[0],l(n));return null===i?NaN:i.yearISO})},e.date=function(e,o){return t(e,o,(t,s,d)=>{if(u(d,0,8,o),3===d.length){if(c(d[0])&&a(d[1])&&A(d[2])){const t=r(Z(f(d[2])??"unknown",e),!1);return null===t?null:S(n.fromParts(d[0].year,d[0].month,d[0].day,d[1].hour,d[1].minute,d[1].second,d[1].millisecond,t))}return S(n.fromParts(i(d[0]),i(d[1])+1,i(d[2]),0,0,0,0,l(e)))}if(4===d.length)return S(n.fromParts(i(d[0]),i(d[1])+1,i(d[2]),i(d[3]),0,0,0,l(e)));if(5===d.length)return S(n.fromParts(i(d[0]),i(d[1])+1,i(d[2]),i(d[3]),i(d[4]),0,0,l(e)));if(6===d.length)return S(n.fromParts(i(d[0]),i(d[1])+1,i(d[2]),i(d[3]),i(d[4]),i(d[5]),0,l(e)));if(7===d.length)return S(n.fromParts(i(d[0]),i(d[1])+1,i(d[2]),i(d[3]),i(d[4]),i(d[5]),i(d[6]),l(e)));if(8===d.length){const t=r(Z(f(d[7])??"unknown",e),!1);return null===t?null:S(n.fromParts(i(d[0]),i(d[1])+1,i(d[2]),i(d[3]),i(d[4]),i(d[5]),i(d[6]),t))}if(2===d.length){if(c(d[0])&&A(d[1])){const t=r(Z(f(d[1])??"unknown",e),!1);return null===t?null:S(n.fromParts(d[0].year,d[0].month,d[0].day,0,0,0,0,t))}if(c(d[0])&&a(d[1]))return S(n.fromParts(d[0].year,d[0].month,d[0].day,d[1].hour,d[1].minute,d[1].second,d[1].millisecond,"unknown"));let t,o=f(d[1]);return""===o?null:(o=h(o,!0),t="X"===o?T.fromSeconds(i(d[0])):"x"===o?T.fromMillis(i(d[0])):T.fromFormat(f(d[0]),o,{locale:g(),numberingSystem:"latn"}),t.isValid?n.dateTimeToArcadeDate(t):null)}if(1===d.length){if(c(d[0]))return S(n.fromParts(d[0].year,d[0].month,d[0].day,0,0,0,0,"unknown"));if(A(d[0])){if(""===d[0].replaceAll(/^\s+|\s+$/g,""))return null;if(!0===/^[0-9][0-9][0-9][0-9]$/.test(d[0]))return m(d[0]+"-01-01",l(e))}const r=i(d[0]);if(!1===isNaN(r)){const t=T.fromMillis(r);return t.isValid?n.dateTimeAndZoneToArcadeDate(t,l(e)):null}return m(d[0],l(e))}return 0===d.length?n.nowToArcadeDate(l(e)):null})},e.datediff=function(r,e){return t(r,e,(t,o,i)=>{if(u(i,2,4,e),a(i[0]))return a(i[1])?i[0].difference(i[1],f(i[2])):NaN;if(a(i[1]))return NaN;if(c(i[0]))return c(i[1])?i[0].difference(i[1],f(i[2])):NaN;if(c(i[1]))return NaN;let s=m(i[0],l(r)),h=m(i[1],l(r));if(null===s||null===h)return NaN;let N=d(i[3],"");return""!==N&&null!==N?(N=Z(f(N),r),s=n.arcadeDateAndZoneToArcadeDate(s,N),h=n.arcadeDateAndZoneToArcadeDate(h,N)):s.timeZone!==h.timeZone&&(s.isUnknownTimeZone?s=n.arcadeDateAndZoneToArcadeDate(s,h.timeZone):h=(h.isUnknownTimeZone,n.arcadeDateAndZoneToArcadeDate(h,s.timeZone))),s.diff(h,U(i[2]))})},e.dateadd=function(n,r){return t(n,r,(e,t,o)=>{u(o,2,3,r);let s=i(o[1]);if(isNaN(s)||s===1/0||s===-1/0)return a(o[0])||c(o[0])?o[0].clone():m(o[0],l(n));const f=U(o[2]);if("days"!==f&&"months"!==f||(s=c(o[0])?s:N(s)),a(o[0]))return o[0].plus(f,s);if(c(o[0]))return o[0].plus(f,s);const d=m(o[0],l(n));return null===d?null:d.plus({[f]:s})})}}export{j as registerFunctions};
2
+ import{ArcadeDate as n,createDateTimeZone as r}from"../ArcadeDate.js";import{toStringEnumKey as e,StringEnum as t}from"../enum.js";import{ArcadeExecutionError as o}from"../executionError.js";import{E as u,T as l,v as i,r as a,e as s,q as c,w as f,U as m,O as d,V as h,W as N}from"../../chunks/languageUtils.js";import{DateOnly as y}from"../../core/sql/DateOnly.js";import{TimeOnly as w}from"../../core/sql/TimeOnly.js";import{getLocale as g}from"../../intl/locale.js";import{DateTime as T}from"luxon";import{isString as A}from"../../support/guards.js";function D(n,r,e){return n+(k(e)?P:p)[r]}function k(n){return n%4==0&&(n%100!=0||n%400==0)}const p=[0,31,59,90,120,151,181,212,243,273,304,334],P=[0,31,60,91,121,152,182,213,244,274,305,335];function S(n){return null===n?n:!1===n.isValid?null:n}function Z(n,r){switch(e(n)){case"":case"default":return l(r);case"z":return"UTC";default:return n}}function O(n,r){return c(n)?n.toArcadeDate():m(n,l(r))}const C=new t(["days","months","minutes","seconds","hours","years","milliseconds"],[["day","days"],["d","days"],["month","months"],["minute","minutes"],["m","minutes"],["second","seconds"],["s","seconds"],["hour","hours"],["h","hours"],["year","years"],["y","years"],["millisecond","milliseconds"],["ms","milliseconds"]]);function U(n){return"M"===n?"months":C.lookup(f(n))??"milliseconds"}function j(e,t){e.today=function(r,e){return t(r,e,(t,o,i)=>{u(i,0,0,e);const a=new Date;return a.setHours(0,0,0,0),n.dateJSAndZoneToArcadeDate(a,l(r))})},e.time=function(r,e){return t(r,e,(t,f,m)=>{switch(u(m,0,4,e),m.length){case 0:{const e=n.nowToArcadeDate(l(r));return new w(e.hour,e.minute,e.second,e.millisecond)}case 1:{if(a(m[0]))return m[0].clone();if(s(m[0]))return new w(m[0].hour,m[0].minute,m[0].second,m[0].millisecond);if(c(m[0]))return new w(0,0,0,0);if(A(m[0]))return w.fromString(m[0]);const n=i(m[0]);return!1===isNaN(n)?w.fromMilliseconds(n):null}case 2:return A(m[0])&&A(m[1])?w.fromString(m[0],m[1]):w.fromParts(i(m[0]),i(m[1]),0,0);case 3:return w.fromParts(i(m[0]),i(m[1]),i(m[2]),0);case 4:return w.fromParts(i(m[0]),i(m[1]),i(m[2]),i(m[3]))}throw new o("InvalidParameter",e)})},e.dateonly=function(r,e){return t(r,e,(t,o,a)=>{if(u(a,0,3,e),3===a.length)return y.fromParts(i(a[0]),i(a[1])+1,i(a[2]));if(2===a.length){const n=f(a[1]);return""===n?null:"X"===n?y.fromSeconds(i(a[0])):"x"===n?y.fromMilliseconds(i(a[0])):y.fromString(f(a[0]),n)}if(1===a.length){if(A(a[0])){if(""===a[0].replaceAll(/^\s+|\s+$/g,""))return null;if(!0===/^[0-9][0-9][0-9][0-9]$/.test(a[0]))return y.fromString(a[0]+"-01-01")}if(c(a[0]))return a[0].clone();if(s(a[0]))return y.fromParts(a[0].year,a[0].monthJS+1,a[0].day);const n=i(a[0]);return!1===isNaN(n)?y.fromMilliseconds(n):A(a[0])?y.fromString(a[0]):null}if(0===a.length){const e=n.nowToArcadeDate(l(r));return!1===e.isValid?null:y.fromParts(e.year,e.monthJS+1,e.day)}return null})},e.changetimezone=function(e,i){return t(e,i,(t,a,s)=>{if(u(s,2,2,i),null===s[0])return null;if(c(s[0]))throw new o("CannotChangeTimeZoneDateOnly",i);if(c(s[0]))throw new o("CannotChangeTimeZoneTime",i);const d=m(s[0],l(e));if(null===d)throw new o("InvalidParameter",i);const h=r(Z(f(s[1]),e),!1);if(null===h)return null;const N=n.arcadeDateAndZoneToArcadeDate(d,h);return!1===N.isValid?null:N})},e.timezone=function(r,e){return t(r,e,(t,o,i)=>{if(u(i,1,2,e),a(i[0]))return"Unknown";if(c(i[0]))return"Unknown";const s=m(i[0],l(r));if(null===s)return null;const f=s.timeZone;return"system"===f?n.systemTimeZoneCanonicalName:"utc"===f.toLowerCase()?"UTC":"unknown"===f.toLowerCase()?"Unknown":f})},e.timezoneoffset=function(n,r){return t(n,r,(e,t,o)=>{u(o,1,1,r);const i=m(o[0],l(n));return null===i?null:60*i.timeZoneOffset*1e3})},e.now=function(r,e){return t(r,e,(t,o,i)=>{u(i,0,0,e);const a=n.nowToArcadeDate(l(r));return!1===a.isValid?null:a})},e.timestamp=function(r,e){return t(r,e,(r,t,o)=>{u(o,0,0,e);const l=n.nowUTCToArcadeDate();return!1===l.isValid?null:l})},e.toutc=function(n,r){return t(n,r,(e,t,o)=>{u(o,1,1,r);const i=m(o[0],l(n));return null===i?null:i.toUTC()})},e.tolocal=function(n,r){return t(n,r,(e,t,o)=>{u(o,1,1,r);const i=m(o[0],l(n));return null===i?null:i.toLocal()})},e.day=function(n,r){return t(n,r,(e,t,o)=>{u(o,1,1,r);const i=O(o[0],l(n));return null===i?NaN:i.day})},e.month=function(n,r){return t(n,r,(e,t,o)=>{u(o,1,1,r);const i=O(o[0],l(n));return null===i?NaN:i.monthJS})},e.year=function(n,r){return t(n,r,(e,t,o)=>{u(o,1,1,r);const i=O(o[0],l(n));return null===i?NaN:i.year})},e.hour=function(n,r){return t(n,r,(e,t,o)=>{if(u(o,1,1,r),a(o[0]))return o[0].hour;const i=m(o[0],l(n));return null===i?NaN:i.hour})},e.second=function(n,r){return t(n,r,(e,t,o)=>{if(u(o,1,1,r),a(o[0]))return o[0].second;const i=m(o[0],l(n));return null===i?NaN:i.second})},e.millisecond=function(n,r){return t(n,r,(e,t,o)=>{if(u(o,1,1,r),a(o[0]))return o[0].millisecond;const i=m(o[0],l(n));return null===i?NaN:i.millisecond})},e.minute=function(n,r){return t(n,r,(e,t,o)=>{if(u(o,1,1,r),a(o[0]))return o[0].minute;const i=m(o[0],l(n));return null===i?NaN:i.minute})},e.week=function(n,r){return t(n,r,(e,t,a)=>{u(a,1,2,r);const s=O(a[0],l(n));if(null===s)return NaN;const c=i(d(a[1],0));if(c<0||c>6)throw new o("InvalidParameter",r);const f=s.day,m=s.monthJS,h=s.year,N=s.dayOfWeekJS,y=D(f,m,h)-1,w=Math.floor(y/7);return N-c+(N-c<0?7:0)<y-7*w?w+1:w})},e.weekday=function(n,r){return t(n,r,(e,t,o)=>{u(o,1,1,r);const i=O(o[0],l(n));return null===i?NaN:i.dayOfWeekJS})},e.isoweekday=function(n,r){return t(n,r,(e,t,o)=>{u(o,1,1,r);const i=O(o[0],l(n));return null===i?NaN:i.dayOfWeekISO})},e.isomonth=function(n,r){return t(n,r,(e,t,o)=>{u(o,1,1,r);const i=O(o[0],l(n));return null===i?NaN:i.monthISO})},e.isoweek=function(n,r){return t(n,r,(e,t,o)=>{u(o,1,1,r);const i=O(o[0],l(n));return null===i?NaN:i.weekISO})},e.isoyear=function(n,r){return t(n,r,(e,t,o)=>{u(o,1,1,r);const i=O(o[0],l(n));return null===i?NaN:i.yearISO})},e.date=function(e,o){return t(e,o,(t,s,d)=>{if(u(d,0,8,o),3===d.length){if(c(d[0])&&a(d[1])&&A(d[2])){const t=r(Z(f(d[2])??"unknown",e),!1);return null===t?null:S(n.fromParts(d[0].year,d[0].month,d[0].day,d[1].hour,d[1].minute,d[1].second,d[1].millisecond,t))}return S(n.fromParts(i(d[0]),i(d[1])+1,i(d[2]),0,0,0,0,l(e)))}if(4===d.length)return S(n.fromParts(i(d[0]),i(d[1])+1,i(d[2]),i(d[3]),0,0,0,l(e)));if(5===d.length)return S(n.fromParts(i(d[0]),i(d[1])+1,i(d[2]),i(d[3]),i(d[4]),0,0,l(e)));if(6===d.length)return S(n.fromParts(i(d[0]),i(d[1])+1,i(d[2]),i(d[3]),i(d[4]),i(d[5]),0,l(e)));if(7===d.length)return S(n.fromParts(i(d[0]),i(d[1])+1,i(d[2]),i(d[3]),i(d[4]),i(d[5]),i(d[6]),l(e)));if(8===d.length){const t=r(Z(f(d[7])??"unknown",e),!1);return null===t?null:S(n.fromParts(i(d[0]),i(d[1])+1,i(d[2]),i(d[3]),i(d[4]),i(d[5]),i(d[6]),t))}if(2===d.length){if(c(d[0])&&A(d[1])){const t=r(Z(f(d[1])??"unknown",e),!1);return null===t?null:S(n.fromParts(d[0].year,d[0].month,d[0].day,0,0,0,0,t))}if(c(d[0])&&a(d[1]))return S(n.fromParts(d[0].year,d[0].month,d[0].day,d[1].hour,d[1].minute,d[1].second,d[1].millisecond,"unknown"));let t,o=f(d[1]);return""===o?null:(o=h(o,!0),t="X"===o?T.fromSeconds(i(d[0])):"x"===o?T.fromMillis(i(d[0])):T.fromFormat(f(d[0]),o,{locale:g(),numberingSystem:"latn"}),t.isValid?n.dateTimeToArcadeDate(t):null)}if(1===d.length){if(c(d[0]))return S(n.fromParts(d[0].year,d[0].month,d[0].day,0,0,0,0,"unknown"));if(A(d[0])){if(""===d[0].replaceAll(/^\s+|\s+$/g,""))return null;if(!0===/^[0-9][0-9][0-9][0-9]$/.test(d[0]))return m(d[0]+"-01-01",l(e))}const r=i(d[0]);if(!1===isNaN(r)){const t=T.fromMillis(r);return t.isValid?n.dateTimeAndZoneToArcadeDate(t,l(e)):null}return m(d[0],l(e))}return 0===d.length?n.nowToArcadeDate(l(e)):null})},e.datediff=function(r,e){return t(r,e,(t,o,i)=>{if(u(i,2,4,e),a(i[0]))return a(i[1])?i[0].difference(i[1],f(i[2])):NaN;if(a(i[1]))return NaN;if(c(i[0]))return c(i[1])?i[0].difference(i[1],f(i[2])):NaN;if(c(i[1]))return NaN;let s=m(i[0],l(r)),h=m(i[1],l(r));if(null===s||null===h)return NaN;let N=d(i[3],"");return""!==N&&null!==N?(N=Z(f(N),r),s=n.arcadeDateAndZoneToArcadeDate(s,N),h=n.arcadeDateAndZoneToArcadeDate(h,N)):s.timeZone!==h.timeZone&&(s.isUnknownTimeZone?s=n.arcadeDateAndZoneToArcadeDate(s,h.timeZone):h=(h.isUnknownTimeZone,n.arcadeDateAndZoneToArcadeDate(h,s.timeZone))),s.diff(h,U(i[2]))})},e.dateadd=function(n,r){return t(n,r,(e,t,o)=>{u(o,2,3,r);let s=i(o[1]);if(isNaN(s)||s===1/0||s===-1/0)return a(o[0])||c(o[0])?o[0].clone():m(o[0],l(n));const f=U(o[2]);if("days"!==f&&"months"!==f||(s=c(o[0])?s:N(s)),a(o[0]))return o[0].plus(f,s);if(c(o[0]))return o[0].plus(f,s);const d=m(o[0],l(n));return null===d?null:d.plus({[f]:s})})}}export{j as registerFunctions};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{ArcadeDate as e}from"../ArcadeDate.js";import{toSymbolId as r}from"../arcadeEnvironment.js";import{convertJsonValueToImmutableArcadeValue as t}from"../containerUtils.js";import{ArcadeExecutionError as n}from"../executionError.js";import{Feature as o}from"../Feature.js";import{B as i,h as a,X as u,s,Y as m,Z as d,v as f,_ as l,$ as c,e as p}from"../../chunks/languageUtils.js";import{layerFieldEsriConstants as w}from"../featureset/support/shared.js";import{SqlTimeStampOffset as y}from"../../core/sql/SqlTimestampOffset.js";import h from"../../core/sql/WhereClause.js";import{internalTimeReceivedField as v}from"../../layers/support/streamLayerUtils.js";import{isString as b,isNumber as I}from"../../support/guards.js";function F(e){const r=e?.fullSchema();return r?.datesInUnknownTimezone?"unknown":r?.dateFieldsTimeZone||"UTC"}function T(e){const r=e.fullSchema()?.fieldsIndex;return null==r&&e instanceof o?e.fieldsIndex:r}const g={getAttributeSQL(e,r){const t=e.field(r);if(null==t)return t;if(p(t)){const n=t.toDateTime(),o=T(e)?.get(r)?.type;return"esriFieldTypeTimestampOffset"===o||"timestamp-offset"===o?y.fromDateTime(n):n}return t}};function j(o,y,j){o.domain=function(e,r){return y(e,r,(e,o,m)=>{if(i(m,2,3,r),a(m[0])){const e=u(m[0],s(m[1]),void 0===m[2]?void 0:m[2]);return null==e?.domain?null:"coded-value"===e.domain.type||"codedValue"===e.domain.type?t({type:"codedValue",name:e.domain.name,dataType:w[e.field.type],codedValues:e.domain.codedValues.map(e=>({name:e.name,code:e.code}))}):t({type:"range",name:e.domain.name,dataType:w[e.field.type],min:e.domain.minValue,max:e.domain.maxValue})}throw new n("InvalidParameter",r)})},o.domaincode=function(e,r){return y(e,r,(e,t,o)=>{if(i(o,2,4,r),a(o[0]))return m(o[0],s(o[1]),o[2],void 0===o[3]?void 0:o[3]);throw new n("InvalidParameter",r)})},o.domainname=function(e,r){return y(e,r,(e,t,o)=>{if(i(o,2,4,r),a(o[0]))return d(o[0],s(o[1]),o[2],void 0===o[3]?void 0:o[3]);throw new n("InvalidParameter",r)})},o.expects=function(e,r){return y(e,r,(e,t,o)=>{if(o.length<1)throw new n("WrongNumberOfParameters",r);return f})},o.featureinfilter=function(e,r){return y(e,r,(e,r,t)=>{i(t,2,2,r);const[o,u]=t;if(null==o)return!1;if(""===u||null==u)return!0;if(!a(o)||!b(u))throw new n("InvalidParameter",r);const s=h.create(u,{fieldsIndex:T(o),timeZone:F(o)}),m=s.getVariables();for(const n of m)s.parameters[n]=j(e,{name:n});return s.testFeature(o,g)})},o.gdbversion=function(e,r){return y(e,r,(e,t,o)=>{if(i(o,1,1,r),a(o[0]))return o[0].gdbVersion();throw new n("InvalidParameter",r)})},o.schema=function(e,r){return y(e,r,(e,o,i)=>{if(a(i[0]))return t(l(i[0]));throw new n("InvalidParameter",r)})},o.subtypecode=function(e,r){return y(e,r,(e,t,o)=>{if(i(o,1,1,r),a(o[0])){const e=c(o[0]);if(!e)return null;if(e.subtypeField&&o[0].hasField(e.subtypeField)){const r=o[0].field(e.subtypeField);for(const t of e.subtypes)if(t.code===r)return t.code;return null}return null}throw new n("InvalidParameter",r)})},o.subtypename=function(e,r){return y(e,r,(e,t,o)=>{if(i(o,1,1,r),a(o[0])){const e=c(o[0]);if(!e)return"";if(e.subtypeField&&o[0].hasField(e.subtypeField)){const r=o[0].field(e.subtypeField);for(const t of e.subtypes)if(t.code===r)return t.name;return""}return""}throw new n("InvalidParameter",r)})},o.subtypes=function(e,r){return y(e,r,(e,o,u)=>{if(i(u,1,1,r),a(u[0]))return t(c(u[0]));throw new n("InvalidParameter",r)})},o[r("TimeReceived")]=function(r,t){return y(r,t,(r,t,o)=>{if(i(o,1,1,t),a(o[0])){if(o[0].hasField(v)){const t=o[0].field(v);return I(t)?e.epochToArcadeDate(t,r.timeZone??"system"):p(t)?t:null}return null}throw new n("InvalidParameter",t)})}}export{j as registerFunctions};
2
+ import{ArcadeDate as e}from"../ArcadeDate.js";import{toSymbolId as r}from"../arcadeEnvironment.js";import{convertJsonValueToImmutableArcadeValue as t}from"../containerUtils.js";import{ArcadeExecutionError as n}from"../executionError.js";import{Feature as o}from"../Feature.js";import{E as i,h as a,X as u,w as s,Y as m,Z as d,x as f,_ as l,$ as c,e as p}from"../../chunks/languageUtils.js";import{layerFieldEsriConstants as w}from"../featureset/support/shared.js";import{SqlTimeStampOffset as y}from"../../core/sql/SqlTimestampOffset.js";import h from"../../core/sql/WhereClause.js";import{internalTimeReceivedField as v}from"../../layers/support/streamLayerUtils.js";import{isString as b,isNumber as I}from"../../support/guards.js";function F(e){const r=e?.fullSchema();return r?.datesInUnknownTimezone?"unknown":r?.dateFieldsTimeZone||"UTC"}function T(e){const r=e.fullSchema()?.fieldsIndex;return null==r&&e instanceof o?e.fieldsIndex:r}const g={getAttributeSQL(e,r){const t=e.field(r);if(null==t)return t;if(p(t)){const n=t.toDateTime(),o=T(e)?.get(r)?.type;return"esriFieldTypeTimestampOffset"===o||"timestamp-offset"===o?y.fromDateTime(n):n}return t}};function j(o,y,j){o.domain=function(e,r){return y(e,r,(e,o,m)=>{if(i(m,2,3,r),a(m[0])){const e=u(m[0],s(m[1]),void 0===m[2]?void 0:m[2]);return null==e?.domain?null:"coded-value"===e.domain.type||"codedValue"===e.domain.type?t({type:"codedValue",name:e.domain.name,dataType:w[e.field.type],codedValues:e.domain.codedValues.map(e=>({name:e.name,code:e.code}))}):t({type:"range",name:e.domain.name,dataType:w[e.field.type],min:e.domain.minValue,max:e.domain.maxValue})}throw new n("InvalidParameter",r)})},o.domaincode=function(e,r){return y(e,r,(e,t,o)=>{if(i(o,2,4,r),a(o[0]))return m(o[0],s(o[1]),o[2],void 0===o[3]?void 0:o[3]);throw new n("InvalidParameter",r)})},o.domainname=function(e,r){return y(e,r,(e,t,o)=>{if(i(o,2,4,r),a(o[0]))return d(o[0],s(o[1]),o[2],void 0===o[3]?void 0:o[3]);throw new n("InvalidParameter",r)})},o.expects=function(e,r){return y(e,r,(e,t,o)=>{if(o.length<1)throw new n("WrongNumberOfParameters",r);return f})},o.featureinfilter=function(e,r){return y(e,r,(e,r,t)=>{i(t,2,2,r);const[o,u]=t;if(null==o)return!1;if(""===u||null==u)return!0;if(!a(o)||!b(u))throw new n("InvalidParameter",r);const s=h.create(u,{fieldsIndex:T(o),timeZone:F(o)}),m=s.getVariables();for(const n of m)s.parameters[n]=j(e,{name:n});return s.testFeature(o,g)})},o.gdbversion=function(e,r){return y(e,r,(e,t,o)=>{if(i(o,1,1,r),a(o[0]))return o[0].gdbVersion();throw new n("InvalidParameter",r)})},o.schema=function(e,r){return y(e,r,(e,o,i)=>{if(a(i[0]))return t(l(i[0]));throw new n("InvalidParameter",r)})},o.subtypecode=function(e,r){return y(e,r,(e,t,o)=>{if(i(o,1,1,r),a(o[0])){const e=c(o[0]);if(!e)return null;if(e.subtypeField&&o[0].hasField(e.subtypeField)){const r=o[0].field(e.subtypeField);for(const t of e.subtypes)if(t.code===r)return t.code;return null}return null}throw new n("InvalidParameter",r)})},o.subtypename=function(e,r){return y(e,r,(e,t,o)=>{if(i(o,1,1,r),a(o[0])){const e=c(o[0]);if(!e)return"";if(e.subtypeField&&o[0].hasField(e.subtypeField)){const r=o[0].field(e.subtypeField);for(const t of e.subtypes)if(t.code===r)return t.name;return""}return""}throw new n("InvalidParameter",r)})},o.subtypes=function(e,r){return y(e,r,(e,o,u)=>{if(i(u,1,1,r),a(u[0]))return t(c(u[0]));throw new n("InvalidParameter",r)})},o[r("TimeReceived")]=function(r,t){return y(r,t,(r,t,o)=>{if(i(o,1,1,t),a(o[0])){if(o[0].hasField(v)){const t=o[0].field(v);return I(t)?e.epochToArcadeDate(t,r.timeZone??"system"):p(t)?t:null}return null}throw new n("InvalidParameter",t)})}}export{j as registerFunctions};