@arcgis/coding-components 4.30.0 → 4.31.0-next.10

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 (215) hide show
  1. package/dist/arcgis-coding-components/arcgis-coding-components.esm.js +3 -3
  2. package/dist/arcgis-coding-components/assets/code-editor/arcade.worker.js +13 -13
  3. package/dist/arcgis-coding-components/assets/code-editor/css.worker.js +1 -1
  4. package/dist/arcgis-coding-components/assets/code-editor/html.worker.js +1 -1
  5. package/dist/arcgis-coding-components/assets/code-editor/json.worker.js +1 -1
  6. package/dist/arcgis-coding-components/assets/code-editor/sql-expr.worker.js +11 -0
  7. package/dist/arcgis-coding-components/assets/code-editor/ts.worker.js +1 -1
  8. package/dist/arcgis-coding-components/assets/sql-expression-editor/api/sql-expression-api.t9n.en.json +735 -0
  9. package/dist/arcgis-coding-components/index.esm.js +3 -3
  10. package/dist/arcgis-coding-components/p-025fda85.js +6 -0
  11. package/dist/arcgis-coding-components/{p-b7981062.js → p-02cae55d.js} +4 -4
  12. package/dist/arcgis-coding-components/p-193ac44f.js +6 -0
  13. package/dist/arcgis-coding-components/{p-ed5c78ce.js → p-22253750.js} +2 -2
  14. package/dist/arcgis-coding-components/p-4fc79a07.entry.js +6 -0
  15. package/dist/arcgis-coding-components/p-50484a4f.js +6 -0
  16. package/dist/arcgis-coding-components/p-6e28fd70.js +6 -0
  17. package/dist/arcgis-coding-components/p-7164c348.js +6 -0
  18. package/dist/arcgis-coding-components/p-767b17ee.entry.js +6 -0
  19. package/dist/arcgis-coding-components/{p-69ef969a.js → p-790067b1.js} +11 -11
  20. package/dist/arcgis-coding-components/{p-e9510c84.js → p-8196fa73.js} +3 -3
  21. package/dist/arcgis-coding-components/{p-f40fe9c5.js → p-8cf09bcc.js} +2 -2
  22. package/dist/arcgis-coding-components/{p-ca3f5530.js → p-923858b5.js} +3 -3
  23. package/dist/arcgis-coding-components/{p-ae0db715.js → p-960aa9dc.js} +3 -3
  24. package/dist/arcgis-coding-components/p-9956a574.js +6 -0
  25. package/dist/arcgis-coding-components/{p-9770fb37.js → p-ab78d6c4.js} +4 -4
  26. package/dist/arcgis-coding-components/{p-e37595ba.js → p-ad75160d.js} +4 -4
  27. package/dist/arcgis-coding-components/{p-24fb1d11.js → p-da9431ba.js} +3 -3
  28. package/dist/arcgis-coding-components/p-f452d4b8.entry.js +6 -0
  29. package/dist/cjs/{app-globals-18ba6880.js → app-globals-bade840e.js} +2 -2
  30. package/dist/cjs/arcade-defaults-8b8d6c07.js +116 -0
  31. package/dist/cjs/arcade-language-features-747fb1da.js +274 -0
  32. package/dist/cjs/arcade-mode-dce44622.js +336 -0
  33. package/dist/cjs/{arcgis-arcade-api_6.cjs.entry.js → arcgis-arcade-editor_6.cjs.entry.js} +3806 -5154
  34. package/dist/cjs/arcgis-coding-components.cjs.js +5 -5
  35. package/dist/cjs/arcgis-sql-expression-editor.cjs.entry.js +81 -0
  36. package/dist/cjs/arcgis-sql-expression-fields.cjs.entry.js +80 -0
  37. package/dist/cjs/{css-d8a65bb9.js → css-077ba0c5.js} +2 -2
  38. package/dist/cjs/{cssMode-07dbb853.js → cssMode-7f2030db.js} +5 -5
  39. package/dist/cjs/{html-bb10cced.js → html-e3a243e9.js} +5 -5
  40. package/dist/cjs/{htmlMode-7df0a09d.js → htmlMode-c273d6dc.js} +5 -5
  41. package/dist/cjs/{index-15bcce7e.js → index-37a86ff4.js} +12 -4
  42. package/dist/cjs/index.cjs.js +5 -4
  43. package/dist/cjs/{javascript-f0dbed11.js → javascript-7a33cca7.js} +5 -5
  44. package/dist/cjs/{jsonMode-9e54e9b7.js → jsonMode-6b4e0850.js} +5 -5
  45. package/dist/cjs/{arcade-defaults-d0931224.js → language-defaults-base-b32cb091.js} +88 -144
  46. package/dist/cjs/loader.cjs.js +5 -5
  47. package/dist/cjs/sql-expr-defaults-8a5834f3.js +1280 -0
  48. package/dist/cjs/sql-expr-mode-a72a1f92.js +21838 -0
  49. package/dist/cjs/{tsMode-ca28bc5f.js → tsMode-c2edcd57.js} +6 -6
  50. package/dist/cjs/{typescript-39540ed7.js → typescript-c50c5516.js} +5 -5
  51. package/dist/components/arcade-defaults.js +47 -1537
  52. package/dist/components/arcade-language-features.js +271 -0
  53. package/dist/components/arcade-mode.js +7 -267
  54. package/dist/components/arcade-results.js +7 -7
  55. package/dist/components/arcade-suggestions.js +8 -8
  56. package/dist/components/arcade-variables.js +7 -7
  57. package/dist/components/arcgis-arcade-editor.js +49 -50
  58. package/dist/components/arcgis-arcade-results.js +2 -2
  59. package/dist/components/arcgis-arcade-suggestions.js +2 -2
  60. package/dist/components/arcgis-arcade-variables.js +2 -2
  61. package/dist/components/arcgis-assets.d.ts +2 -2
  62. package/dist/components/arcgis-assets.js +3 -3
  63. package/dist/components/arcgis-code-editor.js +2 -2
  64. package/dist/components/arcgis-language-api-panel.d.ts +11 -0
  65. package/dist/components/arcgis-language-api-panel.js +11 -0
  66. package/dist/components/arcgis-sql-expression-editor.d.ts +11 -0
  67. package/dist/components/arcgis-sql-expression-editor.js +120 -0
  68. package/dist/components/arcgis-sql-expression-fields.d.ts +11 -0
  69. package/dist/components/arcgis-sql-expression-fields.js +11 -0
  70. package/dist/components/chunk-3IUJHIAA.js +1154 -0
  71. package/dist/components/code-editor.js +186 -17
  72. package/dist/components/fields.js +3 -3
  73. package/dist/components/index.js +2 -2
  74. package/dist/components/index2.js +31 -23
  75. package/dist/components/{arcade-api.js → language-api-panel.js} +29 -60
  76. package/dist/components/language-defaults-base.js +1535 -0
  77. package/dist/components/markdown.js +3 -3
  78. package/dist/components/sql-expr-defaults.js +131 -0
  79. package/dist/components/sql-expr-mode.js +21836 -0
  80. package/dist/components/sql-expression-fields.js +102 -0
  81. package/dist/components/useT9n.js +46 -9
  82. package/dist/components/utilities.js +2 -2
  83. package/dist/esm/{app-globals-2a0e9afb.js → app-globals-ed47e16d.js} +2 -2
  84. package/dist/esm/arcade-defaults-562fe19b.js +111 -0
  85. package/dist/esm/arcade-language-features-8edb3527.js +269 -0
  86. package/dist/esm/{arcade-mode-e9728a63.js → arcade-mode-ad036f46.js} +7 -266
  87. package/dist/esm/{arcgis-arcade-api_6.entry.js → arcgis-arcade-editor_6.entry.js} +3793 -5141
  88. package/dist/esm/arcgis-coding-components.js +6 -6
  89. package/dist/esm/arcgis-sql-expression-editor.entry.js +77 -0
  90. package/dist/esm/arcgis-sql-expression-fields.entry.js +76 -0
  91. package/dist/esm/{css-61c794c2.js → css-810518f1.js} +2 -2
  92. package/dist/esm/{cssMode-6e0ccd51.js → cssMode-a7208024.js} +4 -4
  93. package/dist/esm/{html-44ad432e.js → html-e187d7d8.js} +4 -4
  94. package/dist/esm/{htmlMode-fd336434.js → htmlMode-06b7bae2.js} +4 -4
  95. package/dist/esm/{index-0d124a57.js → index-3743d31f.js} +12 -4
  96. package/dist/esm/index.js +5 -4
  97. package/dist/esm/{javascript-ac057954.js → javascript-04a3f866.js} +5 -5
  98. package/dist/esm/{jsonMode-ea8fa529.js → jsonMode-ee8bb2ea.js} +4 -4
  99. package/dist/esm/{arcade-defaults-811bdd4d.js → language-defaults-base-52a397f5.js} +82 -142
  100. package/dist/esm/loader.js +6 -6
  101. package/dist/esm/sql-expr-defaults-f7c2d5ef.js +1274 -0
  102. package/dist/esm/sql-expr-mode-433b4a39.js +21835 -0
  103. package/dist/esm/{tsMode-af9c3001.js → tsMode-c80c462e.js} +4 -4
  104. package/dist/esm/{typescript-baec45d6.js → typescript-a9b8caa7.js} +4 -4
  105. package/dist/loader/cdn.js +2 -2
  106. package/dist/loader/index.cjs.js +2 -2
  107. package/dist/loader/index.es2017.js +2 -2
  108. package/dist/loader/index.js +2 -2
  109. package/dist/types/components/arcade-editor/arcade-editor.d.ts +45 -10
  110. package/dist/types/components/arcade-results/arcade-results.d.ts +43 -1
  111. package/dist/types/components/arcade-suggestions/arcade-suggestions.d.ts +22 -1
  112. package/dist/types/components/arcade-variables/arcade-variables.d.ts +28 -1
  113. package/dist/types/components/code-editor/code-editor.d.ts +16 -5
  114. package/dist/types/components/language-api-panel/language-api-panel.d.ts +73 -0
  115. package/dist/types/components/sql-expression-editor/sql-expression-editor.d.ts +24 -0
  116. package/dist/types/components/sql-expression-fields/sql-expression-fields.d.ts +32 -0
  117. package/dist/types/components.d.ts +148 -70
  118. package/dist/types/data/actions-runner-1/_work/arcgis-web-components/arcgis-web-components/packages/coding-packages/coding-components/.stencil/stories/internal/sql-expression-editor/sql-expression-editor.stories.d.ts +13 -0
  119. package/dist/types/dependencies.d.ts +21 -0
  120. package/dist/types/utils/arcade-monaco/arcade-contribution.d.ts +1 -24
  121. package/dist/types/utils/arcade-monaco/arcade-defaults.d.ts +12 -49
  122. package/dist/types/utils/arcade-monaco/arcade-language-features.d.ts +6 -4
  123. package/dist/types/utils/arcade-monaco/arcade-mode.d.ts +3 -2
  124. package/dist/types/utils/arcade-monaco/arcade-service-accessors.d.ts +31 -0
  125. package/dist/types/utils/arcade-monaco/arcade-worker-manager.d.ts +3 -2
  126. package/dist/types/utils/arcade-monaco/arcade.worker.d.ts +5 -5
  127. package/dist/types/utils/arcade-monaco/types.d.ts +6 -35
  128. package/dist/types/utils/language-defaults-base.d.ts +69 -0
  129. package/dist/types/utils/profile/predefined-profile.d.ts +3 -1
  130. package/dist/types/utils/profile/types.d.ts +29 -69
  131. package/dist/types/utils/profile/utils.d.ts +4 -7
  132. package/dist/types/utils/sql-expr-monaco/DependentFiles/DateOnly.d.ts +41 -0
  133. package/dist/types/utils/sql-expr-monaco/DependentFiles/SqlInterval.d.ts +16 -0
  134. package/dist/types/utils/sql-expr-monaco/DependentFiles/SqlTimestampOffset.d.ts +26 -0
  135. package/dist/types/utils/sql-expr-monaco/DependentFiles/TimeOnly.d.ts +37 -0
  136. package/dist/types/utils/sql-expr-monaco/DependentFiles/UnknownTimeZone.d.ts +11 -0
  137. package/dist/types/utils/sql-expr-monaco/DependentFiles/WhereGrammar.d.ts +122 -0
  138. package/dist/types/utils/sql-expr-monaco/DependentFiles/sqlCompareUtils.d.ts +5 -0
  139. package/dist/types/utils/sql-expr-monaco/DependentFiles/sqlDateParsingUtils.d.ts +18 -0
  140. package/dist/types/utils/sql-expr-monaco/DependentFiles/sqlUtils.d.ts +6 -0
  141. package/dist/types/utils/sql-expr-monaco/DependentFiles/standardizedFunctions.d.ts +156 -0
  142. package/dist/types/utils/sql-expr-monaco/DependentFiles/support.d.ts +150 -0
  143. package/dist/types/utils/sql-expr-monaco/PeggyGrammar/sql92grammar.d.ts +1397 -0
  144. package/dist/types/utils/sql-expr-monaco/libraries/date/properties/index.d.ts +59 -0
  145. package/dist/types/utils/sql-expr-monaco/libraries/numeric/properties/index.d.ts +295 -0
  146. package/dist/types/utils/sql-expr-monaco/libraries/string/properties/index.d.ts +135 -0
  147. package/dist/types/utils/sql-expr-monaco/sql-expr-completion.d.ts +6 -0
  148. package/dist/types/utils/sql-expr-monaco/sql-expr-contribution.d.ts +11 -0
  149. package/dist/types/utils/sql-expr-monaco/sql-expr-defaults.d.ts +22 -0
  150. package/dist/types/utils/sql-expr-monaco/sql-expr-language-features.d.ts +61 -0
  151. package/dist/types/utils/sql-expr-monaco/sql-expr-language-syntax.d.ts +8 -0
  152. package/dist/types/utils/sql-expr-monaco/sql-expr-mode.d.ts +10 -0
  153. package/dist/types/utils/sql-expr-monaco/sql-expr-validation-adapter.d.ts +3 -0
  154. package/dist/types/utils/sql-expr-monaco/sql-expr-validation-diagnostic-adapter.d.ts +41 -0
  155. package/dist/types/utils/sql-expr-monaco/sql-expr-validation-utils.d.ts +99 -0
  156. package/dist/types/utils/sql-expr-monaco/sql-expr-validation.d.ts +41 -0
  157. package/dist/types/utils/sql-expr-monaco/sql-expr-worker-manager.d.ts +15 -0
  158. package/dist/types/utils/sql-expr-monaco/sql-expr.worker.d.ts +21 -0
  159. package/dist/types/utils/sql-expr-monaco/types.d.ts +91 -0
  160. package/dist/types/utils/sql-expr-profile/predefined-profile.d.ts +2 -0
  161. package/package.json +23 -17
  162. package/dist/arcgis-coding-components/p-98cf909d.js +0 -6
  163. package/dist/arcgis-coding-components/p-bf047552.entry.js +0 -6
  164. package/dist/arcgis-coding-components/p-f602fc86.js +0 -6
  165. package/dist/cjs/arcade-mode-8424eafa.js +0 -595
  166. package/dist/components/arcade-contribution.js +0 -181
  167. package/dist/components/arcgis-arcade-api.d.ts +0 -11
  168. package/dist/components/arcgis-arcade-api.js +0 -11
  169. package/dist/components/chunk-2CDDVOQU.js +0 -1364
  170. package/dist/types/components/arcade-api/arcade-api.d.ts +0 -45
  171. package/dist/types/components/arcade-api/t9n-types.d.ts +0 -8
  172. package/dist/types/components/arcade-editor/t9n-types.d.ts +0 -8
  173. package/dist/types/components/arcade-results/t9n-types.d.ts +0 -13
  174. package/dist/types/components/arcade-suggestions/t9n-types.d.ts +0 -6
  175. package/dist/types/components/arcade-variables/t9n-types.d.ts +0 -8
  176. /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.ar.json → language-api-panel/t9n/language-api-panel.t9n.ar.json} +0 -0
  177. /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.bg.json → language-api-panel/t9n/language-api-panel.t9n.bg.json} +0 -0
  178. /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.bs.json → language-api-panel/t9n/language-api-panel.t9n.bs.json} +0 -0
  179. /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.ca.json → language-api-panel/t9n/language-api-panel.t9n.ca.json} +0 -0
  180. /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.cs.json → language-api-panel/t9n/language-api-panel.t9n.cs.json} +0 -0
  181. /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.da.json → language-api-panel/t9n/language-api-panel.t9n.da.json} +0 -0
  182. /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.de.json → language-api-panel/t9n/language-api-panel.t9n.de.json} +0 -0
  183. /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.el.json → language-api-panel/t9n/language-api-panel.t9n.el.json} +0 -0
  184. /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.en.json → language-api-panel/t9n/language-api-panel.t9n.en.json} +0 -0
  185. /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.es.json → language-api-panel/t9n/language-api-panel.t9n.es.json} +0 -0
  186. /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.et.json → language-api-panel/t9n/language-api-panel.t9n.et.json} +0 -0
  187. /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.fi.json → language-api-panel/t9n/language-api-panel.t9n.fi.json} +0 -0
  188. /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.fr.json → language-api-panel/t9n/language-api-panel.t9n.fr.json} +0 -0
  189. /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.he.json → language-api-panel/t9n/language-api-panel.t9n.he.json} +0 -0
  190. /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.hr.json → language-api-panel/t9n/language-api-panel.t9n.hr.json} +0 -0
  191. /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.hu.json → language-api-panel/t9n/language-api-panel.t9n.hu.json} +0 -0
  192. /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.id.json → language-api-panel/t9n/language-api-panel.t9n.id.json} +0 -0
  193. /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.it.json → language-api-panel/t9n/language-api-panel.t9n.it.json} +0 -0
  194. /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.ja.json → language-api-panel/t9n/language-api-panel.t9n.ja.json} +0 -0
  195. /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.ko.json → language-api-panel/t9n/language-api-panel.t9n.ko.json} +0 -0
  196. /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.lt.json → language-api-panel/t9n/language-api-panel.t9n.lt.json} +0 -0
  197. /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.lv.json → language-api-panel/t9n/language-api-panel.t9n.lv.json} +0 -0
  198. /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.nb.json → language-api-panel/t9n/language-api-panel.t9n.nb.json} +0 -0
  199. /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.nl.json → language-api-panel/t9n/language-api-panel.t9n.nl.json} +0 -0
  200. /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.pl.json → language-api-panel/t9n/language-api-panel.t9n.pl.json} +0 -0
  201. /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.pt-BR.json → language-api-panel/t9n/language-api-panel.t9n.pt-BR.json} +0 -0
  202. /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.pt-PT.json → language-api-panel/t9n/language-api-panel.t9n.pt-PT.json} +0 -0
  203. /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.ro.json → language-api-panel/t9n/language-api-panel.t9n.ro.json} +0 -0
  204. /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.ru.json → language-api-panel/t9n/language-api-panel.t9n.ru.json} +0 -0
  205. /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.sk.json → language-api-panel/t9n/language-api-panel.t9n.sk.json} +0 -0
  206. /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.sl.json → language-api-panel/t9n/language-api-panel.t9n.sl.json} +0 -0
  207. /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.sr.json → language-api-panel/t9n/language-api-panel.t9n.sr.json} +0 -0
  208. /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.sv.json → language-api-panel/t9n/language-api-panel.t9n.sv.json} +0 -0
  209. /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.th.json → language-api-panel/t9n/language-api-panel.t9n.th.json} +0 -0
  210. /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.tr.json → language-api-panel/t9n/language-api-panel.t9n.tr.json} +0 -0
  211. /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.uk.json → language-api-panel/t9n/language-api-panel.t9n.uk.json} +0 -0
  212. /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.vi.json → language-api-panel/t9n/language-api-panel.t9n.vi.json} +0 -0
  213. /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.zh-CN.json → language-api-panel/t9n/language-api-panel.t9n.zh-CN.json} +0 -0
  214. /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.zh-HK.json → language-api-panel/t9n/language-api-panel.t9n.zh-HK.json} +0 -0
  215. /package/dist/arcgis-coding-components/assets/{arcade-api/t9n/arcade-api.t9n.zh-TW.json → language-api-panel/t9n/language-api-panel.t9n.zh-TW.json} +0 -0
@@ -0,0 +1,99 @@
1
+ import * as monaco from "monaco-editor";
2
+ import type { SQLNode } from "./DependentFiles/WhereGrammar";
3
+ import type { ArcGISFieldType, PeggyError, SqlExpressionLiteral, PeggyLocation } from "./types";
4
+ export interface ValidationSyntaxContext {
5
+ token: string;
6
+ range: monaco.IRange;
7
+ startDelimiter?: boolean;
8
+ content?: ValidationSyntaxContext[];
9
+ }
10
+ export declare enum TokenType {
11
+ Single = "SINGLE",
12
+ EmptyField = "EMPTY_FIELD",
13
+ Error = "ERROR",
14
+ Field = "FIELD",
15
+ KeywordIn = "IN",
16
+ KeywordNotIn = "NOT IN",
17
+ KeywordBetween = "BETWEEN",
18
+ KeywordNotBetween = "NOT BETWEEN",
19
+ List = "LIST",
20
+ Negation = "NOT",
21
+ Number = "NUMBER",
22
+ Operator = "OPERATOR",
23
+ Parentheses = "PARENTHESES",
24
+ String = "STRING",
25
+ Unknown = "UNKNOWN"
26
+ }
27
+ export declare enum Token {
28
+ Case = "CASE",
29
+ CaseElse = "ELSE",
30
+ CaseThen = "THEN",
31
+ CaseWhen = "WHEN",
32
+ Comma = ",",
33
+ DoubleQuote = "\"",
34
+ Empty = "",
35
+ End = "END",
36
+ Interval = "INTERVAL",
37
+ LeftParentheses = "(",
38
+ NewLine = "\n",
39
+ RightParentheses = ")",
40
+ SingleQuote = "'",
41
+ WhiteSpace = " "
42
+ }
43
+ export declare enum BinaryOperator {
44
+ And = "AND",
45
+ Or = "OR",
46
+ Is = "IS",
47
+ IsNot = "ISNOT",
48
+ In = "IN",
49
+ NotIn = "NOT IN",
50
+ Between = "BETWEEN",
51
+ NotBetween = "NOTBETWEEN",
52
+ Like = "LIKE",
53
+ NotLike = "NOT LIKE",
54
+ NotEquals = "<>",
55
+ LessThan = "<",
56
+ GreaterThan = ">",
57
+ GreaterThanEqual = ">=",
58
+ LessThanEqual = "<=",
59
+ Equal = "=",
60
+ Multiply = "*",
61
+ Subtract = "-",
62
+ Add = "+",
63
+ Divide = "/",
64
+ Concatenate = "||"
65
+ }
66
+ export declare enum NodeReturnType {
67
+ Boolean = "BOOLEAN",
68
+ Double = "DOUBLE",
69
+ ExpressionList = "EXPRESSION-LIST",
70
+ Float = "FLOAT",
71
+ Integer = "INTEGER",
72
+ Null = "NULL",
73
+ Number = "NUMBER",
74
+ Real = "REAL",
75
+ String = "STRING",
76
+ SmallInt = "SMALLINT",
77
+ UnknownFunction = "UNKNOWN_FUNCTION"
78
+ }
79
+ export declare enum CallableExpressionResponse {
80
+ Function = "FUNCTION",
81
+ ExpressionList = "EXPRESSION_LIST",
82
+ Success = "SUCCESS",
83
+ NonCallable = "NON_CALLABLE"
84
+ }
85
+ export declare const tokenizationRegex: RegExp;
86
+ export declare const isValidIntervalValue: RegExp;
87
+ export declare const validOps: string[];
88
+ export declare const relationalTypes: SqlExpressionLiteral[];
89
+ export declare const qualifiers: TokenType[];
90
+ export declare function convertArcgisTypeToSqlReturnType(arcgisType: ArcGISFieldType): SqlExpressionLiteral;
91
+ export declare const identifyNodeReturnType: (node: SQLNode, fields: __esri.FeatureLayer["fields"]) => SqlExpressionLiteral | "time-only" | "unknown_function";
92
+ export declare const isNumericType: (type: SqlExpressionLiteral) => boolean;
93
+ export declare const formatListToString: (types: SqlExpressionLiteral[], delimiter: string) => string;
94
+ export declare const formatType: (type: string) => string;
95
+ export declare const getValueFromNode: (node: SQLNode) => number | string;
96
+ export declare const addNewMarker: (message: string, range: monaco.IRange | PeggyLocation, markers: monaco.editor.IMarkerData[], isNodeFormat?: boolean) => void;
97
+ export declare const validateTypeMatch: (node: SQLNode, expectedType: NodeReturnType, markers: monaco.editor.IMarkerData[], fields: __esri.FeatureLayer["fields"]) => void;
98
+ export declare function isSyntaxError(error: PeggyError): boolean;
99
+ export declare function formatSyntaxError(error: PeggyError): string;
@@ -0,0 +1,41 @@
1
+ import type { SQLNode } from "./DependentFiles/WhereGrammar";
2
+ import type { editor } from "monaco-editor";
3
+ import type { ApiCategory } from "@arcgis/languages-api-utils";
4
+ export declare class SQLExpressionValidation {
5
+ private layer;
6
+ private callStack;
7
+ private _sdkFunctions;
8
+ markers: editor.IMarkerData[];
9
+ constructor(layer: __esri.FeatureLayer, sdkLibrary: ApiCategory[]);
10
+ /**
11
+ * validates the SQL Expression by generating an AST and traversing it
12
+ * @param modelContent The SQL Expression to validate
13
+ */
14
+ validateModel(modelContent: string): void;
15
+ /**
16
+ * a DFS traversal of the SQL Expression AST
17
+ * @param node The node to traverse, start with the root node
18
+ */
19
+ traverse(node: SQLNode): void;
20
+ /**
21
+ * Validates a nodes syntax and types
22
+ * @param node The node to validate
23
+ */
24
+ private _validateNode;
25
+ private _handleParserFailure;
26
+ /**
27
+ * Formats a node's range into a Monaco IRange object.
28
+ * @param node
29
+ */
30
+ private _getRange;
31
+ /**
32
+ * finds the function in the SDK library.
33
+ * @param name name of the function
34
+ */
35
+ private _getFunction;
36
+ /**
37
+ * looks at the node and finds any children attached to it. If there are children, it will traverse them.
38
+ * @param node The current node to traverse
39
+ */
40
+ private _traverseChildren;
41
+ }
@@ -0,0 +1,15 @@
1
+ import type { Uri } from "monaco-editor";
2
+ import type { ISqlExprWorker } from "./types";
3
+ import type { SqlExprDefaults } from "./sql-expr-defaults";
4
+ /**
5
+ * Manager to create our sql-expression worker and client proxy
6
+ */
7
+ export declare class SqlExprWorkerManager {
8
+ private _defaults;
9
+ private _worker;
10
+ private _client;
11
+ constructor(_defaults: SqlExprDefaults);
12
+ stopWorker(): void;
13
+ private _getClientProxy;
14
+ getLanguageServiceWorker(...resources: Uri[]): Promise<ISqlExprWorker>;
15
+ }
@@ -0,0 +1,21 @@
1
+ import { type languages, type worker } from "monaco-editor";
2
+ import type { ISqlExprWorker } from "./types";
3
+ type TodoFixMe = any;
4
+ type Diagnostic = TodoFixMe;
5
+ interface IWorkerData {
6
+ languageId: string;
7
+ languageOptions?: TodoFixMe;
8
+ }
9
+ /**
10
+ * The ArcGIS SQL Expression Web Worker is leveraging the Arcade Language Service to provide the editor functionalities.
11
+ * The ArcGIS SQL Expression Web Worker is proxied by the Monaco worker server.
12
+ */
13
+ export declare class SqlExprWorker implements ISqlExprWorker {
14
+ private _ctx;
15
+ private _languageId;
16
+ constructor(_ctx: worker.IWorkerContext, { languageId }: IWorkerData);
17
+ doValidation(modelId: string): Promise<Diagnostic[]>;
18
+ doComplete(modelId: string): Promise<languages.CompletionList>;
19
+ private _getTextDocument;
20
+ }
21
+ export {};
@@ -0,0 +1,91 @@
1
+ import type { Thenable, Uri, languages } from "monaco-editor";
2
+ import type { Position } from "vscode-languageserver-types";
3
+ import type { PeggySyntaxError, FileRange } from "./PeggyGrammar/sql92grammar";
4
+ import type { DataTypeNode, SQLNode } from "./DependentFiles/WhereGrammar";
5
+ import type { ApiContext } from "@arcgis/languages-api-utils";
6
+ type TodoFixMe = any;
7
+ type Diagnostic = TodoFixMe;
8
+ export interface ISqlExprWorker {
9
+ doValidation: (modelId: string, context: ApiContext) => Thenable<Diagnostic[]>;
10
+ doComplete: (modelId: string, position: Position) => Thenable<languages.CompletionList>;
11
+ }
12
+ export type ISqlExprWorkerAccessor = (...more: Uri[]) => Thenable<ISqlExprWorker>;
13
+ export interface ApiContextType {
14
+ description: string;
15
+ parameters: {
16
+ name: string;
17
+ type: string[] | string;
18
+ description: string;
19
+ }[];
20
+ returnValue: string[] | string;
21
+ examples: {
22
+ code: string;
23
+ description: string;
24
+ }[];
25
+ snippet: string[] | string;
26
+ name: string;
27
+ bundle: string;
28
+ }
29
+ /**
30
+ * SQL Expression Literal. These are the types that occur within nodes of the AST generated by the peggy parser.
31
+ **/
32
+ export type SqlExpressionLiteral =
33
+ /**
34
+ * "date"
35
+ * "float"
36
+ * "integer"
37
+ * "real"
38
+ * "smallint"
39
+ * "time"
40
+ * "timestamp"
41
+ * "varchar"
42
+ */
43
+ DataTypeNode["value"]["type"]
44
+ /**
45
+ * "case-expression"
46
+ * "when-clause"
47
+ * "parameter"
48
+ * "expression-list"
49
+ * "unary-expression"
50
+ * "binary-expression"
51
+ * "null"
52
+ * "boolean"
53
+ * "string"
54
+ * "number"
55
+ * "date"
56
+ * "time"
57
+ * "timestamp"
58
+ * "column-reference"
59
+ * "current-time"
60
+ * "interval"
61
+ * "interval-qualifier"
62
+ * "interval-period"
63
+ * "function"
64
+ * "data-type"
65
+ */
66
+ | SQLNode["type"];
67
+ export type ArcGISFieldType =
68
+ /**
69
+ * "string"
70
+ * "date"
71
+ * "integer"
72
+ * "small-integer"
73
+ * "big-integer"
74
+ * "single"
75
+ * "double"
76
+ * "long"
77
+ * "date-only"
78
+ * "time-only"
79
+ * "timestamp-offset"
80
+ * "oid"
81
+ * "geometry"
82
+ * "blob"
83
+ * "raster"
84
+ * "guid"
85
+ * "global-id"
86
+ * "xml"
87
+ */
88
+ __esri.Field["type"];
89
+ export type PeggyError = PeggySyntaxError;
90
+ export type PeggyLocation = FileRange;
91
+ export {};
@@ -0,0 +1,2 @@
1
+ import type { IEditorProfileDefinition, IPredefinedProfile } from "../profile/types";
2
+ export declare function convertToEditorProfileDefinition(predefinedProfile: IPredefinedProfile, locale?: string): Promise<IEditorProfileDefinition | undefined>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arcgis/coding-components",
3
- "version": "4.30.0",
3
+ "version": "4.31.0-next.10",
4
4
  "description": "Contains components for editing code in different languages. The currently supported languages are html, css, json, TypeScript, JavaScript, and Arcade.",
5
5
  "keywords": [
6
6
  "ArcGIS",
@@ -37,64 +37,70 @@
37
37
  "build:components": "stencil build",
38
38
  "build:components:dev": "stencil build --dev",
39
39
  "build:monaco-workers": "tsx ./scripts/build-monaco-workers.ts",
40
- "test": "yarn build:test && stencil test --spec --no-build",
40
+ "build:peggy": "peggy --plugin ../../../node_modules/ts-pegjs/dist/tspegjs -o ./src/utils/sql-expr-monaco/PeggyGrammar/sql92grammar.ts ./src/utils/sql-expr-monaco/PeggyGrammar/sql92grammar.peggy",
41
+ "test": "stencil test --spec --no-build",
41
42
  "test:e2e": "stencil test --e2e",
43
+ "test:spec": "stencil test --spec",
42
44
  "test.watch": "stencil test --spec --e2e --watchAll",
43
45
  "clean": "rimraf ./node_modules ./storybook-static ./storybook-static-external ./turbo ./dist ./www",
44
- "pre": "rimraf ./dist ./www && yarn awc build-t9n-types && yarn build:monaco-workers",
46
+ "pre": "rimraf ./dist ./www && yarn build:monaco-workers",
45
47
  "pre:dev": "yarn pre --sourcemap && yarn awc create-mock-doc",
46
48
  "update:storybook": "npx storybook@latest upgrade",
47
49
  "generate": "stencil generate"
48
50
  },
49
51
  "dependencies": {
50
- "@arcgis/arcade-languageservice": "4.30.0",
51
- "@arcgis/components-controllers": "4.30.0",
52
- "@arcgis/components-utils": "4.30.0",
52
+ "@arcgis/arcade-languageservice": "4.31.0-next.10",
53
+ "@arcgis/components-controllers": "4.31.0-next.10",
54
+ "@arcgis/components-utils": "4.31.0-next.10",
55
+ "@arcgis/languages-api-utils": "4.31.0-next.10",
53
56
  "@stencil/core": "4.17.1",
54
57
  "monaco-editor": "0.45.0",
55
58
  "vscode-languageserver-types": "^3.17.5"
56
59
  },
57
60
  "devDependencies": {
58
- "@arcgis/components-plugins": "4.30.0",
59
- "@arcgis/core": "~4.30.0",
60
- "@arcgis/core-adapter": "4.30.0",
61
- "@arcgis/storybook-utils": "4.30.0",
62
- "@arcgis/typescript-config": "4.30.0",
61
+ "@arcgis/components-plugins": "4.31.0-next.10",
62
+ "@arcgis/core": ">=4.31.0-next <4.32",
63
+ "@arcgis/core-adapter": "4.31.0-next.10",
64
+ "@arcgis/storybook-utils": "4.31.0-next.10",
65
+ "@arcgis/typescript-config": "4.31.0-next.10",
63
66
  "@esri/calcite-components": "^2.8.0",
64
67
  "@stencil/angular-output-target": "0.8.4",
65
68
  "@stencil/react-output-target": "0.5.3",
66
69
  "@stencil/sass": "^3.0.0",
67
70
  "@types/estree": "^1.0.0",
68
71
  "@types/jest": "^29.5.0",
72
+ "@types/luxon": "^3",
69
73
  "@types/marked": "^5.0.2",
70
74
  "@types/node": "^20.2.5",
71
75
  "@types/postcss-url": "^10.0.0",
72
76
  "@types/resize-observer-browser": "^0.1.7",
73
77
  "chromatic": "^11.3.0",
74
- "esbuild": "^0.20.2",
78
+ "esbuild": "^0.21.4",
75
79
  "eslint": "^8.55.0",
76
80
  "jest": "^29.5.0",
77
81
  "jest-cli": "^29.5.0",
78
82
  "magic-string": "^0.30.0",
79
83
  "marked": "^5.1.2",
84
+ "peggy": "3.0.2",
80
85
  "postcss": ">=8.4.31",
81
86
  "postcss-discard-comments": "^5.1.2",
82
87
  "postcss-url": "^10.1.3",
83
88
  "puppeteer": "^21.9.0",
84
89
  "resolve-pkg": "^2.0.0",
85
90
  "rimraf": "^5.0.0",
86
- "rollup": "^3.25.0",
91
+ "rollup": "^4.13.0",
87
92
  "rollup-plugin-import-css": "^3.1.0",
88
93
  "rollup-plugin-node-polyfills": "^0.2.1",
89
- "storybook": "^8.0.5",
94
+ "storybook": "^8.1.10",
95
+ "ts-pegjs": "^4.2.1",
90
96
  "tsx": "^4.7.0",
91
- "typescript": "~5.3.0",
97
+ "typescript": "~5.4.0",
92
98
  "vscode-languageserver-textdocument": "^1.0.11",
93
99
  "yargs": "^17.1.1"
94
100
  },
95
101
  "peerDependencies": {
96
- "@arcgis/core": "~4.30.0",
102
+ "@arcgis/core": ">=4.31.0-next <4.32",
97
103
  "@esri/calcite-components": "^2.8.0"
98
104
  },
99
- "gitHead": "bf88b45e5e8b66e13f28083d97cd8a68375778e6"
105
+ "gitHead": "9da75874fced6f0633cf2052218547d2c4627ee2"
100
106
  }
@@ -1,6 +0,0 @@
1
- /*!
2
- * All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
- * See https://js.arcgis.com/4.30/esri/copyright.txt for details.
4
- * v4.30.0
5
- */
6
- import{E as e,e as t,M as s,R as n,m as r,F as i,G as o}from"./p-69ef969a.js";import"./p-ed5c78ce.js";var a=[[],[],[]];["++","--"].forEach((e=>a[e.length-1]?.push(e))),["-","+","!","~"].forEach((e=>a[e.length-1]?.push(e))),["||","&&"].forEach((e=>a[e.length-1]?.push(e))),["=","/=","*=","%=","+=","-="].forEach((e=>a[e.length-1]?.push(e))),["|","&",">>","<<",">>>","^","==","!=","<","<=",">",">=","+","-","*","/","%"].forEach((e=>a[e.length-1]?.push(e)));var c=Object.values({Break:"break",Continue:"continue",Else:"else",For:"for",From:"from",Function:"function",If:"if",Import:"import",Export:"export",In:"in",Return:"return",Var:"var",While:"while"});Object.values({False:"false",Null:"null",True:"true"}).map((t=>({label:t,kind:e.exports.CompletionItemKind.Constant}))),c.map((t=>({label:t,kind:e.exports.CompletionItemKind.Keyword})));const u={wordPattern:/(-?\d*\.\d\w*)|([^`~!#%\^&\*\(\)\-=\+\[\{\]\}\\\|;:'",\.<>\/\?\s]+)/gu,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string","comment"]},{open:"`",close:"`",notIn:["string","comment"]}],autoCloseBefore:";:.,=}])` \n\t",folding:{markers:{start:/^\s*\/\/\s*#?region\b/u,end:/^\s*\/\/\s*#?endregion\b/u}},indentationRules:{decreaseIndentPattern:/^((?!.*?\/\*).*\*\/)?\s*[\}\]\)].*$/u,increaseIndentPattern:/^((?!\/\/).)*(\{[^}"'`]*|\([^)"'`]*|\[[^\]"'`]*)$/u}},l={defaultToken:"invalid",tokenPostfix:".arc",ignoreCase:!0,keywords:c.filter((e=>"from"!==e)),operators:["<=",">=","==","!=","+","-","*","/","%","++","--","<<",">>",">>>","&","|","^","!","~","&&","||","=","+=","-=","*=","**=","/=","%="],constants:["true","false","null"],symbols:/[=><!~?:&|+\-*\/\^%]+/u,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/u,digits:/\d+(_+\d+)*/u,octaldigits:/[0-7]+(_+[0-7]+)*/u,binarydigits:/[0-1]+(_+[0-1]+)*/u,hexdigits:/[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/u,regexpctl:/[(){}\[\]\$\^|\-*+?\.]/u,regexpesc:/\\(?:[bBdDfnrstvwWn0\\\/]|@regexpctl|c[A-Z]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})/u,tokenizer:{root:[[/[{}]/u,"delimiter.bracket"],{include:"common"}],common:[[/import(?=\s)/u,{token:"keyword",next:"@import"}],[/[a-z_$][\w$]*/u,{cases:{"@constants":"constant","@keywords":"keyword","@default":"identifier"}}],{include:"@whitespace"},[/\/(?=([^\\\/]|\\.)+\/([gimsuy]*)(\s*)(\.|;|\/|,|\)|\]|\}|$))/u,{token:"regexp",bracket:"@open",next:"@regexp"}],[/[()\[\]]/u,"@brackets"],[/[<>](?!@symbols)/u,"@brackets"],[/@symbols/u,{cases:{"@operators":"delimiter","@default":""}}],[/(@digits)[eE]([\-+]?(@digits))?/u,"number"],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?/u,"number"],[/0[xX](@hexdigits)/u,"number"],[/0[oO]?(@octaldigits)/u,"number"],[/0[bB](@binarydigits)/u,"number"],[/(@digits)/u,"number"],[/[;,.]/u,"delimiter"],[/"([^"\\]|\\.)*$/u,"string.invalid"],[/'([^'\\]|\\.)*$/u,"string.invalid"],[/"/u,"string","@string_double"],[/'/u,"string","@string_single"],[/`/u,"string","@string_backtick"]],import:[[/import(?=\s)/u,{token:"keyword"}],{include:"@whitespace"},[/[a-z_$][\w$]*/u,"identifier"],{include:"@whitespace"},[/from/u,{token:"keyword",next:"@popall"}]],whitespace:[[/[ \t\r\n]+/u,""],[/\/\*/u,"comment","@comment"],[/\/\/.*$/u,"comment"]],comment:[[/[^\/*]+/u,"comment"],[/\*\//u,"comment","@pop"],[/[\/*]/u,"comment"]],regexp:[[/(\{)(\d+(?:,\d*)?)(\})/u,["regexp.escape.control","regexp.escape.control","regexp.escape.control"]],[/(\[)(\^?)(?=(?:[^\]\\\/]|\\.)+)/u,["regexp.escape.control",{token:"regexp.escape.control",next:"@regexrange"}]],[/(\()(\?:|\?=|\?!)/u,["regexp.escape.control","regexp.escape.control"]],[/[()]/u,"regexp.escape.control"],[/@regexpctl/u,"regexp.escape.control"],[/[^\\\/]/u,"regexp"],[/@regexpesc/u,"regexp.escape"],[/\\\./u,"regexp.invalid"],[/(\/)([gimsuy]*)/u,[{token:"regexp",bracket:"@close",next:"@pop"},"keyword.other"]]],regexrange:[[/-/u,"regexp.escape.control"],[/\^/u,"regexp.invalid"],[/@regexpesc/u,"regexp.escape"],[/[^\]]/u,"regexp"],[/\]/u,{token:"regexp.escape.control",next:"@pop",bracket:"@close"}]],string_double:[[/[^\\"]+/u,"string"],[/@escapes/u,"string.escape"],[/\\./u,"string.escape.invalid"],[/"/u,"string","@pop"]],string_single:[[/[^\\']+/u,"string"],[/@escapes/u,"string.escape"],[/\\./u,"string.escape.invalid"],[/'/u,"string","@pop"]],string_backtick:[[/\$\{/u,{token:"delimiter.bracket",next:"@bracketCounting"}],[/[^\\`$]+/u,"string"],[/@escapes/u,"string.escape"],[/\\./u,"string.escape.invalid"],[/`/u,"string","@pop"]],bracketCounting:[[/\{/u,"delimiter.bracket","@bracketCounting"],[/\}/u,"delimiter.bracket","@pop"],{include:"common"}]}};class g{constructor(e,s,{defaults:n,diagnosticsService:r}){this._languageId=e,this._worker=s,this._disposables=[],this._listener=new Map,this._diagnosticsService=r,this._defaults=n;const o=e=>{const t=e.getLanguageId();if(t!==this._languageId)return;const s=i((()=>{this._doValidate(e,t).catch((e=>{throw e}))}));this._listener.set(e.uri.toString(),e.onDidChangeContent(s)),this._doValidate(e,t).catch(console.error)},a=e=>{const s=e.uri.toString();t.setModelMarkers(e,this._languageId,[]);const n=this._listener.get(s);n&&(n.dispose(),this._listener.delete(s))};this._disposables.push(t.onDidCreateModel(o)),this._disposables.push(t.onWillDisposeModel((e=>{a(e)}))),this._disposables.push(t.onDidChangeModelLanguage((e=>{a(e.model),o(e.model)}))),this._disposables.push(n.onDidChange((()=>{t.getModels().forEach((e=>{e.getLanguageId()===this._languageId&&(a(e),o(e))}))}))),this._disposables.push(n.onModelContextDidChange((e=>{t.getModels().forEach((t=>{t.getLanguageId()===this._languageId&&t.uri.toString()===e&&this._doValidate(t,this._languageId).catch(console.error)}))}))),this._disposables.push({dispose:()=>{this._listener.forEach((e=>e.dispose())),this._listener.clear()}}),t.getModels().forEach(o)}dispose(){this._disposables.forEach((e=>e.dispose())),this._disposables=[]}async _doValidate(e,s){if(e.isAttachedToEditor())try{const n=await this._worker(e.uri),r=this._defaults.getApiContextForModel(e.uri),i=await n.doValidation(e.uri.toString(),r),o=i.map((e=>{return{severity:p((t=e).severity),startLineNumber:t.range.start.line+1,startColumn:t.range.start.character+1,endLineNumber:t.range.end.line+1,endColumn:t.range.end.character+1,message:t.message};var t}));this._diagnosticsService.fireDiagnosticsChange(e.uri,i),t.setModelMarkers(e,s,o)}catch(e){console.error(e)}}}function p(t){switch(t){case e.exports.DiagnosticSeverity.Error:return s.Error;case e.exports.DiagnosticSeverity.Warning:return s.Warning;case e.exports.DiagnosticSeverity.Information:return s.Info;case e.exports.DiagnosticSeverity.Hint:return s.Hint;default:return s.Info}}function d(e){return new n(e.start.line+1,e.start.character+1,e.end.line+1,e.end.character+1)}function h(e){return{range:d(e.range),text:e.newText}}function m(t){const s=r.CompletionItemKind;switch(t){case e.exports.CompletionItemKind.Text:return s.Text;case e.exports.CompletionItemKind.Method:return s.Method;case e.exports.CompletionItemKind.Function:return s.Function;case e.exports.CompletionItemKind.Constructor:return s.Constructor;case e.exports.CompletionItemKind.Field:return s.Field;case e.exports.CompletionItemKind.Variable:return s.Variable;case e.exports.CompletionItemKind.Class:return s.Class;case e.exports.CompletionItemKind.Interface:return s.Interface;case e.exports.CompletionItemKind.Module:return s.Module;case e.exports.CompletionItemKind.Property:return s.Property;case e.exports.CompletionItemKind.Unit:return s.Unit;case e.exports.CompletionItemKind.Value:return s.Value;case e.exports.CompletionItemKind.Enum:return s.Enum;case e.exports.CompletionItemKind.Keyword:return s.Keyword;case e.exports.CompletionItemKind.Snippet:return s.Snippet;case e.exports.CompletionItemKind.Color:return s.Color;case e.exports.CompletionItemKind.File:return s.File;case e.exports.CompletionItemKind.Reference:return s.Reference;case e.exports.CompletionItemKind.Folder:return s.Folder;case e.exports.CompletionItemKind.EnumMember:return s.EnumMember;case e.exports.CompletionItemKind.Constant:return s.Constant;case e.exports.CompletionItemKind.Struct:return s.Struct;case e.exports.CompletionItemKind.Event:return s.Event;case e.exports.CompletionItemKind.Operator:return s.Operator;case e.exports.CompletionItemKind.TypeParameter:return s.TypeParameter;default:return s.Property}}class x{constructor(e,t){this._worker=e,this._defaults=t,this.triggerCharacters=[".","("]}async provideCompletionItems(t,s){const i=await this._worker(t.uri),o=this._defaults.getApiContextForModel(t.uri),a=await i.doComplete(t.uri.toString(),function(e){return{character:e.column-1,line:e.lineNumber-1}}(s),o),c=t.getWordUntilPosition(s),u=new n(s.lineNumber,c.startColumn,s.lineNumber,c.endColumn),l=a.items.map((t=>{const s={label:t.label,insertText:t.insertText||t.label,sortText:t.sortText,filterText:t.filterText,detail:t.detail,range:u,kind:m(t.kind)};var n;return t.textEdit&&(s.range=void 0!==(n=t.textEdit).insert&&void 0!==n.replace?{insert:d(t.textEdit.insert),replace:d(t.textEdit.replace)}:d(t.textEdit.range),s.insertText=t.textEdit.newText),t.additionalTextEdits&&(s.additionalTextEdits=t.additionalTextEdits.map(h)),t.insertTextFormat===e.exports.InsertTextFormat.Snippet&&(s.insertTextRules=r.CompletionItemInsertTextRule.InsertAsSnippet),t.documentation&&(s.documentation="string"==typeof t.documentation?t.documentation:{supportThemeIcons:!1,value:t.documentation.value,supportHtml:!0}),s}));return{incomplete:a.isIncomplete,suggestions:l}}}class f{constructor(e,t){this._worker=e,this._defaults=t}async provideDocumentFormattingEdits(e){const t=await this._worker(e.uri),s=this._defaults.getApiContextForModel(e.uri.toString());return(await t.doFormat(e.uri.toString(),s)).map((e=>({range:d(e.range),text:e.newText})))}}class k{constructor(e){this._defaults=e,this._worker=null,this._client=null,this._configChangeListener=this._defaults.onDidChange((()=>this.stopWorker()))}dispose(){this._configChangeListener.dispose(),this.stopWorker()}stopWorker(){this._worker&&(this._worker.dispose(),this._worker=null),this._client=null}async _getClientProxy(){if(!this._client){const{languageId:e,languageOptions:s}=this._defaults;this._worker=t.createWebWorker({moduleId:"ArcadeWorker",label:e,createData:{languageId:e,languageOptions:s}}),this._client=this._worker.getProxy()}return await this._client}async getLanguageServiceWorker(...e){const t=await this._getClientProxy();return await(this._worker?.withSyncedResources(e)),t}}let b;async function w(...e){return await new Promise(((t,s)=>{b?t(b(...e)):s(new Error("TypeScript not registered!"))}))}const y=new class{constructor(){this._onDiagnosticsChange=new o}get onDiagnosticsChange(){return this._onDiagnosticsChange.event}fireDiagnosticsChange(e,t){this._onDiagnosticsChange.fire({uri:e,diagnostics:t})}};function v(){return y}function C(e){const t=new k(e),s=async(...e)=>await t.getLanguageServiceWorker(...e);b=s,r.setMonarchTokensProvider(e.languageId,l),r.setLanguageConfiguration(e.languageId,u),r.registerCompletionItemProvider(e.languageId,new x(s,e)),r.registerDocumentFormattingEditProvider(e.languageId,new f(s,e)),new g(e.languageId,s,{defaults:e,diagnosticsService:y})}export{v as getArcadeDiagnosticService,w as getArcadeWorker,C as setupMode}