@kusto/monaco-kusto 6.0.0 → 6.1.1

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 (52) hide show
  1. package/README.md +757 -0
  2. package/copyMonacoFilesAMD.js +28 -0
  3. package/package.json +14 -34
  4. package/release/dev/Kusto.Language.Bridge.min.js +2 -0
  5. package/release/dev/bridge.min.js +7 -0
  6. package/release/dev/commandFormatter.d.ts +1 -1
  7. package/release/dev/commandHighlighter.d.ts +2 -2
  8. package/release/dev/extendedEditor.d.ts +1 -1
  9. package/release/dev/kusto.javascript.client.min.js +1 -0
  10. package/release/dev/kustoMode.d.ts +3 -1
  11. package/release/dev/kustoMode.js +57 -24
  12. package/release/dev/kustoWorker.d.ts +5 -8
  13. package/release/dev/kustoWorker.js +146 -123
  14. package/release/dev/languageFeatures.d.ts +1 -1
  15. package/release/dev/languageService/kustoLanguageService.d.ts +3 -1
  16. package/release/dev/languageService/kustoMonarchLanguageDefinition.d.ts +2 -1
  17. package/release/dev/languageService/renderInfo.d.ts +5 -5
  18. package/release/dev/{main-24a15f15.js → main-068f3954.js} +2 -2
  19. package/release/dev/monaco.contribution.d.ts +3 -3
  20. package/release/dev/monaco.contribution.js +6 -10
  21. package/release/dev/newtonsoft.json.min.js +7 -0
  22. package/release/dev/workerManager.d.ts +1 -1
  23. package/release/esm/commandFormatter.d.ts +1 -1
  24. package/release/esm/commandHighlighter.d.ts +2 -2
  25. package/release/esm/extendedEditor.d.ts +1 -1
  26. package/release/esm/kusto.worker.js +50 -39
  27. package/release/esm/kustoMode.d.ts +3 -1
  28. package/release/esm/kustoMode.js +45 -17
  29. package/release/esm/kustoWorker.d.ts +5 -8
  30. package/release/esm/languageFeatures.d.ts +1 -1
  31. package/release/esm/languageService/kustoLanguageService.d.ts +3 -1
  32. package/release/esm/languageService/kustoMonarchLanguageDefinition.d.ts +2 -1
  33. package/release/esm/languageService/renderInfo.d.ts +5 -5
  34. package/release/esm/monaco.contribution.d.ts +3 -3
  35. package/release/esm/monaco.contribution.js +8 -9
  36. package/release/esm/workerManager.d.ts +1 -1
  37. package/release/min/commandFormatter.d.ts +1 -1
  38. package/release/min/commandHighlighter.d.ts +2 -2
  39. package/release/min/extendedEditor.d.ts +1 -1
  40. package/release/min/kustoMode.d.ts +3 -1
  41. package/release/min/kustoMode.js +2 -2
  42. package/release/min/kustoWorker.d.ts +5 -8
  43. package/release/min/kustoWorker.js +4 -4
  44. package/release/min/languageFeatures.d.ts +1 -1
  45. package/release/min/languageService/kustoLanguageService.d.ts +3 -1
  46. package/release/min/languageService/kustoMonarchLanguageDefinition.d.ts +2 -1
  47. package/release/min/languageService/renderInfo.d.ts +5 -5
  48. package/release/min/{main-1108181b.js → main-f5378257.js} +2 -2
  49. package/release/min/monaco.contribution.d.ts +3 -3
  50. package/release/min/monaco.contribution.js +2 -2
  51. package/release/min/workerManager.d.ts +1 -1
  52. package/release/monaco.d.ts +1 -1
@@ -1,11 +1,11 @@
1
1
  /*!-----------------------------------------------------------------------------
2
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
3
- * monaco-kusto version: 6.0.0(d333d5bf2aa3d56b17120ed36803a7fb5bcfb87a)
3
+ * monaco-kusto version: 6.1.1(678731e78268dbe877b517e302fa7db86fd96b3c)
4
4
  * Released under the MIT license
5
5
  * https://https://github.com/Azure/monaco-kusto/blob/master/README.md
6
6
  *-----------------------------------------------------------------------------*/
7
7
 
8
- define('vs/language/kusto/monaco.contribution', ['require', 'exports'], (function (require, exports) { 'use strict';
8
+ define('vs/language/kusto/monaco.contribution', ['require', 'exports', 'vs/editor/editor.main'], (function (require, exports, editor_main) { 'use strict';
9
9
 
10
10
  function _typeof$2(obj) { "@babel/helpers - typeof"; return _typeof$2 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof$2(obj); }
11
11
  function _classCallCheck$2(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
@@ -19,7 +19,7 @@ define('vs/language/kusto/monaco.contribution', ['require', 'exports'], (functio
19
19
  */
20
20
  var KustoCommandHighlighter = /*#__PURE__*/function () {
21
21
  /**
22
- * Register to cursor movement and seleciton events.
22
+ * Register to cursor movement and selection events.
23
23
  * @param editor monaco editor instance
24
24
  */
25
25
  function KustoCommandHighlighter(editor) {
@@ -28,7 +28,7 @@ define('vs/language/kusto/monaco.contribution', ['require', 'exports'], (functio
28
28
  _defineProperty$2(this, "disposables", []);
29
29
  _defineProperty$2(this, "decorations", []);
30
30
  this.editor = editor;
31
- // Note that selection update is triggered not only for selection changes, but also just when no text selection is occuring and cursor just moves around.
31
+ // Note that selection update is triggered not only for selection changes, but also just when no text selection is occurring and cursor just moves around.
32
32
  // This case is counted as a 0-length selection starting and ending on the cursor position.
33
33
  this.editor.onDidChangeCursorSelection(function (changeEvent) {
34
34
  if (_this.editor.getModel().getLanguageId() !== 'kusto') {
@@ -165,17 +165,13 @@ define('vs/language/kusto/monaco.contribution', ['require', 'exports'], (functio
165
165
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
166
166
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
167
167
  function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
168
- var Emitter = monaco.Emitter;
169
- monaco.IEvent;
170
-
171
- // declare var require: <T>(moduleId: [string], callback: (module: T) => void) => void;
172
168
 
173
169
  // --- Kusto configuration and defaults ---------
174
170
 
175
171
  var LanguageServiceDefaultsImpl = /*#__PURE__*/function () {
176
172
  function LanguageServiceDefaultsImpl(languageSettings) {
177
173
  _classCallCheck(this, LanguageServiceDefaultsImpl);
178
- _defineProperty(this, "_onDidChange", new Emitter());
174
+ _defineProperty(this, "_onDidChange", new monaco.Emitter());
179
175
  this.setLanguageSettings(languageSettings);
180
176
  // default to never kill worker when idle.
181
177
  // reason: when killing worker - schema gets lost. We transmit the schema back to main process when killing
@@ -234,7 +230,7 @@ define('vs/language/kusto/monaco.contribution', ['require', 'exports'], (functio
234
230
  enableQueryWarnings: false,
235
231
  enableQuerySuggestions: false,
236
232
  disabledDiagnosticCodes: [],
237
- quickFixCodeActions: ['Change to'],
233
+ quickFixCodeActions: ['Change to', 'FixAll'],
238
234
  enableQuickFixes: false
239
235
  };
240
236
  function getKustoWorker() {
@@ -0,0 +1,7 @@
1
+ /*
2
+ * @version : 1.17.0 - A Bridge.NET implementation of Newtonsoft.Json
3
+ * @author : Object.NET, Inc. http://www.bridge.net/
4
+ * @copyright : Copyright (c) 2008-2019, Object.NET, Inc. (http://www.object.net/). All rights reserved.
5
+ * @license : See license.txt and https://github.com/bridgedotnet/Bridge.NET/blob/master/LICENSE.
6
+ */
7
+ Bridge.assembly("Newtonsoft.Json",function($asm,globals){"use strict";Bridge.define("Newtonsoft.Json.DefaultValueHandling",{$kind:"enum",statics:{fields:{Include:0,Ignore:1,Populate:2,IgnoreAndPopulate:3}},$flags:!0});Bridge.define("Newtonsoft.Json.Formatting",{$kind:"enum",statics:{fields:{None:0,Indented:1}}});Bridge.define("Newtonsoft.Json.JsonConstructorAttribute",{inherits:[System.Attribute]});Bridge.define("Newtonsoft.Json.JsonException",{inherits:[System.Exception],ctors:{ctor:function(){this.$initialize();System.Exception.ctor.call(this)},$ctor1:function(message){this.$initialize();System.Exception.ctor.call(this,message)},$ctor2:function(message,innerException){this.$initialize();System.Exception.ctor.call(this,message,innerException)}}});Bridge.define("Newtonsoft.Json.JsonIgnoreAttribute",{inherits:[System.Attribute]});Bridge.define("Newtonsoft.Json.JsonPropertyAttribute",{inherits:[System.Attribute],fields:{_nullValueHandling:null,_defaultValueHandling:null,_objectCreationHandling:null,_typeNameHandling:null,_required:null,_order:null},props:{NullValueHandling:{get:function(){var $t;return $t=this._nullValueHandling,$t!=null?$t:0},set:function(value){this._nullValueHandling=value}},DefaultValueHandling:{get:function(){var $t;return $t=this._defaultValueHandling,$t!=null?$t:0},set:function(value){this._defaultValueHandling=value}},ObjectCreationHandling:{get:function(){var $t;return $t=this._objectCreationHandling,$t!=null?$t:0},set:function(value){this._objectCreationHandling=value}},TypeNameHandling:{get:function(){var $t;return $t=this._typeNameHandling,$t!=null?$t:0},set:function(value){this._typeNameHandling=value}},Required:{get:function(){var $t;return $t=this._required,$t!=null?$t:Newtonsoft.Json.Required.Default},set:function(value){this._required=value}},Order:{get:function(){var $t;return $t=this._order,$t!=null?$t:Bridge.getDefaultValue(System.Int32)},set:function(value){this._order=value}},PropertyName:null},ctors:{ctor:function(){this.$initialize();System.Attribute.ctor.call(this)},$ctor1:function(propertyName){this.$initialize();System.Attribute.ctor.call(this);this.PropertyName=propertyName}}});Bridge.define("Newtonsoft.Json.JsonSerializerSettings",{statics:{fields:{DefaultNullValueHandling:0,DefaultTypeNameHandling:0},ctors:{init:function(){this.DefaultNullValueHandling=Newtonsoft.Json.NullValueHandling.Include;this.DefaultTypeNameHandling=Newtonsoft.Json.TypeNameHandling.None}}},fields:{_defaultValueHandling:null,_typeNameHandling:null,_nullValueHandling:null,_objectCreationHandling:null},props:{NullValueHandling:{get:function(){var $t;return $t=this._nullValueHandling,$t!=null?$t:Newtonsoft.Json.JsonSerializerSettings.DefaultNullValueHandling},set:function(value){this._nullValueHandling=value}},ObjectCreationHandling:{get:function(){var $t;return $t=this._objectCreationHandling,$t!=null?$t:0},set:function(value){this._objectCreationHandling=value}},DefaultValueHandling:{get:function(){var $t;return $t=this._defaultValueHandling,$t!=null?$t:0},set:function(value){this._defaultValueHandling=value}},TypeNameHandling:{get:function(){var $t;return $t=this._typeNameHandling,$t!=null?$t:Newtonsoft.Json.JsonSerializerSettings.DefaultTypeNameHandling},set:function(value){this._typeNameHandling=value}},ContractResolver:null,SerializationBinder:null}});Bridge.define("Newtonsoft.Json.NullValueHandling",{$kind:"enum",statics:{fields:{Include:0,Ignore:1}}});Bridge.define("Newtonsoft.Json.ObjectCreationHandling",{$kind:"enum",statics:{fields:{Auto:0,Reuse:1,Replace:2}}});Bridge.define("Newtonsoft.Json.Required",{$kind:"enum",statics:{fields:{Default:0,AllowNull:1,Always:2,DisallowNull:3}}});Bridge.define("Newtonsoft.Json.Serialization.IContractResolver",{$kind:"interface"});Bridge.define("Newtonsoft.Json.Serialization.ISerializationBinder",{$kind:"interface"});Bridge.define("Newtonsoft.Json.TypeNameHandling",{$kind:"enum",statics:{fields:{None:0,Objects:1,Arrays:2,All:3,Auto:4}},$flags:!0});Bridge.define("Newtonsoft.Json.Utils.AssemblyVersion",{statics:{fields:{version:null,compiler:null},ctors:{init:function(){this.version="1.17.0";this.compiler="17.10.0"}}}});Bridge.define("Newtonsoft.Json.JsonSerializationException",{inherits:[Newtonsoft.Json.JsonException],ctors:{ctor:function(){this.$initialize();Newtonsoft.Json.JsonException.ctor.call(this)},$ctor1:function(message){this.$initialize();Newtonsoft.Json.JsonException.$ctor1.call(this,message)},$ctor2:function(message,innerException){this.$initialize();Newtonsoft.Json.JsonException.$ctor2.call(this,message,innerException)}}});Bridge.define("Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver",{inherits:[Newtonsoft.Json.Serialization.IContractResolver]});Bridge.define("Newtonsoft.Json.JsonConvert",{statics:{methods:{stringify:function(value,formatting,settings){return formatting===Newtonsoft.Json.Formatting.Indented?JSON.stringify(value,null," "):JSON.stringify(value)},parse:function(value){try{return JSON.parse(value)}catch(e){if(e instanceof SyntaxError)try{return eval("("+value+")")}catch(e){throw new Newtonsoft.Json.JsonException(e.message);}throw new Newtonsoft.Json.JsonException(e.message);}},getEnumerableElementType:function(type){var interfaceType,interfaces,j;if(System.String.startsWith(type.$$name,"System.Collections.Generic.IEnumerable"))interfaceType=type;else for(interfaces=Bridge.Reflection.getInterfaces(type),j=0;j<interfaces.length;j++)if(System.String.startsWith(interfaces[j].$$name,"System.Collections.Generic.IEnumerable")){interfaceType=interfaces[j];break}return interfaceType?Bridge.Reflection.getGenericArguments(interfaceType)[0]:null},validateReflectable:function(type){do{var ignoreMetaData=type===System.Object||type===Object||type.$literal||type.$kind==="anonymous",nometa=!Bridge.getMetadata(type);if(!ignoreMetaData&&nometa){Bridge.$jsonGuard&&delete Bridge.$jsonGuard;throw new System.InvalidOperationException(Bridge.getTypeName(type)+" is not reflectable and cannot be serialized.");}type=ignoreMetaData?null:Bridge.Reflection.getBaseType(type)}while(!ignoreMetaData&&type!=null)},defaultGuard:function(){Bridge.$jsonGuard&&Bridge.$jsonGuard.pop()},getValue:function(obj,name){name=name.toLowerCase();for(var key in obj)if(key.toLowerCase()==name)return obj[key]},getCacheByType:function(type){for(var t,cfg,i=0;i<Newtonsoft.Json.$cache.length;i++)if(t=Newtonsoft.Json.$cache[i],t.type===type)return t;return cfg={type:type},Newtonsoft.Json.$cache.push(cfg),cfg},getMembers:function(type,memberCode){var cache=Newtonsoft.Json.JsonConvert.getCacheByType(type),members,hasOrder;return cache[memberCode]?cache[memberCode]:(members=Bridge.Reflection.getMembers(type,memberCode,52),hasOrder=!1,members=members.map(function(m){var attr=System.Attribute.getCustomAttributes(m,Newtonsoft.Json.JsonPropertyAttribute),defValueAttr=System.Attribute.getCustomAttributes(m,System.ComponentModel.DefaultValueAttribute);return{member:m,attr:attr&&attr.length>0?attr[0]:null,defaultValue:defValueAttr&&defValueAttr.length>0?defValueAttr[0].Value:Bridge.getDefaultValue(m.rt)}}).filter(function(cfg){return!hasOrder&&cfg.attr&&cfg.attr.Order&&(hasOrder=!0),(cfg.attr||cfg.member.a===2)&&System.Attribute.getCustomAttributes(cfg.member,Newtonsoft.Json.JsonIgnoreAttribute).length===0}),hasOrder&&members.sort(function(a,b){return(a.attr&&a.attr.Order||0)-(b.attr&&b.attr.Order||0)}),cache[memberCode]=members,members)},preRawProcess:function(cfg,instance,value,settings){var attr=cfg.attr,defaultValueHandling=attr&&attr._defaultValueHandling!=null?attr._defaultValueHandling:settings.DefaultValueHandling,required=attr&&attr.Required;if(value===undefined&&(defaultValueHandling===Newtonsoft.Json.DefaultValueHandling.Populate||defaultValueHandling===Newtonsoft.Json.DefaultValueHandling.IgnoreAndPopulate)&&(value=cfg.defaultValue),(required===Newtonsoft.Json.Required.AllowNull||required===Newtonsoft.Json.Required.Always)&&value===undefined)throw new Newtonsoft.Json.JsonSerializationException("Required property '"+cfg.member.n+"' not found in JSON.");if(required===Newtonsoft.Json.Required.Always&&value===null)throw new Newtonsoft.Json.JsonSerializationException("Required property '"+cfg.member.n+"' expects a value but got null.");if(required===Newtonsoft.Json.Required.DisallowNull&&value===null)throw new Newtonsoft.Json.JsonSerializationException("Property '"+cfg.member.n+"' expects a value but got null.");return{value:value}},preProcess:function(cfg,instance,value,settings){var attr=cfg.attr,defaultValueHandling=attr&&attr._defaultValueHandling!=null?attr._defaultValueHandling:settings.DefaultValueHandling,nullValueHandling=attr&&attr._nullValueHandling!=null?attr._nullValueHandling:settings.NullValueHandling;if(value==null&&nullValueHandling===Newtonsoft.Json.NullValueHandling.Ignore)return!1;var x=Bridge.unbox(value,!0),y=cfg.defaultValue,oneNull=x==null||y==null&&!(x==null&&y==null);return!oneNull&&Bridge.equals(x,y)&&(defaultValueHandling===Newtonsoft.Json.DefaultValueHandling.Ignore||defaultValueHandling===Newtonsoft.Json.DefaultValueHandling.IgnoreAndPopulate)?!1:{value:value}},PopulateObject:function(value,target,settings,schema){var targetType,raw,key,each,typeElement,i,inSchema,needSet,targetValue,result;if(settings=settings||{},targetType=Bridge.getType(target),raw=typeof value=="string"?Newtonsoft.Json.JsonConvert.parse(value):value,targetType.$nullable&&(targetType=targetType.$nullableType),raw!=null&&typeof raw=="object")if(Bridge.isArray(null,targetType)){if(raw.length===undefined)return;for(i=0;i<raw.length;i++)target.push(Newtonsoft.Json.JsonConvert.DeserializeObject(raw[i],targetType.$elementType,settings,!0))}else if(Bridge.Reflection.isAssignableFrom(System.Collections.IDictionary,targetType)){var typesGeneric=System.Collections.Generic.Dictionary$2.getTypeParameters(targetType),typeKey=typesGeneric[0]||System.Object,typeValue=typesGeneric[1]||System.Object,keys;if(Bridge.is(raw,System.Collections.IDictionary))for(keys=System.Linq.Enumerable.from(raw.getKeys()).ToArray(),i=0;i<keys.length;i++)key=keys[i],target.setItem(Newtonsoft.Json.JsonConvert.DeserializeObject(key,typeKey,settings,!0),Newtonsoft.Json.JsonConvert.DeserializeObject(raw.get(key),typeValue,settings,!0),!1);else for(each in raw)raw.hasOwnProperty(each)&&target.setItem(Newtonsoft.Json.JsonConvert.DeserializeObject(each,typeKey,settings,!0),Newtonsoft.Json.JsonConvert.DeserializeObject(raw[each],typeValue,settings,!0),!1)}else if(Bridge.Reflection.isAssignableFrom(System.Collections.IList,targetType)||Bridge.Reflection.isAssignableFrom(System.Collections.ICollection,targetType))for(typeElement=System.Collections.Generic.List$1.getElementType(targetType)||System.Object,Bridge.isArray(raw)||(raw=raw.ToArray?raw.ToArray():Bridge.Collections.EnumerableHelpers.ToArray(typeElement,raw)),i=0;i<raw.length;i++)target.add(Newtonsoft.Json.JsonConvert.DeserializeObject(raw[i],typeElement,settings,!0));else{for(var camelCase=settings&&Bridge.is(settings.ContractResolver,Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver),fields=Newtonsoft.Json.JsonConvert.getMembers(targetType,4),properties=Newtonsoft.Json.JsonConvert.getMembers(targetType,16),value,cfg,f,p,mname,i=0;i<fields.length;i++)if(cfg=fields[i],f=cfg.member,mname=cfg.attr&&cfg.attr.PropertyName||(camelCase?f.n.charAt(0).toLowerCase()+f.n.substr(1):f.n),value=raw[mname],value===undefined&&(value=Newtonsoft.Json.JsonConvert.getValue(raw,mname)),inSchema=(schema||raw)[mname],inSchema===undefined&&(inSchema=Newtonsoft.Json.JsonConvert.getValue(schema||raw,mname)),result=Newtonsoft.Json.JsonConvert.preRawProcess(cfg,schema||raw,inSchema,settings),inSchema=result.value,inSchema!==undefined){var needSet=value===null||value===!1||value===!0||typeof value=="number"||typeof value=="string",targetValue=Bridge.unbox(Bridge.Reflection.fieldAccess(f,target)),instance=Newtonsoft.Json.JsonConvert.DeserializeObject(value,f.rt,settings,!0),result=Newtonsoft.Json.JsonConvert.preProcess(cfg,target,targetValue,settings);result!==!1&&(targetValue=result.value,needSet||targetValue==null?Bridge.Reflection.fieldAccess(f,target,instance):Newtonsoft.Json.JsonConvert.PopulateObject(instance,targetValue,settings,value))}for(i=0;i<properties.length;i++)cfg=properties[i],p=cfg.member,mname=cfg.attr&&cfg.attr.PropertyName||(camelCase?p.n.charAt(0).toLowerCase()+p.n.substr(1):p.n),value=raw[mname],value===undefined&&(value=Newtonsoft.Json.JsonConvert.getValue(raw,mname)),inSchema=(schema||raw)[mname],inSchema===undefined&&(inSchema=Newtonsoft.Json.JsonConvert.getValue(schema||raw,mname)),result=Newtonsoft.Json.JsonConvert.preRawProcess(cfg,schema||raw,inSchema,settings),inSchema=result.value,inSchema!==undefined&&(needSet=value===null||value===!1||value===!0||typeof value=="number"||typeof value=="string",targetValue=Bridge.unbox(Bridge.Reflection.midel(p.g,target)()),instance=Newtonsoft.Json.JsonConvert.DeserializeObject(value,p.rt,settings,!0),result=Newtonsoft.Json.JsonConvert.preProcess(cfg,target,targetValue,settings),result!==!1&&(targetValue=result.value,needSet||targetValue==null?p.s?Bridge.Reflection.midel(p.s,target)(instance):type.$kind==="anonymous"&&(target[p.n]=instance):Newtonsoft.Json.JsonConvert.PopulateObject(instance,targetValue,settings,value)))}},BindToName:function(settings,type){if(settings&&settings.SerializationBinder&&settings.SerializationBinder.Newtonsoft$Json$Serialization$ISerializationBinder$BindToName){var asm={},name={};return settings.SerializationBinder.Newtonsoft$Json$Serialization$ISerializationBinder$BindToName(type,asm,name),name.v+(asm.v?", "+asm.v:"")}return Bridge.Reflection.getTypeQName(type)},BindToType:function(settings,fullName,objectType){var type;if(settings&&settings.SerializationBinder&&settings.SerializationBinder.Newtonsoft$Json$Serialization$ISerializationBinder$BindToType?(type=Newtonsoft.Json.JsonConvert.SplitFullyQualifiedTypeName(fullName),type=settings.SerializationBinder.Newtonsoft$Json$Serialization$ISerializationBinder$BindToType(type.assemblyName,type.typeName)):type=Bridge.Reflection.getType(fullName),!type)throw new Newtonsoft.Json.JsonSerializationException("Type specified in JSON '"+fullName+"' was not resolved.");if(objectType&&!Bridge.Reflection.isAssignableFrom(objectType,type))throw new Newtonsoft.Json.JsonSerializationException("Type specified in JSON '"+Bridge.Reflection.getTypeQName(type)+"' is not compatible with '"+Bridge.Reflection.getTypeQName(objectType)+"'.");return type},SplitFullyQualifiedTypeName:function(fullyQualifiedTypeName){var assemblyDelimiterIndex=Newtonsoft.Json.JsonConvert.GetAssemblyDelimiterIndex(fullyQualifiedTypeName),typeName,assemblyName;return assemblyDelimiterIndex!=null?(typeName=Newtonsoft.Json.JsonConvert.Trim(fullyQualifiedTypeName,0,System.Nullable.getValueOrDefault(assemblyDelimiterIndex,0)),assemblyName=Newtonsoft.Json.JsonConvert.Trim(fullyQualifiedTypeName,System.Nullable.getValueOrDefault(assemblyDelimiterIndex,0)+1|0,(fullyQualifiedTypeName.length-System.Nullable.getValueOrDefault(assemblyDelimiterIndex,0)|0)-1|0)):(typeName=fullyQualifiedTypeName,assemblyName=null),{typeName:typeName,assemblyName:assemblyName}},GetAssemblyDelimiterIndex:function(fullyQualifiedTypeName){for(var current,scope=0,i=0;i<fullyQualifiedTypeName.length;i=i+1|0){current=fullyQualifiedTypeName.charCodeAt(i);switch(current){case 91:scope=scope+1|0;break;case 93:scope=scope-1|0;break;case 44:if(scope===0)return i;break}}return null},Trim:function(s,start,length){var end=(start+length|0)-1|0;if(end>=s.length)throw new System.ArgumentOutOfRangeException.$ctor1("length");for(;start<end;start=start+1|0)if(!System.Char.isWhiteSpace(String.fromCharCode(s.charCodeAt(start))))break;for(;end>=start;end=end-1|0)if(!System.Char.isWhiteSpace(String.fromCharCode(s.charCodeAt(end))))break;return s.substr(start,(end-start|0)+1|0)},SerializeObject:function(obj,formatting,settings,returnRaw,possibleType,dictKey){var objType,type,name,arr,i,removeGuard,wasBoxed,d,json,entr,keyJson,typeElement,enumerator,item,raw,nometa,handling,writeType,key,properties,cfg,p,typeNameHandling,oldTypeNameHandling,midx;if(Bridge.is(formatting,Newtonsoft.Json.JsonSerializerSettings)&&(settings=formatting,formatting=0),obj==null)return settings&&settings.NullValueHandling===Newtonsoft.Json.NullValueHandling.Ignore?void 0:returnRaw?null:Newtonsoft.Json.JsonConvert.stringify(null,formatting,settings);if(objType=Bridge.getType(obj),possibleType&&objType&&(possibleType.$kind==="interface"||Bridge.Reflection.isAssignableFrom(possibleType,objType))&&(possibleType=null),possibleType&&possibleType.$nullable&&(possibleType=possibleType.$nullableType),possibleType&&possibleType===System.Char)return String.fromCharCode(obj);if(type=possibleType||objType,typeof obj=="function")return name=Bridge.getTypeName(obj),returnRaw?name:Newtonsoft.Json.JsonConvert.stringify(name,formatting,settings);else if(typeof obj=="object"){if(removeGuard=Newtonsoft.Json.JsonConvert.defaultGuard,Bridge.$jsonGuard||(Bridge.$jsonGuard=[],removeGuard=function(){delete Bridge.$jsonGuard}),Bridge.$jsonGuard.indexOf(obj)>-1)return;if(type===System.Globalization.CultureInfo||type===System.Guid||type===System.Uri||type===System.Int64||type===System.UInt64||type===System.Decimal||type===System.DateTime||type===System.DateTimeOffset||type===System.Char||Bridge.Reflection.isEnum(type)?removeGuard():Bridge.$jsonGuard.push(obj),wasBoxed=!1,obj&&obj.$boxed&&(obj=Bridge.unbox(obj,!0),wasBoxed=!0),type===System.Globalization.CultureInfo)return returnRaw?obj.name:Newtonsoft.Json.JsonConvert.stringify(obj.name,formatting,settings);else if(type===System.Guid)return returnRaw?Bridge.toString(obj):Newtonsoft.Json.JsonConvert.stringify(Bridge.toString(obj),formatting,settings);else if(type===System.Uri)return returnRaw?obj.getAbsoluteUri():Newtonsoft.Json.JsonConvert.stringify(obj.getAbsoluteUri(),formatting,settings);else if(type===System.Int64||type===System.UInt64||type===System.Decimal)return returnRaw?obj.toJSON():obj.toString();else if(type===System.DateTime)return d=System.DateTime.format(obj,"yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK"),returnRaw?d:Newtonsoft.Json.JsonConvert.stringify(d,formatting,settings);else if(type===System.TimeSpan)return d=Bridge.toString(obj),returnRaw?d:Newtonsoft.Json.JsonConvert.stringify(d,formatting,settings);else if(type===System.DateTimeOffset)return d=obj.ToString$1("yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK"),returnRaw?d:Newtonsoft.Json.JsonConvert.stringify(d,formatting,settings);else if(Bridge.isArray(null,type)){if(type.$elementType===System.Byte)return removeGuard(),json=System.Convert.toBase64String(obj),returnRaw?json:Newtonsoft.Json.JsonConvert.stringify(json,formatting,settings);for(arr=[],i=0;i<obj.length;i++)arr.push(Newtonsoft.Json.JsonConvert.SerializeObject(obj[i],formatting,settings,!0,type.$elementType));obj=arr;settings&&settings._typeNameHandling&&(handling=settings._typeNameHandling,writeType=handling==2||handling==3||handling==4&&possibleType&&possibleType!==objType,writeType&&(obj={$type:Newtonsoft.Json.JsonConvert.BindToName(settings,type),$values:arr}))}else if(Bridge.Reflection.isEnum(type))return dictKey?System.Enum.getName(type,obj):returnRaw?obj:Newtonsoft.Json.JsonConvert.stringify(obj,formatting,settings);else if(type===System.Char)return returnRaw?String.fromCharCode(obj):Newtonsoft.Json.JsonConvert.stringify(String.fromCharCode(obj),formatting,settings);else if(Bridge.Reflection.isAssignableFrom(System.Collections.IDictionary,type)){var typesGeneric=System.Collections.Generic.Dictionary$2.getTypeParameters(type),typeKey=typesGeneric[0],typeValue=typesGeneric[1],dict={},enm=Bridge.getEnumerator(obj);for(settings&&settings._typeNameHandling&&(handling=settings._typeNameHandling,writeType=handling==1||handling==3||handling==4&&possibleType&&possibleType!==objType,writeType&&(dict.$type=Newtonsoft.Json.JsonConvert.BindToName(settings,type)));enm.moveNext();)entr=enm.Current,keyJson=Newtonsoft.Json.JsonConvert.SerializeObject(entr.key,formatting,settings,!0,typeKey,!0),typeof keyJson=="object"&&(keyJson=Bridge.toString(entr.key)),dict[keyJson]=Newtonsoft.Json.JsonConvert.SerializeObject(entr.value,formatting,settings,!0,typeValue);obj=dict}else if(Bridge.Reflection.isAssignableFrom(System.Collections.IEnumerable,type)){for(typeElement=Newtonsoft.Json.JsonConvert.getEnumerableElementType(type),enumerator=Bridge.getEnumerator(obj,typeElement),arr=[];enumerator.moveNext();)item=enumerator.Current,arr.push(Newtonsoft.Json.JsonConvert.SerializeObject(item,formatting,settings,!0,typeElement));obj=arr;settings&&settings._typeNameHandling&&(handling=settings._typeNameHandling,writeType=handling==2||handling==3||handling==4&&possibleType&&possibleType!==objType,writeType&&(obj={$type:Newtonsoft.Json.JsonConvert.BindToName(settings,type),$values:arr}))}else if(!wasBoxed){if(raw={},nometa=!Bridge.getMetadata(type),Newtonsoft.Json.JsonConvert.validateReflectable(type),settings&&settings._typeNameHandling&&(handling=settings._typeNameHandling,writeType=handling==1||handling==3||handling==4&&possibleType&&possibleType!==objType,writeType&&(raw.$type=Newtonsoft.Json.JsonConvert.BindToName(settings,type))),nometa)if(obj.toJSON)raw=obj.toJSON();else for(key in obj)obj.hasOwnProperty(key)&&(raw[key]=Newtonsoft.Json.JsonConvert.SerializeObject(obj[key],formatting,settings,!0));else{var fields=Newtonsoft.Json.JsonConvert.getMembers(type,4),camelCase=settings&&Bridge.is(settings.ContractResolver,Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver),methods=Bridge.Reflection.getMembers(type,8,54);if(methods.length>0)for(midx=0;midx<methods.length;midx++)System.Attribute.isDefined(methods[midx],System.Runtime.Serialization.OnSerializingAttribute,!1)&&Bridge.Reflection.midel(methods[midx],obj)(null);for(i=0;i<fields.length;i++){var cfg=fields[i],f=cfg.member,fname=cfg.attr&&cfg.attr.PropertyName||(camelCase?f.n.charAt(0).toLowerCase()+f.n.substr(1):f.n),value=Bridge.Reflection.fieldAccess(f,obj),result=Newtonsoft.Json.JsonConvert.preProcess(cfg,obj,value,settings||{});result!==!1&&(cfg.attr&&(typeNameHandling=cfg.attr._typeNameHandling),typeNameHandling!=null&&(settings=settings||{},oldTypeNameHandling=settings._typeNameHandling,settings._typeNameHandling=typeNameHandling),raw[fname]=Newtonsoft.Json.JsonConvert.SerializeObject(result.value,formatting,settings,!0,f.rt),typeNameHandling!=null&&(settings._typeNameHandling=oldTypeNameHandling))}for(properties=Newtonsoft.Json.JsonConvert.getMembers(type,16),i=0;i<properties.length;i++)if(cfg=properties[i],p=cfg.member,!!p.g){var pname=cfg.attr&&cfg.attr.PropertyName||(camelCase?p.n.charAt(0).toLowerCase()+p.n.substr(1):p.n),value=Bridge.Reflection.midel(p.g,obj)(),result=Newtonsoft.Json.JsonConvert.preProcess(cfg,obj,value,settings||{});result!==!1&&(cfg.attr&&(typeNameHandling=cfg.attr._typeNameHandling),typeNameHandling!=null&&(settings=settings||{},oldTypeNameHandling=settings._typeNameHandling,settings._typeNameHandling=typeNameHandling),raw[pname]=Newtonsoft.Json.JsonConvert.SerializeObject(result.value,formatting,settings,!0,p.rt),typeNameHandling!=null&&(settings._typeNameHandling=oldTypeNameHandling))}if(methods.length>0)for(midx=0;midx<methods.length;midx++)if(System.Attribute.isDefined(methods[midx],System.Runtime.Serialization.OnSerializedAttribute,!1)){Bridge.Reflection.midel(methods[midx],obj)(null);break}}obj=raw}removeGuard()}else if(Bridge.Reflection.isEnum(type))return dictKey?System.Enum.getName(type,obj):returnRaw?obj:Newtonsoft.Json.JsonConvert.stringify(obj,formatting,settings);return returnRaw?obj:Newtonsoft.Json.JsonConvert.stringify(obj,formatting,settings)},getInstanceBuilder:function(type,raw,settings){var rawIsArray=Bridge.isArray(raw),isEnumerable=rawIsArray&&Bridge.Reflection.isAssignableFrom(System.Collections.IEnumerable,type),isObject=typeof raw=="object"&&!rawIsArray,isList=!1,idx,useDefault,i,prm,name,j,params,fn;if(isEnumerable||isObject){var ctors=Bridge.Reflection.getMembers(type,1,54),publicCtors=[],hasDefault=!1,jsonCtor=null;if(type===System.Version)ctors=[Bridge.Reflection.getMembers(type,1,284,null,[System.Int32,System.Int32,System.Int32,System.Int32])],jsonCtor=ctors[0];else if(ctors.length>0)for(ctors=ctors.filter(function(c){return!c.isSynthetic}),idx=0;idx<ctors.length;idx++){var c=ctors[idx],hasAttribute=System.Attribute.getCustomAttributes(c,Newtonsoft.Json.JsonConstructorAttribute).length>0,isDefault=(c.pi||[]).length===0;if(isDefault&&(hasDefault=!0),hasAttribute){if(jsonCtor!=null)throw new Newtonsoft.Json.JsonException("Multiple constructors with the JsonConstructorAttribute.");jsonCtor=c}c.a===2&&publicCtors.push(c)}if(!hasDefault&&!jsonCtor&&type.$kind==="struct"){if(useDefault=!0,publicCtors.length>0){useDefault=!1;jsonCtor=publicCtors[0];var params=jsonCtor.pi||[],fields=Newtonsoft.Json.JsonConvert.getMembers(type,4),properties=Newtonsoft.Json.JsonConvert.getMembers(type,16);for(i=0;i<params.length;i++){for(prm=params[i],name=prm.sn||prm.n,j=0;j<properties.length;j++){var cfg=properties[i],p=cfg.member,mname=cfg.attr&&cfg.attr.PropertyName||p.n;if(name===mname||name.toLowerCase()===mname.toLowerCase()&&cfg.s){useDefault=!0;break}}if(!useDefault)for(j=0;j<fields.length;j++){var cfg=fields[i],f=cfg.member,mname=cfg.attr&&cfg.attr.PropertyName||f.n;if(name===mname||name.toLowerCase()===mname.toLowerCase()&&!cfg.ro){useDefault=!0;break}}if(useDefault)break}}useDefault&&(jsonCtor={td:type})}if(!hasDefault&&ctors.length>0){if(publicCtors.length!==1&&jsonCtor==null)throw new Newtonsoft.Json.JsonSerializationException("Unable to find a constructor to use for type "+Bridge.getTypeName(type)+". A class should either have a default constructor or one constructor with arguments.");return(jsonCtor==null&&(jsonCtor=publicCtors[0]),params=jsonCtor.pi||[],isEnumerable)?function(raw){var args=[],arr,elementType,commonElementInstanceBuilder,useSameInstanceBuilderForAllValues,firstElementTypeName,nextElementTypeName,i,item,inst,names,useBuilder,v;if(Bridge.Reflection.isAssignableFrom(System.Collections.IEnumerable,params[0].pt)){if(arr=[],elementType=Bridge.Reflection.getGenericArguments(params[0].pt)[0]||Bridge.Reflection.getGenericArguments(type)[0]||System.Object,settings&&settings._typeNameHandling&&raw.length>0&&raw[0]){if(useSameInstanceBuilderForAllValues=!0,firstElementTypeName=raw[0].$type,firstElementTypeName){for(i=1;i<raw.length;i++)if(nextElementTypeName=raw[i]?raw[i].$type:null,!nextElementTypeName||nextElementTypeName!==firstElementTypeName){useSameInstanceBuilderForAllValues=!1;break}}else useSameInstanceBuilderForAllValues=!1;commonElementInstanceBuilder=useSameInstanceBuilderForAllValues?Newtonsoft.Json.JsonConvert.getInstanceBuilder(elementType,raw[0],settings):null}else commonElementInstanceBuilder=null;for(i=0;i<raw.length;i++)item=raw[i],useBuilder=commonElementInstanceBuilder&&!commonElementInstanceBuilder.default,useBuilder&&(inst=commonElementInstanceBuilder(item),arr[i]=inst.value,names=inst.names),arr[i]=Newtonsoft.Json.JsonConvert.DeserializeObject(item,elementType,settings,!0,useBuilder?arr[i]:undefined,names);args.push(arr);isList=!0}return v=Bridge.Reflection.invokeCI(jsonCtor,args),isList?{$list:!0,names:[],value:v}:{names:[],value:v}}:function(raw){for(var j,args=[],names=[],keys=Object.getOwnPropertyNames(raw),i=0;i<params.length;i++){var prm=params[i],name=prm.sn||prm.n,foundName=null;for(j=0;j<keys.length;j++)if(name===keys[j]){foundName=keys[j];break}if(!foundName)for(name=name.toLowerCase(),j=0;j<keys.length;j++)if(name===keys[j].toLowerCase()){foundName=keys[j];break}name=foundName;name?(args[i]=Newtonsoft.Json.JsonConvert.DeserializeObject(raw[name],prm.pt,settings,!0),names.push(name)):args[i]=Bridge.getDefaultValue(prm.pt)}return{names:names,value:Bridge.Reflection.invokeCI(jsonCtor,args)}}}}return fn=function(){return{names:[],value:Bridge.createInstance(type),"default":!0}},fn.default=!0,fn},createInstance:function(type,raw,settings){var builder=this.getInstanceBuilder(type,raw,settings);return builder(raw)},needReuse:function(objectCreationHandling,value,type,isDefCtor){return(objectCreationHandling===Newtonsoft.Json.ObjectCreationHandling.Reuse||objectCreationHandling===Newtonsoft.Json.ObjectCreationHandling.Auto&&value!=null)&&isDefCtor&&type.$kind!=="struct"&&type.$kind!=="enum"&&type!==System.String&&type!==System.Boolean&&type!==System.Int64&&type!==System.UInt64&&type!==System.Int32&&type!==System.UInt32&&type!==System.Int16&&type!==System.UInt16&&type!==System.Byte&&type!==System.SByte&&type!==System.Single&&type!==System.Double&&type!==System.Decimal?!0:!1},tryToGetCastOperator:function(raw,type){var typesToLookFor,i,typeToLookFor,explicitCastOnTarget,implicitCastOnTarget;if(raw===null)return null;if(typeof raw=="boolean"||typeof raw=="string")typesToLookFor=[Bridge.getType(raw)];else if(typeof raw=="number")typesToLookFor=[System.Double,System.Int64];else return null;for(i=0;i<typesToLookFor.length;i++){if(typeToLookFor=typesToLookFor[i],explicitCastOnTarget=Bridge.Reflection.getMembers(type,8,284,"op_Explicit",[typeToLookFor]),explicitCastOnTarget)return function(value){return Bridge.Reflection.midel(explicitCastOnTarget,null)(value)};if(implicitCastOnTarget=Bridge.Reflection.getMembers(type,8,284,"op_Implicit",[typeToLookFor]),implicitCastOnTarget)return function(value){return Bridge.Reflection.midel(implicitCastOnTarget,null)(value)}}return null},DeserializeObject:function(raw,type,settings,field,instance,i_names){var tPrms,obj,isObject,fromObject,realType,def,isDecimal,isSpecial,isFloat,parsed,castOperator,arr,typeElement,list,dictionary,each,typeName,o,isDefCtor,names,methods,camelCase,fields,value,cfg,f,p,mname,finst,i,properties,result,currentValue,objectCreationHandling,typeNameHandling,oldTypeNameHandling,svalue,midx;if(settings=settings||{},type.$kind==="interface"&&(System.Collections.IDictionary===type?type=System.Collections.Generic.Dictionary$2(System.Object,System.Object):Bridge.Reflection.isGenericType(type)&&Bridge.Reflection.isAssignableFrom(System.Collections.Generic.IDictionary$2,Bridge.Reflection.getGenericTypeDefinition(type))?(tPrms=System.Collections.Generic.Dictionary$2.getTypeParameters(type),type=System.Collections.Generic.Dictionary$2(tPrms[0]||System.Object,tPrms[1]||System.Object)):type===System.Collections.IList||type===System.Collections.ICollection?type=System.Collections.Generic.List$1(System.Object):Bridge.Reflection.isGenericType(type)&&(Bridge.Reflection.isAssignableFrom(System.Collections.Generic.IList$1,Bridge.Reflection.getGenericTypeDefinition(type))||Bridge.Reflection.isAssignableFrom(System.Collections.Generic.ICollection$1,Bridge.Reflection.getGenericTypeDefinition(type)))&&(type=System.Collections.Generic.List$1(System.Collections.Generic.List$1.getElementType(type)||System.Object))),field||typeof raw!="string"||(obj=Newtonsoft.Json.JsonConvert.parse(raw),(typeof obj=="object"||Bridge.isArray(obj)||type===System.Array.type(System.Byte,1)||type===Function||type==System.Type||type===System.Guid||type===System.Globalization.CultureInfo||type===System.Uri||type===System.DateTime||type===System.DateTimeOffset||type===System.Char||Bridge.Reflection.isEnum(type))&&(raw=obj)),isObject=type===Object||type===System.Object,fromObject=Bridge.isObject(raw),isObject&&fromObject&&raw&&raw.$type&&(realType=Newtonsoft.Json.JsonConvert.BindToType(settings,raw.$type,type),type=realType,isObject=!1),isObject&&fromObject||type.$literal&&!Bridge.getMetadata(type))return Bridge.merge(isObject?{}:instance||Bridge.createInstance(type),raw);if(def=Bridge.getDefaultValue(type),type.$nullable&&(type=type.$nullableType),raw===null)return def;else if(raw===!1)return type===System.Boolean?!1:type===System.String?"false":(castOperator=Newtonsoft.Json.JsonConvert.tryToGetCastOperator(raw,type),castOperator)?castOperator(raw):isObject?Bridge.box(raw,System.Boolean,System.Boolean.toString):def;else if(raw===!0)if(type===System.Boolean)return!0;else if(type===System.Int64)return System.Int64(1);else if(type===System.UInt64)return System.UInt64(1);else if(type===System.Decimal)return System.Decimal(1);else if(type===String.String)return"true";else if(type===System.DateTime)return System.DateTime.create$2(1,0);else if(type===System.DateTimeOffset)return System.DateTimeOffset.MinValue.$clone();else if(Bridge.Reflection.isEnum(type))return Bridge.unbox(System.Enum.parse(type,1));else{if(typeof def=="number")return def+1;if(castOperator=Newtonsoft.Json.JsonConvert.tryToGetCastOperator(raw,type),castOperator)return castOperator(raw);if(isObject)return Bridge.box(raw,System.Boolean,System.Boolean.toString);throw new System.ArgumentException(System.String.format("Could not cast or convert from {0} to {1}",Bridge.getTypeName(raw),Bridge.getTypeName(type)));}else if(typeof raw=="number"){if(type.$number&&!type.$is(raw)&&(type!==System.Decimal||!type.tryParse(raw,null,{}))&&(!System.Int64.is64BitType(type)||!type.tryParse(raw.toString(),{})))throw new Newtonsoft.Json.JsonException(System.String.format("Input string '{0}' is not a valid {1}",raw,Bridge.getTypeName(type)));if(type===System.Boolean)return raw!==0;else if(Bridge.Reflection.isEnum(type))return Bridge.unbox(System.Enum.parse(type,raw));else if(type===System.SByte)return raw|0;else if(type===System.Byte)return raw>>>0;else if(type===System.Int16)return raw|0;else if(type===System.UInt16)return raw>>>0;else if(type===System.Int32)return raw|0;else if(type===System.UInt32)return raw>>>0;else if(type===System.Int64)return System.Int64(raw);else if(type===System.UInt64)return System.UInt64(raw);else if(type===System.Single)return raw;else if(type===System.Double)return raw;else if(type===System.Decimal)return System.Decimal(raw);else if(type===System.Char)return raw|0;else if(type===System.String)return raw.toString();else if(type===System.DateTime)return System.DateTime.create$2(raw|0,0);else if(type===System.TimeSpan)return System.TimeSpan.fromTicks(raw);else if(type===System.DateTimeOffset)return new System.DateTimeOffset.$ctor5(System.Int64(raw|0),(new System.DateTimeOffset.ctor).Offset);else{if(castOperator=Newtonsoft.Json.JsonConvert.tryToGetCastOperator(raw,type),castOperator)return castOperator(raw);if(isObject)return Bridge.box(raw,Bridge.getType(raw));throw new System.ArgumentException(System.String.format("Could not cast or convert from {0} to {1}",Bridge.getTypeName(raw),Bridge.getTypeName(type)));}}else if(typeof raw=="string"){if(isDecimal=type===System.Decimal,isSpecial=isDecimal||System.Int64.is64BitType(type),isSpecial&&(isDecimal?!type.tryParse(raw,null,{}):!type.tryParse(raw,{})))throw new Newtonsoft.Json.JsonException(System.String.format("Input string '{0}' is not a valid {1}",raw,Bridge.getTypeName(type)));if(isFloat=type==System.Double||type==System.Single,!isSpecial&&type.$number&&(isFloat?!type.tryParse(raw,null,{}):!type.tryParse(raw,{})))throw new Newtonsoft.Json.JsonException(System.String.format("Could not convert {0} to {1}: {2}",Bridge.getTypeName(raw),Bridge.getTypeName(type),raw));if(type===Function||type==System.Type)return Bridge.Reflection.getType(raw);else if(type===System.Globalization.CultureInfo)return new System.Globalization.CultureInfo(raw);else if(type===System.Uri)return new System.Uri(raw);else if(type===System.Guid)return System.Guid.Parse(raw);else if(type===System.Boolean)return(parsed={v:!1},!System.String.isNullOrWhiteSpace(raw)&&System.Boolean.tryParse(raw,parsed))?parsed.v:!1;else if(type===System.SByte)return raw|0;else if(type===System.Byte)return raw>>>0;else if(type===System.Int16)return raw|0;else if(type===System.UInt16)return raw>>>0;else if(type===System.Int32)return raw|0;else if(type===System.UInt32)return raw>>>0;else if(type===System.Int64)return System.Int64(raw);else if(type===System.UInt64)return System.UInt64(raw);else if(type===System.Single)return parseFloat(raw);else if(type===System.Double)return parseFloat(raw);else if(type===System.Decimal)try{return System.Decimal(raw)}catch(ex){return System.Decimal(0)}else if(type===System.Char)return raw.length===0?0:raw.charCodeAt(0);else if(type===System.String)return field?raw:JSON.parse(raw);else if(type===System.TimeSpan)return System.TimeSpan.parse(raw[0]=='"'?JSON.parse(raw):raw);else if(type===System.DateTime){var isUtc=System.String.endsWith(raw,"Z"),format="yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFF"+(isUtc?"'Z'":"K"),d=System.DateTime.parseExact(raw,format,null,!0,!0);return d=d!=null?d:System.DateTime.parse(raw,undefined,!0),isUtc&&d.kind!==1&&(d=System.DateTime.specifyKind(d,1)),d}else if(type===System.DateTimeOffset){var isUtc=System.String.endsWith(raw,"Z"),format="yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFF"+(isUtc?"'Z'":"K"),d=System.DateTime.parseExact(raw,format,null,!0,!0);return d=d!=null?d:System.DateTime.parse(raw,undefined,!0),isUtc&&d.kind!==1&&(d=System.DateTime.specifyKind(d,1)),new System.DateTimeOffset.$ctor1(d)}else if(Bridge.Reflection.isEnum(type))return Bridge.unbox(System.Enum.parse(type,raw));else if(type===System.Array.type(System.Byte,1))return System.Convert.fromBase64String(raw);else{if(castOperator=Newtonsoft.Json.JsonConvert.tryToGetCastOperator(raw,type),castOperator)return castOperator(raw);if(isObject)return raw;throw new System.ArgumentException(System.String.format("Could not cast or convert from {0} to {1}",Bridge.getTypeName(raw),Bridge.getTypeName(type)));}}else if(typeof raw=="object")if(def!==null&&type.$kind!=="struct")return def;else if(Bridge.isArray(null,type)){if(typeName=raw.$type,typeName!=null&&(type=Newtonsoft.Json.JsonConvert.BindToType(settings,typeName,type),raw=raw.$values),raw.length===undefined)return[];for(arr=[],System.Array.type(type.$elementType,type.$rank||1,arr),i=0;i<raw.length;i++)arr[i]=Newtonsoft.Json.JsonConvert.DeserializeObject(raw[i],type.$elementType,settings,!0);return arr}else if(Bridge.Reflection.isAssignableFrom(System.Collections.IList,type)){if(typeName=raw.$type,typeName!=null&&(type=Newtonsoft.Json.JsonConvert.BindToType(settings,typeName,type),raw=raw.$values),typeElement=System.Collections.Generic.List$1.getElementType(type)||System.Object,list=instance?{value:instance}:Newtonsoft.Json.JsonConvert.createInstance(type,raw,settings),list&&list.$list)return list.value;if(list=list.value,raw.length===undefined)return list;for(i=0;i<raw.length;i++)list.add(Newtonsoft.Json.JsonConvert.DeserializeObject(raw[i],typeElement,settings,!0));return list}else if(Bridge.Reflection.isAssignableFrom(System.Collections.IDictionary,type)){var typesGeneric=System.Collections.Generic.Dictionary$2.getTypeParameters(type),typeKey=typesGeneric[0]||System.Object,typeValue=typesGeneric[1]||System.Object,names,typeName=raw.$type,handling=!1;if(typeName!=null&&(type=Newtonsoft.Json.JsonConvert.BindToType(settings,typeName,type),handling=!0),dictionary=instance?{value:instance}:Newtonsoft.Json.JsonConvert.createInstance(type,raw,settings),dictionary&&dictionary.$list)return dictionary.value;names=dictionary.names||[];dictionary=dictionary.value;for(each in raw)raw.hasOwnProperty(each)&&(!handling||each!=="$type")&&names.indexOf(each)<0&&dictionary.add(Newtonsoft.Json.JsonConvert.DeserializeObject(each,typeKey,settings,!0),Newtonsoft.Json.JsonConvert.DeserializeObject(raw[each],typeValue,settings,!0));return dictionary}else{if(typeName=raw.$type,typeName!=null&&(type=Newtonsoft.Json.JsonConvert.BindToType(settings,typeName,type)),!Bridge.getMetadata(type))return Bridge.merge(isObject?{}:instance||Bridge.createInstance(type),raw);if(o=instance?{value:instance,names:i_names,"default":!0}:Newtonsoft.Json.JsonConvert.createInstance(type,raw,settings),names=o.names||[],isDefCtor=o.default,o=o.value,methods=Bridge.Reflection.getMembers(type,8,54),methods.length>0)for(midx=0;midx<methods.length;midx++)System.Attribute.isDefined(methods[midx],System.Runtime.Serialization.OnDeserializingAttribute,!1)&&Bridge.Reflection.midel(methods[midx],o)(null);for(camelCase=settings&&Bridge.is(settings.ContractResolver,Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver),fields=Newtonsoft.Json.JsonConvert.getMembers(type,4),i=0;i<fields.length;i++)(cfg=fields[i],f=cfg.member,mname=cfg.attr&&cfg.attr.PropertyName||(camelCase?f.n.charAt(0).toLowerCase()+f.n.substr(1):f.n),names.indexOf(mname)>-1)||(value=raw[mname],value===undefined&&(value=Newtonsoft.Json.JsonConvert.getValue(raw,mname)),result=Newtonsoft.Json.JsonConvert.preRawProcess(cfg,raw,value,settings),value=result.value,value!==undefined&&(currentValue=Bridge.Reflection.fieldAccess(f,o),objectCreationHandling=Newtonsoft.Json.ObjectCreationHandling.Auto,finst=undefined,cfg.attr&&cfg.attr._objectCreationHandling!=null?objectCreationHandling=cfg.attr._objectCreationHandling:settings._objectCreationHandling!=null&&(objectCreationHandling=settings._objectCreationHandling),Newtonsoft.Json.JsonConvert.needReuse(objectCreationHandling,currentValue,f.rt,isDefCtor)&&(finst=Bridge.unbox(currentValue,!0)),cfg.attr&&(typeNameHandling=cfg.attr._typeNameHandling),typeNameHandling!=null&&(oldTypeNameHandling=settings._typeNameHandling,settings._typeNameHandling=typeNameHandling),svalue=Newtonsoft.Json.JsonConvert.DeserializeObject(value,f.rt,settings,!0,finst),typeNameHandling!=null&&(settings._typeNameHandling=oldTypeNameHandling),result=Newtonsoft.Json.JsonConvert.preProcess(cfg,o,svalue,settings),result!==!1&&finst===undefined&&Bridge.Reflection.fieldAccess(f,o,result.value)));for(properties=Newtonsoft.Json.JsonConvert.getMembers(type,16),i=0;i<properties.length;i++)(cfg=properties[i],p=cfg.member,mname=cfg.attr&&cfg.attr.PropertyName||(camelCase?p.n.charAt(0).toLowerCase()+p.n.substr(1):p.n),names.indexOf(mname)>-1)||(value=raw[mname],value===undefined&&(value=Newtonsoft.Json.JsonConvert.getValue(raw,mname)),result=Newtonsoft.Json.JsonConvert.preRawProcess(cfg,raw,value,settings),value=result.value,value!==undefined&&(finst=undefined,p.g&&(currentValue=Bridge.Reflection.midel(p.g,o)(),objectCreationHandling=Newtonsoft.Json.ObjectCreationHandling.Auto,cfg.attr&&cfg.attr._objectCreationHandling!=null?objectCreationHandling=cfg.attr._objectCreationHandling:settings._objectCreationHandling!=null&&(objectCreationHandling=settings._objectCreationHandling),Newtonsoft.Json.JsonConvert.needReuse(objectCreationHandling,currentValue,p.rt,isDefCtor)&&(finst=Bridge.unbox(currentValue,!0))),cfg.attr&&(typeNameHandling=cfg.attr._typeNameHandling),typeNameHandling!=null&&(oldTypeNameHandling=settings._typeNameHandling,settings._typeNameHandling=typeNameHandling),svalue=Newtonsoft.Json.JsonConvert.DeserializeObject(value,p.rt,settings,!0,finst),typeNameHandling!=null&&(settings._typeNameHandling=oldTypeNameHandling),result=Newtonsoft.Json.JsonConvert.preProcess(cfg,o,svalue,settings),result!==!1&&finst===undefined&&(p.s?Bridge.Reflection.midel(p.s,o)(result.value):type.$kind==="anonymous"&&(o[p.n]=result.value))));if(methods.length>0)for(midx=0;midx<methods.length;midx++)System.Attribute.isDefined(methods[midx],System.Runtime.Serialization.OnDeserializedAttribute,!1)&&Bridge.Reflection.midel(methods[midx],o)(null);return o}}}}});Newtonsoft.Json.$cache=[]});
@@ -1,5 +1,5 @@
1
1
  /// <reference types="../monaco" />
2
- /// <reference types="monaco-editor-core/monaco" />
2
+ /// <reference types="monaco-editor/monaco" />
3
3
  import type { LanguageServiceDefaultsImpl } from './monaco.contribution';
4
4
  import type { KustoWorker } from './kustoWorker';
5
5
  type Uri = monaco.Uri;
@@ -1,4 +1,4 @@
1
- /// <reference types="monaco-editor-core/monaco" />
1
+ /// <reference types="monaco-editor/monaco" />
2
2
  export default class KustoCommandFormatter {
3
3
  private editor;
4
4
  private actionAdded;
@@ -1,5 +1,5 @@
1
1
  /// <reference types="../monaco" />
2
- /// <reference types="monaco-editor-core/monaco" />
2
+ /// <reference types="monaco-editor/monaco" />
3
3
  /**
4
4
  * Highlights the command that surround cursor location
5
5
  */
@@ -10,7 +10,7 @@ export default class KustoCommandHighlighter implements monaco.editor.IEditorCon
10
10
  private disposables;
11
11
  private decorations;
12
12
  /**
13
- * Register to cursor movement and seleciton events.
13
+ * Register to cursor movement and selection events.
14
14
  * @param editor monaco editor instance
15
15
  */
16
16
  constructor(editor: monaco.editor.ICodeEditor);
@@ -1,5 +1,5 @@
1
1
  /// <reference types="../monaco" />
2
- /// <reference types="monaco-editor-core/monaco" />
2
+ /// <reference types="monaco-editor/monaco" />
3
3
  /**
4
4
  * Extending ICode editor to contain additional kusto-specific methods.
5
5
  * note that the extend method needs to be called at least once to take affect, otherwise this here code is useless.
@@ -1,13 +1,17 @@
1
1
  /*!-----------------------------------------------------------------------------
2
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
3
- * monaco-kusto version: 6.0.0(d333d5bf2aa3d56b17120ed36803a7fb5bcfb87a)
3
+ * monaco-kusto version: 6.1.1(678731e78268dbe877b517e302fa7db86fd96b3c)
4
4
  * Released under the MIT license
5
5
  * https://https://github.com/Azure/monaco-kusto/blob/master/README.md
6
6
  *-----------------------------------------------------------------------------*/
7
7
 
8
- import * as worker from 'monaco-editor-core/esm/vs/editor/editor.worker';
8
+ import * as worker from 'monaco-editor/esm/vs/editor/editor.worker';
9
9
  import * as ls from 'vscode-languageserver-types';
10
10
  import XRegExp from 'xregexp';
11
+ import '@kusto/language-service/bridge.min';
12
+ import '@kusto/language-service/Kusto.JavaScript.Client.min';
13
+ import '@kusto/language-service/newtonsoft.json.min';
14
+ import '@kusto/language-service-next/Kusto.Language.Bridge.min';
11
15
 
12
16
  // Definition of schema object in the context of language services. This model is exposed to consumers of this library.
13
17
 
@@ -76,28 +80,8 @@ const getInputParameterAsCslString = inputParameter => {
76
80
  }
77
81
  };
78
82
 
79
- // polyfill string endsWith
80
- if (!String.prototype.endsWith) {
81
- String.prototype.endsWith = function (search, this_len) {
82
- if (this_len === undefined || this_len > this.length) {
83
- this_len = this.length;
84
- }
85
- return this.substring(this_len - search.length, this_len) === search;
86
- };
87
- }
88
-
89
- // If we're running in a web worker - which doesn't share global context with the main thread -
90
- // we need to manually load dependencies that are not explicit- meaning our non-module dependencies
91
- // generated by Bridge.Net
92
- if (typeof document == 'undefined') {
93
- // monaco will run the worker from vs/base/worker so the relative path needs to be from there (hence going up 2 dirs)
94
- importScripts('../../language/kusto/bridge.min.js');
95
- importScripts('../../language/kusto/kusto.javascript.client.min.js');
96
- importScripts('../../language/kusto/Kusto.Language.Bridge.min.js');
97
- }
98
83
  var k = Kusto.Data.IntelliSense;
99
84
  var parsing = Kusto.Language.Parsing;
100
- Kusto.Language.Syntax;
101
85
  var k2 = Kusto.Language.Editor;
102
86
  var sym = Kusto.Language.Symbols;
103
87
  var GlobalState = Kusto.Language.GlobalState;
@@ -119,15 +103,7 @@ class ParseProperties {
119
103
  return true;
120
104
  }
121
105
  }
122
- let TokenKind;
123
-
124
- /**
125
- * A plain old javascript object that is roughly equivalent to the @kusto/language-service-next object, but without
126
- * all the Bridge.Net properties and methods. this object is being sent from web worker to main thread and turns out
127
- * that when posting the message we lose all properties (and functions), thus we use a POJO instead.
128
- * This issue started happening once upgrading to 0.20.0 from 0.15.5.
129
- */
130
- (function (TokenKind) {
106
+ let TokenKind = /*#__PURE__*/function (TokenKind) {
131
107
  TokenKind[TokenKind["TableToken"] = 2] = "TableToken";
132
108
  TokenKind[TokenKind["TableColumnToken"] = 4] = "TableColumnToken";
133
109
  TokenKind[TokenKind["OperatorToken"] = 8] = "OperatorToken";
@@ -147,7 +123,16 @@ let TokenKind;
147
123
  TokenKind[TokenKind["PluginToken"] = 131072] = "PluginToken";
148
124
  TokenKind[TokenKind["BracketRangeToken"] = 262144] = "BracketRangeToken";
149
125
  TokenKind[TokenKind["ClientDirectiveToken"] = 524288] = "ClientDirectiveToken";
150
- })(TokenKind || (TokenKind = {}));
126
+ return TokenKind;
127
+ }({});
128
+
129
+ /**
130
+ * A plain old javascript object that is roughly equivalent to the @kusto/language-service-next object, but without
131
+ * all the Bridge.Net properties and methods. this object is being sent from web worker to main thread and turns out
132
+ * that when posting the message we lose all properties (and functions), thus we use a POJO instead.
133
+ * This issue started happening once upgrading to 0.20.0 from 0.15.5.
134
+ */
135
+
151
136
  /**
152
137
  * convert the bridge.net object to a plain javascript object that only contains data.
153
138
  * @param k2Classifications @kusto/language-service-next bridge.net object
@@ -633,12 +618,12 @@ class KustoLanguageService {
633
618
  start,
634
619
  end
635
620
  }])[0];
636
- const codeActionInfo = block.Service.GetCodeActions(start, start, end - start + 1, null, true, null, new Kusto.Language.Utils.CancellationToken());
621
+ const codeActionInfo = block.Service.GetCodeActions(start, start, 0, null, true, null, new Kusto.Language.Utils.CancellationToken());
637
622
  const codeActions = this.toArray(codeActionInfo.Actions);
638
623
  // Some code actions are of type "MenuAction". We want to flat them out, to show them seperately.
639
624
  let flatCodeActions = [];
640
625
  for (let i = 0; i < codeActions.length; i++) {
641
- flatCodeActions.push(...this.flattenCodeActions(codeActions[i]));
626
+ flatCodeActions.push(...this.flattenCodeActions(codeActions[i], null));
642
627
  }
643
628
  return flatCodeActions;
644
629
  }
@@ -662,19 +647,41 @@ class KustoLanguageService {
662
647
  }
663
648
  return {
664
649
  title: applyCodeAction.Title,
665
- changes
650
+ changes,
651
+ kind: applyCodeAction.Kind
666
652
  };
667
653
  }).filter(resultAction => resultAction.changes.length);
668
654
  return Promise.resolve(resultActionsMap);
669
655
  }
670
- flattenCodeActions(codeAction) {
656
+ transformCodeActionTitle(currentActionTitle, parentActionTitle) {
657
+ let title = currentActionTitle;
658
+ switch (title) {
659
+ case 'Apply':
660
+ title = 'Apply once';
661
+ break;
662
+ case 'Fix All':
663
+ title = 'Apply to all';
664
+ break;
665
+ case 'Extract Value':
666
+ title = 'Extract value';
667
+ break;
668
+ }
669
+ if (parentActionTitle) {
670
+ // We want to lower case the first character since it's going to be in brackets
671
+ const parentActionTitleLowerCased = parentActionTitle.charAt(0).toUpperCase() + parentActionTitle.slice(1);
672
+ title = `${title} (${parentActionTitleLowerCased})`;
673
+ }
674
+ return title;
675
+ }
676
+ flattenCodeActions(codeAction, parentTitle) {
671
677
  const applyActions = [];
672
678
  if (codeAction instanceof k2.ApplyAction) {
679
+ codeAction.Title = this.transformCodeActionTitle(codeAction.Title, parentTitle);
673
680
  applyActions.push(codeAction);
674
681
  } else if (codeAction instanceof k2.MenuAction) {
675
682
  const nestedCodeActions = this.toArray(codeAction.Actions);
676
683
  for (let i = 0; i < nestedCodeActions.length; i++) {
677
- applyActions.push(...this.flattenCodeActions(nestedCodeActions[i]));
684
+ applyActions.push(...this.flattenCodeActions(nestedCodeActions[i], codeAction.Title));
678
685
  }
679
686
  }
680
687
  return applyActions;
@@ -2106,9 +2113,13 @@ class KustoWorker {
2106
2113
  }
2107
2114
  }
2108
2115
  } = result;
2109
- const range = new monaco.Range(start.line + 1, start.character + 1, end.line + 1, end.character + 1);
2110
2116
  return {
2111
- range,
2117
+ range: {
2118
+ startLineNumber: start.line + 1,
2119
+ startColumn: start.character + 1,
2120
+ endLineNumber: end.line + 1,
2121
+ endColumn: end.character + 1
2122
+ },
2112
2123
  text
2113
2124
  };
2114
2125
  });
@@ -1,8 +1,10 @@
1
+ /// <reference types="../monaco" />
2
+ /// <reference types="monaco-editor/monaco" />
1
3
  import type { LanguageServiceDefaultsImpl } from './monaco.contribution';
2
4
  import { WorkerAccessor } from './languageFeatures';
3
5
  /**
4
6
  * Called when Kusto language is first needed (a model has the language set)
5
7
  * @param defaults
6
8
  */
7
- export declare function setupMode(defaults: LanguageServiceDefaultsImpl, monacoInstance: any): WorkerAccessor;
9
+ export declare function setupMode(defaults: LanguageServiceDefaultsImpl, monacoInstance: typeof monaco): WorkerAccessor;
8
10
  export declare function getKustoWorker(): Promise<WorkerAccessor>;
@@ -1,6 +1,6 @@
1
1
  /*!-----------------------------------------------------------------------------
2
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
3
- * monaco-kusto version: 6.0.0(d333d5bf2aa3d56b17120ed36803a7fb5bcfb87a)
3
+ * monaco-kusto version: 6.1.1(678731e78268dbe877b517e302fa7db86fd96b3c)
4
4
  * Released under the MIT license
5
5
  * https://https://github.com/Azure/monaco-kusto/blob/master/README.md
6
6
  *-----------------------------------------------------------------------------*/
@@ -98,10 +98,13 @@ const KustoLanguageDefinition = {
98
98
  displayName: 'Kusto',
99
99
  defaultToken: 'invalid',
100
100
  brackets: [['[', ']', 'delimiter.square'], ['(', ')', 'delimiter.parenthesis']],
101
+ // types are wrong
101
102
  wordDefinition: /(-?\d*\.\d\w*)|([^\`\~\!\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,
102
103
  // .slice() call is for creating a shallow copy of the array since bridge.net shoves a $type property on the array which monaco doesn't like.
103
- promotedOperatorCommandTokens: Kusto.Data.IntelliSense.CslCommandParser.PromotedOperatorCommandTokens.slice(0),
104
- operatorCommandTokens: Kusto.Data.IntelliSense.CslCommandParser.OperatorCommandTokens.slice(0),
104
+ // Kusto.Data.IntelliSense.CslCommandParser.PromotedOperatorCommandTokens.slice(0),
105
+ promotedOperatorCommandTokens: ['where', 'count', 'extend', 'join', 'limit', 'order', 'project', 'project-away', 'project-rename', 'project-reorder', 'project-keep', 'render', 'sort', 'summarize', 'distinct', 'take', 'top', 'top-nested', 'top-hitters', 'union', 'mv-expand', 'mv-apply', 'reduce', 'evaluate', 'parse', 'parse-where', 'parse-kv', 'sample', 'sample-distinct', 'make-series', 'getschema', 'serialize', 'invoke', 'as', 'scan'],
106
+ // Kusto.Data.IntelliSense.CslCommandParser.OperatorCommandTokens.slice(0),
107
+ operatorCommandTokens: ['filter', 'fork', 'facet', 'range', 'consume', 'find', 'search', 'print', 'partition', 'lookup', 'where', 'count', 'extend', 'join', 'limit', 'order', 'project', 'project-away', 'project-rename', 'project-reorder', 'project-keep', 'render', 'sort', 'summarize', 'distinct', 'take', 'top', 'top-nested', 'top-hitters', 'union', 'mv-expand', 'mv-apply', 'reduce', 'evaluate', 'parse', 'parse-where', 'parse-kv', 'sample', 'sample-distinct', 'make-series', 'getschema', 'serialize', 'invoke', 'as', 'scan'],
105
108
  keywords: ['by', 'on', 'contains', 'notcontains', 'containscs', 'notcontainscs', 'startswith', 'has', 'matches', 'regex', 'true', 'false', 'and', 'or', 'typeof', 'int', 'string', 'date', 'datetime', 'time', 'long', 'real', '​boolean', 'bool'],
106
109
  operators: ['+', '-', '*', '/', '>', '<', '==', '<>', '<=', '>=', '~', '!~'],
107
110
  builtinFunctions: ['countof', 'bin', 'extentid', 'extract', 'extractjson', 'floor', 'iif', 'isnull', 'isnotnull', 'notnull', 'isempty', 'isnotempty', 'notempty', 'now', 're2', 'strcat', 'strlen', 'toupper', 'tostring', 'count', 'cnt', 'sum', 'min', 'max', 'avg'],
@@ -177,7 +180,6 @@ var Range = monaco.Range;
177
180
  monaco.Thenable;
178
181
  monaco.CancellationToken;
179
182
  monaco.IDisposable;
180
- var ClassificationKind = Kusto.Language.Editor.ClassificationKind;
181
183
  class DiagnosticsAdapter {
182
184
  _disposables = [];
183
185
  _contentListener = Object.create(null);
@@ -299,11 +301,11 @@ class DiagnosticsAdapter {
299
301
  const codeActions = await worker.getResultActions(resource.toString(), startOffset, endOffset);
300
302
  for (let i = 0; i < codeActions.length; i++) {
301
303
  const codeAction = codeActions[i];
302
- if (codeAction.title.includes('Extract Function')) {
304
+ if (codeAction.kind.includes('Extract Function')) {
303
305
  // Ignore extract function actions for now since they are buggy currently
304
306
  continue;
305
307
  }
306
- const codeActionKind = this.defaults.languageSettings.quickFixCodeActions?.find(actionTitle => codeAction.title.includes(actionTitle)) ? 'quickfix' : 'custom';
308
+ const codeActionKind = this.defaults.languageSettings.quickFixCodeActions?.find(actionKind => codeAction.kind.includes(actionKind)) ? 'quickfix' : 'custom';
307
309
  if (codeActionKind === 'quickfix' && !enableQuickFix) {
308
310
  return;
309
311
  }
@@ -455,6 +457,41 @@ function toDiagnostics(resource, diag) {
455
457
  source: diag.source
456
458
  };
457
459
  }
460
+ /**
461
+ * Copy of Kusto.Language.Editor.ClassificationKind we don't have to depend on it in this file
462
+ */
463
+ const ClassificationKind = {
464
+ PlainText: 0,
465
+ Comment: 1,
466
+ Punctuation: 2,
467
+ Directive: 3,
468
+ Literal: 4,
469
+ StringLiteral: 5,
470
+ Type: 6,
471
+ Column: 7,
472
+ Table: 8,
473
+ Database: 9,
474
+ Function: 10,
475
+ Parameter: 11,
476
+ Variable: 12,
477
+ Identifier: 13,
478
+ ClientParameter: 14,
479
+ QueryParameter: 15,
480
+ ScalarOperator: 16,
481
+ MathOperator: 17,
482
+ QueryOperator: 18,
483
+ Command: 19,
484
+ Keyword: 20,
485
+ MaterializedView: 21,
486
+ SchemaMember: 22,
487
+ SignatureParameter: 23,
488
+ Option: 24
489
+ };
490
+ const ClassificationKindNames = {};
491
+ for (const [key, value] of Object.entries(ClassificationKind)) {
492
+ ClassificationKindNames[value] = key;
493
+ }
494
+
458
495
  // commented here is the color definitions are were defined by v1 intellisense terminology:
459
496
  // { token: 'comment', foreground: '008000' }, // CommentToken Green
460
497
  // { token: 'variable.predefined', foreground: '800080' }, // CalculatedColumnToken Purple
@@ -654,20 +691,11 @@ class ColorizationAdapter {
654
691
  }
655
692
  }
656
693
 
657
- /**
658
- * Gets all keys of an enum (the string keys not the numeric values).
659
- * @param e Enum type
660
- */
661
- function getEnumKeys(e) {
662
- return Object.keys(e).filter(k => typeof e[k] === 'number');
663
- }
664
-
665
694
  /**
666
695
  * Generates a mapping between ClassificationKind and color.
667
696
  */
668
697
  function getClassificationColorTriplets() {
669
- const keys = getEnumKeys(ClassificationKind);
670
- const result = keys.map(key => ({
698
+ const result = Object.keys(ClassificationKind).map(key => ({
671
699
  classification: key,
672
700
  colorLight: classificationToColorLight[key],
673
701
  colorDark: classificationToColorDark[key]
@@ -704,7 +732,7 @@ function toDecoration(model, classification) {
704
732
  const start = model.getPositionAt(classification.start);
705
733
  const end = model.getPositionAt(classification.start + classification.length);
706
734
  const range = new Range(start.lineNumber, start.column, end.lineNumber, end.column);
707
- const inlineClassName = ClassificationKind.$names[classification.kind];
735
+ const inlineClassName = ClassificationKindNames[classification.kind];
708
736
  return {
709
737
  range,
710
738
  options: {
@@ -1,18 +1,16 @@
1
- /// <reference types="monaco-editor-core/monaco" />
2
- type IWorkerContext = monaco.worker.IWorkerContext;
1
+ /// <reference types="monaco-editor/monaco" />
2
+ import * as ls from 'vscode-languageserver-types';
3
3
  import * as kustoService from './languageService/kustoLanguageService';
4
4
  import type { LanguageSettings } from './languageService/settings';
5
5
  import { Schema, showSchema, ScalarParameter, Database, TabularParameter } from './languageService/schema';
6
- import * as ls from 'vscode-languageserver-types';
7
6
  import type { ColorizationRange } from './languageService/kustoLanguageService';
8
7
  import type { RenderInfo } from './languageService/renderInfo';
9
- import type { FoldingRange } from 'vscode-languageserver-types';
10
8
  export declare class KustoWorker {
11
9
  private _ctx;
12
10
  private _languageService;
13
11
  private _languageId;
14
12
  private _languageSettings;
15
- constructor(ctx: IWorkerContext, createData: ICreateData);
13
+ constructor(ctx: monaco.worker.IWorkerContext, createData: ICreateData);
16
14
  setSchema(schema: Schema): Promise<void>;
17
15
  addClusterToSchema(uri: string, clusterName: string, databasesNames: string[]): Promise<void>;
18
16
  addDatabaseToSchema(uri: string, clusterName: string, databaseSchema: Database): Promise<void>;
@@ -60,7 +58,7 @@ export declare class KustoWorker {
60
58
  }[], includeWarnings?: boolean, includeSuggestions?: boolean): Promise<ls.Diagnostic[]>;
61
59
  getResultActions(uri: string, start: number, end: number): Promise<kustoService.ResultAction[]>;
62
60
  doRangeFormat(uri: string, range: ls.Range): Promise<ls.TextEdit[]>;
63
- doFolding(uri: string): Promise<FoldingRange[]>;
61
+ doFolding(uri: string): Promise<ls.FoldingRange[]>;
64
62
  doDocumentFormat(uri: string): Promise<ls.TextEdit[]>;
65
63
  doCurrentCommandFormat(uri: string, caretPosition: ls.Position): Promise<ls.TextEdit[]>;
66
64
  doColorization(uri: string, colorizationIntervals: {
@@ -88,5 +86,4 @@ export interface ICreateData {
88
86
  languageId: string;
89
87
  languageSettings: LanguageSettings;
90
88
  }
91
- export declare function create(ctx: IWorkerContext, createData: ICreateData): KustoWorker;
92
- export {};
89
+ export declare function create(ctx: monaco.worker.IWorkerContext, createData: ICreateData): KustoWorker;
@@ -1,4 +1,4 @@
1
- /// <reference types="monaco-editor-core/monaco" />
1
+ /// <reference types="monaco-editor/monaco" />
2
2
  /// <reference types="../monaco" />
3
3
  import type { LanguageServiceDefaultsImpl } from './monaco.contribution';
4
4
  import type { KustoWorker } from './kustoWorker';
@@ -1,10 +1,11 @@
1
1
  /// <reference types="@kusto/language-service-next/Kusto.Language.Bridge" />
2
2
  /// <reference types="@kusto/language-service/Kusto.JavaScript.Client" />
3
- import * as s from './schema';
4
3
  import * as ls from 'vscode-languageserver-types';
5
4
  import type { TextDocument } from 'vscode-languageserver-textdocument';
6
5
  import type { FoldingRange } from 'vscode-languageserver-types';
6
+ import * as s from './schema';
7
7
  import type { LanguageSettings } from './settings';
8
+ import 'language-service';
8
9
  import k = Kusto.Data.IntelliSense;
9
10
  import k2 = Kusto.Language.Editor;
10
11
  import { Database } from './schema';
@@ -57,6 +58,7 @@ export interface ResultAction {
57
58
  deleteLength: number;
58
59
  insertText: string | null;
59
60
  }[];
61
+ kind: string;
60
62
  }
61
63
  export interface LanguageService {
62
64
  doComplete(document: TextDocument, position: ls.Position): Promise<ls.CompletionList>;
@@ -1 +1,2 @@
1
- export declare const KustoLanguageDefinition: any;
1
+ /// <reference types="monaco-editor/monaco" />
2
+ export declare const KustoLanguageDefinition: monaco.languages.IMonarchLanguage;
@@ -1,8 +1,8 @@
1
- export declare type VisualizationType = 'anomalychart' | 'areachart' | 'barchart' | 'columnchart' | 'ladderchart' | 'linechart' | 'piechart' | 'pivotchart' | 'scatterchart' | 'stackedareachart' | 'timechart' | 'table' | 'timeline' | 'timepivot' | 'card';
2
- export declare type Scale = 'linear' | 'log';
3
- export declare type LegendVisibility = 'visible' | 'hidden';
4
- export declare type YSplit = 'none' | 'axes' | 'panels';
5
- export declare type Kind = 'default' | 'unstacked' | 'stacked' | 'stacked100' | 'map';
1
+ export type VisualizationType = 'anomalychart' | 'areachart' | 'barchart' | 'columnchart' | 'ladderchart' | 'linechart' | 'piechart' | 'pivotchart' | 'scatterchart' | 'stackedareachart' | 'timechart' | 'table' | 'timeline' | 'timepivot' | 'card';
2
+ export type Scale = 'linear' | 'log';
3
+ export type LegendVisibility = 'visible' | 'hidden';
4
+ export type YSplit = 'none' | 'axes' | 'panels';
5
+ export type Kind = 'default' | 'unstacked' | 'stacked' | 'stacked100' | 'map';
6
6
  export interface RenderOptions {
7
7
  visualization?: null | VisualizationType;
8
8
  title?: null | string;
@@ -1,12 +1,12 @@
1
1
  /// <reference types="../monaco" />
2
- /// <reference types="monaco-editor-core/monaco" />
3
- import IEvent = monaco.IEvent;
2
+ /// <reference types="monaco-editor/monaco" />
3
+ import 'monaco-editor';
4
4
  export declare class LanguageServiceDefaultsImpl implements monaco.languages.kusto.LanguageServiceDefaults {
5
5
  private _onDidChange;
6
6
  private _languageSettings;
7
7
  private _workerMaxIdleTime;
8
8
  constructor(languageSettings: monaco.languages.kusto.LanguageSettings);
9
- get onDidChange(): IEvent<monaco.languages.kusto.LanguageServiceDefaults>;
9
+ get onDidChange(): monaco.IEvent<monaco.languages.kusto.LanguageServiceDefaults>;
10
10
  get languageSettings(): monaco.languages.kusto.LanguageSettings;
11
11
  setLanguageSettings(options: monaco.languages.kusto.LanguageSettings): void;
12
12
  setMaximumWorkerIdleTime(value: number): void;