! function ( e ) { if ( "object" == typeof module && "object" == typeof module . exports ) { var t = e ( require , exports ) ; void 0 !== t && ( module . exports = t ) ; } else "function" == typeof define && define . amd && define ( "vscode-languageserver-types/main" , [ "require" , "exports" ] , e ) ; } ( function ( e , t ) { var n ; ! function ( e ) { function t ( e , t ) { return { line : e , character : t } ; } function n ( e ) { var t = e ; return k . defined ( t ) && k . number ( t . line ) && k . number ( t . character ) ; } e . create = t , e . is = n ; } ( n = t . Position || ( t . Position = { } ) ) ; var r ; ! function ( e ) { function t ( e , t , r , i ) { if ( k . number ( e ) && k . number ( t ) && k . number ( r ) && k . number ( i ) ) return { start : n . create ( e , t ) , end : n . create ( r , i ) } ; if ( n . is ( e ) && n . is ( t ) ) return { start : e , end : t } ; throw new Error ( "Range#create called with invalid arguments[" + e + ", " + t + ", " + r + ", " + i + "]" ) ; } function r ( e ) { var t = e ; return k . defined ( t ) && n . is ( t . start ) && n . is ( t . end ) ; } e . create = t , e . is = r ; } ( r = t . Range || ( t . Range = { } ) ) ; var i ; ! function ( e ) { function t ( e , t ) { return { uri : e , range : t } ; } function n ( e ) { var t = e ; return k . defined ( t ) && r . is ( t ) && ( k . string ( t . uri ) || k . undefined ( t . uri ) ) ; } e . create = t , e . is = n ; } ( i = t . Location || ( t . Location = { } ) ) ; var o ; ! function ( e ) { function t ( e , t , n , r , i ) { var o = { range : e , message : t } ; return k . defined ( n ) && ( o . severity = n ) , k . defined ( r ) && ( o . code = r ) , k . defined ( i ) && ( o . source = i ) , o ; } function n ( e ) { var t = e ; return k . defined ( t ) && r . is ( t . range ) && k . string ( t . message ) && ( k . number ( t . severity ) || k . undefined ( t . severity ) ) && ( k . number ( t . code ) || k . string ( t . code ) || k . undefined ( t . code ) ) && ( k . string ( t . source ) || k . undefined ( t . source ) ) ; } e . create = t , e . is = n ; } ( o = t . Diagnostic || ( t . Diagnostic = { } ) ) ; var a ; ! function ( e ) { function t ( e , t ) { for ( var n = [ ] , r = 2 ; r < arguments . length ; r ++ ) n [ r - 2 ] = arguments [ r ] ; var i = { title : e , command : t } ; return k . defined ( n ) && n . length > 0 && ( i . arguments = n ) , i ; } function n ( e ) { var t = e ; return k . defined ( t ) && k . string ( t . title ) && k . string ( t . title ) ; } e . create = t , e . is = n ; } ( a = t . Command || ( t . Command = { } ) ) ; var s ; ! function ( e ) { function t ( e , t ) { return { range : e , newText : t } ; } function n ( e , t ) { return { range : { start : e , end : e } , newText : t } ; } function r ( e ) { return { range : e , newText : "" } ; } e . replace = t , e . insert = n , e . del = r ; } ( s = t . TextEdit || ( t . TextEdit = { } ) ) ; var c = function ( ) { function e ( ) { this . workspaceEdit = { changes : Object . create ( null ) } , this . textEditChanges = Object . create ( null ) ; } return Object . defineProperty ( e . prototype , "edit" , { get : function ( ) { return this . workspaceEdit ; } , enumerable : ! 0 , configurable : ! 0 } ) , e . prototype . getTextEditChange = function ( e ) { var t = function ( ) { function e ( e ) { this . edits = e ; } return e . prototype . insert = function ( e , t ) { this . edits . push ( s . insert ( e , t ) ) ; } , e . prototype . replace = function ( e , t ) { this . edits . push ( s . replace ( e , t ) ) ; } , e . prototype [ "delete" ] = function ( e ) { this . edits . push ( s . del ( e ) ) ; } , e . prototype . all = function ( ) { return this . edits ; } , e . prototype . clear = function ( ) { this . edits . splice ( 0 , this . edits . length ) ; } , e ; } ( ) , n = this . textEditChanges [ e ] ; if ( ! n ) { var r = [ ] ; this . workspaceEdit . changes [ e ] = r , n = new t ( r ) , this . textEditChanges [ e ] = n ; } return n ; } , e ; } ( ) ; t . WorkspaceChange = c ; var u ; ! function ( e ) { function t ( e ) { return { uri : e } ; } function n ( e ) { var t = e ; return k . defined ( t ) && k . string ( t . uri ) ; } e . create = t , e . is = n ; } ( u = t . TextDocumentIdentifier || ( t . TextDocumentIdentifier = { } ) ) ; var l ; ! function ( e ) { function t ( e , t ) { return { uri : e , version : t } ; } function n ( e ) { var t = e ; return k . defined ( t ) && k . string ( t . uri ) && k . number ( t . version ) ; } e . create = t , e . is = n ; } ( l = t . VersionedTextDocumentIdentifier || ( t . VersionedTextDocumentIdentifier = { } ) ) ; var p ; ! function ( e ) { function t ( e , t , n , r ) { return { uri : e , languageId : t , version : n , text : r } ; } function n ( e ) { var t = e ; return k . defined ( t ) && k . string ( t . uri ) && k . string ( t . languageId ) && k . number ( t . version ) && k . string ( t . text ) ; } e . create = t , e . is = n ; } ( p = t . TextDocumentItem || ( t . TextDocumentItem = { } ) ) ; var f ; ! function ( e ) { function t ( e ) { return { label : e } ; } e . create = t ; } ( f = t . CompletionItem || ( t . CompletionItem = { } ) ) ; var d ; ! function ( e ) { function t ( e , t ) { return { items : e ? e : [ ] , isIncomplete : ! ! t } ; } e . create = t ; } ( d = t . CompletionList || ( t . CompletionList = { } ) ) ; var h ; ! function ( e ) { function t ( e , t ) { return t ? { label : e , documentation : t } : { label : e } ; } e . create = t ; } ( h = t . ParameterInformation || ( t . ParameterInformation = { } ) ) ; var m ; ! function ( e ) { function t ( e , t ) { for ( var n = [ ] , r = 2 ; r < arguments . length ; r ++ ) n [ r - 2 ] = arguments [ r ] ; var i = { label : e } ; return k . defined ( t ) && ( i . documentation = t ) , k . defined ( n ) ? i . parameters = n : i . parameters = [ ] , i ; } e . create = t ; } ( m = t . SignatureInformation || ( t . SignatureInformation = { } ) ) ; var g ; ! function ( e ) { function t ( e , t ) { var n = { range : e } ; return k . number ( t ) && ( n . kind = t ) , n ; } e . create = t ; } ( g = t . DocumentHighlight || ( t . DocumentHighlight = { } ) ) ; var v ; ! function ( e ) { function t ( e , t , n , r , i ) { var o = { name : e , kind : t , location : { uri : r , range : n } } ; return i && ( o . containerName = i ) , o ; } e . create = t ; } ( v = t . SymbolInformation || ( t . SymbolInformation = { } ) ) ; var y ; ! function ( e ) { function t ( e ) { return { diagnostics : e } ; } function n ( e ) { var t = e ; return k . defined ( t ) && k . typedArray ( t . diagnostics , o . is ) ; } e . create = t , e . is = n ; } ( y = t . CodeActionContext || ( t . CodeActionContext = { } ) ) ; var b ; ! function ( e ) { function t ( e , t ) { var n = { range : e } ; return k . defined ( t ) && ( n . data = t ) , n ; } function n ( e ) { var t = e ; return k . defined ( t ) && r . is ( t . range ) && ( k . undefined ( t . command ) || a . is ( t . command ) ) ; } e . create = t , e . is = n ; } ( b = t . CodeLens || ( t . CodeLens = { } ) ) ; var x ; ! function ( e ) { function t ( e , t ) { return { tabSize : e , insertSpaces : t } ; } function n ( e ) { var t = e ; return k . defined ( t ) && k . number ( t . tabSize ) && k [ "boolean" ] ( t . insertSpaces ) ; } e . create = t , e . is = n ; } ( x = t . FormattingOptions || ( t . FormattingOptions = { } ) ) ; var S ; ! function ( e ) { function t ( e , t , n , r ) { return new T ( e , t , n , r ) ; } function n ( e ) { var t = e ; return ! ! ( k . defined ( t ) && k . string ( t . uri ) && ( k . undefined ( t . languageId ) || k . string ( t . languageId ) ) && k . number ( t . lineCount ) && k . func ( t . getText ) && k . func ( t . positionAt ) && k . func ( t . offsetAt ) ) ; } e . create = t , e . is = n ; } ( S = t . TextDocument || ( t . TextDocument = { } ) ) ; var k , T = function ( ) { function e ( e , t , n , r ) { this . _uri = e , this . _languageId = t , this . _version = n , this . _content = r , this . _lineOffsets = null ; } return Object . defineProperty ( e . prototype , "uri" , { get : function ( ) { return this . _uri ; } , enumerable : ! 0 , configurable : ! 0 } ) , Object . defineProperty ( e . prototype , "languageId" , { get : function ( ) { return this . _languageId ; } , enumerable : ! 0 , configurable : ! 0 } ) , Object . defineProperty ( e . prototype , "version" , { get : function ( ) { return this . _version ; } , enumerable : ! 0 , configurable : ! 0 } ) , e . prototype . getText = function ( ) { return this . _content ; } , e . prototype . update = function ( e , t ) { this . _content = e . text , this . _version = t , this . _lineOffsets = null ; } , e . prototype . getLineOffsets = function ( ) { if ( null === this . _lineOffsets ) { for ( var e = [ ] , t = this . _content , n = ! 0 , r = 0 ; r < t . length ; r ++ ) { n && ( e . push ( r ) , n = ! 1 ) ; var i = t . charAt ( r ) ; n = "\r" === i || "\n" === i , "\r" === i && r + 1 < t . length && "\n" === t . charAt ( r + 1 ) && r ++ ; } n && t . length > 0 && e . push ( t . length ) , this . _lineOffsets = e ; } return this . _lineOffsets ; } , e . prototype . positionAt = function ( e ) { e = Math . max ( Math . min ( e , this . _content . length ) , 0 ) ; var t = this . getLineOffsets ( ) , r = 0 , i = t . length ; if ( 0 === i ) return n . create ( 0 , e ) ; for ( ; r < i ; ) { var o = Math . floor ( ( r + i ) / 2 ) ; t [ o ] > e ? i = o : r = o + 1 ; } var a = r - 1 ; return n . create ( a , e - t [ a ] ) ; } , e . prototype . offsetAt = function ( e ) { var t = this . getLineOffsets ( ) ; if ( e . line >= t . length ) return this . _content . length ; if ( e . line < 0 ) return 0 ; var n = t [ e . line ] , r = e . line + 1 < t . length ? t [ e . line + 1 ] : this . _content . length ; return Math . max ( Math . min ( n + e . character , r ) , n ) ; } , Object . defineProperty ( e . prototype , "lineCount" , { get : function ( ) { return this . getLineOffsets ( ) . length ; } , enumerable : ! 0 , configurable : ! 0 } ) , e ; } ( ) ; ! function ( e ) { function t ( e ) { return "undefined" != typeof e ; } function n ( e ) { return "undefined" == typeof e ; } function r ( e ) { return e === ! 0 || e === ! 1 ; } function i ( e ) { return "[object String]" === c . call ( e ) ; } function o ( e ) { return "[object Number]" === c . call ( e ) ; } function a ( e ) { return "[object Function]" === c . call ( e ) ; } function s ( e , t ) { return Array . isArray ( e ) && e . every ( t ) ; } var c = Object . prototype . toString ; e . defined = t , e . undefined = n , e [ "boolean" ] = r , e . string = i , e . number = o , e . func = a , e . typedArray = s ; } ( k || ( k = { } ) ) ; } ) , define ( "vscode-languageserver-types" , [ "vscode-languageserver-types/main" ] , function ( e ) { return e ; } ) , function ( e ) { if ( "object" == typeof module && "object" == typeof module . exports ) { var t = e ( require , exports ) ; void 0 !== t && ( module . exports = t ) ; } else "function" == typeof define && define . amd && define ( "vscode-nls/vscode-nls" , [ "require" , "exports" ] , e ) ; } ( function ( e , t ) { function n ( e , t ) { var n ; return n = 0 === t . length ? e : e . replace ( /\{(\d+)\}/g , function ( e , n ) { var r = n [ 0 ] ; return "undefined" != typeof t [ r ] ? t [ r ] : e ; } ) ; } function r ( e , t ) { for ( var r = [ ] , i = 2 ; i < arguments . length ; i ++ ) r [ i - 2 ] = arguments [ i ] ; return n ( t , r ) ; } function i ( e ) { return r ; } function o ( e ) { return i ; } t . loadMessageBundle = i , t . config = o ; } ) , define ( "vscode-nls" , [ "vscode-nls/vscode-nls" ] , function ( e ) { return e ; } ) , function ( e ) { if ( "object" == typeof module && "object" == typeof module . exports ) { var t = e ( require , exports ) ; void 0 !== t && ( module . exports = t ) ; } else "function" == typeof define && define . amd && define ( "vscode-json-languageservice/services/jsonCompletion" , [ "require" , "exports" , "vscode-languageserver-types" , "vscode-nls" ] , e ) ; } ( function ( e , t ) { var n = e ( "vscode-languageserver-types" ) , r = e ( "vscode-nls" ) , i = r . loadMessageBundle ( ) , o = function ( ) { function e ( e , t , n ) { void 0 === t && ( t = [ ] ) , this . schemaService = e , this . contributions = t , this . promise = n || Promise ; } return e . prototype . doResolve = function ( e ) { for ( var t = this . contributions . length - 1 ; t >= 0 ; t -- ) if ( this . contributions [ t ] . resolveCompletion ) { var n = this . contributions [ t ] . resolveCompletion ( e ) ; if ( n ) return n ; } return this . promise . resolve ( e ) ; } , e . prototype . doComplete = function ( e , t , r ) { var i = this , o = e . offsetAt ( t ) , a = r . getNodeFromOffsetEndInclusive ( o ) , s = this . getCurrentWord ( e , o ) , c = null , u = void 0 , l = { items : [ ] , isIncomplete : ! 1 } ; ! a || "string" !== a . type && "number" !== a . type && "boolean" !== a . type && "null" !== a . type ? ( c = n . Range . create ( e . positionAt ( o - s . length ) , t ) , u = e . getText ( ) . substring ( o - s . length , o ) ) : ( c = n . Range . create ( e . positionAt ( a . start ) , e . positionAt ( a . end ) ) , u = e . getText ( ) . substring ( a . start , o ) ) ; var p = { } , f = { add : function ( e ) { p [ e . label ] || ( p [ e . label ] = ! 0 , c && ( e . textEdit = n . TextEdit . replace ( c , e . insertText ) ) , l . items . push ( e ) ) ; } , setAsIncomplete : function ( ) { l . isIncomplete = ! 0 ; } , error : function ( e ) { console . error ( e ) ; } , log : function ( e ) { console . log ( e ) ; } , getNumberOfProposals : function ( ) { return l . items . length ; } } ; return this . schemaService . getSchemaForResource ( e . uri , r ) . then ( function ( t ) { var n = [ ] , c = ! 0 , u = "" , d = null ; if ( a && "string" === a . type ) { var h = a ; h . isKey && ( c = ! ( a . parent && a . parent . value ) , d = a . parent ? a . parent : null , u = e . getText ( ) . substring ( a . start + 1 , a . end - 1 ) , a . parent && ( a = a . parent . parent ) ) ; } if ( a && "object" === a . type ) { if ( a . start === o ) return l ; var m = a . properties ; m . forEach ( function ( e ) { d && d === e || ( p [ e . key . value ] = ! 0 ) ; } ) ; var g = 0 === m . length || o >= m [ m . length - 1 ] . start ; t ? i . getPropertyCompletions ( t , r , a , c , g , f ) : i . getSchemaLessPropertyCompletions ( r , a , u , s , g , f ) ; var v = a . getPath ( ) ; i . contributions . forEach ( function ( t ) { var r = t . collectPropertyCompletions ( e . uri , v , s , c , g , f ) ; r && n . push ( r ) ; } ) , ! t && s . length > 0 && '"' !== e . getText ( ) . charAt ( o - s . length - 1 ) && f . add ( { kind : 10 , label : i . getLabelForValue ( s ) , insertText : i . getInsertTextForProperty ( s , null , ! 1 , g ) , documentation : "" } ) ; } ! a || "string" !== a . type && "number" !== a . type && "boolean" !== a . type && "null" !== a . type || ( a = a . parent ) ; var y = { } ; if ( t ? i . getValueCompletions ( t , r , a , o , f , y ) : i . getSchemaLessValueCompletions ( r , a , o , e , f ) , a ) { if ( "property" === a . type && o > a . colonOffset ) { var b = a . key . value , x = a . value ; if ( ! x || o <= x . end ) { var S = a . parent . getPath ( ) ; i . contributions . forEach ( function ( t ) { var r = t . collectValueCompletions ( e . uri , S , b , f ) ; r && n . push ( r ) ; } ) ; } } } else i . contributions . forEach ( function ( t ) { var r = t . collectDefaultCompletions ( e . uri , f ) ; r && n . push ( r ) ; } ) ; return i . promise . all ( n ) . then ( function ( ) { return 0 === f . getNumberOfProposals ( ) && i . addFillerValueCompletions ( y , f ) , l ; } ) ; } ) ; } , e . prototype . getPropertyCompletions = function ( e , t , n , r , i , o ) { var a = this , s = [ ] ; t . validate ( e . schema , s , n . start ) , s . forEach ( function ( e ) { if ( e . node === n && ! e . inverted ) { var t = e . schema . properties ; t && Object . keys ( t ) . forEach ( function ( e ) { var n = t [ e ] ; o . add ( { kind : 10 , label : e , insertText : a . getInsertTextForProperty ( e , n , r , i ) , filterText : a . getFilterTextForValue ( e ) , documentation : n . description || "" } ) ; } ) ; } } ) ; } , e . prototype . getSchemaLessPropertyCompletions = function ( e , t , n , r , i , o ) { var a = this , s = function ( e ) { e . properties . forEach ( function ( e ) { var t = e . key . value ; o . add ( { kind : 10 , label : t , insertText : a . getInsertTextForValue ( t ) , filterText : a . getFilterTextForValue ( t ) , documentation : "" } ) ; } ) ; } ; if ( t . parent ) if ( "property" === t . parent . type ) { var c = t . parent . key . value ; e . visit ( function ( e ) { var n = e ; return "property" === e . type && e !== t . parent && n . key . value === c && n . value && "object" === n . value . type && s ( n . value ) , ! 0 ; } ) ; } else "array" === t . parent . type && t . parent . items . forEach ( function ( e ) { "object" === e . type && e !== t && s ( e ) ; } ) ; else "object" === t . type && o . add ( { kind : 10 , label : "$schema" , insertText : this . getInsertTextForProperty ( "$schema" , null , ! 0 , i ) , documentation : "" , filterText : this . getFilterTextForValue ( "$schema" ) } ) ; } , e . prototype . getSchemaLessValueCompletions = function ( e , t , n , r , i ) { var o = this , a = function ( e ) { e . parent . contains ( n , ! 0 ) || i . add ( { kind : o . getSuggestionKind ( e . type ) , label : o . getLabelTextForMatchingNode ( e , r ) , insertText : o . getInsertTextForMatchingNode ( e , r ) , documentation : "" } ) , "boolean" === e . type && o . addBooleanValueCompletion ( ! e . getValue ( ) , i ) ; } ; if ( t ) { if ( "property" === t . type ) { var s = t ; if ( n > s . colonOffset ) { var c = s . value ; if ( c && ( n > c . end || "object" === c . type || "array" === c . type ) ) return ; var u = s . key . value ; e . visit ( function ( e ) { var t = e ; return "property" === e . type && t . key . value === u && t . value && a ( t . value ) , ! 0 ; } ) , "$schema" === u && t . parent && ! t . parent . parent && this . addDollarSchemaCompletions ( i ) ; } } if ( "array" === t . type ) if ( t . parent && "property" === t . parent . type ) { var l = t . parent . key . value ; e . visit ( function ( e ) { var t = e ; return "property" === e . type && t . key . value === l && t . value && "array" === t . value . type && t . value . items . forEach ( function ( e ) { a ( e ) ; } ) , ! 0 ; } ) ; } else t . items . forEach ( function ( e ) { a ( e ) ; } ) ; } else i . add ( { kind : this . getSuggestionKind ( "object" ) , label : "Empty object" , insertText : this . getInsertTextForValue ( { } ) , documentation : "" } ) , i . add ( { kind : this . getSuggestionKind ( "array" ) , label : "Empty array" , insertText : this . getInsertTextForValue ( [ ] ) , documentation : "" } ) ; } , e . prototype . getValueCompletions = function ( e , t , n , r , i , o ) { var a = this ; if ( n ) { var s = null ; if ( n && "property" === n . type && r > n . colonOffset ) { var c = n . value ; if ( c && r > c . end ) return ; s = n . key . value , n = n . parent ; } if ( n && ( null !== s || "array" === n . type ) ) { var u = [ ] ; t . validate ( e . schema , u , n . start ) , u . forEach ( function ( e ) { if ( e . node === n && ! e . inverted && e . schema && ( e . schema . items && a . addSchemaValueCompletions ( e . schema . items , i , o ) , e . schema . properties ) ) { var t = e . schema . properties [ s ] ; t && a . addSchemaValueCompletions ( t , i , o ) ; } } ) , "$schema" !== s || n . parent || this . addDollarSchemaCompletions ( i ) , o [ "boolean" ] && ( this . addBooleanValueCompletion ( ! 0 , i ) , this . addBooleanValueCompletion ( ! 1 , i ) ) , o [ "null" ] && this . addNullValueCompletion ( i ) ; } } else this . addSchemaValueCompletions ( e . schema , i , o ) ; } , e . prototype . addSchemaValueCompletions = function ( e , t , n ) { var r = this ; this . addDefaultValueCompletions ( e , t ) , this . addEnumValueCompletions ( e , t ) , this . collectTypes ( e , n ) , Array . isArray ( e . allOf ) && e . allOf . forEach ( function ( e ) { return r . addSchemaValueCompletions ( e , t , n ) ; } ) , Array . isArray ( e . anyOf ) && e . anyOf . forEach ( function ( e ) { return r . addSchemaValueCompletions ( e , t , n ) ; } ) , Array . isArray ( e . oneOf ) && e . oneOf . forEach ( function ( e ) { return r . addSchemaValueCompletions ( e , t , n ) ; } ) ; } , e . prototype . addDefaultValueCompletions = function ( e , t , n ) { var r = this ; void 0 === n && ( n = 0 ) ; var o = ! 1 ; if ( e [ "default" ] ) { for ( var a = e . type , s = e [ "default" ] , c = n ; c > 0 ; c -- ) s = [ s ] , a = "array" ; t . add ( { kind : this . getSuggestionKind ( a ) , label : this . getLabelForValue ( s ) , insertText : this . getInsertTextForValue ( s ) , detail : i ( "json.suggest.default" , "Default value" ) } ) , o = ! 0 ; } Array . isArray ( e . defaultSnippets ) && e . defaultSnippets . forEach ( function ( i ) { for ( var a = i . body , s = e . type , c = n ; c > 0 ; c -- ) a = [ a ] , s = "array" ; var u = r . getInsertTextForSnippetValue ( a ) ; t . add ( { kind : r . getSuggestionKind ( s ) , label : i . label || r . getLabelForSnippetValue ( a ) , documentation : i . description , insertText : u , filterText : u } ) , o = ! 0 ; } ) , o || ! e . items || Array . isArray ( e . items ) || this . addDefaultValueCompletions ( e . items , t , n + 1 ) ; } , e . prototype . addEnumValueCompletions = function ( e , t ) { var n = this ; Array . isArray ( e [ "enum" ] ) && e [ "enum" ] . forEach ( function ( r ) { return t . add ( { kind : n . getSuggestionKind ( e . type ) , label : n . getLabelForValue ( r ) , insertText : n . getInsertTextForValue ( r ) , documentation : "" } ) ; } ) ; } , e . prototype . collectTypes = function ( e , t ) { var n = e . type ; Array . isArray ( n ) ? n . forEach ( function ( e ) { return t [ e ] = ! 0 ; } ) : t [ n ] = ! 0 ; } , e . prototype . addFillerValueCompletions = function ( e , t ) { e . object && t . add ( { kind : this . getSuggestionKind ( "object" ) , label : "{}" , insertText : this . getInsertTextForGuessedValue ( { } ) , detail : i ( "defaults.object" , "New object" ) , documentation : "" } ) , e . array && t . add ( { kind : this . getSuggestionKind ( "array" ) , label : "[]" , insertText : this . getInsertTextForGuessedValue ( [ ] ) , detail : i ( "defaults.array" , "New array" ) , documentation : "" } ) ; } , e . prototype . addBooleanValueCompletion = function ( e , t ) { t . add ( { kind : this . getSuggestionKind ( "boolean" ) , label : e ? "true" : "false" , insertText : this . getInsertTextForValue ( e ) , documentation : "" } ) ; } , e . prototype . addNullValueCompletion = function ( e ) { e . add ( { kind : this . getSuggestionKind ( "null" ) , label : "null" , insertText : "null" , documentation : "" } ) ; } , e . prototype . addDollarSchemaCompletions = function ( e ) { var t = this , n = this . schemaService . getRegisteredSchemaIds ( function ( e ) { return "http" === e || "https" === e ; } ) ; n . forEach ( function ( n ) { return e . add ( { kind : 9 , label : t . getLabelForValue ( n ) , filterText : JSON . stringify ( n ) , insertText : t . getInsertTextForValue ( n ) , documentation : "" } ) ; } ) ; } , e . prototype . getLabelForValue = function ( e ) { var t = JSON . stringify ( e ) ; return t . length > 57 ? t . substr ( 0 , 57 ) . trim ( ) + "..." : t ; } , e . prototype . getFilterTextForValue = function ( e ) { return JSON . stringify ( e ) ; } , e . prototype . getLabelForSnippetValue = function ( e ) { var t = JSON . stringify ( e ) ; return t = t . replace ( /\{\{|\}\}/g , "" ) , t . length > 57 ? t . substr ( 0 , 57 ) . trim ( ) + "..." : t ; } , e . prototype . getInsertTextForValue = function ( e ) { var t = JSON . stringify ( e , null , "\t" ) ; return "{}" === t ? "{\n\t{{}}\n}" : "[]" === t ? "[\n\t{{}}\n]" : t = t . replace ( /[\\\{\}]/g , "\\$&" ) ; } , e . prototype . getInsertTextForSnippetValue = function ( e ) { return JSON . stringify ( e , null , "\t" ) ; } , e . prototype . getInsertTextForGuessedValue = function ( e ) { var t = this . getInsertTextForValue ( e ) ; switch ( typeof e ) { case "object" : return null === e ? "{{null}}" : t ; case "string" : return '"{{' + t . substr ( 1 , t . length - 2 ) + '}}"' ; case "number" : case "integer" : case "boolean" : return "{{" + t + "}}" ; } return t ; } , e . prototype . getSuggestionKind = function ( e ) { if ( Array . isArray ( e ) ) { var t = e ; e = t . length > 0 ? t [ 0 ] : null ; } if ( ! e ) return 12 ; switch ( e ) { case "string" : return 12 ; case "object" : return 9 ; case "property" : return 10 ; default : return 12 ; } } , e . prototype . getLabelTextForMatchingNode = function ( e , t ) { switch ( e . type ) { case "array" : return "[]" ; case "object" : return "{}" ; default : var n = t . getText ( ) . substr ( e . start , e . end - e . start ) ; return n ; } } , e . prototype . getInsertTextForMatchingNode = function ( e , t ) { switch ( e . type ) { case "array" : return this . getInsertTextForValue ( [ ] ) ; case "object" : return this . getInsertTextForValue ( { } ) ; default : var n = t . getText ( ) . substr ( e . start , e . end - e . start ) ; return n ; } } , e . prototype . getInsertTextForProperty = function ( e , t , n , r ) { var i = this . getInsertTextForValue ( e ) ; if ( ! n ) return i ; if ( i += ": " , t ) { var o = t [ "default" ] ; if ( "undefined" != typeof o ) i += this . getInsertTextForGuessedValue ( o ) ; else if ( t [ "enum" ] && t [ "enum" ] . length > 0 ) i += this . getInsertTextForGuessedValue ( t [ "enum" ] [ 0 ] ) ; else { var a = Array . isArray ( t . type ) ? t . type [ 0 ] : t . type ; switch ( a ) { case "boolean" : i += "{{false}}" ; break ; case "string" : i += '"{{}}"' ; break ; case "object" : i += "{\n\t{{}}\n}" ; break ; case "array" : i += "[\n\t{{}}\n]" ; break ; case "number" : case "integer" : i += "{{0}}" ; break ; case "null" : i += "{{null}}" ; break ; default : return i ; } } } else i += "{{}}" ; return r || ( i += "," ) , i ; } , e . prototype . getCurrentWord = function ( e , t ) { for ( var n = t - 1 , r = e . getText ( ) ; n >= 0 && ' \t\n\r\x0B":{[,]}' . indexOf ( r . charAt ( n ) ) === - 1 ; ) n -- ; return r . substring ( n + 1 , t ) ; } , e ; } ( ) ; t . JSONCompletion = o ; } ) , function ( e ) { if ( "object" == typeof module && "object" == typeof module . exports ) { var t = e ( require , exports ) ; void 0 !== t && ( module . exports = t ) ; } else "function" == typeof define && define . amd && define ( "vscode-json-languageservice/services/jsonHover" , [ "require" , "exports" , "vscode-languageserver-types" ] , e ) ; } ( function ( e , t ) { var n = e ( "vscode-languageserver-types" ) , r = function ( ) { function e ( e , t , n ) { void 0 === t && ( t = [ ] ) , this . schemaService = e , this . contributions = t , this . promise = n || Promise ; } return e . prototype . doHover = function ( e , t , r ) { var i = e . offsetAt ( t ) , o = r . getNodeFromOffset ( i ) ; if ( o && "string" === o . type ) { var a = o ; if ( a . isKey ) { var s = o . parent ; o = s . value ; } } if ( ! o ) return this . promise . resolve ( void 0 ) ; var c = o ; o . parent && "property" === o . parent . type && ( c = o . parent ) ; for ( var u = n . Range . create ( e . positionAt ( c . start ) , e . positionAt ( c . end ) ) , l = function ( e ) { var t = { contents : e , range : u } ; return t ; } , p = o . getPath ( ) , f = this . contributions . length - 1 ; f >= 0 ; f -- ) { var d = this . contributions [ f ] , h = d . getInfoContribution ( e . uri , p ) ; if ( h ) return h . then ( function ( e ) { return l ( e ) ; } ) ; } return this . schemaService . getSchemaForResource ( e . uri , r ) . then ( function ( e ) { if ( e ) { var t = [ ] ; r . validate ( e . schema , t , o . start ) ; var n = null ; if ( t . every ( function ( e ) { return e . node === o && ! e . inverted && e . schema && ( n = n || e . schema . description ) , ! 0 ; } ) , n ) return l ( [ { language : "string" , value : n } ] ) ; } } ) ; } , e ; } ( ) ; t . JSONHover = r ; } ) , function ( e ) { if ( "object" == typeof module && "object" == typeof module . exports ) { var t = e ( require , exports ) ; void 0 !== t && ( module . exports = t ) ; } else "function" == typeof define && define . amd && define ( "vscode-json-languageservice/services/jsonValidation" , [ "require" , "exports" ] , e ) ; } ( function ( e , t ) { var n = function ( ) { function e ( e , t ) { this . jsonSchemaService = e , this . promise = t , this . validationEnabled = ! 0 ; } return e . prototype . configure = function ( e ) { e && ( this . validationEnabled = e . validate ) ; } , e . prototype . doValidation = function ( e , t ) { return this . validationEnabled ? this . jsonSchemaService . getSchemaForResource ( e . uri , t ) . then ( function ( n ) { if ( n ) if ( n . errors . length && t . root ) { var r = t . root , i = "object" === r . type ? r . getFirstProperty ( "$schema" ) : null ; if ( i ) { var o = i . value || i ; t . warnings . push ( { location : { start : o . start , end : o . end } , message : n . errors [ 0 ] } ) ; } else t . warnings . push ( { location : { start : r . start , end : r . start + 1 } , message : n . errors [ 0 ] } ) ; } else t . validate ( n . schema ) ; var a = [ ] , s = { } ; return t . errors . concat ( t . warnings ) . forEach ( function ( n , r ) { var i = n . location . start + " " + n . location . end + " " + n . message ; if ( ! s [ i ] ) { s [ i ] = ! 0 ; var o = { start : e . positionAt ( n . location . start ) , end : e . positionAt ( n . location . end ) } ; a . push ( { severity : r >= t . errors . length ? 2 : 1 , range : o , message : n . message } ) ; } } ) , a ; } ) : this . promise . resolve ( [ ] ) ; } , e ; } ( ) ; t . JSONValidation = n ; } ) , function ( e ) { if ( "object" == typeof module && "object" == typeof module . exports ) { var t = e ( require , exports ) ; void 0 !== t && ( module . exports = t ) ; } else "function" == typeof define && define . amd && define ( "vscode-json-languageservice/utils/strings" , [ "require" , "exports" ] , e ) ; } ( function ( e , t ) { function n ( e , t ) { if ( e . length < t . length ) return ! 1 ; for ( var n = 0 ; n < t . length ; n ++ ) if ( e [ n ] !== t [ n ] ) return ! 1 ; return ! 0 ; } function r ( e , t ) { var n = e . length - t . length ; return n > 0 ? e . lastIndexOf ( t ) === n : 0 === n && e === t ; } function i ( e ) { return e . replace ( /[\-\\\{\}\+\?\|\^\$\.\,\[\]\(\)\#\s]/g , "\\$&" ) . replace ( /[\*]/g , ".*" ) ; } t . startsWith = n , t . endsWith = r , t . convertSimple2RegExpPattern = i ; } ) , function ( e ) { if ( "object" == typeof module && "object" == typeof module . exports ) { var t = e ( require , exports ) ; void 0 !== t && ( module . exports = t ) ; } else "function" == typeof define && define . amd && define ( "vscode-json-languageservice/services/jsonDocumentSymbols" , [ "require" , "exports" , "../utils/strings" , "vscode-languageserver-types" ] , e ) ; } ( function ( e , t ) { var n = e ( "../utils/strings" ) , r = e ( "vscode-languageserver-types" ) , i = function ( ) { function e ( ) { } return e . prototype . findDocumentSymbols = function ( e , t ) { var i = this , o = t . root ; if ( ! o ) return null ; var a = e . uri ; if ( ( "vscode://defaultsettings/keybindings.json" === a || n . endsWith ( a . toLowerCase ( ) , "/user/keybindings.json" ) ) && "array" === o . type ) { var s = [ ] ; return o . items . forEach ( function ( t ) { if ( "object" === t . type ) { var n = t . getFirstProperty ( "key" ) ; if ( n && n . value ) { var i = r . Location . create ( e . uri , r . Range . create ( e . positionAt ( t . start ) , e . positionAt ( t . end ) ) ) ; s . push ( { name : n . value . getValue ( ) , kind : 12 , location : i } ) ; } } } ) , s ; } var c = function ( t , n , o ) { if ( "array" === n . type ) n . items . forEach ( function ( e ) { c ( t , e , o ) ; } ) ; else if ( "object" === n . type ) { var a = n ; a . properties . forEach ( function ( n ) { var a = r . Location . create ( e . uri , r . Range . create ( e . positionAt ( n . start ) , e . positionAt ( n . end ) ) ) , s = n . value ; if ( s ) { var u = o ? o + "." + n . key . value : n . key . value ; t . push ( { name : n . key . getValue ( ) , kind : i . getSymbolKind ( s . type ) , location : a , containerName : o } ) , c ( t , s , u ) ; } } ) ; } return t ; } , u = c ( [ ] , o , void 0 ) ; return u ; } , e . prototype . getSymbolKind = function ( e ) { switch ( e ) { case "object" : return 2 ; case "string" : return 15 ; case "number" : return 16 ; case "array" : return 18 ; case "boolean" : return 17 ; default : return 13 ; } } , e ; } ( ) ; t . JSONDocumentSymbols = i ; } ) , function ( e ) { if ( "object" == typeof module && "object" == typeof module . exports ) { var t = e ( require , exports ) ; void 0 !== t && ( module . exports = t ) ; } else "function" == typeof define && define . amd && define ( "jsonc-parser/main" , [ "require" , "exports" , "vscode-nls" ] , e ) ; } ( function ( e , t ) { function n ( e , t ) { function n ( t , n ) { for ( var r = 0 , i = 0 ; r < t || ! n ; ) { var o = e . charCodeAt ( f ) ; if ( o >= b . _0 && o <= b . _9 ) i = 16 * i + o - b . _0 ; else if ( o >= b . A && o <= b . F ) i = 16 * i + o - b . A + 10 ; else { if ( ! ( o >= b . a && o <= b . f ) ) break ; i = 16 * i + o - b . a + 10 ; } f ++ , r ++ ; } return r < t && ( i = - 1 ) , i ; } function a ( e ) { f = e , h = "" , m = 0 , g = y . Unknown , x = v . None ; } function s ( ) { var t = f ; if ( e . charCodeAt ( f ) === b . _0 ) f ++ ; else for ( f ++ ; f < e . length && o ( e . charCodeAt ( f ) ) ; ) f ++ ; if ( f < e . length && e . charCodeAt ( f ) === b . dot ) { if ( f ++ , ! ( f < e . length && o ( e . charCodeAt ( f ) ) ) ) return x = v . UnexpectedEndOfNumber , e . substring ( t , f ) ; for ( f ++ ; f < e . length && o ( e . charCodeAt ( f ) ) ; ) f ++ ; } var n = f ; if ( f < e . length && ( e . charCodeAt ( f ) === b . E || e . charCodeAt ( f ) === b . e ) ) if ( f ++ , ( f < e . length && e . charCodeAt ( f ) === b . plus || e . charCodeAt ( f ) === b . minus ) && f ++ , f < e . length && o ( e . charCodeAt ( f ) ) ) { for ( f ++ ; f < e . length && o ( e . charCodeAt ( f ) ) ; ) f ++ ; n = f ; } else x = v . UnexpectedEndOfNumber ; return e . substring ( t , n ) ; } function c ( ) { for ( var t = "" , r = f ; ; ) { if ( f >= d ) { t += e . substring ( r , f ) , x = v . UnexpectedEndOfString ; break ; } var o = e . charCodeAt ( f ) ; if ( o === b . doubleQuote ) { t += e . substring ( r , f ) , f ++ ; break ; } if ( o !== b . backslash ) { if ( i ( o ) ) { t += e . substring ( r , f ) , x = v . UnexpectedEndOfString ; break ; } f ++ ; } else { if ( t += e . substring ( r , f ) , f ++ , f >= d ) { x = v . UnexpectedEndOfString ; break ; } switch ( o = e . charCodeAt ( f ++ ) ) { case b . doubleQuote : t += '"' ; break ; case b . backslash : t += "\\" ; break ; case b . slash : t += "/" ; break ; case b . b : t += "\b" ; break ; case b . f : t += "\f" ; break ; case b . n : t += "\n" ; break ; case b . r : t += "\r" ; break ; case b . t : t += "\t" ; break ; case b . u : var a = n ( 4 , ! 0 ) ; a >= 0 ? t += String . fromCharCode ( a ) : x = v . InvalidUnicode ; break ; default : x = v . InvalidEscapeCharacter ; } r = f ; } } return t ; } function u ( ) { if ( h = "" , x = v . None , m = f , f >= d ) return m = d , g = y . EOF ; var t = e . charCodeAt ( f ) ; if ( r ( t ) ) { do f ++ , h += String . fromCharCode ( t ) , t = e . charCodeAt ( f ) ; while ( r ( t ) ) ; return g = y . Trivia ; } if ( i ( t ) ) return f ++ , h += String . fromCharCode ( t ) , t === b . carriageReturn && e . charCodeAt ( f ) === b . lineFeed && ( f ++ , h += "\n" ) , g = y . LineBreakTrivia ; switch ( t ) { case b . openBrace : return f ++ , g = y . OpenBraceToken ; case b . closeBrace : return f ++ , g = y . CloseBraceToken ; case b . openBracket : return f ++ , g = y . OpenBracketToken ; case b . closeBracket : return f ++ , g = y . CloseBracketToken ; case b . colon : return f ++ , g = y . ColonToken ; case b . comma : return f ++ , g = y . CommaToken ; case b . doubleQuote : return f ++ , h = c ( ) , g = y . StringLiteral ; case b . slash : var n = f - 1 ; if ( e . charCodeAt ( f + 1 ) === b . slash ) { for ( f += 2 ; f < d && ! i ( e . charCodeAt ( f ) ) ; ) f ++ ; return h = e . substring ( n , f ) , g = y . LineCommentTrivia ; } if ( e . charCodeAt ( f + 1 ) === b . asterisk ) { f += 2 ; for ( var a = d - 1 , u = ! 1 ; f < a ; ) { var p = e . charCodeAt ( f ) ; if ( p === b . asterisk && e . charCodeAt ( f + 1 ) === b . slash ) { f += 2 , u = ! 0 ; break ; } f ++ ; } return u || ( f ++ , x = v . UnexpectedEndOfComment ) , h = e . substring ( n , f ) , g = y . BlockCommentTrivia ; } return h += String . fromCharCode ( t ) , f ++ , g = y . Unknown ; case b . minus : if ( h += String . fromCharCode ( t ) , f ++ , f === d || ! o ( e . charCodeAt ( f ) ) ) return g = y . Unknown ; case b . _0 : case b . _1 : case b . _2 : case b . _3 : case b . _4 : case b . _5 : case b . _6 : case b . _7 : case b . _8 : case b . _9 : return h += s ( ) , g = y . NumericLiteral ; default : for ( ; f < d && l ( t ) ; ) f ++ , t = e . charCodeAt ( f ) ; if ( m !== f ) { switch ( h = e . substring ( m , f ) ) { case "true" : return g = y . TrueKeyword ; case "false" : return g = y . FalseKeyword ; case "null" : return g = y . NullKeyword ; } return g = y . Unknown ; } return h += String . fromCharCode ( t ) , f ++ , g = y . Unknown ; } } function l ( e ) { if ( r ( e ) || i ( e ) ) return ! 1 ; switch ( e ) { case b . closeBrace : case b . closeBracket : case b . openBrace : case b . openBracket : case b . doubleQuote : case b . colon : case b . comma : return ! 1 ; } return ! 0 ; } function p ( ) { var e ; do e = u ( ) ; while ( e >= y . LineCommentTrivia && e <= y . Trivia ) ; return e ; } void 0 === t && ( t = ! 1 ) ; var f = 0 , d = e . length , h = "" , m = 0 , g = y . Unknown , x = v . None ; return { setPosition : a , getPosition : function ( ) { return f ; } , scan : t ? p : u , getToken : function ( ) { return g ; } , getTokenValue : function ( ) { return h ; } , getTokenOffset : function ( ) { return m ; } , getTokenLength : function ( ) { return f - m ; } , getTokenError : function ( ) { return x ; } } ; } function r ( e ) { return e === b . space || e === b . tab || e === b . verticalTab || e === b . formFeed || e === b . nonBreakingSpace || e === b . ogham || e >= b . enQuad && e <= b . zeroWidthSpace || e === b . narrowNoBreakSpace || e === b . mathematicalSpace || e === b . ideographicSpace || e === b . byteOrderMark ; } function i ( e ) { return e === b . lineFeed || e === b . carriageReturn || e === b . lineSeparator || e === b . paragraphSeparator ; } function o ( e ) { return e >= b . _0 && e <= b . _9 ; } function a ( e , t ) { var r , i , o = n ( e ) , a = [ ] , s = 0 ; do switch ( i = o . getPosition ( ) , r = o . scan ( ) ) { case y . LineCommentTrivia : case y . BlockCommentTrivia : case y . EOF : s !== i && a . push ( e . substring ( s , i ) ) , void 0 !== t && a . push ( o . getTokenValue ( ) . replace ( /[^\r\n]/g , t ) ) , s = o . getPosition ( ) ; } while ( r !== y . EOF ) ; return a . join ( "" ) ; } function s ( e ) { switch ( e ) { case x . InvalidSymbol : return g ( "error.invalidSymbol" , "Invalid symbol" ) ; case x . InvalidNumberFormat : return g ( "error.invalidNumberFormat" , "Invalid number format" ) ; case x . PropertyNameExpected : return g ( "error.propertyNameExpected" , "Property name expected" ) ; case x . ValueExpected : return g ( "error.valueExpected" , "Value expected" ) ; case x . ColonExpected : return g ( "error.colonExpected" , "Colon expected" ) ; case x . CommaExpected : return g ( "error.commaExpected" , "Comma expected" ) ; case x . CloseBraceExpected : return g ( "error.closeBraceExpected" , "Closing brace expected" ) ; case x . CloseBracketExpected : return g ( "error.closeBracketExpected" , "Closing bracket expected" ) ; case x . EndOfFileExpected : return g ( "error.endOfFileExpected" , "End of file expected" ) ; default : return "" ; } } function c ( e ) { switch ( typeof e ) { case "boolean" : return "boolean" ; case "number" : return "number" ; case "string" : return "string" ; default : return "null" ; } } function u ( e , t ) { function n ( e , t , n , r ) { a . value = e , a . offset = t , a . length = n , a . type = r , a . columnOffset = void 0 , o = a ; } var r = [ ] , i = new Object , o = void 0 , a = { value : void 0 , offset : void 0 , length : void 0 , type : void 0 } , s = ! 1 ; try { h ( e , { onObjectBegin : function ( e , n ) { if ( t <= e ) throw i ; o = void 0 , s = t > e , r . push ( "" ) ; } , onObjectProperty : function ( e , o , a ) { if ( t < o ) throw i ; if ( n ( e , o , a , "property" ) , r [ r . length - 1 ] = e , t <= o + a ) throw i ; } , onObjectEnd : function ( e , n ) { if ( t <= e ) throw i ; o = void 0 , r . pop ( ) ; } , onArrayBegin : function ( e , n ) { if ( t <= e ) throw i ; o = void 0 , r . push ( 0 ) ; } , onArrayEnd : function ( e , n ) { if ( t <= e ) throw i ; o = void 0 , r . pop ( ) ; } , onLiteralValue : function ( e , r , o ) { if ( t < r ) throw i ; if ( n ( e , r , o , c ( e ) ) , t <= r + o ) throw i ; } , onSeparator : function ( e , n , a ) { if ( t <= n ) throw i ; if ( ":" === e && "property" === o . type ) o . columnOffset = n , s = ! 1 , o = void 0 ; else if ( "," === e ) { var c = r [ r . length - 1 ] ; "number" == typeof c ? r [ r . length - 1 ] = c + 1 : ( s = ! 0 , r [ r . length - 1 ] = "" ) , o = void 0 ; } } } ) ; } catch ( u ) { if ( u !== i ) throw u ; } return "" === r [ r . length - 1 ] && r . pop ( ) , { path : r , previousNode : o , isAtPropertyKey : s , matches : function ( e ) { for ( var t = 0 , n = 0 ; t < e . length && n < r . length ; n ++ ) if ( e [ t ] === r [ n ] || "*" === e [ t ] ) t ++ ; else if ( "**" !== e [ t ] ) return ! 1 ; return t === e . length ; } } ; } function l ( e , t , n ) { function r ( e ) { Array . isArray ( o ) ? o . push ( e ) : i && ( o [ i ] = e ) ; } void 0 === t && ( t = [ ] ) ; var i = null , o = [ ] , a = [ ] , s = { onObjectBegin : function ( ) { var e = { } ; r ( e ) , a . push ( o ) , o = e , i = null ; } , onObjectProperty : function ( e ) { i = e ; } , onObjectEnd : function ( ) { o = a . pop ( ) ; } , onArrayBegin : function ( ) { var e = [ ] ; r ( e ) , a . push ( o ) , o = e , i = null ; } , onArrayEnd : function ( ) { o = a . pop ( ) ; } , onLiteralValue : r , onError : function ( e ) { t . push ( { error : e } ) ; } } ; return h ( e , s , n ) , o [ 0 ] ; } function p ( e , t , n ) { function r ( e ) { "property" === o . type && ( o . length = e - o . offset , o = o . parent ) ; } function i ( e ) { return o . children . push ( e ) , r ( e . offset + e . length ) , e ; } void 0 === t && ( t = [ ] ) ; var o = { type : "array" , offset : - 1 , length : - 1 , children : [ ] } , a = { onObjectBegin : function ( e ) { o = i ( { type : "object" , offset : e , length : - 1 , parent : o , children : [ ] } ) ; } , onObjectProperty : function ( e , t , n ) { o = i ( { type : "property" , offset : t , length : - 1 , parent : o , children : [ ] } ) , o . children . push ( { type : "string" , value : e , offset : t , length : n , parent : o } ) ; } , onObjectEnd : function ( e , t ) { r ( e ) , o . length = e + t - o . offset , o = o . parent ; } , onArrayBegin : function ( e , t ) { o = i ( { type : "array" , offset : e , length : - 1 , parent : o , children : [ ] } ) ; } , onArrayEnd : function ( e , t ) { o . length = e + t - o . offset , o = o . parent ; } , onLiteralValue : function ( e , t , n ) { i ( { type : c ( e ) , offset : t , length : n , parent : o , value : e } ) ; } , onSeparator : function ( e , t , n ) { "property" === o . type && ( ":" === e ? o . columnOffset = t : "," === e && r ( t ) ) ; } , onError : function ( e ) { t . push ( { error : e } ) ; } } ; h ( e , a , n ) ; var s = o . children [ 0 ] ; return s && delete s . parent , s ; } function f ( e , t ) { if ( e ) { for ( var n = e , r = 0 , i = t ; r < i . length ; r ++ ) { var o = i [ r ] ; if ( "string" == typeof o ) { if ( "object" !== n . type ) return ; for ( var a = ! 1 , s = 0 , c = n . children ; s < c . length ; s ++ ) { var u = c [ s ] ; if ( u . children [ 0 ] . value === o ) { n = u . children [ 1 ] , a = ! 0 ; break ; } } if ( ! a ) return ; } else { var l = o ; if ( "array" !== n . type || l < 0 || l >= n . children . length ) return ; n = n . children [ l ] ; } } return n ; } } function d ( e ) { if ( "array" === e . type ) return e . children . map ( d ) ; if ( "object" === e . type ) { for ( var t = { } , n = 0 , r = e . children ; n < r . length ; n ++ ) { var i = r [ n ] ; t [ i . children [ 0 ] . value ] = d ( i . children [ 1 ] ) ; } return t ; } return e . value ; } function h ( e , t , r ) { function i ( e ) { return e ? function ( ) { return e ( h . getTokenOffset ( ) , h . getTokenLength ( ) ) ; } : function ( ) { return ! 0 ; } ; } function o ( e ) { return e ? function ( t ) { return e ( t , h . getTokenOffset ( ) , h . getTokenLength ( ) ) ; } : function ( ) { return ! 0 ; } ; } function a ( ) { for ( ; ; ) { var e = h . scan ( ) ; switch ( e ) { case y . LineCommentTrivia : case y . BlockCommentTrivia : O && s ( x . InvalidSymbol ) ; break ; case y . Unknown : s ( x . InvalidSymbol ) ; break ; case y . Trivia : case y . LineBreakTrivia : break ; default : return e ; } } } function s ( e , t , n ) { if ( void 0 === t && ( t = [ ] ) , void 0 === n && ( n = [ ] ) , C ( e ) , t . length + n . length > 0 ) for ( var r = h . getToken ( ) ; r !== y . EOF ; ) { if ( t . indexOf ( r ) !== - 1 ) { a ( ) ; break ; } if ( n . indexOf ( r ) !== - 1 ) break ; r = a ( ) ; } } function c ( e ) { if ( h . getToken ( ) !== y . StringLiteral ) return ! 1 ; var t = h . getTokenValue ( ) ; return e ? k ( t ) : g ( t ) , a ( ) , ! 0 ; } function u ( ) { switch ( h . getToken ( ) ) { case y . NumericLiteral : var e = 0 ; try { e = JSON . parse ( h . getTokenValue ( ) ) , "number" != typeof e && ( s ( x . InvalidNumberFormat ) , e = 0 ) ; } catch ( t ) { s ( x . InvalidNumberFormat ) ; } k ( e ) ; break ; case y . NullKeyword : k ( null ) ; break ; case y . TrueKeyword : k ( ! 0 ) ; break ; case y . FalseKeyword : k ( ! 1 ) ; break ; default : return ! 1 ; } return a ( ) , ! 0 ; } function l ( ) { return c ( ! 1 ) ? ( h . getToken ( ) === y . ColonToken ? ( T ( ":" ) , a ( ) , d ( ) || s ( x . ValueExpected , [ ] , [ y . CloseBraceToken , y . CommaToken ] ) ) : s ( x . ColonExpected , [ ] , [ y . CloseBraceToken , y . CommaToken ] ) , ! 0 ) : ( s ( x . PropertyNameExpected , [ ] , [ y . CloseBraceToken , y . CommaToken ] ) , ! 1 ) ; } function p ( ) { if ( h . getToken ( ) !== y . OpenBraceToken ) return ! 1 ; m ( ) , a ( ) ; for ( var e = ! 1 ; h . getToken ( ) !== y . CloseBraceToken && h . getToken ( ) !== y . EOF ; ) h . getToken ( ) === y . CommaToken ? ( e || s ( x . ValueExpected , [ ] , [ ] ) , T ( "," ) , a ( ) ) : e && s ( x . CommaExpected , [ ] , [ ] ) , l ( ) || s ( x . ValueExpected , [ ] , [ y . CloseBraceToken , y . CommaToken ] ) , e = ! 0 ; return v ( ) , h . getToken ( ) !== y . CloseBraceToken ? s ( x . CloseBraceExpected , [ y . CloseBraceToken ] , [ ] ) : a ( ) , ! 0 ; } function f ( ) { if ( h . getToken ( ) !== y . OpenBracketToken ) return ! 1 ; b ( ) , a ( ) ; for ( var e = ! 1 ; h . getToken ( ) !== y . CloseBracketToken && h . getToken ( ) !== y . EOF ; ) h . getToken ( ) === y . CommaToken ? ( e || s ( x . ValueExpected , [ ] , [ ] ) , T ( "," ) , a ( ) ) : e && s ( x . CommaExpected , [ ] , [ ] ) , d ( ) || s ( x . ValueExpected , [ ] , [ y . CloseBracketToken , y . CommaToken ] ) , e = ! 0 ; return S ( ) , h . getToken ( ) !== y . CloseBracketToken ? s ( x . CloseBracketExpected , [ y . CloseBracketToken ] , [ ] ) : a ( ) , ! 0 ; } function d ( ) { return f ( ) || p ( ) || c ( ! 0 ) || u ( ) ; } var h = n ( e , ! 1 ) , m = i ( t . onObjectBegin ) , g = o ( t . onObjectProperty ) , v = i ( t . onObjectEnd ) , b = i ( t . onArrayBegin ) , S = i ( t . onArrayEnd ) , k = o ( t . onLiteralValue ) , T = o ( t . onSeparator ) , C = o ( t . onError ) , O = r && r . disallowComments ; return a ( ) , h . getToken ( ) === y . EOF || ( d ( ) ? ( h . getToken ( ) !== y . EOF && s ( x . EndOfFileExpected , [ ] , [ ] ) , ! 0 ) : ( s ( x . ValueExpected , [ ] , [ ] ) , ! 1 ) ) ; } var m = e ( "vscode-nls" ) , g = m . loadMessageBundle ( ) ; ! function ( e ) { e [ e . None = 0 ] = "None" , e [ e . UnexpectedEndOfComment = 1 ] = "UnexpectedEndOfComment" , e [ e . UnexpectedEndOfString = 2 ] = "UnexpectedEndOfString" , e [ e . UnexpectedEndOfNumber = 3 ] = "UnexpectedEndOfNumber" , e [ e . InvalidUnicode = 4 ] = "InvalidUnicode" , e [ e . InvalidEscapeCharacter = 5 ] = "InvalidEscapeCharacter" ; } ( t . ScanError || ( t . ScanError = { } ) ) ; var v = t . ScanError ; ! function ( e ) { e [ e . Unknown = 0 ] = "Unknown" , e [ e . OpenBraceToken = 1 ] = "OpenBraceToken" , e [ e . CloseBraceToken = 2 ] = "CloseBraceToken" , e [ e . OpenBracketToken = 3 ] = "OpenBracketToken" , e [ e . CloseBracketToken = 4 ] = "CloseBracketToken" , e [ e . CommaToken = 5 ] = "CommaToken" , e [ e . ColonToken = 6 ] = "ColonToken" , e [ e . NullKeyword = 7 ] = "NullKeyword" , e [ e . TrueKeyword = 8 ] = "TrueKeyword" , e [ e . FalseKeyword = 9 ] = "FalseKeyword" , e [ e . StringLiteral = 10 ] = "StringLiteral" , e [ e . NumericLiteral = 11 ] = "NumericLiteral" , e [ e . LineCommentTrivia = 12 ] = "LineCommentTrivia" , e [ e . BlockCommentTrivia = 13 ] = "BlockCommentTrivia" , e [ e . LineBreakTrivia = 14 ] = "LineBreakTrivia" , e [ e . Trivia = 15 ] = "Trivia" , e [ e . EOF = 16 ] = "EOF" ; } ( t . SyntaxKind || ( t . SyntaxKind = { } ) ) ; var y = t . SyntaxKind ; t . createScanner = n ; var b ; ! function ( e ) { e [ e . nullCharacter = 0 ] = "nullCharacter" , e [ e . maxAsciiCharacter = 127 ] = "maxAsciiCharacter" , e [ e . lineFeed = 10 ] = "lineFeed" , e [ e . carriageReturn = 13 ] = "carriageReturn" , e [ e . lineSeparator = 8232 ] = "lineSeparator" , e [ e . paragraphSeparator = 8233 ] = "paragraphSeparator" , e [ e . nextLine = 133 ] = "nextLine" , e [ e . space = 32 ] = "space" , e [ e . nonBreakingSpace = 160 ] = "nonBreakingSpace" , e [ e . enQuad = 8192 ] = "enQuad" , e [ e . emQuad = 8193 ] = "emQuad" , e [ e . enSpace = 8194 ] = "enSpace" , e [ e . emSpace = 8195 ] = "emSpace" , e [ e . threePerEmSpace = 8196 ] = "threePerEmSpace" , e [ e . fourPerEmSpace = 8197 ] = "fourPerEmSpace" , e [ e . sixPerEmSpace = 8198 ] = "sixPerEmSpace" , e [ e . figureSpace = 8199 ] = "figureSpace" , e [ e . punctuationSpace = 8200 ] = "punctuationSpace" , e [ e . thinSpace = 8201 ] = "thinSpace" , e [ e . hairSpace = 8202 ] = "hairSpace" , e [ e . zeroWidthSpace = 8203 ] = "zeroWidthSpace" , e [ e . narrowNoBreakSpace = 8239 ] = "narrowNoBreakSpace" , e [ e . ideographicSpace = 12288 ] = "ideographicSpace" , e [ e . mathematicalSpace = 8287 ] = "mathematicalSpace" , e [ e . ogham = 5760 ] = "ogham" , e [ e . _ = 95 ] = "_" , e [ e . $ = 36 ] = "$" , e [ e . _0 = 48 ] = "_0" , e [ e . _1 = 49 ] = "_1" , e [ e . _2 = 50 ] = "_2" , e [ e . _3 = 51 ] = "_3" , e [ e . _4 = 52 ] = "_4" , e [ e . _5 = 53 ] = "_5" , e [ e . _6 = 54 ] = "_6" , e [ e . _7 = 55 ] = "_7" , e [ e . _8 = 56 ] = "_8" , e [ e . _9 = 57 ] = "_9" , e [ e . a = 97 ] = "a" , e [ e . b = 98 ] = "b" , e [ e . c = 99 ] = "c" , e [ e . d = 100 ] = "d" , e [ e . e = 101 ] = "e" , e [ e . f = 102 ] = "f" , e [ e . g = 103 ] = "g" , e [ e . h = 104 ] = "h" , e [ e . i = 105 ] = "i" , e [ e . j = 106 ] = "j" , e [ e . k = 107 ] = "k" , e [ e . l = 108 ] = "l" , e [ e . m = 109 ] = "m" , e [ e . n = 110 ] = "n" , e [ e . o = 111 ] = "o" , e [ e . p = 112 ] = "p" , e [ e . q = 113 ] = "q" , e [ e . r = 114 ] = "r" , e [ e . s = 115 ] = "s" , e [ e . t = 116 ] = "t" , e [ e . u = 117 ] = "u" , e [ e . v = 118 ] = "v" , e [ e . w = 119 ] = "w" , e [ e . x = 120 ] = "x" , e [ e . y = 121 ] = "y" , e [ e . z = 122 ] = "z" , e [ e . A = 65 ] = "A" , e [ e . B = 66 ] = "B" , e [ e . C = 67 ] = "C" , e [ e . D = 68 ] = "D" , e [ e . E = 69 ] = "E" , e [ e . F = 70 ] = "F" , e [ e . G = 71 ] = "G" , e [ e . H = 72 ] = "H" , e [ e . I = 73 ] = "I" , e [ e . J = 74 ] = "J" , e [ e . K = 75 ] = "K" , e [ e . L = 76 ] = "L" , e [ e . M = 77 ] = "M" , e [ e . N = 78 ] = "N" , e [ e . O = 79 ] = "O" , e [ e . P = 80 ] = "P" , e [ e . Q = 81 ] = "Q" , e [ e . R = 82 ] = "R" , e [ e . S = 83 ] = "S" , e [ e . T = 84 ] = "T" , e [ e . U = 85 ] = "U" , e [ e . V = 86 ] = "V" , e [ e . W = 87 ] = "W" , e [ e . X = 88 ] = "X" , e [ e . Y = 89 ] = "Y" , e [ e . Z = 90 ] = "Z" , e [ e . ampersand = 38 ] = "ampersand" , e [ e . asterisk = 42 ] = "asterisk" , e [ e . at = 64 ] = "at" , e [ e . backslash = 92 ] = "backslash" , e [ e . bar = 124 ] = "bar" , e [ e . caret = 94 ] = "caret" , e [ e . closeBrace = 125 ] = "closeBrace" , e [ e . closeBracket = 93 ] = "closeBracket" , e [ e . closeParen = 41 ] = "closeParen" , e [ e . colon = 58 ] = "colon" , e [ e . comma = 44 ] = "comma" , e [ e . dot = 46 ] = "dot" , e [ e . doubleQuote = 34 ] = "doubleQuote" , e [ e . equals = 61 ] = "equals" , e [ e . exclamation = 33 ] = "exclamation" , e [ e . greaterThan = 62 ] = "greaterThan" , e [ e . lessThan = 60 ] = "lessThan" , e [ e . minus = 45 ] = "minus" , e [ e . openBrace = 123 ] = "openBrace" , e [ e . openBracket = 91 ] = "openBracket" , e [ e . openParen = 40 ] = "openParen" , e [ e . percent = 37 ] = "percent" , e [ e . plus = 43 ] = "plus" , e [ e . question = 63 ] = "question" , e [ e . semicolon = 59 ] = "semicolon" , e [ e . singleQuote = 39 ] = "singleQuote" , e [ e . slash = 47 ] = "slash" , e [ e . tilde = 126 ] = "tilde" , e [ e . backspace = 8 ] = "backspace" , e [ e . formFeed = 12 ] = "formFeed" , e [ e . byteOrderMark = 65279 ] = "byteOrderMark" , e [ e . tab = 9 ] = "tab" , e [ e . verticalTab = 11 ] = "verticalTab" ; } ( b || ( b = { } ) ) , t . stripComments = a , function ( e ) { e [ e . InvalidSymbol = 0 ] = "InvalidSymbol" , e [ e . InvalidNumberFormat = 1 ] = "InvalidNumberFormat" , e [ e . PropertyNameExpected = 2 ] = "PropertyNameExpected" , e [ e . ValueExpected = 3 ] = "ValueExpected" , e [ e . ColonExpected = 4 ] = "ColonExpected" , e [ e . CommaExpected = 5 ] = "CommaExpected" , e [ e . CloseBraceExpected = 6 ] = "CloseBraceExpected" , e [ e . CloseBracketExpected = 7 ] = "CloseBracketExpected" , e [ e . EndOfFileExpected = 8 ] = "EndOfFileExpected" ; } ( t . ParseErrorCode || ( t . ParseErrorCode = { } ) ) ; var x = t . ParseErrorCode ; t . getParseErrorMessage = s , t . getLocation = u , t . parse = l , t . parseTree = p , t . findNodeAtLocation = f , t . getNodeValue = d , t . visit = h ; } ) , define ( "jsonc-parser" , [ "jsonc-parser/main" ] , function ( e ) { return e ; } ) ; var __extends = this && this . __extends || function ( e , t ) { function n ( ) { this . constructor = e ; } for ( var r in t ) t . hasOwnProperty ( r ) && ( e [ r ] = t [ r ] ) ; e . prototype = null === t ? Object . create ( t ) : ( n . prototype = t . prototype , new n ) ; } ; ! function ( e ) { if ( "object" == typeof module && "object" == typeof module . exports ) { var t = e ( require , exports ) ; void 0 !== t && ( module . exports = t ) ; } else "function" == typeof define && define . amd && define ( "vscode-json-languageservice/parser/jsonParser" , [ "require" , "exports" , "jsonc-parser" , "vscode-nls" ] , e ) ; } ( function ( e , t ) { function n ( e , t ) { function n ( ) { for ( ; ; ) { var e = O . scan ( ) ; switch ( e ) { case r . SyntaxKind . LineCommentTrivia : case r . SyntaxKind . BlockCommentTrivia : E && a ( o ( "InvalidCommentTokem" , "Comments are not allowed" ) ) ; break ; case r . SyntaxKind . Trivia : case r . SyntaxKind . LineBreakTrivia : break ; default : return e ; } } } function i ( e ) { return O . getToken ( ) === e && ( n ( ) , ! 0 ) ; } function a ( e , t , i , o ) { if ( void 0 === t && ( t = null ) , void 0 === i && ( i = [ ] ) , void 0 === o && ( o = [ ] ) , 0 === C . errors . length || C . errors [ 0 ] . location . start !== O . getTokenOffset ( ) ) { var a = { message : e , location : { start : O . getTokenOffset ( ) , end : O . getTokenOffset ( ) + O . getTokenLength ( ) } } ; C . errors . push ( a ) ; } if ( t && g ( t , ! 1 ) , i . length + o . length > 0 ) for ( var s = O . getToken ( ) ; s !== r . SyntaxKind . EOF ; ) { if ( i . indexOf ( s ) !== - 1 ) { n ( ) ; break ; } if ( o . indexOf ( s ) !== - 1 ) break ; s = n ( ) ; } return t ; } function h ( ) { switch ( O . getTokenError ( ) ) { case r . ScanError . InvalidUnicode : return a ( o ( "InvalidUnicode" , "Invalid unicode sequence in string" ) ) , ! 0 ; case r . ScanError . InvalidEscapeCharacter : return a ( o ( "InvalidEscapeCharacter" , "Invalid escape character in string" ) ) , ! 0 ; case r . ScanError . UnexpectedEndOfNumber : return a ( o ( "UnexpectedEndOfNumber" , "Unexpected end of number" ) ) , ! 0 ; case r . ScanError . UnexpectedEndOfComment : return a ( o ( "UnexpectedEndOfComment" , "Unexpected end of comment" ) ) , ! 0 ; case r . ScanError . UnexpectedEndOfString : return a ( o ( "UnexpectedEndOfString" , "Unexpected end of string" ) ) , ! 0 ; } return ! 1 ; } function g ( e , t ) { return e . end = O . getTokenOffset ( ) + O . getTokenLength ( ) , t && n ( ) , e ; } function v ( e , t ) { if ( O . getToken ( ) !== r . SyntaxKind . OpenBracketToken ) return null ; var s = new u ( e , t , O . getTokenOffset ( ) ) ; n ( ) ; var c = 0 ; if ( s . addItem ( T ( s , c ++ ) ) ) for ( ; i ( r . SyntaxKind . CommaToken ) ; ) s . addItem ( T ( s , c ++ ) ) || j || a ( o ( "ValueExpected" , "Value expected" ) ) ; return O . getToken ( ) !== r . SyntaxKind . CloseBracketToken ? a ( o ( "ExpectedCloseBracket" , "Expected comma or closing bracket" ) , s ) : g ( s , ! 0 ) ; } function y ( e , t ) { var i = x ( null , null , ! 0 ) ; if ( ! i ) { if ( O . getToken ( ) === r . SyntaxKind . Unknown ) { var s = O . getTokenValue ( ) ; s . match ( /^['\w]/ ) && a ( o ( "DoubleQuotesExpected" , "Property keys must be doublequoted" ) ) ; } return null ; } var c = new f ( e , i ) ; return t [ i . value ] && C . warnings . push ( { location : { start : c . key . start , end : c . key . end } , message : o ( "DuplicateKeyWarning" , "Duplicate object key" ) } ) , t [ i . value ] = ! 0 , O . getToken ( ) !== r . SyntaxKind . ColonToken ? a ( o ( "ColonExpected" , "Colon expected" ) , c , [ ] , [ r . SyntaxKind . CloseBraceToken , r . SyntaxKind . CommaToken ] ) : ( c . colonOffset = O . getTokenOffset ( ) , n ( ) , c . setValue ( T ( c , i . value ) ) ? ( c . end = c . value . end , c ) : a ( o ( "ValueExpected" , "Value expected" ) , c , [ ] , [ r . SyntaxKind . CloseBraceToken , r . SyntaxKind . CommaToken ] ) ) ; } function b ( e , t ) { if ( O . getToken ( ) !== r . SyntaxKind . OpenBraceToken ) return null ; var s = new d ( e , t , O . getTokenOffset ( ) ) ; n ( ) ; var c = { } ; if ( s . addProperty ( y ( s , c ) ) ) for ( ; i ( r . SyntaxKind . CommaToken ) ; ) s . addProperty ( y ( s , c ) ) || j || a ( o ( "PropertyExpected" , "Property expected" ) ) ; return O . getToken ( ) !== r . SyntaxKind . CloseBraceToken ? a ( o ( "ExpectedCloseBrace" , "Expected comma or closing brace" ) , s ) : g ( s , ! 0 ) ; } function x ( e , t , n ) { if ( O . getToken ( ) !== r . SyntaxKind . StringLiteral ) return null ; var i = new p ( e , t , n , O . getTokenOffset ( ) ) ; return i . value = O . getTokenValue ( ) , h ( ) , g ( i , ! 0 ) ; } function S ( e , t ) { if ( O . getToken ( ) !== r . SyntaxKind . NumericLiteral ) return null ; var n = new l ( e , t , O . getTokenOffset ( ) ) ; if ( ! h ( ) ) { var i = O . getTokenValue ( ) ; try { var s = JSON . parse ( i ) ; if ( "number" != typeof s ) return a ( o ( "InvalidNumberFormat" , "Invalid number format" ) , n ) ; n . value = s ; } catch ( c ) { return a ( o ( "InvalidNumberFormat" , "Invalid number format" ) , n ) ; } n . isInteger = i . indexOf ( "." ) === - 1 ; } return g ( n , ! 0 ) ; } function k ( e , t ) { var n ; switch ( O . getToken ( ) ) { case r . SyntaxKind . NullKeyword : n = new s ( e , t , O . getTokenOffset ( ) ) ; break ; case r . SyntaxKind . TrueKeyword : n = new c ( e , t , ( ! 0 ) , O . getTokenOffset ( ) ) ; break ; case r . SyntaxKind . FalseKeyword : n = new c ( e , t , ( ! 1 ) , O . getTokenOffset ( ) ) ; break ; default : return null ; } return g ( n , ! 0 ) ; } function T ( e , t ) { return v ( e , t ) || b ( e , t ) || x ( e , t , ! 1 ) || S ( e , t ) || k ( e , t ) ; } var C = new m ( t ) , O = r . createScanner ( e , ! 1 ) , E = t && t . disallowComments , j = t && t . ignoreDanglingComma ; return n ( ) , C . root = T ( null , null ) , C . root ? O . getToken ( ) !== r . SyntaxKind . EOF && a ( o ( "End of file expected" , "End of file expected" ) ) : a ( o ( "Invalid symbol" , "Expected a JSON object, array or literal" ) ) , C ; } var r = e ( "jsonc-parser" ) , i = e ( "vscode-nls" ) , o = i . loadMessageBundle ( ) , a = function ( ) { function e ( e , t , n , r , i ) { this . type = t , this . location = n , this . start = r , this . end = i , this . parent = e ; } return e . prototype . getPath = function ( ) { var e = this . parent ? this . parent . getPath ( ) : [ ] ; return null !== this . location && e . push ( this . location ) , e ; } , e . prototype . getChildNodes = function ( ) { return [ ] ; } , e . prototype . getValue = function ( ) { } , e . prototype . contains = function ( e , t ) { return void 0 === t && ( t = ! 1 ) , e >= this . start && e < this . end || t && e === this . end ; } , e . prototype . toString = function ( ) { return "type: " + this . type + " (" + this . start + "/" + this . end + ")" + ( this . parent ? " parent: {" + this . parent . toString ( ) + "}" : "" ) ; } , e . prototype . visit = function ( e ) { return e ( this ) ; } , e . prototype . getNodeFromOffset = function ( e ) { var t = function ( n ) { if ( e >= n . start && e < n . end ) { for ( var r = n . getChildNodes ( ) , i = 0 ; i < r . length && r [ i ] . start <= e ; i ++ ) { var o = t ( r [ i ] ) ; if ( o ) return o ; } return n ; } return null ; } ; return t ( this ) ; } , e . prototype . getNodeFromOffsetEndInclusive = function ( e ) { var t = function ( n ) { if ( e >= n . start && e <= n . end ) { for ( var r = n . getChildNodes ( ) , i = 0 ; i < r . length && r [ i ] . start <= e ; i ++ ) { var o = t ( r [ i ] ) ; if ( o ) return o ; } return n ; } return null ; } ; return t ( this ) ; } , e . prototype . validate = function ( e , t , n , r ) { var i = this ; if ( void 0 === r && ( r = - 1 ) , r === - 1 || this . contains ( r ) ) { if ( Array . isArray ( e . type ) ? e . type . indexOf ( this . type ) === - 1 && t . warnings . push ( { location : { start : this . start , end : this . end } , message : e . errorMessage || o ( "typeArrayMismatchWarning" , "Incorrect type. Expected one of {0}" , e . type . join ( ", " ) ) } ) : e . type && this . type !== e . type && t . warnings . push ( { location : { start : this . start , end : this . end } , message : e . errorMessage || o ( "typeMismatchWarning" , 'Incorrect type. Expected "{0}"' , e . type ) } ) , Array . isArray ( e . allOf ) && e . allOf . forEach ( function ( e ) { i . validate ( e , t , n , r ) ; } ) , e . not ) { var a = new h , s = [ ] ; this . validate ( e . not , a , s , r ) , a . hasErrors ( ) || t . warnings . push ( { location : { start : this . start , end : this . end } , message : o ( "notSchemaWarning" , "Matches a schema that is not allowed." ) } ) , n && s . forEach ( function ( e ) { e . inverted = ! e . inverted , n . push ( e ) ; } ) ; } var c = function ( e , r ) { var a = [ ] , s = null ; return e . forEach ( function ( e ) { var t = new h , n = [ ] ; if ( i . validate ( e , t , n ) , t . hasErrors ( ) || a . push ( e ) , s ) if ( r || t . hasErrors ( ) || s . validationResult . hasErrors ( ) ) { var o = t . compare ( s . validationResult ) ; o > 0 ? s = { schema : e , validationResult : t , matchingSchemas : n } : 0 === o && s . matchingSchemas . push . apply ( s . matchingSchemas , n ) ; } else s . matchingSchemas . push . apply ( s . matchingSchemas , n ) , s . validationResult . propertiesMatches += t . propertiesMatches , s . validationResult . propertiesValueMatches += t . propertiesValueMatches ; else s = { schema : e , validationResult : t , matchingSchemas : n } ; } ) , a . length > 1 && r && t . warnings . push ( { location : { start : i . start , end : i . start + 1 } , message : o ( "oneOfWarning" , "Matches multiple schemas when only one must validate." ) } ) , null !== s && ( t . merge ( s . validationResult ) , t . propertiesMatches += s . validationResult . propertiesMatches , t . propertiesValueMatches += s . validationResult . propertiesValueMatches , n && n . push . apply ( n , s . matchingSchemas ) ) , a . length ; } ; Array . isArray ( e . anyOf ) && c ( e . anyOf , ! 1 ) , Array . isArray ( e . oneOf ) && c ( e . oneOf , ! 0 ) , Array . isArray ( e [ "enum" ] ) && ( e [ "enum" ] . indexOf ( this . getValue ( ) ) === - 1 ? t . warnings . push ( { location : { start : this . start , end : this . end } , message : o ( "enumWarning" , "Value is not an accepted value. Valid values: {0}" , JSON . stringify ( e [ "enum" ] ) ) } ) : t . enumValueMatch = ! 0 ) , null !== n && n . push ( { node : this , schema : e } ) ; } } , e ; } ( ) ; t . ASTNode = a ; var s = function ( e ) { function t ( t , n , r , i ) { e . call ( this , t , "null" , n , r , i ) ; } return __extends ( t , e ) , t . prototype . getValue = function ( ) { return null ; } , t ; } ( a ) ; t . NullASTNode = s ; var c = function ( e ) { function t ( t , n , r , i , o ) { e . call ( this , t , "boolean" , n , i , o ) , this . value = r ; } return __extends ( t , e ) , t . prototype . getValue = function ( ) { return this . value ; } , t ; } ( a ) ; t . BooleanASTNode = c ; var u = function ( e ) { function t ( t , n , r , i ) { e . call ( this , t , "array" , n , r , i ) , this . items = [ ] ; } return __extends ( t , e ) , t . prototype . getChildNodes = function ( ) { return this . items ; } , t . prototype . getValue = function ( ) { return this . items . map ( function ( e ) { return e . getValue ( ) ; } ) ; } , t . prototype . addItem = function ( e ) { return ! ! e && ( this . items . push ( e ) , ! 0 ) ; } , t . prototype . visit = function ( e ) { for ( var t = e ( this ) , n = 0 ; n < this . items . length && t ; n ++ ) t = this . items [ n ] . visit ( e ) ; return t ; } , t . prototype . validate = function ( t , n , r , i ) { var a = this ; if ( void 0 === i && ( i = - 1 ) , i === - 1 || this . contains ( i ) ) { if ( e . prototype . validate . call ( this , t , n , r , i ) , Array . isArray ( t . items ) ) { var s = t . items ; s . forEach ( function ( e , t ) { var o = new h , c = a . items [ t ] ; c ? ( c . validate ( e , o , r , i ) , n . mergePropertyMatch ( o ) ) : a . items . length >= s . length && n . propertiesValueMatches ++ ; } ) , t . additionalItems === ! 1 && this . items . length > s . length ? n . warnings . push ( { location : { start : this . start , end : this . end } , message : o ( "additionalItemsWarning" , "Array has too many items according to schema. Expected {0} or fewer" , s . length ) } ) : this . items . length >= s . length && ( n . propertiesValueMatches += this . items . length - s . length ) ; } else t . items && this . items . forEach ( function ( e ) { var o = new h ; e . validate ( t . items , o , r , i ) , n . mergePropertyMatch ( o ) ; } ) ; if ( t . minItems && this . items . length < t . minItems && n . warnings . push ( { location : { start : this . start , end : this . end } , message : o ( "minItemsWarning" , "Array has too few items. Expected {0} or more" , t . minItems ) } ) , t . maxItems && this . items . length > t . maxItems && n . warnings . push ( { location : { start : this . start , end : this . end } , message : o ( "maxItemsWarning" , "Array has too many items. Expected {0} or fewer" , t . minItems ) } ) , t . uniqueItems === ! 0 ) { var c = this . items . map ( function ( e ) { return e . getValue ( ) ; } ) , u = c . some ( function ( e , t ) { return t !== c . lastIndexOf ( e ) ; } ) ; u && n . warnings . push ( { location : { start : this . start , end : this . end } , message : o ( "uniqueItemsWarning" , "Array has duplicate items" ) } ) ; } } } , t ; } ( a ) ; t . ArrayASTNode = u ; var l = function ( e ) { function t ( t , n , r , i ) { e . call ( this , t , "number" , n , r , i ) , this . isInteger = ! 0 , this . value = Number . NaN ; } return __extends ( t , e ) , t . prototype . getValue = function ( ) { return this . value ; } , t . prototype . validate = function ( t , n , r , i ) { if ( void 0 === i && ( i = - 1 ) , i === - 1 || this . contains ( i ) ) { var a = ! 1 ; ( "integer" === t . type || Array . isArray ( t . type ) && t . type . indexOf ( "integer" ) !== - 1 ) && ( a = ! 0 ) , a && this . isInteger === ! 0 && ( this . type = "integer" ) , e . prototype . validate . call ( this , t , n , r , i ) , this . type = "number" ; var s = this . getValue ( ) ; "number" == typeof t . multipleOf && s % t . multipleOf !== 0 && n . warnings . push ( { location : { start : this . start , end : this . end } , message : o ( "multipleOfWarning" , "Value is not divisible by {0}" , t . multipleOf ) } ) , "number" == typeof t . minimum && ( t . exclusiveMinimum && s <= t . minimum && n . warnings . push ( { location : { start : this . start , end : this . end } , message : o ( "exclusiveMinimumWarning" , "Value is below the exclusive minimum of {0}" , t . minimum ) } ) , ! t . exclusiveMinimum && s < t . minimum && n . warnings . push ( { location : { start : this . start , end : this . end } , message : o ( "minimumWarning" , "Value is below the minimum of {0}" , t . minimum ) } ) ) , "number" == typeof t . maximum && ( t . exclusiveMaximum && s >= t . maximum && n . warnings . push ( { location : { start : this . start , end : this . end } , message : o ( "exclusiveMaximumWarning" , "Value is above the exclusive maximum of {0}" , t . maximum ) } ) , ! t . exclusiveMaximum && s > t . maximum && n . warnings . push ( { location : { start : this . start , end : this . end } , message : o ( "maximumWarning" , "Value is above the maximum of {0}" , t . maximum ) } ) ) ; } } , t ; } ( a ) ; t . NumberASTNode = l ; var p = function ( e ) { function t ( t , n , r , i , o ) { e . call ( this , t , "string" , n , i , o ) , this . isKey = r , this . value = "" ; } return __extends ( t , e ) , t . prototype . getValue = function ( ) { return this . value ; } , t . prototype . validate = function ( t , n , r , i ) { if ( void 0 === i && ( i = - 1 ) , ( i === - 1 || this . contains ( i ) ) && ( e . prototype . validate . call ( this , t , n , r , i ) , t . minLength && this . value . length < t . minLength && n . warnings . push ( { location : { start : this . start , end : this . end } , message : o ( "minLengthWarning" , "String is shorter than the minimum length of " , t . minLength ) } ) , t . maxLength && this . value . length > t . maxLength && n . warnings . push ( { location : { start : this . start , end : this . end } , message : o ( "maxLengthWarning" , "String is shorter than the maximum length of " , t . maxLength ) } ) , t . pattern ) ) { var a = new RegExp ( t . pattern ) ; a . test ( this . value ) || n . warnings . push ( { location : { start : this . start , end : this . end } , message : t . errorMessage || o ( "patternWarning" , 'String does not match the pattern of "{0}"' , t . pattern ) } ) ; } } , t ; } ( a ) ; t . StringASTNode = p ; var f = function ( e ) { function t ( t , n ) { e . call ( this , t , "property" , null , n . start ) , this . key = n , n . parent = this , n . location = n . value , this . colonOffset = - 1 ; } return __extends ( t , e ) , t . prototype . getChildNodes = function ( ) { return this . value ? [ this . key , this . value ] : [ this . key ] ; } , t . prototype . setValue = function ( e ) { return this . value = e , null !== e ; } , t . prototype . visit = function ( e ) { return e ( this ) && this . key . visit ( e ) && this . value && this . value . visit ( e ) ; } , t . prototype . validate = function ( e , t , n , r ) { void 0 === r && ( r = - 1 ) , ( r === - 1 || this . contains ( r ) ) && this . value && this . value . validate ( e , t , n , r ) ; } , t ; } ( a ) ; t . PropertyASTNode = f ; var d = function ( e ) { function t ( t , n , r , i ) { e . call ( this , t , "object" , n , r , i ) , this . properties = [ ] ; } return __extends ( t , e ) , t . prototype . getChildNodes = function ( ) { return this . properties ; } , t . prototype . addProperty = function ( e ) { return ! ! e && ( this . properties . push ( e ) , ! 0 ) ; } , t . prototype . getFirstProperty = function ( e ) { for ( var t = 0 ; t < this . properties . length ; t ++ ) if ( this . properties [ t ] . key . value === e ) return this . properties [ t ] ; return null ; } , t . prototype . getKeyList = function ( ) { return this . properties . map ( function ( e ) { return e . key . getValue ( ) ; } ) ; } , t . prototype . getValue = function ( ) { var e = { } ; return this . properties . forEach ( function ( t ) { var n = t . value && t . value . getValue ( ) ; n && ( e [ t . key . getValue ( ) ] = n ) ; } ) , e ; } , t . prototype . visit = function ( e ) { for ( var t = e ( this ) , n = 0 ; n < this . properties . length && t ; n ++ ) t = this . properties [ n ] . visit ( e ) ; return t ; } , t . prototype . validate = function ( t , n , r , i ) { var a = this ; if ( void 0 === i && ( i = - 1 ) , i === - 1 || this . contains ( i ) ) { e . prototype . validate . call ( this , t , n , r , i ) ; var s = { } , c = [ ] ; this . properties . forEach ( function ( e ) { var t = e . key . value ; s [ t ] = e . value , c . push ( t ) ; } ) , Array . isArray ( t . required ) && t . required . forEach ( function ( e ) { if ( ! s [ e ] ) { var t = a . parent && a . parent && a . parent . key , r = t ? { start : t . start , end : t . end } : { start : a . start , end : a . start + 1 } ; n . warnings . push ( { location : r , message : o ( "MissingRequiredPropWarning" , 'Missing property "{0}"' , e ) } ) ; } } ) ; var u = function ( e ) { for ( var t = c . indexOf ( e ) ; t >= 0 ; ) c . splice ( t , 1 ) , t = c . indexOf ( e ) ; } ; t . properties && Object . keys ( t . properties ) . forEach ( function ( e ) { u ( e ) ; var o = t . properties [ e ] , a = s [ e ] ; if ( a ) { var c = new h ; a . validate ( o , c , r , i ) , n . mergePropertyMatch ( c ) ; } } ) , t . patternProperties && Object . keys ( t . patternProperties ) . forEach ( function ( e ) { var o = new RegExp ( e ) ; c . slice ( 0 ) . forEach ( function ( a ) { if ( o . test ( a ) ) { u ( a ) ; var c = s [ a ] ; if ( c ) { var l = new h ; c . validate ( t . patternProperties [ e ] , l , r , i ) , n . mergePropertyMatch ( l ) ; } } } ) ; } ) , t . additionalProperties ? c . forEach ( function ( e ) { var o = s [ e ] ; if ( o ) { var a = new h ; o . validate ( t . additionalProperties , a , r , i ) , n . mergePropertyMatch ( a ) ; } } ) : t . additionalProperties === ! 1 && c . length > 0 && c . forEach ( function ( e ) { var t = s [ e ] ; if ( t ) { var r = t . parent ; n . warnings . push ( { location : { start : r . key . start , end : r . key . end } , message : o ( "DisallowedExtraPropWarning" , "Property {0} is not allowed" , e ) } ) ; } } ) , t . maxProperties && this . properties . length > t . maxProperties && n . warnings . push ( { location : { start : this . start , end : this . end } , message : o ( "MaxPropWarning" , "Object has more properties than limit of {0}" , t . maxProperties ) } ) , t . minProperties && this . properties . length < t . minProperties && n . warnings . push ( { location : { start : this . start , end : this . end } , message : o ( "MinPropWarning" , "Object has fewer properties than the required number of {0}" , t . minProperties ) } ) , t . dependencies && Object . keys ( t . dependencies ) . forEach ( function ( e ) { var c = s [ e ] ; if ( c ) if ( Array . isArray ( t . dependencies [ e ] ) ) { var u = t . dependencies [ e ] ; u . forEach ( function ( t ) { s [ t ] ? n . propertiesValueMatches ++ : n . warnings . push ( { location : { start : a . start , end : a . end } , message : o ( "RequiredDependentPropWarning" , "Object is missing property {0} required by property {1}" , t , e ) } ) ; } ) ; } else if ( t . dependencies [ e ] ) { var l = t . dependencies [ e ] , p = new h ; a . validate ( l , p , r , i ) , n . mergePropertyMatch ( p ) ; } } ) ; } } , t ; } ( a ) ; t . ObjectASTNode = d ; var h = function ( ) { function e ( ) { this . errors = [ ] , this . warnings = [ ] , this . propertiesMatches = 0 , this . propertiesValueMatches = 0 , this . enumValueMatch = ! 1 ; } return e . prototype . hasErrors = function ( ) { return ! ! this . errors . length || ! ! this . warnings . length ; } , e . prototype . mergeAll = function ( e ) { var t = this ; e . forEach ( function ( e ) { t . merge ( e ) ; } ) ; } , e . prototype . merge = function ( e ) { this . errors = this . errors . concat ( e . errors ) , this . warnings = this . warnings . concat ( e . warnings ) ; } , e . prototype . mergePropertyMatch = function ( e ) { this . merge ( e ) , this . propertiesMatches ++ , ( e . enumValueMatch || ! e . hasErrors ( ) && e . propertiesMatches ) && this . propertiesValueMatches ++ ; } , e . prototype . compare = function ( e ) { var t = this . hasErrors ( ) ; return t !== e . hasErrors ( ) ? t ? - 1 : 1 : this . enumValueMatch !== e . enumValueMatch ? e . enumValueMatch ? - 1 : 1 : this . propertiesValueMatches !== e . propertiesValueMatches ? this . propertiesValueMatches - e . propertiesValueMatches : this . propertiesMatches - e . propertiesMatches ; } , e ; } ( ) ; t . ValidationResult = h ; var m = function ( ) { function e ( e ) { this . validationResult = new h ; } return Object . defineProperty ( e . prototype , "errors" , { get : function ( ) { return this . validationResult . errors ; } , enumerable : ! 0 , configurable : ! 0 } ) , Object . defineProperty ( e . prototype , "warnings" , { get : function ( ) { return this . validationResult . warnings ; } , enumerable : ! 0 , configurable : ! 0 } ) , e . prototype . getNodeFromOffset = function ( e ) { return this . root && this . root . getNodeFromOffset ( e ) ; } , e . prototype . getNodeFromOffsetEndInclusive = function ( e ) { return this . root && this . root . getNodeFromOffsetEndInclusive ( e ) ; } , e . prototype . visit = function ( e ) { this . root && this . root . visit ( e ) ; } , e . prototype . validate = function ( e , t , n ) { void 0 === t && ( t = null ) , void 0 === n && ( n = - 1 ) , this . root && this . root . validate ( e , this . validationResult , t , n ) ; } , e ; } ( ) ; t . JSONDocument = m , t . parse = n ; } ) , function ( e ) { if ( "object" == typeof module && "object" == typeof module . exports ) { var t = e ( require , exports ) ; void 0 !== t && ( module . exports = t ) ; } else "function" == typeof define && define . amd && define ( "vscode-json-languageservice/services/configuration" , [ "require" , "exports" , "vscode-nls" ] , e ) ; } ( function ( e , t ) { var n = e ( "vscode-nls" ) , r = n . loadMessageBundle ( ) ; t . schemaContributions = { schemaAssociations : { } , schemas : { "http://json-schema.org/draft-04/schema#" : { title : r ( "schema.json" , "Describes a JSON file using a schema. See json-schema.org for more info." ) , $schema : "http://json-schema.org/draft-04/schema#" , definitions : { schemaArray : { type : "array" , minItems : 1 , items : { $ref : "#" } } , positiveInteger : { type : "integer" , minimum : 0 } , positiveIntegerDefault0 : { allOf : [ { $ref : "#/definitions/positiveInteger" } , { "default" : 0 } ] } , simpleTypes : { type : "string" , "enum" : [ "array" , "boolean" , "integer" , "null" , "number" , "object" , "string" ] } , stringArray : { type : "array" , items : { type : "string" } , minItems : 1 , uniqueItems : ! 0 } } , type : "object" , properties : { id : { type : "string" , format : "uri" , description : r ( "schema.json.id" , "A unique identifier for the schema." ) } , $schema : { type : "string" , format : "uri" , description : r ( "schema.json.$schema" , "The schema to verify this document against " ) } , title : { type : "string" , description : r ( "schema.json.title" , "A descriptive title of the element" ) } , description : { type : "string" , description : r ( "schema.json.description" , "A long description of the element. Used in hover menus and suggestions." ) } , "default" : { description : r ( "schema.json.default" , "A default value. Used by suggestions." ) } , multipleOf : { type : "number" , minimum : 0 , exclusiveMinimum : ! 0 , description : r ( "schema.json.multipleOf" , "A number that should cleanly divide the current value (i.e. have no remainder)" ) } , maximum : { type : "number" , description : r ( "schema.json.maximum" , "The maximum numerical value, inclusive by default." ) } , exclusiveMaximum : { type : "boolean" , "default" : ! 1 , description : r ( "schema.json.exclusiveMaximum" , "Makes the maximum property exclusive." ) } , minimum : { type : "number" , description : r ( "schema.json.minimum" , "The minimum numerical value, inclusive by default." ) } , exclusiveMinimum : { type : "boolean" , "default" : ! 1 , description : r ( "schema.json.exclusiveMininum" , "Makes the minimum property exclusive." ) } , maxLength : { allOf : [ { $ref : "#/definitions/positiveInteger" } ] , description : r ( "schema.json.maxLength" , "The maximum length of a string." ) } , minLength : { allOf : [ { $ref : "#/definitions/positiveIntegerDefault0" } ] , description : r ( "schema.json.minLength" , "The minimum length of a string." ) } , pattern : { type : "string" , format : "regex" , description : r ( "schema.json.pattern" , "A regular expression to match the string against. It is not implicitly anchored." ) } , additionalItems : { anyOf : [ { type : "boolean" } , { $ref : "#" } ] , "default" : { } , description : r ( "schema.json.additionalItems" , "For arrays, only when items is set as an array. If it is a schema, then this schema validates items after the ones specified by the items array. If it is false, then additional items will cause validation to fail." ) } , items : { anyOf : [ { $ref : "#" } , { $ref : "#/definitions/schemaArray" } ] , "default" : { } , description : r ( "schema.json.items" , "For arrays. Can either be a schema to validate every element against or an array of schemas to validate each item against in order (the first schema will validate the first element, the second schema will validate the second element, and so on." ) } , maxItems : { allOf : [ { $ref : "#/definitions/positiveInteger" } ] , description : r ( "schema.json.maxItems" , "The maximum number of items that can be inside an array. Inclusive." ) } , minItems : { allOf : [ { $ref : "#/definitions/positiveIntegerDefault0" } ] , description : r ( "schema.json.minItems" , "The minimum number of items that can be inside an array. Inclusive." ) } , uniqueItems : { type : "boolean" , "default" : ! 1 , description : r ( "schema.json.uniqueItems" , "If all of the items in the array must be unique. Defaults to false." ) } , maxProperties : { allOf : [ { $ref : "#/definitions/positiveInteger" } ] , description : r ( "schema.json.maxProperties" , "The maximum number of properties an object can have. Inclusive." ) } , minProperties : { allOf : [ { $ref : "#/definitions/positiveIntegerDefault0" } ] , description : r ( "schema.json.minProperties" , "The minimum number of properties an object can have. Inclusive." ) } , required : { allOf : [ { $ref : "#/definitions/stringArray" } ] , description : r ( "schema.json.required" , "An array of strings that lists the names of all properties required on this object." ) } , additionalProperties : { anyOf : [ { type : "boolean" } , { $ref : "#" } ] , "default" : { } , description : r ( "schema.json.additionalProperties" , "Either a schema or a boolean. If a schema, then used to validate all properties not matched by 'properties' or 'patternProperties'. If false, then any properties not matched by either will cause this schema to fail." ) } , definitions : { type : "object" , additionalProperties : { $ref : "#" } , "default" : { } , description : r ( "schema.json.definitions" , "Not used for validation. Place subschemas here that you wish to reference inline with $ref" ) } , properties : { type : "object" , additionalProperties : { $ref : "#" } , "default" : { } , description : r ( "schema.json.properties" , "A map of property names to schemas for each property." ) } , patternProperties : { type : "object" , additionalProperties : { $ref : "#" } , "default" : { } , description : r ( "schema.json.patternProperties" , "A map of regular expressions on property names to schemas for matching properties." ) } , dependencies : { type : "object" , additionalProperties : { anyOf : [ { $ref : "#" } , { $ref : "#/definitions/stringArray" } ] } , description : r ( "schema.json.dependencies" , "A map of property names to either an array of property names or a schema. An array of property names means the property named in the key depends on the properties in the array being present in the object in order to be valid. If the value is a schema, then the schema is only applied to the object if the property in the key exists on the object." ) } , "enum" : { type : "array" , minItems : 1 , uniqueItems : ! 0 , description : r ( "schema.json.enum" , "The set of literal values that are valid" ) } , type : { anyOf : [ { $ref : "#/definitions/simpleTypes" } , { type : "array" , items : { $ref : "#/definitions/simpleTypes" } , minItems : 1 , uniqueItems : ! 0 } ] , description : r ( "schema.json.type" , "Either a string of one of the basic schema types (number, integer, null, array, object, boolean, string) or an array of strings specifying a subset of those types." ) } , format : { anyOf : [ { type : "string" , description : r ( "schema.json.format" , "Describes the format expected for the value." ) , "enum" : [ "date-time" , "uri" , "email" , "hostname" , "ipv4" , "ipv6" , "regex" ] } , { type : "string" } ] } , allOf : { allOf : [ { $ref : "#/definitions/schemaArray" } ] , description : r ( "schema.json.allOf" , "An array of schemas, all of which must match." ) } , anyOf : { allOf : [ { $ref : "#/definitions/schemaArray" } ] , description : r ( "schema.json.anyOf" , "An array of schemas, where at least one must match." ) } , oneOf : { allOf : [ { $ref : "#/definitions/schemaArray" } ] , description : r ( "schema.json.oneOf" , "An array of schemas, exactly one of which must match." ) } , not : { allOf : [ { $ref : "#" } ] , description : r ( "schema.json.not" , "A schema which must not match." ) } } , dependencies : { exclusiveMaximum : [ "maximum" ] , exclusiveMinimum : [ "minimum" ] } , "default" : { } } } } ; } ) , function ( e ) { if ( "object" == typeof module && "object" == typeof module . exports ) { var t = e ( require , exports ) ; void 0 !== t && ( module . exports = t ) ; } else "function" == typeof define && define . amd && define ( "vscode-json-languageservice/utils/uri" , [ "require" , "exports" ] , e ) ; } ( function ( e , t ) { function n ( e ) { return "%" + e . charCodeAt ( 0 ) . toString ( 16 ) . toUpperCase ( ) ; } function r ( e ) { return encodeURIComponent ( e ) . replace ( /[!'()*]/g , n ) ; } function i ( e ) { return e ; } var o = function ( ) { function e ( ) { this . _scheme = e . _empty , this . _authority = e . _empty , this . _path = e . _empty , this . _query = e . _empty , this . _fragment = e . _empty , this . _formatted = null , this . _fsPath = null ; } return Object . defineProperty ( e . prototype , "scheme" , { get : function ( ) { return this . _scheme ; } , enumerable : ! 0 , configurable : ! 0 } ) , Object . defineProperty ( e . prototype , "authority" , { get : function ( ) { return this . _authority ; } , enumerable : ! 0 , configurable : ! 0 } ) , Object . defineProperty ( e . prototype , "path" , { get : function ( ) { return this . _path ; } , enumerable : ! 0 , configurable : ! 0 } ) , Object . defineProperty ( e . prototype , "query" , { get : function ( ) { return this . _query ; } , enumerable : ! 0 , configurable : ! 0 } ) , Object . defineProperty ( e . prototype , "fragment" , { get : function ( ) { return this . _fragment ; } , enumerable : ! 0 , configurable : ! 0 } ) , Object . defineProperty ( e . prototype , "fsPath" , { get : function ( ) { if ( ! this . _fsPath ) { var t ; t = this . _authority && "file" === this . scheme ? "//" + this . _authority + this . _path : e . _driveLetterPath . test ( this . _path ) ? this . _path [ 1 ] . toLowerCase ( ) + this . _path . substr ( 2 ) : this . _path , "win32" === process . platform && ( t = t . replace ( /\//g , "\\" ) ) , this . _fsPath = t ; } return this . _fsPath ; } , enumerable : ! 0 , configurable : ! 0 } ) , e . prototype [ "with" ] = function ( t , n , r , i , o ) { var a = new e ; return a . _scheme = t || this . scheme , a . _authority = n || this . authority , a . _path = r || this . path , a . _query = i || this . query , a . _fragment = o || this . fragment , e . _validate ( a ) , a ; } , e . prototype . withScheme = function ( e ) { return this [ "with" ] ( e , void 0 , void 0 , void 0 , void 0 ) ; } , e . prototype . withAuthority = function ( e ) { return this [ "with" ] ( void 0 , e , void 0 , void 0 , void 0 ) ; } , e . prototype . withPath = function ( e ) { return this [ "with" ] ( void 0 , void 0 , e , void 0 , void 0 ) ; } , e . prototype . withQuery = function ( e ) { return this [ "with" ] ( void 0 , void 0 , void 0 , e , void 0 ) ; } , e . prototype . withFragment = function ( e ) { return this [ "with" ] ( void 0 , void 0 , void 0 , void 0 , e ) ; } , e . parse = function ( t ) { var n = new e , r = e . _parseComponents ( t ) ; return n . _scheme = r . scheme , n . _authority = decodeURIComponent ( r . authority ) , n . _path = decodeURIComponent ( r . path ) , n . _query = decodeURIComponent ( r . query ) , n . _fragment = decodeURIComponent ( r . fragment ) , e . _validate ( n ) , n ; } , e . file = function ( t ) { var n = new e ; if ( n . _scheme = "file" , t = t . replace ( /\\/g , e . _slash ) , t [ 0 ] === e . _slash && t [ 0 ] === t [ 1 ] ) { var r = t . indexOf ( e . _slash , 2 ) ; r === - 1 ? n . _authority = t . substring ( 2 ) : ( n . _authority = t . substring ( 2 , r ) , n . _path = t . substring ( r ) ) ; } else n . _path = t ; return n . _path [ 0 ] !== e . _slash && ( n . _path = e . _slash + n . _path ) , e . _validate ( n ) , n ; } , e . _parseComponents = function ( t ) { var n = { scheme : e . _empty , authority : e . _empty , path : e . _empty , query : e . _empty , fragment : e . _empty } , r = e . _regexp . exec ( t ) ; return r && ( n . scheme = r [ 2 ] || n . scheme , n . authority = r [ 4 ] || n . authority , n . path = r [ 5 ] || n . path , n . query = r [ 7 ] || n . query , n . fragment = r [ 9 ] || n . fragment ) , n ; } , e . create = function ( t , n , r , i , o ) { return ( new e ) [ "with" ] ( t , n , r , i , o ) ; } , e . _validate = function ( e ) { if ( e . authority && e . path && "/" !== e . path [ 0 ] ) throw new Error ( '[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character' ) ; if ( ! e . authority && 0 === e . path . indexOf ( "//" ) ) throw new Error ( '[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")' ) ; } , e . prototype . toString = function ( t ) { return void 0 === t && ( t = ! 1 ) , t ? e . _asFormatted ( this , ! 0 ) : ( this . _formatted || ( this . _formatted = e . _asFormatted ( this , ! 1 ) ) , this . _formatted ) ; } , e . _asFormatted = function ( t , o ) { var a = o ? i : r , s = [ ] , c = t . scheme , u = t . authority , l = t . path , p = t . query , f = t . fragment ; if ( c && s . push ( c , ":" ) , ( u || "file" === c ) && s . push ( "//" ) , u ) { u = u . toLowerCase ( ) ; var d = u . indexOf ( ":" ) ; d === - 1 ? s . push ( a ( u ) ) : s . push ( a ( u . substr ( 0 , d ) ) , u . substr ( d ) ) ; } if ( l ) { var h = e . _upperCaseDrive . exec ( l ) ; h && ( l = h [ 1 ] + h [ 2 ] . toLowerCase ( ) + l . substr ( h [ 1 ] . length + h [ 2 ] . length ) ) ; for ( var m = 0 ; ; ) { var d = l . indexOf ( e . _slash , m ) ; if ( d === - 1 ) { s . push ( a ( l . substring ( m ) ) . replace ( /[#?]/ , n ) ) ; break ; } s . push ( a ( l . substring ( m , d ) ) . replace ( /[#?]/ , n ) , e . _slash ) , m = d + 1 ; } } return p && s . push ( "?" , a ( p ) ) , f && s . push ( "#" , a ( f ) ) , s . join ( e . _empty ) ; } , e . prototype . toJSON = function ( ) { return { scheme : this . scheme , authority : this . authority , path : this . path , fsPath : this . fsPath , query : this . query , fragment : this . fragment . replace ( /URL_MARSHAL_REMOVE.*$/ , "" ) , external : this . toString ( ) . replace ( /#?URL_MARSHAL_REMOVE.*$/ , "" ) , $mid : 1 } ; } , e . _empty = "" , e . _slash = "/" , e . _regexp = /^(([^:\/?#]+?):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/ , e . _driveLetterPath = /^\/[a-zA-z]:/ , e . _upperCaseDrive = /^(\/)?([A-Z]:)/ , e ; } ( ) ; Object . defineProperty ( t , "__esModule" , { value : ! 0 } ) , t [ "default" ] = o ; } ) , function ( e ) { if ( "object" == typeof module && "object" == typeof module . exports ) { var t = e ( require , exports ) ; void 0 !== t && ( module . exports = t ) ; } else "function" == typeof define && define . amd && define ( "vscode-json-languageservice/services/jsonSchemaService" , [ "require" , "exports" , "jsonc-parser" , "../utils/uri" , "../utils/strings" , "vscode-nls" ] , e ) ; } ( function ( e , t ) { function n ( e ) { try { var t = i [ "default" ] . parse ( e ) ; if ( "file" === t . scheme ) return t . fsPath ; } catch ( n ) { } return e ; } var r = e ( "jsonc-parser" ) , i = e ( "../utils/uri" ) , o = e ( "../utils/strings" ) , a = e ( "vscode-nls" ) , s = a . loadMessageBundle ( ) , c = function ( ) { function e ( e ) { this . combinedSchemaId = "schemaservice://combinedSchema/" + encodeURIComponent ( e ) ; try { this . patternRegExp = new RegExp ( o . convertSimple2RegExpPattern ( e ) + "$" ) ; } catch ( t ) { this . patternRegExp = null ; } this . schemas = [ ] , this . combinedSchema = null ; } return e . prototype . addSchema = function ( e ) { this . schemas . push ( e ) , this . combinedSchema = null ; } , e . prototype . matchesPattern = function ( e ) { return this . patternRegExp && this . patternRegExp . test ( e ) ; } , e . prototype . getCombinedSchema = function ( e ) { return this . combinedSchema || ( this . combinedSchema = e . createCombinedSchema ( this . combinedSchemaId , this . schemas ) ) , this . combinedSchema ; } , e ; } ( ) , u = function ( ) { function e ( e , t , n ) { this . service = e , this . url = t , n && ( this . unresolvedSchema = this . service . promise . resolve ( new l ( n ) ) ) ; } return e . prototype . getUnresolvedSchema = function ( ) { return this . unresolvedSchema || ( this . unresolvedSchema = this . service . loadSchema ( this . url ) ) , this . unresolvedSchema ; } , e . prototype . getResolvedSchema = function ( ) { var e = this ; return this . resolvedSchema || ( this . resolvedSchema = this . getUnresolvedSchema ( ) . then ( function ( t ) { return e . service . resolveSchemaContent ( t , e . url ) ; } ) ) , this . resolvedSchema ; } , e . prototype . clearSchema = function ( ) { this . resolvedSchema = null , this . unresolvedSchema = null ; } , e ; } ( ) , l = function ( ) { function e ( e , t ) { void 0 === t && ( t = [ ] ) , this . schema = e , this . errors = t ; } return e ; } ( ) ; t . UnresolvedSchema = l ; var p = function ( ) { function e ( e , t ) { void 0 === t && ( t = [ ] ) , this . schema = e , this . errors = t ; } return e . prototype . getSection = function ( e ) { return this . getSectionRecursive ( e , this . schema ) ; } , e . prototype . getSectionRecursive = function ( e , t ) { var n = this ; if ( ! t || 0 === e . length ) return t ; var r = e . shift ( ) ; if ( t . properties && t . properties [ r ] ) return this . getSectionRecursive ( e , t . properties [ r ] ) ; if ( t . patternProperties ) Object . keys ( t . patternProperties ) . forEach ( function ( i ) { var o = new RegExp ( i ) ; if ( o . test ( r ) ) return n . getSectionRecursive ( e , t . patternProperties [ i ] ) ; } ) ; else { if ( t . additionalProperties ) return this . getSectionRecursive ( e , t . additionalProperties ) ; if ( r . match ( "[0-9]+" ) ) { if ( t . items ) return this . getSectionRecursive ( e , t . items ) ; if ( Array . isArray ( t . items ) ) try { var i = parseInt ( r , 10 ) ; return t . items [ i ] ? this . getSectionRecursive ( e , t . items [ i ] ) : null ; } catch ( o ) { return null ; } } } return null ; } , e ; } ( ) ; t . ResolvedSchema = p ; var f = function ( ) { function e ( e , t , n ) { this . contextService = t , this . requestService = e , this . promiseConstructor = n || Promise , this . callOnDispose = [ ] , this . contributionSchemas = { } , this . contributionAssociations = { } , this . schemasById = { } , this . filePatternAssociations = [ ] , this . filePatternAssociationById = { } , this . registeredSchemasIds = { } ; } return e . prototype . getRegisteredSchemaIds = function ( e ) { return Object . keys ( this . registeredSchemasIds ) . filter ( function ( t ) { var n = i [ "default" ] . parse ( t ) . scheme ; return "schemaservice" !== n && ( ! e || e ( n ) ) ; } ) ; } , Object . defineProperty ( e . prototype , "promise" , { get : function ( ) { return this . promiseConstructor ; } , enumerable : ! 0 , configurable : ! 0 } ) , e . prototype . dispose = function ( ) { for ( ; this . callOnDispose . length > 0 ; ) this . callOnDispose . pop ( ) ( ) ; } , e . prototype . onResourceChange = function ( e ) { e = this . normalizeId ( e ) ; var t = this . schemasById [ e ] ; return ! ! t && ( t . clearSchema ( ) , ! 0 ) ; } , e . prototype . normalizeId = function ( e ) { return i [ "default" ] . parse ( e ) . toString ( ) ; } , e . prototype . setSchemaContributions = function ( e ) { var t = this ; if ( e . schemas ) { var n = e . schemas ; for ( var r in n ) { var i = this . normalizeId ( r ) ; this . contributionSchemas [ i ] = this . addSchemaHandle ( i , n [ r ] ) ; } } if ( e . schemaAssociations ) { var o = e . schemaAssociations ; for ( var a in o ) { var s = o [ a ] ; this . contributionAssociations [ a ] = s ; var c = this . getOrAddFilePatternAssociation ( a ) ; s . forEach ( function ( e ) { var n = t . normalizeId ( e ) ; c . addSchema ( n ) ; } ) ; } } } , e . prototype . addSchemaHandle = function ( e , t ) { var n = new u ( this , e , t ) ; return this . schemasById [ e ] = n , n ; } , e . prototype . getOrAddSchemaHandle = function ( e , t ) { return this . schemasById [ e ] || this . addSchemaHandle ( e , t ) ; } , e . prototype . getOrAddFilePatternAssociation = function ( e ) { var t = this . filePatternAssociationById [ e ] ; return t || ( t = new c ( e ) , this . filePatternAssociationById [ e ] = t , this . filePatternAssociations . push ( t ) ) , t ; } , e . prototype . registerExternalSchema = function ( e , t , n ) { var r = this ; void 0 === t && ( t = null ) ; var i = this . normalizeId ( e ) ; return this . registeredSchemasIds [ i ] = ! 0 , t && t . forEach ( function ( e ) { r . getOrAddFilePatternAssociation ( e ) . addSchema ( i ) ; } ) , n ? this . addSchemaHandle ( i , n ) : this . getOrAddSchemaHandle ( i ) ; } , e . prototype . clearExternalSchemas = function ( ) { var e = this ; this . schemasById = { } , this . filePatternAssociations = [ ] , this . filePatternAssociationById = { } , this . registeredSchemasIds = { } ; for ( var t in this . contributionSchemas ) this . schemasById [ t ] = this . contributionSchemas [ t ] , this . registeredSchemasIds [ t ] = ! 0 ; for ( var n in this . contributionAssociations ) { var r = this . getOrAddFilePatternAssociation ( n ) ; this . contributionAssociations [ n ] . forEach ( function ( t ) { var n = e . normalizeId ( t ) ; r . addSchema ( n ) ; } ) ; } } , e . prototype . getResolvedSchema = function ( e ) { var t = this . normalizeId ( e ) , n = this . schemasById [ t ] ; return n ? n . getResolvedSchema ( ) : this . promise . resolve ( null ) ; } , e . prototype . loadSchema = function ( e ) { if ( ! this . requestService ) { var t = s ( "json.schema.norequestservice" , "Unable to load schema from '{0}'. No schema request service available" , n ( e ) ) ; return this . promise . resolve ( new l ( { } , [ t ] ) ) ; } return this . requestService ( e ) . then ( function ( t ) { if ( ! t ) { var i = s ( "json.schema.nocontent" , "Unable to load schema from '{0}': No content." , n ( e ) ) ; return new l ( { } , [ i ] ) ; } var o = { } , a = [ ] ; o = r . parse ( t , a ) ; var c = a . length ? [ s ( "json.schema.invalidFormat" , "Unable to parse content from '{0}': {1}." , n ( e ) , a [ 0 ] ) ] : [ ] ; return new l ( o , c ) ; } , function ( t ) { var r = s ( "json.schema.unabletoload" , "Unable to load schema from '{0}': {1}" , n ( e ) , t . toString ( ) ) ; return new l ( { } , [ r ] ) ; } ) ; } , e . prototype . resolveSchemaContent = function ( e , t ) { var n = this , r = e . errors . slice ( 0 ) , i = e . schema , o = this . contextService , a = function ( e , t ) { if ( ! t ) return e ; var n = e ; return "/" === t [ 0 ] && ( t = t . substr ( 1 ) ) , t . split ( "/" ) . some ( function ( e ) { return n = n [ e ] , ! n ; } ) , n ; } , c = function ( e , t , n ) { var i = a ( t , n ) ; if ( i ) for ( var o in i ) i . hasOwnProperty ( o ) && ! e . hasOwnProperty ( o ) && ( e [ o ] = i [ o ] ) ; else r . push ( s ( "json.schema.invalidref" , "$ref '{0}' in {1} can not be resolved." , n , t . id ) ) ; delete e . $ref ; } , u = function ( e , t , i , a ) { return o && ! /^\w+:\/\/.*/ . test ( t ) && ( t = o . resolveRelativePath ( t , a ) ) , t = n . normalizeId ( t ) , n . getOrAddSchemaHandle ( t ) . getUnresolvedSchema ( ) . then ( function ( n ) { if ( n . errors . length ) { var o = i ? t + "#" + i : t ; r . push ( s ( "json.schema.problemloadingref" , "Problems loading reference '{0}': {1}" , o , n . errors [ 0 ] ) ) ; } return c ( e , n . schema , i ) , l ( e , n . schema , t ) ; } ) ; } , l = function ( e , t , r ) { for ( var i = [ e ] , o = [ ] , a = [ ] , s = function ( ) { for ( var e = [ ] , t = 0 ; t < arguments . length ; t ++ ) e [ t - 0 ] = arguments [ t ] ; for ( var n = 0 , r = e ; n < r . length ; n ++ ) { var o = r [ n ] ; "object" == typeof o && i . push ( o ) ; } } , l = function ( ) { for ( var e = [ ] , t = 0 ; t < arguments . length ; t ++ ) e [ t - 0 ] = arguments [ t ] ; for ( var n = 0 , r = e ; n < r . length ; n ++ ) { var o = r [ n ] ; if ( "object" == typeof o ) for ( var a in o ) { var s = o [ a ] ; i . push ( s ) ; } } } , p = function ( ) { for ( var e = [ ] , t = 0 ; t < arguments . length ; t ++ ) e [ t - 0 ] = arguments [ t ] ; for ( var n = 0 , r = e ; n < r . length ; n ++ ) { var o = r [ n ] ; Array . isArray ( o ) && i . push . apply ( i , o ) ; } } ; i . length ; ) { var f = i . pop ( ) ; if ( ! ( o . indexOf ( f ) >= 0 ) ) { if ( o . push ( f ) , f . $ref ) { var d = f . $ref . split ( "#" , 2 ) ; if ( d [ 0 ] . length > 0 ) { a . push ( u ( f , d [ 0 ] , d [ 1 ] , r ) ) ; continue ; } c ( f , t , d [ 1 ] ) ; } s ( f . items , f . additionalProperties , f . not ) , l ( f . definitions , f . properties , f . patternProperties , f . dependencies ) , p ( f . anyOf , f . allOf , f . oneOf , f . items ) ; } } return n . promise . all ( a ) ; } ; return l ( i , i , t ) . then ( function ( e ) { return new p ( i , r ) ; } ) ; } , e . prototype . getSchemaForResource = function ( e , t ) { if ( t && t . root && "object" === t . root . type ) { var n = t . root . properties . filter ( function ( e ) { return "$schema" === e . key . value && ! ! e . value ; } ) ; if ( n . length > 0 ) { var r = n [ 0 ] . value . getValue ( ) ; if ( o . startsWith ( r , "." ) && this . contextService && ( r = this . contextService . resolveRelativePath ( r , e ) ) , r ) { var i = this . normalizeId ( r ) ; return this . getOrAddSchemaHandle ( i ) . getResolvedSchema ( ) ; } } } for ( var a = this . filePatternAssociations . length - 1 ; a >= 0 ; a -- ) { var s = this . filePatternAssociations [ a ] ; if ( s . matchesPattern ( e ) ) return s . getCombinedSchema ( this ) . getResolvedSchema ( ) ; } return this . promise . resolve ( null ) ; } , e . prototype . createCombinedSchema = function ( e , t ) { if ( 1 === t . length ) return this . getOrAddSchemaHandle ( t [ 0 ] ) ; var n = { allOf : t . map ( function ( e ) { return { $ref : e } ; } ) } ; return this . addSchemaHandle ( e , n ) ; } , e ; } ( ) ; t . JSONSchemaService = f ; } ) , function ( e ) { if ( "object" == typeof module && "object" == typeof module . exports ) { var t = e ( require , exports ) ; void 0 !== t && ( module . exports = t ) ; } else "function" == typeof define && define . amd && define ( "vscode-json-languageservice/services/jsonFormatter" , [ "require" , "exports" , "jsonc-parser" , "vscode-languageserver-types" ] , e ) ; } ( function ( e , t ) { function n ( e , t , n ) { function u ( ) { return x + r ( b , f + k ) ; } function l ( ) { var e = T . scan ( ) ; for ( S = ! 1 ; e === s . SyntaxKind . Trivia || e === s . SyntaxKind . LineBreakTrivia ; ) S = S || e === s . SyntaxKind . LineBreakTrivia , e = T . scan ( ) ; return e ; } function p ( t , n , r ) { if ( m . substring ( n , r ) !== t ) { var i = c . Range . create ( e . positionAt ( n ) , e . positionAt ( r ) ) ; C . push ( c . TextEdit . replace ( i , t ) ) ; } } var f , d , h , m = e . getText ( ) ; if ( t ) { var g = c . Position . create ( t . start . line , 0 ) ; h = e . offsetAt ( g ) ; for ( var v = e . offsetAt ( c . Position . create ( t . end . line + 1 , 0 ) ) , y = e . offsetAt ( c . Position . create ( t . end . line , 0 ) ) ; v > y && a ( m , v - 1 ) ; ) v -- ; t = c . Range . create ( g , e . positionAt ( v ) ) , d = m . substring ( h , v ) , f = i ( d , 0 , n ) ; } else d = m , t = c . Range . create ( c . Position . create ( 0 , 0 ) , e . positionAt ( d . length ) ) , f = 0 , h = 0 ; var b , x = o ( e ) , S = ! 1 , k = 0 ; b = n . insertSpaces ? r ( " " , n . tabSize ) : "\t" ; var T = s . createScanner ( d , ! 1 ) , C = [ ] , O = l ( ) ; if ( O !== s . SyntaxKind . EOF ) { var E = T . getTokenOffset ( ) + h , j = r ( b , f ) ; p ( j , h , E ) ; } for ( ; O !== s . SyntaxKind . EOF ; ) { for ( var w = T . getTokenOffset ( ) + T . getTokenLength ( ) + h , A = l ( ) , I = "" ; ! S && ( A === s . SyntaxKind . LineCommentTrivia || A === s . SyntaxKind . BlockCommentTrivia ) ; ) { var _ = T . getTokenOffset ( ) + h ; p ( " " , w , _ ) , w = T . getTokenOffset ( ) + T . getTokenLength ( ) + h , I = A === s . SyntaxKind . LineCommentTrivia ? u ( ) : "" , A = l ( ) ; } if ( A === s . SyntaxKind . CloseBraceToken ) O !== s . SyntaxKind . OpenBraceToken && ( k -- , I = u ( ) ) ; else if ( A === s . SyntaxKind . CloseBracketToken ) O !== s . SyntaxKind . OpenBracketToken && ( k -- , I = u ( ) ) ; else { switch ( O ) { case s . SyntaxKind . OpenBracketToken : case s . SyntaxKind . OpenBraceToken : k ++ , I = u ( ) ; break ; case s . SyntaxKind . CommaToken : case s . SyntaxKind . LineCommentTrivia : I = u ( ) ; break ; case s . SyntaxKind . BlockCommentTrivia : I = S ? u ( ) : " " ; break ; case s . SyntaxKind . ColonToken : I = " " ; break ; case s . SyntaxKind . NullKeyword : case s . SyntaxKind . TrueKeyword : case s . SyntaxKind . FalseKeyword : case s . SyntaxKind . NumericLiteral : A !== s . SyntaxKind . NullKeyword && A !== s . SyntaxKind . FalseKeyword && A !== s . SyntaxKind . NumericLiteral || ( I = " " ) ; } ! S || A !== s . SyntaxKind . LineCommentTrivia && A !== s . SyntaxKind . BlockCommentTrivia || ( I = u ( ) ) ; } var P = T . getTokenOffset ( ) + h ; p ( I , w , P ) , O = A ; } return C ; } function r ( e , t ) { for ( var n = "" , r = 0 ; r < t ; r ++ ) n += e ; return n ; } function i ( e , t , n ) { for ( var r = 0 , i = 0 , o = n . tabSize || 4 ; r < e . length ; ) { var a = e . charAt ( r ) ; if ( " " === a ) i ++ ; else { if ( "\t" !== a ) break ; i += o ; } r ++ ; } return Math . floor ( i / o ) ; } function o ( e ) { var t = e . getText ( ) ; if ( e . lineCount > 1 ) { for ( var n = e . offsetAt ( c . Position . create ( 1 , 0 ) ) , r = n ; r > 0 && a ( t , r - 1 ) ; ) r -- ; return t . substr ( r , n - r ) ; } return "\n" ; } function a ( e , t ) { return "\r\n" . indexOf ( e . charAt ( t ) ) !== - 1 ; } var s = e ( "jsonc-parser" ) , c = e ( "vscode-languageserver-types" ) ; t . format = n ; } ) , function ( e ) { if ( "object" == typeof module && "object" == typeof module . exports ) { var t = e ( require , exports ) ; void 0 !== t && ( module . exports = t ) ; } else "function" == typeof define && define . amd && define ( "vscode-json-languageservice/jsonLanguageService" , [ "require" , "exports" , "vscode-languageserver-types" , "./services/jsonCompletion" , "./services/jsonHover" , "./services/jsonValidation" , "./services/jsonDocumentSymbols" , "./parser/jsonParser" , "./services/configuration" , "./services/jsonSchemaService" , "./services/jsonFormatter" ] , e ) ; } ( function ( e , t ) { function n ( e ) { var t = e . promiseConstructor || Promise , n = new l . JSONSchemaService ( e . schemaRequestService , e . workspaceContext , t ) ; n . setSchemaContributions ( u . schemaContributions ) ; var r = new i . JSONCompletion ( n , e . contributions , t ) , f = new o . JSONHover ( n , e . contributions , t ) , d = new s . JSONDocumentSymbols , h = new a . JSONValidation ( n , t ) , m = ! 1 ; return { configure : function ( e ) { n . clearExternalSchemas ( ) , e . schemas && e . schemas . forEach ( function ( e ) { n . registerExternalSchema ( e . uri , e . fileMatch , e . schema ) ; } ) , h . configure ( e ) , m = e && ! e . allowComments ; } , resetSchema : function ( e ) { return n . onResourceChange ( e ) ; } , doValidation : h . doValidation . bind ( h ) , parseJSONDocument : function ( e ) { return c . parse ( e . getText ( ) , { disallowComments : m } ) ; } , doResolve : r . doResolve . bind ( r ) , doComplete : r . doComplete . bind ( r ) , findDocumentSymbols : d . findDocumentSymbols . bind ( d ) , doHover : f . doHover . bind ( f ) , format : p . format } ; } var r = e ( "vscode-languageserver-types" ) ; t . TextDocument = r . TextDocument , t . Position = r . Position , t . CompletionItem = r . CompletionItem , t . CompletionList = r . CompletionList , t . Range = r . Range , t . SymbolInformation = r . SymbolInformation , t . Diagnostic = r . Diagnostic , t . TextEdit = r . TextEdit , t . FormattingOptions = r . FormattingOptions ; var i = e ( "./services/jsonCompletion" ) , o = e ( "./services/jsonHover" ) , a = e ( "./services/jsonValidation" ) , s = e ( "./services/jsonDocumentSymbols" ) , c = e ( "./parser/jsonParser" ) , u = e ( "./services/configuration" ) , l = e ( "./services/jsonSchemaService" ) , p = e ( "./services/jsonFormatter" ) ; t . getLanguageService = n ; } ) , define ( "vscode-json-languageservice" , [ "vscode-json-languageservice/jsonLanguageService" ] , function ( e ) { return e ; } ) , function ( e ) { if ( "object" == typeof module && "object" == typeof module . exports ) { var t = e ( require , exports ) ; void 0 !== t && ( module . exports = t ) ; } else "function" == typeof define && define . amd && define ( "vs/language/json/jsonWorker" , [ "require" , "exports" , "vscode-json-languageservice" , "vscode-languageserver-types" ] , e ) ; } ( function ( e , t ) { function n ( e , t ) { return new s ( e , t ) ; } var r = monaco . Promise , i = e ( "vscode-json-languageservice" ) , o = e ( "vscode-languageserver-types" ) , a = function ( ) { function e ( e ) { this . wrapped = new monaco . Promise ( e ) ; } return e . prototype . then = function ( e , t ) { return this . wrapped . then ( e , t ) ; } , e . prototype . getWrapped = function ( ) { return this . wrapped ; } , e . prototype . cancel = function ( ) { this . wrapped . cancel ( ) ; } , e . resolve = function ( e ) { return monaco . Promise . as ( e ) ; } , e . reject = function ( e ) { return monaco . Promise . wrapError ( e ) ; } , e . all = function ( e ) { return monaco . Promise . join ( e ) ; } , e ; } ( ) , s = function ( ) { function e ( e , t ) { this . _ctx = e , this . _languageSettings = t . languageSettings , this . _languageId = t . languageId , this . _languageService = i . getLanguageService ( { promiseConstructor : a } ) , this . _languageService . configure ( this . _languageSettings ) ; } return e . prototype . doValidation = function ( e ) { var t = this . _getTextDocument ( e ) , n = this . _languageService . parseJSONDocument ( t ) ; return this . _languageService . doValidation ( t , n ) ; } , e . prototype . doComplete = function ( e , t ) { var n = this . _getTextDocument ( e ) , r = this . _languageService . parseJSONDocument ( n ) ; return this . _languageService . doComplete ( n , t , r ) ; } , e . prototype . doResolve = function ( e ) { return this . _languageService . doResolve ( e ) ; } , e . prototype . doHover = function ( e , t ) { var n = this . _getTextDocument ( e ) , r = this . _languageService . parseJSONDocument ( n ) ; return this . _languageService . doHover ( n , t , r ) ; } , e . prototype . format = function ( e , t , n ) { var i = this . _getTextDocument ( e ) , o = this . _languageService . format ( i , t , n ) ; return r . as ( o ) ; } , e . prototype . resetSchema = function ( e ) { return r . as ( this . _languageService . resetSchema ( e ) ) ; } , e . prototype . findDocumentSymbols = function ( e ) { var t = this . _getTextDocument ( e ) , n = this . _languageService . parseJSONDocument ( t ) , i = this . _languageService . findDocumentSymbols ( t , n ) ; return r . as ( i ) ; } , e . prototype . _getTextDocument = function ( e ) { for ( var t = this . _ctx . getMirrorModels ( ) , n = 0 , r = t ; n < r . length ; n ++ ) { var i = r [ n ] ; if ( i . uri . toString ( ) === e ) return o . TextDocument . create ( e , this . _languageId , i . version , i . getValue ( ) ) ; } return null ; } , e ; } ( ) ; t . JSONWorker = s , t . create = n ; } ) ;