@arcgis/coding-components 4.29.0-beta.61 → 4.29.0-beta.63

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 (122) 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 +3 -3
  3. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.bg.json +3 -3
  4. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.bs.json +3 -3
  5. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.ca.json +3 -3
  6. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.cs.json +3 -3
  7. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.da.json +3 -3
  8. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.de.json +3 -3
  9. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.el.json +3 -3
  10. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.es.json +3 -3
  11. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.et.json +3 -3
  12. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.fi.json +3 -3
  13. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.fr.json +3 -3
  14. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.he.json +3 -3
  15. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.hr.json +3 -3
  16. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.hu.json +3 -3
  17. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.id.json +3 -3
  18. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.it.json +3 -3
  19. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.ja.json +3 -3
  20. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.ko.json +3 -3
  21. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.lt.json +3 -3
  22. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.lv.json +3 -3
  23. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.nb.json +3 -3
  24. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.nl.json +3 -3
  25. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.pl.json +3 -3
  26. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.pt-BR.json +3 -3
  27. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.pt-PT.json +3 -3
  28. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.ro.json +3 -3
  29. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.ru.json +3 -3
  30. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.sk.json +3 -3
  31. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.sl.json +3 -3
  32. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.sr.json +3 -3
  33. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.sv.json +3 -3
  34. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.th.json +3 -3
  35. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.tr.json +3 -3
  36. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.uk.json +3 -3
  37. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.vi.json +3 -3
  38. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.zh-CN.json +3 -3
  39. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.zh-HK.json +3 -3
  40. package/dist/arcgis-coding-components/assets/arcade-language/api/arcade-api.t9n.zh-TW.json +3 -3
  41. package/dist/arcgis-coding-components/assets/code-editor/arcade.worker.js +23 -23
  42. package/dist/arcgis-coding-components/assets/code-editor/css.worker.js +30 -30
  43. package/dist/arcgis-coding-components/assets/code-editor/editor.worker.js +7 -7
  44. package/dist/arcgis-coding-components/assets/code-editor/html.worker.js +18 -18
  45. package/dist/arcgis-coding-components/assets/code-editor/json.worker.js +20 -20
  46. package/dist/arcgis-coding-components/assets/code-editor/ts.worker.js +77 -77
  47. package/dist/arcgis-coding-components/index.esm.js +1 -1
  48. package/dist/arcgis-coding-components/{p-cfff9500.js → p-009eaccf.js} +1 -1
  49. package/dist/arcgis-coding-components/{p-2bd81bb5.js → p-2a665136.js} +2 -2
  50. package/dist/arcgis-coding-components/p-3ba4deea.js +1 -0
  51. package/dist/arcgis-coding-components/{p-4dce7d14.js → p-595d9a06.js} +2 -2
  52. package/dist/arcgis-coding-components/{p-665d75bc.js → p-7b6af57c.js} +2 -2
  53. package/dist/arcgis-coding-components/p-7d5fcf2e.js +63 -0
  54. package/dist/arcgis-coding-components/{p-e26e9f42.js → p-989439a0.js} +2 -2
  55. package/dist/arcgis-coding-components/{p-4e2e25e0.js → p-9b4a0643.js} +2 -2
  56. package/dist/arcgis-coding-components/{p-2e47d2b1.js → p-d7ca1083.js} +2 -2
  57. package/dist/arcgis-coding-components/p-e4efcbd0.entry.js +1 -0
  58. package/dist/arcgis-coding-components/{p-f7369d73.js → p-fcdd0366.js} +2 -2
  59. package/dist/cjs/{arcade-defaults-a0f45ab1.js → arcade-defaults-5c2ff166.js} +11507 -9772
  60. package/dist/cjs/{arcade-mode-579b4052.js → arcade-mode-23925c8d.js} +10 -9
  61. package/dist/cjs/arcgis-arcade-api_6.cjs.entry.js +47 -51
  62. package/dist/cjs/{css-7229b372.js → css-eb1c8e5c.js} +1 -1
  63. package/dist/cjs/{cssMode-c3cf6180.js → cssMode-2e878b70.js} +2 -2
  64. package/dist/cjs/{html-0017e4c9.js → html-847c7e39.js} +2 -2
  65. package/dist/cjs/{htmlMode-17c8c42c.js → htmlMode-7a36db6d.js} +2 -2
  66. package/dist/cjs/index.cjs.js +1 -1
  67. package/dist/cjs/{javascript-8270accf.js → javascript-f5ca9a1a.js} +3 -3
  68. package/dist/cjs/{jsonMode-31e5160f.js → jsonMode-0d326a6e.js} +2 -2
  69. package/dist/cjs/{tsMode-db6b702f.js → tsMode-e4abe99d.js} +2 -2
  70. package/dist/cjs/{typescript-b962205d.js → typescript-c43b7258.js} +2 -2
  71. package/dist/components/arcade-api.js +6 -6
  72. package/dist/components/arcade-contribution.js +5 -5
  73. package/dist/components/arcade-defaults.js +35 -35
  74. package/dist/components/arcade-mode.js +9 -8
  75. package/dist/components/arcade-results.js +12 -12
  76. package/dist/components/arcade-suggestions.js +6 -6
  77. package/dist/components/arcade-variables.js +5 -5
  78. package/dist/components/arcgis-arcade-editor.js +20 -20
  79. package/dist/components/code-editor.js +9 -13
  80. package/dist/components/fields.js +2 -2
  81. package/dist/components/index2.js +2 -2
  82. package/dist/components/markdown.js +1 -1
  83. package/dist/components/utilities.js +2 -2
  84. package/dist/esm/{arcade-defaults-d96f16cd.js → arcade-defaults-7525fe7a.js} +11500 -9765
  85. package/dist/esm/{arcade-mode-8662cb42.js → arcade-mode-312bbd22.js} +10 -9
  86. package/dist/esm/arcgis-arcade-api_6.entry.js +47 -51
  87. package/dist/esm/{css-ff1e9f8c.js → css-aade9167.js} +1 -1
  88. package/dist/esm/{cssMode-eb4872e0.js → cssMode-71ce0374.js} +2 -2
  89. package/dist/esm/{html-074ac87c.js → html-37ae4460.js} +2 -2
  90. package/dist/esm/{htmlMode-3a5d257f.js → htmlMode-ae5b0f39.js} +2 -2
  91. package/dist/esm/index.js +1 -1
  92. package/dist/esm/{javascript-edca9928.js → javascript-ad435a4b.js} +3 -3
  93. package/dist/esm/{jsonMode-e7283fe9.js → jsonMode-b8bb4df0.js} +2 -2
  94. package/dist/esm/{tsMode-1dba46bc.js → tsMode-b967128d.js} +2 -2
  95. package/dist/esm/{typescript-21a54a2f.js → typescript-a9a22ab3.js} +2 -2
  96. package/dist/types/components/arcade-api/arcade-api.d.ts +3 -3
  97. package/dist/types/components/arcade-editor/arcade-editor.d.ts +8 -8
  98. package/dist/types/components/arcade-results/arcade-results.d.ts +4 -4
  99. package/dist/types/components/arcade-suggestions/arcade-suggestions.d.ts +5 -5
  100. package/dist/types/components/arcade-variables/arcade-variables.d.ts +3 -3
  101. package/dist/types/components/code-editor/code-editor.d.ts +2 -2
  102. package/dist/types/components.d.ts +7 -5
  103. package/dist/types/index.d.ts +1 -1
  104. package/dist/types/utils/arcade-executor.d.ts +14 -14
  105. package/dist/types/utils/arcade-monaco/arcade-contribution.d.ts +1 -1
  106. package/dist/types/utils/arcade-monaco/arcade-defaults.d.ts +11 -10
  107. package/dist/types/utils/arcade-monaco/arcade-language-features.d.ts +5 -4
  108. package/dist/types/utils/arcade-monaco/arcade-mode.d.ts +1 -1
  109. package/dist/types/utils/arcade-monaco/arcade-theme.d.ts +1 -1
  110. package/dist/types/utils/arcade-monaco/arcade-worker-manager.d.ts +2 -2
  111. package/dist/types/utils/arcade-monaco/arcade.worker.d.ts +2 -2
  112. package/dist/types/utils/arcade-monaco/types.d.ts +8 -10
  113. package/dist/types/utils/colorize.d.ts +1 -1
  114. package/dist/types/utils/functional-components.d.ts +1 -1
  115. package/dist/types/utils/profile/editor-profile.d.ts +16 -18
  116. package/dist/types/utils/profile/types.d.ts +14 -14
  117. package/dist/types/utils/profile/utils.d.ts +1 -1
  118. package/dist/types/utils/utilities.d.ts +1 -1
  119. package/package.json +7 -7
  120. package/dist/arcgis-coding-components/p-0e589f27.entry.js +0 -1
  121. package/dist/arcgis-coding-components/p-15c465b1.js +0 -1
  122. package/dist/arcgis-coding-components/p-abb70533.js +0 -62
@@ -1 +0,0 @@
1
- import{n as e,e as t,M as n,R as r,l as i,E as s}from"./p-abb70533.js";import"./p-2c0d6f15.js";var o,a=((o=a||{}).False="false",o.Null="null",o.True="true",o),c=(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))(c||{}),u=(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))(u||{}),l=(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))(l||{}),p=(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))(p||{}),d=[[],[],[]];["++","--"].forEach((e=>d[e.length-1].push(e))),["-","+","!","~"].forEach((e=>d[e.length-1].push(e))),["||","&&"].forEach((e=>d[e.length-1].push(e))),["=","/=","*=","%=","+=","-="].forEach((e=>d[e.length-1].push(e))),["|","&",">>","<<",">>>","^","==","!=","<","<=",">",">=","+","-","*","/","%"].forEach((e=>d[e.length-1].push(e)));var g,m=((g=m||{}).AlreadyDefined="AlreadyDefined",g.ApiConflict="ApiConflict",g.AssignedNeverUsed="AssignedNeverUsed",g.DefinedNeverAssigned="DefinedNeverAssigned",g.DefinedNeverUsed="DefinedNeverUsed",g.EmptyBlockStatement="EmptyBlockStatement",g.ExecutionError="ExecutionError",g.InvalidApiFunctionUsage="InvalidApiFunctionUsage",g.InvalidConstantIdentifier="InvalidConstantIdentifier",g.InvalidPropertyIdentifier="InvalidPropertyIdentifier",g.NoArgumentExpected="NoArgumentExpected",g.NotADictionary="NotADictionary",g.NotDefined="NotDefined",g.NotEnoughArguments="NotEnoughArguments",g.ProfileVariablesAreImmutable="ProfileVariablesAreImmutable",g.ProfileVariablesConflict="ProfileVariablesConflict",g.ReservedKeyword="ReservedKeyword",g.TooManyArguments="TooManyArguments",g.UnexpectedEmptyFunction="UnexpectedEmptyFunction",g.UnexpectedPropertyIdentifier="UnexpectedPropertyIdentifier",g.UnknownPropertyIdentifier="UnknownPropertyIdentifier",g),x=Object.values(c);Object.values(a).map((t=>({label:t,kind:e.CompletionItemKind.Constant}))),x.map((t=>({label:t,kind:e.CompletionItemKind.Keyword})));const h={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}},f={defaultToken:"invalid",tokenPostfix:".arc",ignoreCase:!0,keywords:x.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 b{constructor(e,n,{defaults:r,diagnosticsService:i}){this._languageId=e,this._worker=n,this._disposables=[],this._listener=Object.create(null),this._diagnosticsService=i,this._defaults=r;const s=e=>{const t=e.getLanguageId();if(t!==this._languageId)return;let n;this._listener[e.uri.toString()]=e.onDidChangeContent((()=>{window.clearTimeout(n),n=window.setTimeout((()=>this._doValidate(e,t)),500)})),this._doValidate(e,t)},o=e=>{const n=e.uri.toString();t.setModelMarkers(e,this._languageId,[]);const r=this._listener[n];r&&(r.dispose(),delete this._listener[n])};this._disposables.push(t.onDidCreateModel(s)),this._disposables.push(t.onWillDisposeModel((e=>{o(e)}))),this._disposables.push(t.onDidChangeModelLanguage((e=>{o(e.model),s(e.model)}))),this._disposables.push(r.onDidChange((()=>{t.getModels().forEach((e=>{e.getLanguageId()===this._languageId&&(o(e),s(e))}))}))),this._disposables.push(r.onModelContextDidChange((e=>{t.getModels().forEach((t=>{t.getLanguageId()===this._languageId&&t.uri.toString()===e&&this._doValidate(t,this._languageId)}))}))),this._disposables.push({dispose:()=>{for(const e of Object.keys(this._listener))this._listener[e].dispose()}}),t.getModels().forEach(s)}dispose(){this._disposables.forEach((e=>e&&e.dispose())),this._disposables=[]}async _doValidate(e,n){if(e.isAttachedToEditor())try{const r=await this._worker(e.uri),i=this._defaults.getApiContextForModel(e.uri),s=await r.doValidation(e.uri.toString(),i),o=s.map((e=>{return{severity:k((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,s),t.setModelMarkers(e,n,o)}catch(e){console.error(e)}}}function k(t){switch(t){case e.DiagnosticSeverity.Error:return n.Error;case e.DiagnosticSeverity.Warning:return n.Warning;case e.DiagnosticSeverity.Information:return n.Info;case e.DiagnosticSeverity.Hint:return n.Hint;default:return n.Info}}function w(e){return new r(e.start.line+1,e.start.character+1,e.end.line+1,e.end.character+1)}function I(e){return{range:w(e.range),text:e.newText}}function y(t){const n=i.CompletionItemKind;switch(t){case e.CompletionItemKind.Text:return n.Text;case e.CompletionItemKind.Method:return n.Method;case e.CompletionItemKind.Function:return n.Function;case e.CompletionItemKind.Constructor:return n.Constructor;case e.CompletionItemKind.Field:return n.Field;case e.CompletionItemKind.Variable:return n.Variable;case e.CompletionItemKind.Class:return n.Class;case e.CompletionItemKind.Interface:return n.Interface;case e.CompletionItemKind.Module:return n.Module;case e.CompletionItemKind.Property:return n.Property;case e.CompletionItemKind.Unit:return n.Unit;case e.CompletionItemKind.Value:return n.Value;case e.CompletionItemKind.Enum:return n.Enum;case e.CompletionItemKind.Keyword:return n.Keyword;case e.CompletionItemKind.Snippet:return n.Snippet;case e.CompletionItemKind.Color:return n.Color;case e.CompletionItemKind.File:return n.File;case e.CompletionItemKind.Reference:return n.Reference;case e.CompletionItemKind.Folder:return n.Folder;case e.CompletionItemKind.EnumMember:return n.EnumMember;case e.CompletionItemKind.Constant:return n.Constant;case e.CompletionItemKind.Struct:return n.Struct;case e.CompletionItemKind.Event:return n.Event;case e.CompletionItemKind.Operator:return n.Operator;case e.CompletionItemKind.TypeParameter:return n.TypeParameter}return n.Property}class v{constructor(e,t){this._worker=e,this._defaults=t,this.triggerCharacters=[".","("]}async provideCompletionItems(t,n){const s=await this._worker(t.uri),o=this._defaults.getApiContextForModel(t.uri),a=await s.doComplete(t.uri.toString(),function(e){return{character:e.column-1,line:e.lineNumber-1}}(n),o);if(!a)return;const c=t.getWordUntilPosition(n),u=new r(n.lineNumber,c.startColumn,n.lineNumber,c.endColumn),l=a.items.map((t=>{const n={label:t.label,insertText:t.insertText||t.label,sortText:t.sortText,filterText:t.filterText,detail:t.detail,range:u,kind:y(t.kind)};var r;return t.textEdit&&(n.range=void 0!==(r=t.textEdit).insert&&void 0!==r.replace?{insert:w(t.textEdit.insert),replace:w(t.textEdit.replace)}:w(t.textEdit.range),n.insertText=t.textEdit.newText),t.additionalTextEdits&&(n.additionalTextEdits=t.additionalTextEdits.map(I)),t.insertTextFormat===e.InsertTextFormat.Snippet&&(n.insertTextRules=i.CompletionItemInsertTextRule.InsertAsSnippet),t.documentation&&(n.documentation="string"==typeof t.documentation?t.documentation:{supportThemeIcons:!1,value:t.documentation.value,supportHtml:!0}),n}));return{incomplete:a.isIncomplete,suggestions:l}}}class E{constructor(e,t){this._worker=e,this._defaults=t}async provideDocumentFormattingEdits(e){const t=await this._worker(e.uri),n=this._defaults.getApiContextForModel(e.uri.toString()),r=await t.doFormat(e.uri.toString(),n);return r?r.map((e=>({range:w(e.range),text:e.newText}))):[]}}class S{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}_getClientProxy(){if(!this._client){const{languageId:e,languageOptions:n}=this._defaults;this._worker=t.createWebWorker({moduleId:"ArcadeWorker",label:e,createData:{languageId:e,languageOptions:n}}),this._client=this._worker.getProxy()}return this._client}async getLanguageServiceWorker(...e){const t=await this._getClientProxy();return await(this._worker?.withSyncedResources(e)),t}}let A;async function C(...e){return new Promise(((t,n)=>{if(!A)return n(new Error("TypeScript not registered!"));t(A(...e))}))}const U=new class{constructor(){this._onDiagnosticsChange=new s}get onDiagnosticsChange(){return this._onDiagnosticsChange.event}fireDiagnosticsChange(e,t){this._onDiagnosticsChange.fire({uri:e,diagnostics:t})}};function F(){return U}function P(e){const t=new S(e),n=(...e)=>t.getLanguageServiceWorker(...e);A=n,i.setMonarchTokensProvider(e.languageId,f),i.setLanguageConfiguration(e.languageId,h),i.registerCompletionItemProvider(e.languageId,new v(n,e)),i.registerDocumentFormattingEditProvider(e.languageId,new E(n,e)),new b(e.languageId,n,{defaults:e,diagnosticsService:U})}export{F as getArcadeDiagnosticService,C as getArcadeWorker,P as setupMode}