@arcgis/coding-components 1.0.0-beta.9 → 4.28.0-beta.0

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 (139) hide show
  1. package/dist/arcgis-coding-components/arcgis-coding-components.esm.js +1 -1
  2. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.ar.json +858 -192
  3. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.bg.json +821 -155
  4. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.bs.json +829 -163
  5. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.ca.json +829 -163
  6. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.cs.json +829 -163
  7. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.da.json +829 -163
  8. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.de.json +829 -163
  9. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.el.json +858 -192
  10. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.en.json +853 -187
  11. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.es.json +829 -163
  12. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.et.json +829 -163
  13. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.fi.json +858 -192
  14. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.fr.json +829 -163
  15. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.he.json +858 -192
  16. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.hr.json +829 -163
  17. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.hu.json +829 -163
  18. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.id.json +858 -192
  19. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.it.json +821 -155
  20. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.ja.json +859 -193
  21. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.ko.json +859 -193
  22. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.lt.json +829 -163
  23. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.lv.json +829 -163
  24. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.nb.json +829 -163
  25. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.nl.json +829 -163
  26. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.pl.json +829 -163
  27. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.pt-BR.json +829 -163
  28. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.pt-PT.json +829 -163
  29. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.ro.json +829 -163
  30. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.ru.json +858 -192
  31. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.sk.json +829 -163
  32. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.sl.json +829 -163
  33. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.sr.json +845 -179
  34. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.sv.json +829 -163
  35. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.th.json +858 -192
  36. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.tr.json +858 -192
  37. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.uk.json +858 -192
  38. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.vi.json +858 -192
  39. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.zh-CN.json +859 -193
  40. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.zh-HK.json +859 -193
  41. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.zh-TW.json +859 -193
  42. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.ar.json +1 -2
  43. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.bg.json +1 -2
  44. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.bs.json +1 -2
  45. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.ca.json +1 -2
  46. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.cs.json +1 -2
  47. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.da.json +1 -2
  48. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.de.json +1 -2
  49. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.el.json +1 -2
  50. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.en.json +1 -2
  51. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.es.json +1 -2
  52. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.et.json +1 -2
  53. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.fi.json +1 -2
  54. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.fr.json +1 -2
  55. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.he.json +1 -2
  56. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.hr.json +1 -2
  57. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.hu.json +1 -2
  58. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.id.json +1 -2
  59. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.it.json +1 -2
  60. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.ja.json +1 -2
  61. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.ko.json +1 -2
  62. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.lt.json +1 -2
  63. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.lv.json +1 -2
  64. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.nb.json +1 -2
  65. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.nl.json +1 -2
  66. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.pl.json +1 -2
  67. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.pt-BR.json +1 -2
  68. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.pt-PT.json +1 -2
  69. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.ro.json +1 -2
  70. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.ru.json +1 -2
  71. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.sk.json +1 -2
  72. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.sl.json +1 -2
  73. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.sr.json +1 -2
  74. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.sv.json +1 -2
  75. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.th.json +1 -2
  76. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.tr.json +1 -2
  77. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.uk.json +1 -2
  78. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.vi.json +1 -2
  79. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.zh-CN.json +1 -2
  80. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.zh-HK.json +1 -2
  81. package/dist/arcgis-coding-components/assets/arcade-language/profiles/arcade-profiles.t9n.zh-TW.json +1 -2
  82. package/dist/arcgis-coding-components/index.esm.js +1 -1
  83. package/dist/arcgis-coding-components/p-3af16d99.js +1 -0
  84. package/dist/arcgis-coding-components/{p-ee4aaf72.js → p-46aaf7d4.js} +1 -1
  85. package/dist/arcgis-coding-components/{p-ed254359.js → p-4bd9d791.js} +2 -2
  86. package/dist/arcgis-coding-components/{p-2eee5b07.js → p-73aa96ee.js} +7 -7
  87. package/dist/arcgis-coding-components/{p-63d6d128.js → p-81676e51.js} +1 -1
  88. package/dist/arcgis-coding-components/p-a8a8510a.entry.js +1 -0
  89. package/dist/arcgis-coding-components/{p-616bcc2c.js → p-a9ec2366.js} +1 -1
  90. package/dist/arcgis-coding-components/{p-41feaa6e.js → p-bf7a8d89.js} +1 -1
  91. package/dist/arcgis-coding-components/{p-c14a46af.js → p-f418c117.js} +1 -1
  92. package/dist/arcgis-coding-components/{p-b866ffa3.js → p-f6b45c23.js} +1 -1
  93. package/dist/cjs/{arcade-defaults-f77b7bae.js → arcade-defaults-3bd0c14d.js} +3271 -3169
  94. package/dist/cjs/arcade-mode-070b367b.js +600 -0
  95. package/dist/cjs/arcgis-arcade-api_6.cjs.entry.js +51 -30
  96. package/dist/cjs/{cssMode-c21a8b34.js → cssMode-bb33401a.js} +1 -1
  97. package/dist/cjs/{html-baddeebf.js → html-6a48c22b.js} +1 -1
  98. package/dist/cjs/{htmlMode-3ca73779.js → htmlMode-dd092c6e.js} +1 -1
  99. package/dist/cjs/index.cjs.js +3 -5
  100. package/dist/cjs/{javascript-4226e8d4.js → javascript-06348a03.js} +2 -2
  101. package/dist/cjs/{jsonMode-4496d6b9.js → jsonMode-d987edf0.js} +1 -1
  102. package/dist/cjs/{tsMode-6fa6f2f6.js → tsMode-4c122a19.js} +1 -1
  103. package/dist/cjs/{typescript-5b6bab68.js → typescript-a09007d1.js} +1 -1
  104. package/dist/components/arcade-api.js +3 -2
  105. package/dist/components/arcade-contribution.js +1 -1
  106. package/dist/components/arcade-defaults.js +7 -24
  107. package/dist/components/arcade-mode.js +3 -3
  108. package/dist/components/arcade-results.js +40 -10
  109. package/dist/components/arcade-suggestions.js +2 -1
  110. package/dist/components/arcade-variables.js +2 -2
  111. package/dist/components/arcgis-arcade-editor.js +2 -2
  112. package/dist/components/code-editor.js +9 -2
  113. package/dist/components/fields.js +125 -0
  114. package/dist/components/index.js +1 -7
  115. package/dist/components/index2.js +282 -32
  116. package/dist/components/markdown.js +1 -1
  117. package/dist/components/utilities.js +2 -334
  118. package/dist/esm/{arcade-defaults-24670a1d.js → arcade-defaults-e4176a6a.js} +3270 -3171
  119. package/dist/esm/arcade-mode-e62d056a.js +596 -0
  120. package/dist/esm/arcgis-arcade-api_6.entry.js +49 -28
  121. package/dist/esm/{cssMode-0ae84348.js → cssMode-3544cc9c.js} +1 -1
  122. package/dist/esm/{html-c18864a6.js → html-a801d6a9.js} +1 -1
  123. package/dist/esm/{htmlMode-426699f2.js → htmlMode-fec36926.js} +1 -1
  124. package/dist/esm/index.js +1 -7
  125. package/dist/esm/{javascript-982f2d73.js → javascript-17b4c349.js} +2 -2
  126. package/dist/esm/{jsonMode-170e0a0e.js → jsonMode-f533b728.js} +1 -1
  127. package/dist/esm/{tsMode-99d2e8e5.js → tsMode-49d8893e.js} +1 -1
  128. package/dist/esm/{typescript-de4f8a27.js → typescript-34fa1e83.js} +1 -1
  129. package/dist/types/index.d.ts +2 -4
  130. package/dist/types/utils/arcade-executor.d.ts +35 -3
  131. package/dist/types/utils/arcade-monaco/arcade-defaults.d.ts +6 -0
  132. package/dist/types/utils/fields.d.ts +10 -0
  133. package/dist/types/utils/profile/types.d.ts +2 -2
  134. package/dist/types/utils/utilities.d.ts +0 -6
  135. package/package.json +8 -8
  136. package/dist/arcgis-coding-components/p-4d7cdaf4.js +0 -1
  137. package/dist/arcgis-coding-components/p-7d6c922f.entry.js +0 -1
  138. package/dist/cjs/arcade-mode-4b1d5adc.js +0 -600
  139. package/dist/esm/arcade-mode-dc10ed9f.js +0 -596
@@ -0,0 +1,600 @@
1
+ 'use strict';
2
+
3
+ const arcadeDefaults = require('./arcade-defaults-3bd0c14d.js');
4
+ require('./index-f8a85eb8.js');
5
+
6
+ var ke=(e=>(e.False="false",e.Null="null",e.True="true",e))(ke||{}),Be=(e=>(e.Break="break",e.Continue="continue",e.Else="else",e.For="for",e.From="from",e.Function="function",e.If="if",e.Import="import",e.Export="export",e.In="in",e.Return="return",e.Var="var",e.While="while",e))(Be||{}),d=(e=>(e.AssignmentExpression="AssignmentExpression",e.ArrayExpression="ArrayExpression",e.BlockComment="BlockComment",e.BlockStatement="BlockStatement",e.BinaryExpression="BinaryExpression",e.BreakStatement="BreakStatement",e.CallExpression="CallExpression",e.ContinueStatement="ContinueStatement",e.EmptyStatement="EmptyStatement",e.ExpressionStatement="ExpressionStatement",e.ExportNamedDeclaration="ExportNamedDeclaration",e.ExportSpecifier="ExportSpecifier",e.ForStatement="ForStatement",e.ForInStatement="ForInStatement",e.FunctionDeclaration="FunctionDeclaration",e.Identifier="Identifier",e.IfStatement="IfStatement",e.ImportDeclaration="ImportDeclaration",e.ImportDefaultSpecifier="ImportDefaultSpecifier",e.LineComment="LineComment",e.Literal="Literal",e.LogicalExpression="LogicalExpression",e.MemberExpression="MemberExpression",e.ObjectExpression="ObjectExpression",e.Program="Program",e.Property="Property",e.ReturnStatement="ReturnStatement",e.TemplateElement="TemplateElement",e.TemplateLiteral="TemplateLiteral",e.UnaryExpression="UnaryExpression",e.UpdateExpression="UpdateExpression",e.VariableDeclaration="VariableDeclaration",e.VariableDeclarator="VariableDeclarator",e.WhileStatement="WhileStatement",e))(d||{}),Ie=["++","--"],gt=["-","+","!","~"],xt=["=","/=","*=","%=","+=","-="],Ct=["||","&&"],Hi=["|","&",">>","<<",">>>","^","==","!=","<","<=",">",">=","+","-","*","/","%"],Gi=(e=>(e[e.Unknown=0]="Unknown",e[e.BooleanLiteral=1]="BooleanLiteral",e[e.EOF=2]="EOF",e[e.Identifier=3]="Identifier",e[e.Keyword=4]="Keyword",e[e.NullLiteral=5]="NullLiteral",e[e.NumericLiteral=6]="NumericLiteral",e[e.Punctuator=7]="Punctuator",e[e.StringLiteral=8]="StringLiteral",e[e.Template=10]="Template",e))(Gi||{}),Ki=(e=>(e.InvalidModuleUri="InvalidModuleUri",e.ForInOfLoopInitializer="ForInOfLoopInitializer",e.IdentiferExpected="IdentiferExpected",e.InvalidEscapedReservedWord="InvalidEscapedReservedWord",e.InvalidExpression="InvalidExpression",e.InvalidFunctionIdentifier="InvalidFunctionIdentifier",e.InvalidHexEscapeSequence="InvalidHexEscapeSequence",e.InvalidLeftHandSideInAssignment="InvalidLeftHandSideInAssignment",e.InvalidLeftHandSideInForIn="InvalidLeftHandSideInForIn",e.InvalidTemplateHead="InvalidTemplateHead",e.InvalidVariableAssignment="InvalidVariableAssignment",e.KeyMustBeString="KeyMustBeString",e.NoFunctionInsideBlock="NoFunctionInsideBlock",e.NoFunctionInsideFunction="NoFunctionInsideFunction",e.ModuleExportRootOnly="ModuleExportRootOnly",e.ModuleImportRootOnly="ModuleImportRootOnly",e.PunctuatorExpected="PunctuatorExpected",e.TemplateOctalLiteral="TemplateOctalLiteral",e.UnexpectedBoolean="UnexpectedBoolean",e.UnexpectedEndOfScript="UnexpectedEndOfScript",e.UnexpectedIdentifier="UnexpectedIdentifier",e.UnexpectedKeyword="UnexpectedKeyword",e.UnexpectedNull="UnexpectedNull",e.UnexpectedNumber="UnexpectedNumber",e.UnexpectedPunctuator="UnexpectedPunctuator",e.UnexpectedString="UnexpectedString",e.UnexpectedTemplate="UnexpectedTemplate",e.UnexpectedToken="UnexpectedToken",e))(Ki||{});var M=[[],[],[]];Ie.forEach(e=>M[e.length-1].push(e));gt.forEach(e=>M[e.length-1].push(e));Ct.forEach(e=>M[e.length-1].push(e));xt.forEach(e=>M[e.length-1].push(e));Hi.forEach(e=>M[e.length-1].push(e));var Lt;(function(e){function t(i){return typeof i=="string"}e.is=t;})(Lt||(Lt={}));var _e;(function(e){function t(i){return typeof i=="string"}e.is=t;})(_e||(_e={}));var kt;(function(e){e.MIN_VALUE=-2147483648,e.MAX_VALUE=2147483647;function t(i){return typeof i=="number"&&e.MIN_VALUE<=i&&i<=e.MAX_VALUE}e.is=t;})(kt||(kt={}));var ue;(function(e){e.MIN_VALUE=0,e.MAX_VALUE=2147483647;function t(i){return typeof i=="number"&&e.MIN_VALUE<=i&&i<=e.MAX_VALUE}e.is=t;})(ue||(ue={}));var v;(function(e){function t(r,n){return r===Number.MAX_VALUE&&(r=ue.MAX_VALUE),n===Number.MAX_VALUE&&(n=ue.MAX_VALUE),{line:r,character:n}}e.create=t;function i(r){let n=r;return o.objectLiteral(n)&&o.uinteger(n.line)&&o.uinteger(n.character)}e.is=i;})(v||(v={}));var E;(function(e){function t(r,n,s,a){if(o.uinteger(r)&&o.uinteger(n)&&o.uinteger(s)&&o.uinteger(a))return {start:v.create(r,n),end:v.create(s,a)};if(v.is(r)&&v.is(n))return {start:r,end:n};throw new Error(`Range#create called with invalid arguments[${r}, ${n}, ${s}, ${a}]`)}e.create=t;function i(r){let n=r;return o.objectLiteral(n)&&v.is(n.start)&&v.is(n.end)}e.is=i;})(E||(E={}));var ce;(function(e){function t(r,n){return {uri:r,range:n}}e.create=t;function i(r){let n=r;return o.objectLiteral(n)&&E.is(n.range)&&(o.string(n.uri)||o.undefined(n.uri))}e.is=i;})(ce||(ce={}));var Bt;(function(e){function t(r,n,s,a){return {targetUri:r,targetRange:n,targetSelectionRange:s,originSelectionRange:a}}e.create=t;function i(r){let n=r;return o.objectLiteral(n)&&E.is(n.targetRange)&&o.string(n.targetUri)&&E.is(n.targetSelectionRange)&&(E.is(n.originSelectionRange)||o.undefined(n.originSelectionRange))}e.is=i;})(Bt||(Bt={}));var Oe;(function(e){function t(r,n,s,a){return {red:r,green:n,blue:s,alpha:a}}e.create=t;function i(r){let n=r;return o.objectLiteral(n)&&o.numberRange(n.red,0,1)&&o.numberRange(n.green,0,1)&&o.numberRange(n.blue,0,1)&&o.numberRange(n.alpha,0,1)}e.is=i;})(Oe||(Oe={}));var wt;(function(e){function t(r,n){return {range:r,color:n}}e.create=t;function i(r){let n=r;return o.objectLiteral(n)&&E.is(n.range)&&Oe.is(n.color)}e.is=i;})(wt||(wt={}));var Tt;(function(e){function t(r,n,s){return {label:r,textEdit:n,additionalTextEdits:s}}e.create=t;function i(r){let n=r;return o.objectLiteral(n)&&o.string(n.label)&&(o.undefined(n.textEdit)||j.is(n))&&(o.undefined(n.additionalTextEdits)||o.typedArray(n.additionalTextEdits,j.is))}e.is=i;})(Tt||(Tt={}));var Nt;(function(e){e.Comment="comment",e.Imports="imports",e.Region="region";})(Nt||(Nt={}));var Mt;(function(e){function t(r,n,s,a,u,c){let l={startLine:r,endLine:n};return o.defined(s)&&(l.startCharacter=s),o.defined(a)&&(l.endCharacter=a),o.defined(u)&&(l.kind=u),o.defined(c)&&(l.collapsedText=c),l}e.create=t;function i(r){let n=r;return o.objectLiteral(n)&&o.uinteger(n.startLine)&&o.uinteger(n.startLine)&&(o.undefined(n.startCharacter)||o.uinteger(n.startCharacter))&&(o.undefined(n.endCharacter)||o.uinteger(n.endCharacter))&&(o.undefined(n.kind)||o.string(n.kind))}e.is=i;})(Mt||(Mt={}));var Ve;(function(e){function t(r,n){return {location:r,message:n}}e.create=t;function i(r){let n=r;return o.defined(n)&&ce.is(n.location)&&o.string(n.message)}e.is=i;})(Ve||(Ve={}));var A;(function(e){e.Error=1,e.Warning=2,e.Information=3,e.Hint=4;})(A||(A={}));var Ut;(function(e){e.Unnecessary=1,e.Deprecated=2;})(Ut||(Ut={}));var _t;(function(e){function t(i){let r=i;return o.objectLiteral(r)&&o.string(r.href)}e.is=t;})(_t||(_t={}));var le;(function(e){function t(r,n,s,a,u,c){let l={range:r,message:n};return o.defined(s)&&(l.severity=s),o.defined(a)&&(l.code=a),o.defined(u)&&(l.source=u),o.defined(c)&&(l.relatedInformation=c),l}e.create=t;function i(r){var n;let s=r;return o.defined(s)&&E.is(s.range)&&o.string(s.message)&&(o.number(s.severity)||o.undefined(s.severity))&&(o.integer(s.code)||o.string(s.code)||o.undefined(s.code))&&(o.undefined(s.codeDescription)||o.string((n=s.codeDescription)===null||n===void 0?void 0:n.href))&&(o.string(s.source)||o.undefined(s.source))&&(o.undefined(s.relatedInformation)||o.typedArray(s.relatedInformation,Ve.is))}e.is=i;})(le||(le={}));var V;(function(e){function t(r,n,...s){let a={title:r,command:n};return o.defined(s)&&s.length>0&&(a.arguments=s),a}e.create=t;function i(r){let n=r;return o.defined(n)&&o.string(n.title)&&o.string(n.command)}e.is=i;})(V||(V={}));var j;(function(e){function t(s,a){return {range:s,newText:a}}e.replace=t;function i(s,a){return {range:{start:s,end:s},newText:a}}e.insert=i;function r(s){return {range:s,newText:""}}e.del=r;function n(s){let a=s;return o.objectLiteral(a)&&o.string(a.newText)&&E.is(a.range)}e.is=n;})(j||(j={}));var je;(function(e){function t(r,n,s){let a={label:r};return n!==void 0&&(a.needsConfirmation=n),s!==void 0&&(a.description=s),a}e.create=t;function i(r){let n=r;return o.objectLiteral(n)&&o.string(n.label)&&(o.boolean(n.needsConfirmation)||n.needsConfirmation===void 0)&&(o.string(n.description)||n.description===void 0)}e.is=i;})(je||(je={}));var R;(function(e){function t(i){let r=i;return o.string(r)}e.is=t;})(R||(R={}));var Ot;(function(e){function t(s,a,u){return {range:s,newText:a,annotationId:u}}e.replace=t;function i(s,a,u){return {range:{start:s,end:s},newText:a,annotationId:u}}e.insert=i;function r(s,a){return {range:s,newText:"",annotationId:a}}e.del=r;function n(s){let a=s;return j.is(a)&&(je.is(a.annotationId)||R.is(a.annotationId))}e.is=n;})(Ot||(Ot={}));var Re;(function(e){function t(r,n){return {textDocument:r,edits:n}}e.create=t;function i(r){let n=r;return o.defined(n)&&He.is(n.textDocument)&&Array.isArray(n.edits)}e.is=i;})(Re||(Re={}));var ze;(function(e){function t(r,n,s){let a={kind:"create",uri:r};return n!==void 0&&(n.overwrite!==void 0||n.ignoreIfExists!==void 0)&&(a.options=n),s!==void 0&&(a.annotationId=s),a}e.create=t;function i(r){let n=r;return n&&n.kind==="create"&&o.string(n.uri)&&(n.options===void 0||(n.options.overwrite===void 0||o.boolean(n.options.overwrite))&&(n.options.ignoreIfExists===void 0||o.boolean(n.options.ignoreIfExists)))&&(n.annotationId===void 0||R.is(n.annotationId))}e.is=i;})(ze||(ze={}));var $e;(function(e){function t(r,n,s,a){let u={kind:"rename",oldUri:r,newUri:n};return s!==void 0&&(s.overwrite!==void 0||s.ignoreIfExists!==void 0)&&(u.options=s),a!==void 0&&(u.annotationId=a),u}e.create=t;function i(r){let n=r;return n&&n.kind==="rename"&&o.string(n.oldUri)&&o.string(n.newUri)&&(n.options===void 0||(n.options.overwrite===void 0||o.boolean(n.options.overwrite))&&(n.options.ignoreIfExists===void 0||o.boolean(n.options.ignoreIfExists)))&&(n.annotationId===void 0||R.is(n.annotationId))}e.is=i;})($e||($e={}));var We;(function(e){function t(r,n,s){let a={kind:"delete",uri:r};return n!==void 0&&(n.recursive!==void 0||n.ignoreIfNotExists!==void 0)&&(a.options=n),s!==void 0&&(a.annotationId=s),a}e.create=t;function i(r){let n=r;return n&&n.kind==="delete"&&o.string(n.uri)&&(n.options===void 0||(n.options.recursive===void 0||o.boolean(n.options.recursive))&&(n.options.ignoreIfNotExists===void 0||o.boolean(n.options.ignoreIfNotExists)))&&(n.annotationId===void 0||R.is(n.annotationId))}e.is=i;})(We||(We={}));var qe;(function(e){function t(i){let r=i;return r&&(r.changes!==void 0||r.documentChanges!==void 0)&&(r.documentChanges===void 0||r.documentChanges.every(n=>o.string(n.kind)?ze.is(n)||$e.is(n)||We.is(n):Re.is(n)))}e.is=t;})(qe||(qe={}));var Vt;(function(e){function t(r){return {uri:r}}e.create=t;function i(r){let n=r;return o.defined(n)&&o.string(n.uri)}e.is=i;})(Vt||(Vt={}));var jt;(function(e){function t(r,n){return {uri:r,version:n}}e.create=t;function i(r){let n=r;return o.defined(n)&&o.string(n.uri)&&o.integer(n.version)}e.is=i;})(jt||(jt={}));var He;(function(e){function t(r,n){return {uri:r,version:n}}e.create=t;function i(r){let n=r;return o.defined(n)&&o.string(n.uri)&&(n.version===null||o.integer(n.version))}e.is=i;})(He||(He={}));var Rt;(function(e){function t(r,n,s,a){return {uri:r,languageId:n,version:s,text:a}}e.create=t;function i(r){let n=r;return o.defined(n)&&o.string(n.uri)&&o.string(n.languageId)&&o.integer(n.version)&&o.string(n.text)}e.is=i;})(Rt||(Rt={}));var ee;(function(e){e.PlainText="plaintext",e.Markdown="markdown";function t(i){let r=i;return r===e.PlainText||r===e.Markdown}e.is=t;})(ee||(ee={}));var te;(function(e){function t(i){let r=i;return o.objectLiteral(i)&&ee.is(r.kind)&&o.string(r.value)}e.is=t;})(te||(te={}));var x;(function(e){e.Text=1,e.Method=2,e.Function=3,e.Constructor=4,e.Field=5,e.Variable=6,e.Class=7,e.Interface=8,e.Module=9,e.Property=10,e.Unit=11,e.Value=12,e.Enum=13,e.Keyword=14,e.Snippet=15,e.Color=16,e.File=17,e.Reference=18,e.Folder=19,e.EnumMember=20,e.Constant=21,e.Struct=22,e.Event=23,e.Operator=24,e.TypeParameter=25;})(x||(x={}));var y;(function(e){e.PlainText=1,e.Snippet=2;})(y||(y={}));var zt;(function(e){e.Deprecated=1;})(zt||(zt={}));var $t;(function(e){function t(r,n,s){return {newText:r,insert:n,replace:s}}e.create=t;function i(r){let n=r;return n&&o.string(n.newText)&&E.is(n.insert)&&E.is(n.replace)}e.is=i;})($t||($t={}));var P;(function(e){e.asIs=1,e.adjustIndentation=2;})(P||(P={}));var Wt;(function(e){function t(i){let r=i;return r&&(o.string(r.detail)||r.detail===void 0)&&(o.string(r.description)||r.description===void 0)}e.is=t;})(Wt||(Wt={}));var qt;(function(e){function t(i){return {label:i}}e.create=t;})(qt||(qt={}));var Ht;(function(e){function t(i,r){return {items:i||[],isIncomplete:!!r}}e.create=t;})(Ht||(Ht={}));var de;(function(e){function t(r){return r.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}e.fromPlainText=t;function i(r){let n=r;return o.string(n)||o.objectLiteral(n)&&o.string(n.language)&&o.string(n.value)}e.is=i;})(de||(de={}));var Gt;(function(e){function t(i){let r=i;return !!r&&o.objectLiteral(r)&&(te.is(r.contents)||de.is(r.contents)||o.typedArray(r.contents,de.is))&&(i.range===void 0||E.is(i.range))}e.is=t;})(Gt||(Gt={}));var Kt;(function(e){function t(i,r){return r?{label:i,documentation:r}:{label:i}}e.create=t;})(Kt||(Kt={}));var Jt;(function(e){function t(i,r,...n){let s={label:i};return o.defined(r)&&(s.documentation=r),o.defined(n)?s.parameters=n:s.parameters=[],s}e.create=t;})(Jt||(Jt={}));var Xt;(function(e){e.Text=1,e.Read=2,e.Write=3;})(Xt||(Xt={}));var Qt;(function(e){function t(i,r){let n={range:i};return o.number(r)&&(n.kind=r),n}e.create=t;})(Qt||(Qt={}));var Zt;(function(e){e.File=1,e.Module=2,e.Namespace=3,e.Package=4,e.Class=5,e.Method=6,e.Property=7,e.Field=8,e.Constructor=9,e.Enum=10,e.Interface=11,e.Function=12,e.Variable=13,e.Constant=14,e.String=15,e.Number=16,e.Boolean=17,e.Array=18,e.Object=19,e.Key=20,e.Null=21,e.EnumMember=22,e.Struct=23,e.Event=24,e.Operator=25,e.TypeParameter=26;})(Zt||(Zt={}));var Yt;(function(e){e.Deprecated=1;})(Yt||(Yt={}));var ei;(function(e){function t(i,r,n,s,a){let u={name:i,kind:r,location:{uri:s,range:n}};return a&&(u.containerName=a),u}e.create=t;})(ei||(ei={}));var ti;(function(e){function t(i,r,n,s){return s!==void 0?{name:i,kind:r,location:{uri:n,range:s}}:{name:i,kind:r,location:{uri:n}}}e.create=t;})(ti||(ti={}));var ii;(function(e){function t(r,n,s,a,u,c){let l={name:r,detail:n,kind:s,range:a,selectionRange:u};return c!==void 0&&(l.children=c),l}e.create=t;function i(r){let n=r;return n&&o.string(n.name)&&o.number(n.kind)&&E.is(n.range)&&E.is(n.selectionRange)&&(n.detail===void 0||o.string(n.detail))&&(n.deprecated===void 0||o.boolean(n.deprecated))&&(n.children===void 0||Array.isArray(n.children))&&(n.tags===void 0||Array.isArray(n.tags))}e.is=i;})(ii||(ii={}));var ni;(function(e){e.Empty="",e.QuickFix="quickfix",e.Refactor="refactor",e.RefactorExtract="refactor.extract",e.RefactorInline="refactor.inline",e.RefactorRewrite="refactor.rewrite",e.Source="source",e.SourceOrganizeImports="source.organizeImports",e.SourceFixAll="source.fixAll";})(ni||(ni={}));var pe;(function(e){e.Invoked=1,e.Automatic=2;})(pe||(pe={}));var ri;(function(e){function t(r,n,s){let a={diagnostics:r};return n!=null&&(a.only=n),s!=null&&(a.triggerKind=s),a}e.create=t;function i(r){let n=r;return o.defined(n)&&o.typedArray(n.diagnostics,le.is)&&(n.only===void 0||o.typedArray(n.only,o.string))&&(n.triggerKind===void 0||n.triggerKind===pe.Invoked||n.triggerKind===pe.Automatic)}e.is=i;})(ri||(ri={}));var si;(function(e){function t(r,n,s){let a={title:r},u=!0;return typeof n=="string"?(u=!1,a.kind=n):V.is(n)?a.command=n:a.edit=n,u&&s!==void 0&&(a.kind=s),a}e.create=t;function i(r){let n=r;return n&&o.string(n.title)&&(n.diagnostics===void 0||o.typedArray(n.diagnostics,le.is))&&(n.kind===void 0||o.string(n.kind))&&(n.edit!==void 0||n.command!==void 0)&&(n.command===void 0||V.is(n.command))&&(n.isPreferred===void 0||o.boolean(n.isPreferred))&&(n.edit===void 0||qe.is(n.edit))}e.is=i;})(si||(si={}));var ai;(function(e){function t(r,n){let s={range:r};return o.defined(n)&&(s.data=n),s}e.create=t;function i(r){let n=r;return o.defined(n)&&E.is(n.range)&&(o.undefined(n.command)||V.is(n.command))}e.is=i;})(ai||(ai={}));var oi;(function(e){function t(r,n){return {tabSize:r,insertSpaces:n}}e.create=t;function i(r){let n=r;return o.defined(n)&&o.uinteger(n.tabSize)&&o.boolean(n.insertSpaces)}e.is=i;})(oi||(oi={}));var ui;(function(e){function t(r,n,s){return {range:r,target:n,data:s}}e.create=t;function i(r){let n=r;return o.defined(n)&&E.is(n.range)&&(o.undefined(n.target)||o.string(n.target))}e.is=i;})(ui||(ui={}));var ci;(function(e){function t(r,n){return {range:r,parent:n}}e.create=t;function i(r){let n=r;return o.objectLiteral(n)&&E.is(n.range)&&(n.parent===void 0||e.is(n.parent))}e.is=i;})(ci||(ci={}));var li;(function(e){e.namespace="namespace",e.type="type",e.class="class",e.enum="enum",e.interface="interface",e.struct="struct",e.typeParameter="typeParameter",e.parameter="parameter",e.variable="variable",e.property="property",e.enumMember="enumMember",e.event="event",e.function="function",e.method="method",e.macro="macro",e.keyword="keyword",e.modifier="modifier",e.comment="comment",e.string="string",e.number="number",e.regexp="regexp",e.operator="operator",e.decorator="decorator";})(li||(li={}));var di;(function(e){e.declaration="declaration",e.definition="definition",e.readonly="readonly",e.static="static",e.deprecated="deprecated",e.abstract="abstract",e.async="async",e.modification="modification",e.documentation="documentation",e.defaultLibrary="defaultLibrary";})(di||(di={}));var pi;(function(e){function t(i){let r=i;return o.objectLiteral(r)&&(r.resultId===void 0||typeof r.resultId=="string")&&Array.isArray(r.data)&&(r.data.length===0||typeof r.data[0]=="number")}e.is=t;})(pi||(pi={}));var hi;(function(e){function t(r,n){return {range:r,text:n}}e.create=t;function i(r){let n=r;return n!=null&&E.is(n.range)&&o.string(n.text)}e.is=i;})(hi||(hi={}));var fi;(function(e){function t(r,n,s){return {range:r,variableName:n,caseSensitiveLookup:s}}e.create=t;function i(r){let n=r;return n!=null&&E.is(n.range)&&o.boolean(n.caseSensitiveLookup)&&(o.string(n.variableName)||n.variableName===void 0)}e.is=i;})(fi||(fi={}));var mi;(function(e){function t(r,n){return {range:r,expression:n}}e.create=t;function i(r){let n=r;return n!=null&&E.is(n.range)&&(o.string(n.expression)||n.expression===void 0)}e.is=i;})(mi||(mi={}));var Di;(function(e){function t(r,n){return {frameId:r,stoppedLocation:n}}e.create=t;function i(r){let n=r;return o.defined(n)&&E.is(r.stoppedLocation)}e.is=i;})(Di||(Di={}));var Ge;(function(e){e.Type=1,e.Parameter=2;function t(i){return i===1||i===2}e.is=t;})(Ge||(Ge={}));var Ke;(function(e){function t(r){return {value:r}}e.create=t;function i(r){let n=r;return o.objectLiteral(n)&&(n.tooltip===void 0||o.string(n.tooltip)||te.is(n.tooltip))&&(n.location===void 0||ce.is(n.location))&&(n.command===void 0||V.is(n.command))}e.is=i;})(Ke||(Ke={}));var gi;(function(e){function t(r,n,s){let a={position:r,label:n};return s!==void 0&&(a.kind=s),a}e.create=t;function i(r){let n=r;return o.objectLiteral(n)&&v.is(n.position)&&(o.string(n.label)||o.typedArray(n.label,Ke.is))&&(n.kind===void 0||Ge.is(n.kind))&&n.textEdits===void 0||o.typedArray(n.textEdits,j.is)&&(n.tooltip===void 0||o.string(n.tooltip)||te.is(n.tooltip))&&(n.paddingLeft===void 0||o.boolean(n.paddingLeft))&&(n.paddingRight===void 0||o.boolean(n.paddingRight))}e.is=i;})(gi||(gi={}));var xi;(function(e){function t(i){return {kind:"snippet",value:i}}e.createSnippet=t;})(xi||(xi={}));var Ci;(function(e){function t(i,r,n,s){return {insertText:i,filterText:r,range:n,command:s}}e.create=t;})(Ci||(Ci={}));var Ei;(function(e){function t(i){return {items:i}}e.create=t;})(Ei||(Ei={}));var Fi;(function(e){e.Invoked=0,e.Automatic=1;})(Fi||(Fi={}));var Ai;(function(e){function t(i,r){return {range:i,text:r}}e.create=t;})(Ai||(Ai={}));var yi;(function(e){function t(i,r){return {triggerKind:i,selectedCompletionInfo:r}}e.create=t;})(yi||(yi={}));var Pi;(function(e){function t(i){let r=i;return o.objectLiteral(r)&&_e.is(r.uri)&&o.string(r.name)}e.is=t;})(Pi||(Pi={}));var Si;(function(e){function t(s,a,u,c){return new Je(s,a,u,c)}e.create=t;function i(s){let a=s;return !!(o.defined(a)&&o.string(a.uri)&&(o.undefined(a.languageId)||o.string(a.languageId))&&o.uinteger(a.lineCount)&&o.func(a.getText)&&o.func(a.positionAt)&&o.func(a.offsetAt))}e.is=i;function r(s,a){let u=s.getText(),c=n(a,(h,D)=>{let F=h.range.start.line-D.range.start.line;return F===0?h.range.start.character-D.range.start.character:F}),l=u.length;for(let h=c.length-1;h>=0;h--){let D=c[h],F=s.offsetAt(D.range.start),m=s.offsetAt(D.range.end);if(m<=l)u=u.substring(0,F)+D.newText+u.substring(m,u.length);else throw new Error("Overlapping edit");l=F;}return u}e.applyEdits=r;function n(s,a){if(s.length<=1)return s;let u=s.length/2|0,c=s.slice(0,u),l=s.slice(u);n(c,a),n(l,a);let h=0,D=0,F=0;for(;h<c.length&&D<l.length;)a(c[h],l[D])<=0?s[F++]=c[h++]:s[F++]=l[D++];for(;h<c.length;)s[F++]=c[h++];for(;D<l.length;)s[F++]=l[D++];return s}})(Si||(Si={}));var Je=class{constructor(t,i,r,n){this._uri=t,this._languageId=i,this._version=r,this._content=n,this._lineOffsets=void 0;}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(t){if(t){let i=this.offsetAt(t.start),r=this.offsetAt(t.end);return this._content.substring(i,r)}return this._content}update(t,i){this._content=t.text,this._version=i,this._lineOffsets=void 0;}getLineOffsets(){if(this._lineOffsets===void 0){let t=[],i=this._content,r=!0;for(let n=0;n<i.length;n++){r&&(t.push(n),r=!1);let s=i.charAt(n);r=s==="\r"||s===`
7
+ `,s==="\r"&&n+1<i.length&&i.charAt(n+1)===`
8
+ `&&n++;}r&&i.length>0&&t.push(i.length),this._lineOffsets=t;}return this._lineOffsets}positionAt(t){t=Math.max(Math.min(t,this._content.length),0);let i=this.getLineOffsets(),r=0,n=i.length;if(n===0)return v.create(0,t);for(;r<n;){let a=Math.floor((r+n)/2);i[a]>t?n=a:r=a+1;}let s=r-1;return v.create(s,t-i[s])}offsetAt(t){let i=this.getLineOffsets();if(t.line>=i.length)return this._content.length;if(t.line<0)return 0;let r=i[t.line],n=t.line+1<i.length?i[t.line+1]:this._content.length;return Math.max(Math.min(r+t.character,n),r)}get lineCount(){return this.getLineOffsets().length}},o;(function(e){let t=Object.prototype.toString;function i(m){return typeof m<"u"}e.defined=i;function r(m){return typeof m>"u"}e.undefined=r;function n(m){return m===!0||m===!1}e.boolean=n;function s(m){return t.call(m)==="[object String]"}e.string=s;function a(m){return t.call(m)==="[object Number]"}e.number=a;function u(m,G,qi){return t.call(m)==="[object Number]"&&G<=m&&m<=qi}e.numberRange=u;function c(m){return t.call(m)==="[object Number]"&&-2147483648<=m&&m<=2147483647}e.integer=c;function l(m){return t.call(m)==="[object Number]"&&0<=m&&m<=2147483647}e.uinteger=l;function h(m){return t.call(m)==="[object Function]"}e.func=h;function D(m){return m!==null&&typeof m=="object"}e.objectLiteral=D;function F(m,G){return Array.isArray(m)&&m.every(G)}e.typedArray=F;})(o||(o={}));var bi=(C=>(C.AlreadyDefined="AlreadyDefined",C.ApiConflict="ApiConflict",C.AssignedNeverUsed="AssignedNeverUsed",C.DefinedNeverAssigned="DefinedNeverAssigned",C.DefinedNeverUsed="DefinedNeverUsed",C.EmptyBlockStatement="EmptyBlockStatement",C.ExecutionError="ExecutionError",C.InvalidApiFunctionUsage="InvalidApiFunctionUsage",C.InvalidConstantIdentifier="InvalidConstantIdentifier",C.InvalidPropertyIdentifier="InvalidPropertyIdentifier",C.NoArgumentExpected="NoArgumentExpected",C.NotADictionary="NotADictionary",C.NotDefined="NotDefined",C.NotEnoughArguments="NotEnoughArguments",C.ProfileVariablesAreImmutable="ProfileVariablesAreImmutable",C.ProfileVariablesConflict="ProfileVariablesConflict",C.ReservedKeyword="ReservedKeyword",C.TooManyArguments="TooManyArguments",C.UnexpectedEmptyFunction="UnexpectedEmptyFunction",C.UnexpectedPropertyIdentifier="UnexpectedPropertyIdentifier",C.UnknownPropertyIdentifier="UnknownPropertyIdentifier",C))(bi||{});var Ii=Object.values(Be),Li=Object.values(ke);Li.map(e=>({label:e,kind:x.Constant}));Ii.map(e=>({label:e,kind:x.Keyword}));
9
+
10
+ const operators = [
11
+ "<=",
12
+ ">=",
13
+ "==",
14
+ "!=",
15
+ "+",
16
+ "-",
17
+ "*",
18
+ "/",
19
+ "%",
20
+ "++",
21
+ "--",
22
+ "<<",
23
+ ">>",
24
+ ">>>",
25
+ "&",
26
+ "|",
27
+ "^",
28
+ "!",
29
+ "~",
30
+ "&&",
31
+ "||",
32
+ "=",
33
+ "+=",
34
+ "-=",
35
+ "*=",
36
+ "**=",
37
+ "/=",
38
+ "%="
39
+ ];
40
+ const arcadeLanguageConfiguration = {
41
+ // the default separators except `@$`
42
+ wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,
43
+ comments: {
44
+ lineComment: "//",
45
+ blockComment: ["/*", "*/"]
46
+ },
47
+ brackets: [
48
+ ["{", "}"],
49
+ ["[", "]"],
50
+ ["(", ")"]
51
+ ],
52
+ autoClosingPairs: [
53
+ { open: "{", close: "}" },
54
+ { open: "[", close: "]" },
55
+ { open: "(", close: ")" },
56
+ { open: '"', close: '"', notIn: ["string"] },
57
+ { open: "'", close: "'", notIn: ["string", "comment"] },
58
+ { open: "`", close: "`", notIn: ["string", "comment"] }
59
+ ],
60
+ autoCloseBefore: ";:.,=}])` \n\t",
61
+ folding: {
62
+ markers: {
63
+ start: new RegExp("^\\s*//\\s*#?region\\b"),
64
+ end: new RegExp("^\\s*//\\s*#?endregion\\b")
65
+ }
66
+ },
67
+ indentationRules: {
68
+ // ^(.*\*/)?\s*\}.*$
69
+ decreaseIndentPattern: /^((?!.*?\/\*).*\*\/)?\s*[\}\]\)].*$/,
70
+ // ^.*\{[^}"']*$
71
+ increaseIndentPattern: /^((?!\/\/).)*(\{[^}"'`]*|\([^)"'`]*|\[[^\]"'`]*)$/
72
+ }
73
+ };
74
+ const arcadeMonarchLanguage = {
75
+ // Set defaultToken to invalid to see what you do not tokenize yet
76
+ defaultToken: "invalid",
77
+ tokenPostfix: ".arc",
78
+ // Arcade is case insensitive
79
+ ignoreCase: true,
80
+ // builtinFunctions: Array.from(arcadeService.FunctionNames),
81
+ // Arcade keywords. 'from' is a special case as we want to treat it as a keyword in
82
+ // import statement but as an identifer in var statement.
83
+ keywords: Ii.filter((k) => k !== "from"),
84
+ operators,
85
+ constants: ["true", "false", "null"],
86
+ // we include these common regular expressions
87
+ symbols: /[=><!~?:&|+\-*\/\^%]+/,
88
+ escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,
89
+ digits: /\d+(_+\d+)*/,
90
+ octaldigits: /[0-7]+(_+[0-7]+)*/,
91
+ binarydigits: /[0-1]+(_+[0-1]+)*/,
92
+ hexdigits: /[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/,
93
+ regexpctl: /[(){}\[\]\$\^|\-*+?\.]/,
94
+ regexpesc: /\\(?:[bBdDfnrstvwWn0\\\/]|@regexpctl|c[A-Z]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})/,
95
+ // The main tokenizer for our languages
96
+ tokenizer: {
97
+ root: [[/[{}]/, "delimiter.bracket"], { include: "common" }],
98
+ common: [
99
+ // import statement. import followed by a white space
100
+ [/import(?=\s)/, { token: "keyword", next: "@import" }],
101
+ // identifiers and keywords
102
+ [
103
+ /[a-z_$][\w$]*/,
104
+ {
105
+ cases: {
106
+ "@constants": "constant",
107
+ "@keywords": "keyword",
108
+ "@default": "identifier"
109
+ }
110
+ }
111
+ ],
112
+ // whitespace
113
+ { include: "@whitespace" },
114
+ // regular expression: ensure it is terminated before beginning (otherwise it is an opeator)
115
+ [
116
+ /\/(?=([^\\\/]|\\.)+\/([gimsuy]*)(\s*)(\.|;|\/|,|\)|\]|\}|$))/,
117
+ { token: "regexp", bracket: "@open", next: "@regexp" }
118
+ ],
119
+ // delimiters and operators
120
+ [/[()\[\]]/, "@brackets"],
121
+ [/[<>](?!@symbols)/, "@brackets"],
122
+ [
123
+ /@symbols/,
124
+ {
125
+ cases: {
126
+ "@operators": "delimiter",
127
+ "@default": ""
128
+ }
129
+ }
130
+ ],
131
+ // numbers
132
+ [/(@digits)[eE]([\-+]?(@digits))?/, "number"],
133
+ [/(@digits)\.(@digits)([eE][\-+]?(@digits))?/, "number"],
134
+ [/0[xX](@hexdigits)/, "number"],
135
+ [/0[oO]?(@octaldigits)/, "number"],
136
+ [/0[bB](@binarydigits)/, "number"],
137
+ [/(@digits)/, "number"],
138
+ // delimiter: after number because of .\d floats
139
+ [/[;,.]/, "delimiter"],
140
+ // strings
141
+ [/"([^"\\]|\\.)*$/, "string.invalid"],
142
+ [/'([^'\\]|\\.)*$/, "string.invalid"],
143
+ [/"/, "string", "@string_double"],
144
+ [/'/, "string", "@string_single"],
145
+ [/`/, "string", "@string_backtick"]
146
+ ],
147
+ import: [
148
+ // import keyword
149
+ [/import(?=\s)/, { token: "keyword" }],
150
+ // whitespace
151
+ { include: "@whitespace" },
152
+ // identifier
153
+ [/[a-z_$][\w$]*/, "identifier"],
154
+ // whitespace
155
+ { include: "@whitespace" },
156
+ // from keyword
157
+ [/from/, { token: "keyword", next: "@popall" }]
158
+ ],
159
+ whitespace: [
160
+ [/[ \t\r\n]+/, ""],
161
+ [/\/\*/, "comment", "@comment"],
162
+ [/\/\/.*$/, "comment"]
163
+ ],
164
+ comment: [
165
+ [/[^\/*]+/, "comment"],
166
+ [/\*\//, "comment", "@pop"],
167
+ [/[\/*]/, "comment"]
168
+ ],
169
+ // We match regular expression quite precisely
170
+ regexp: [
171
+ [/(\{)(\d+(?:,\d*)?)(\})/, ["regexp.escape.control", "regexp.escape.control", "regexp.escape.control"]],
172
+ [
173
+ /(\[)(\^?)(?=(?:[^\]\\\/]|\\.)+)/,
174
+ ["regexp.escape.control", { token: "regexp.escape.control", next: "@regexrange" }]
175
+ ],
176
+ [/(\()(\?:|\?=|\?!)/, ["regexp.escape.control", "regexp.escape.control"]],
177
+ [/[()]/, "regexp.escape.control"],
178
+ [/@regexpctl/, "regexp.escape.control"],
179
+ [/[^\\\/]/, "regexp"],
180
+ [/@regexpesc/, "regexp.escape"],
181
+ [/\\\./, "regexp.invalid"],
182
+ [/(\/)([gimsuy]*)/, [{ token: "regexp", bracket: "@close", next: "@pop" }, "keyword.other"]]
183
+ ],
184
+ regexrange: [
185
+ [/-/, "regexp.escape.control"],
186
+ [/\^/, "regexp.invalid"],
187
+ [/@regexpesc/, "regexp.escape"],
188
+ [/[^\]]/, "regexp"],
189
+ [/\]/, { token: "regexp.escape.control", next: "@pop", bracket: "@close" }]
190
+ ],
191
+ string_double: [
192
+ [/[^\\"]+/, "string"],
193
+ [/@escapes/, "string.escape"],
194
+ [/\\./, "string.escape.invalid"],
195
+ [/"/, "string", "@pop"]
196
+ ],
197
+ string_single: [
198
+ [/[^\\']+/, "string"],
199
+ [/@escapes/, "string.escape"],
200
+ [/\\./, "string.escape.invalid"],
201
+ [/'/, "string", "@pop"]
202
+ ],
203
+ string_backtick: [
204
+ [/\$\{/, { token: "delimiter.bracket", next: "@bracketCounting" }],
205
+ [/[^\\`$]+/, "string"],
206
+ [/@escapes/, "string.escape"],
207
+ [/\\./, "string.escape.invalid"],
208
+ [/`/, "string", "@pop"]
209
+ ],
210
+ bracketCounting: [
211
+ [/\{/, "delimiter.bracket", "@bracketCounting"],
212
+ [/\}/, "delimiter.bracket", "@pop"],
213
+ { include: "common" }
214
+ ]
215
+ }
216
+ };
217
+
218
+ //#region Diagnostic
219
+ class DiagnosticsAdapter {
220
+ constructor(_languageId, _worker, { defaults, diagnosticsService }) {
221
+ this._languageId = _languageId;
222
+ this._worker = _worker;
223
+ this._disposables = [];
224
+ this._listener = Object.create(null);
225
+ this._diagnosticsService = diagnosticsService;
226
+ this._defaults = defaults;
227
+ const onModelAdd = (model) => {
228
+ const languageId = model.getLanguageId();
229
+ if (languageId !== this._languageId) {
230
+ return;
231
+ }
232
+ let handle;
233
+ this._listener[model.uri.toString()] = model.onDidChangeContent(() => {
234
+ window.clearTimeout(handle);
235
+ handle = window.setTimeout(() => this._doValidate(model, languageId), 500);
236
+ });
237
+ this._doValidate(model, languageId);
238
+ };
239
+ const onModelRemoved = (model) => {
240
+ const uriStr = model.uri.toString();
241
+ arcadeDefaults.editor.setModelMarkers(model, this._languageId, []);
242
+ const listener = this._listener[uriStr];
243
+ if (listener) {
244
+ listener.dispose();
245
+ delete this._listener[uriStr];
246
+ }
247
+ };
248
+ this._disposables.push(arcadeDefaults.editor.onDidCreateModel(onModelAdd));
249
+ this._disposables.push(arcadeDefaults.editor.onWillDisposeModel((model) => {
250
+ onModelRemoved(model);
251
+ }));
252
+ this._disposables.push(arcadeDefaults.editor.onDidChangeModelLanguage((event) => {
253
+ onModelRemoved(event.model);
254
+ onModelAdd(event.model);
255
+ }));
256
+ this._disposables.push(defaults.onDidChange(() => {
257
+ arcadeDefaults.editor.getModels().forEach((model) => {
258
+ if (model.getLanguageId() === this._languageId) {
259
+ onModelRemoved(model);
260
+ onModelAdd(model);
261
+ }
262
+ });
263
+ }));
264
+ this._disposables.push(defaults.onModelContextDidChange((key) => {
265
+ arcadeDefaults.editor.getModels().forEach((model) => {
266
+ if (model.getLanguageId() === this._languageId && model.uri.toString() === key) {
267
+ this._doValidate(model, this._languageId);
268
+ }
269
+ });
270
+ }));
271
+ this._disposables.push({
272
+ dispose: () => {
273
+ for (const key in this._listener) {
274
+ this._listener[key].dispose();
275
+ }
276
+ }
277
+ });
278
+ arcadeDefaults.editor.getModels().forEach(onModelAdd);
279
+ }
280
+ dispose() {
281
+ this._disposables.forEach((d) => d && d.dispose());
282
+ this._disposables = [];
283
+ }
284
+ async _doValidate(model, languageId) {
285
+ if (!model.isAttachedToEditor()) {
286
+ return;
287
+ }
288
+ try {
289
+ const workerProxy = await this._worker(model.uri);
290
+ const context = this._defaults.getApiContextForModel(model.uri);
291
+ const diagnostics = await workerProxy.doValidation(model.uri.toString(), context);
292
+ const markers = diagnostics.map((d) => toMarker(model.uri, d));
293
+ this._diagnosticsService.fireDiagnosticsChange(model.uri, diagnostics);
294
+ arcadeDefaults.editor.setModelMarkers(model, languageId, markers);
295
+ }
296
+ catch (err) {
297
+ console.error(err);
298
+ }
299
+ }
300
+ }
301
+ function toSeverity(languageServiceSeverity) {
302
+ switch (languageServiceSeverity) {
303
+ case arcadeDefaults.main.DiagnosticSeverity.Error:
304
+ return arcadeDefaults.MarkerSeverity.Error;
305
+ case arcadeDefaults.main.DiagnosticSeverity.Warning:
306
+ return arcadeDefaults.MarkerSeverity.Warning;
307
+ case arcadeDefaults.main.DiagnosticSeverity.Information:
308
+ return arcadeDefaults.MarkerSeverity.Info;
309
+ case arcadeDefaults.main.DiagnosticSeverity.Hint:
310
+ return arcadeDefaults.MarkerSeverity.Hint;
311
+ default:
312
+ return arcadeDefaults.MarkerSeverity.Info;
313
+ }
314
+ }
315
+ function toMarker(_resource, diag) {
316
+ // Diagnostics positions are zero-based, MarkerData are 1-based
317
+ return {
318
+ severity: toSeverity(diag.severity),
319
+ startLineNumber: diag.range.start.line + 1,
320
+ startColumn: diag.range.start.character + 1,
321
+ endLineNumber: diag.range.end.line + 1,
322
+ endColumn: diag.range.end.character + 1,
323
+ message: diag.message
324
+ };
325
+ }
326
+ //#endregion
327
+ //#region Completion
328
+ function fromPosition(position) {
329
+ // Language service is zero based
330
+ return { character: position.column - 1, line: position.lineNumber - 1 };
331
+ }
332
+ function toRange(range) {
333
+ return new arcadeDefaults.Range(range.start.line + 1, range.start.character + 1, range.end.line + 1, range.end.character + 1);
334
+ }
335
+ function toTextEdit(textEdit) {
336
+ return {
337
+ range: toRange(textEdit.range),
338
+ text: textEdit.newText
339
+ };
340
+ }
341
+ function isInsertReplaceEdit(edit) {
342
+ return (typeof edit.insert !== "undefined" && typeof edit.replace !== "undefined");
343
+ }
344
+ function toCompletionItemKind(kind) {
345
+ const mItemKind = arcadeDefaults.languages.CompletionItemKind;
346
+ switch (kind) {
347
+ case arcadeDefaults.main.CompletionItemKind.Text:
348
+ return mItemKind.Text;
349
+ case arcadeDefaults.main.CompletionItemKind.Method:
350
+ return mItemKind.Method;
351
+ case arcadeDefaults.main.CompletionItemKind.Function:
352
+ return mItemKind.Function;
353
+ case arcadeDefaults.main.CompletionItemKind.Constructor:
354
+ return mItemKind.Constructor;
355
+ case arcadeDefaults.main.CompletionItemKind.Field:
356
+ return mItemKind.Field;
357
+ case arcadeDefaults.main.CompletionItemKind.Variable:
358
+ return mItemKind.Variable;
359
+ case arcadeDefaults.main.CompletionItemKind.Class:
360
+ return mItemKind.Class;
361
+ case arcadeDefaults.main.CompletionItemKind.Interface:
362
+ return mItemKind.Interface;
363
+ case arcadeDefaults.main.CompletionItemKind.Module:
364
+ return mItemKind.Module;
365
+ case arcadeDefaults.main.CompletionItemKind.Property:
366
+ return mItemKind.Property;
367
+ case arcadeDefaults.main.CompletionItemKind.Unit:
368
+ return mItemKind.Unit;
369
+ case arcadeDefaults.main.CompletionItemKind.Value:
370
+ return mItemKind.Value;
371
+ case arcadeDefaults.main.CompletionItemKind.Enum:
372
+ return mItemKind.Enum;
373
+ case arcadeDefaults.main.CompletionItemKind.Keyword:
374
+ return mItemKind.Keyword;
375
+ case arcadeDefaults.main.CompletionItemKind.Snippet:
376
+ return mItemKind.Snippet;
377
+ case arcadeDefaults.main.CompletionItemKind.Color:
378
+ return mItemKind.Color;
379
+ case arcadeDefaults.main.CompletionItemKind.File:
380
+ return mItemKind.File;
381
+ case arcadeDefaults.main.CompletionItemKind.Reference:
382
+ return mItemKind.Reference;
383
+ case arcadeDefaults.main.CompletionItemKind.Folder:
384
+ return mItemKind.Folder;
385
+ case arcadeDefaults.main.CompletionItemKind.EnumMember:
386
+ return mItemKind.EnumMember;
387
+ case arcadeDefaults.main.CompletionItemKind.Constant:
388
+ return mItemKind.Constant;
389
+ case arcadeDefaults.main.CompletionItemKind.Struct:
390
+ return mItemKind.Struct;
391
+ case arcadeDefaults.main.CompletionItemKind.Event:
392
+ return mItemKind.Event;
393
+ case arcadeDefaults.main.CompletionItemKind.Operator:
394
+ return mItemKind.Operator;
395
+ case arcadeDefaults.main.CompletionItemKind.TypeParameter:
396
+ return mItemKind.TypeParameter;
397
+ }
398
+ return mItemKind.Property;
399
+ }
400
+ class CompletionProvider {
401
+ constructor(_worker, _defaults) {
402
+ this._worker = _worker;
403
+ this._defaults = _defaults;
404
+ this.triggerCharacters = [".", "("];
405
+ }
406
+ async provideCompletionItems(model, position
407
+ // _context: languages.CompletionContext,
408
+ // _token: CancellationToken,
409
+ ) {
410
+ const worker = await this._worker(model.uri);
411
+ const context = this._defaults.getApiContextForModel(model.uri);
412
+ const completionList = await worker.doComplete(model.uri.toString(), fromPosition(position), context);
413
+ if (!completionList) {
414
+ return;
415
+ }
416
+ const wordInfo = model.getWordUntilPosition(position);
417
+ const wordRange = new arcadeDefaults.Range(position.lineNumber, wordInfo.startColumn, position.lineNumber, wordInfo.endColumn);
418
+ const items = completionList.items.map((entry) => {
419
+ const item = {
420
+ label: entry.label,
421
+ insertText: entry.insertText || entry.label,
422
+ sortText: entry.sortText,
423
+ filterText: entry.filterText,
424
+ detail: entry.detail,
425
+ range: wordRange,
426
+ kind: toCompletionItemKind(entry.kind)
427
+ };
428
+ if (entry.textEdit) {
429
+ if (isInsertReplaceEdit(entry.textEdit)) {
430
+ item.range = {
431
+ insert: toRange(entry.textEdit.insert),
432
+ replace: toRange(entry.textEdit.replace)
433
+ };
434
+ }
435
+ else {
436
+ item.range = toRange(entry.textEdit.range);
437
+ }
438
+ item.insertText = entry.textEdit.newText;
439
+ }
440
+ if (entry.additionalTextEdits) {
441
+ item.additionalTextEdits = entry.additionalTextEdits.map(toTextEdit);
442
+ }
443
+ if (entry.insertTextFormat === arcadeDefaults.main.InsertTextFormat.Snippet) {
444
+ item.insertTextRules = arcadeDefaults.languages.CompletionItemInsertTextRule.InsertAsSnippet;
445
+ }
446
+ if (entry.documentation) {
447
+ if (typeof entry.documentation === "string") {
448
+ item.documentation = entry.documentation;
449
+ }
450
+ else {
451
+ item.documentation = {
452
+ supportThemeIcons: false,
453
+ value: entry.documentation.value,
454
+ supportHtml: true
455
+ };
456
+ }
457
+ }
458
+ return item;
459
+ });
460
+ return {
461
+ incomplete: completionList.isIncomplete,
462
+ suggestions: items
463
+ };
464
+ }
465
+ }
466
+ //#endregion
467
+ //#region Formatter
468
+ class FormattingProvider {
469
+ constructor(_worker, _defaults) {
470
+ this._worker = _worker;
471
+ this._defaults = _defaults;
472
+ }
473
+ async provideDocumentFormattingEdits(model
474
+ // _options: languages.FormattingOptions,
475
+ // _token: CancellationToken,
476
+ ) {
477
+ const worker = await this._worker(model.uri);
478
+ const context = this._defaults.getApiContextForModel(model.uri.toString());
479
+ const edits = await worker.doFormat(model.uri.toString(), context);
480
+ if (!edits) {
481
+ return [];
482
+ }
483
+ return edits.map((e) => ({ range: toRange(e.range), text: e.newText }));
484
+ }
485
+ }
486
+ //#endregion
487
+
488
+ /**
489
+ * Manager to create our arcade worker and client proxy
490
+ */
491
+ class WorkerManager {
492
+ constructor(_defaults) {
493
+ this._defaults = _defaults;
494
+ this._worker = null;
495
+ this._client = null;
496
+ // Observes the arcade defaults. If modified then stop the worker.
497
+ this._configChangeListener = this._defaults.onDidChange(() => this.stopWorker());
498
+ }
499
+ dispose() {
500
+ this._configChangeListener.dispose();
501
+ this.stopWorker();
502
+ }
503
+ stopWorker() {
504
+ if (this._worker) {
505
+ this._worker.dispose();
506
+ this._worker = null;
507
+ }
508
+ this._client = null;
509
+ }
510
+ _getClientProxy() {
511
+ // We used createWebWorker to create or run the web worker if it isn’t already created.
512
+ // Otherwise, we get and return the proxy client.
513
+ if (!this._client) {
514
+ const { languageId, languageOptions } = this._defaults;
515
+ this._worker = arcadeDefaults.editor.createWebWorker({
516
+ moduleId: "ArcadeWorker",
517
+ label: languageId,
518
+ createData: {
519
+ languageId,
520
+ languageOptions
521
+ }
522
+ });
523
+ this._client = this._worker.getProxy();
524
+ }
525
+ return this._client;
526
+ }
527
+ async getLanguageServiceWorker(...resources) {
528
+ const _client = await this._getClientProxy();
529
+ await this._worker?.withSyncedResources(resources);
530
+ return _client;
531
+ }
532
+ }
533
+
534
+ let arcadeWorker;
535
+ /**
536
+ * Returns the arcade worker for the model uris.
537
+ * @param uris The model uris for which to get the worker.
538
+ * @returns The arcade worker.
539
+ */
540
+ async function getArcadeWorker(...uris) {
541
+ return new Promise((resolve, reject) => {
542
+ if (!arcadeWorker) {
543
+ return reject("TypeScript not registered!");
544
+ }
545
+ resolve(arcadeWorker(...uris));
546
+ });
547
+ }
548
+ /**
549
+ * The Arcade Language Diagnostic Service.
550
+ * Consumers can listen to the diagnostics change event to get notified when the diagnostics change.
551
+ */
552
+ class ArcadeDiagnosticService {
553
+ constructor() {
554
+ this._onDiagnosticsChange = new arcadeDefaults.Emitter();
555
+ }
556
+ /**
557
+ * An event to signal changes to the diagnostics.
558
+ * The event value is the uri string and the diagnostics.
559
+ */
560
+ get onDiagnosticsChange() {
561
+ return this._onDiagnosticsChange.event;
562
+ }
563
+ /**
564
+ * Fires the diagnostics change event.
565
+ * @param uri The uri of the model for which the diagnostics changed.
566
+ * @param diagnostics The diagnostics for the model.
567
+ */
568
+ fireDiagnosticsChange(uri, diagnostics) {
569
+ this._onDiagnosticsChange.fire({ uri, diagnostics });
570
+ }
571
+ }
572
+ const arcadeDiagnosticService = new ArcadeDiagnosticService();
573
+ /**
574
+ * Get the Arcade Diagnostic Service.
575
+ * @returns The Arcade Language Diagnostic Service.
576
+ */
577
+ function getArcadeDiagnosticService() {
578
+ return arcadeDiagnosticService;
579
+ }
580
+ function setupMode(arcadeDefaults$1) {
581
+ const client = new WorkerManager(arcadeDefaults$1);
582
+ const workerAccessor = (...uris) => client.getLanguageServiceWorker(...uris);
583
+ arcadeWorker = workerAccessor;
584
+ // Use the arcade Monarch Json to define the highlighting
585
+ arcadeDefaults.languages.setMonarchTokensProvider(arcadeDefaults$1.languageId, arcadeMonarchLanguage);
586
+ arcadeDefaults.languages.setLanguageConfiguration(arcadeDefaults$1.languageId, arcadeLanguageConfiguration);
587
+ // Creates and registers a Completion Adapter
588
+ arcadeDefaults.languages.registerCompletionItemProvider(arcadeDefaults$1.languageId, new CompletionProvider(workerAccessor, arcadeDefaults$1));
589
+ // Creates and registers a Formatter
590
+ arcadeDefaults.languages.registerDocumentFormattingEditProvider(arcadeDefaults$1.languageId, new FormattingProvider(workerAccessor, arcadeDefaults$1));
591
+ // Creates a Diagnostic Adapter
592
+ new DiagnosticsAdapter(arcadeDefaults$1.languageId, workerAccessor, {
593
+ defaults: arcadeDefaults$1,
594
+ diagnosticsService: arcadeDiagnosticService
595
+ });
596
+ }
597
+
598
+ exports.getArcadeDiagnosticService = getArcadeDiagnosticService;
599
+ exports.getArcadeWorker = getArcadeWorker;
600
+ exports.setupMode = setupMode;