monaco-editor11 1.1.8 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/abap-BmV14C8H.js +1 -0
- package/dist/apex-vQDebnNk.js +1 -0
- package/dist/azcli-C4hxwus7.js +1 -0
- package/dist/bat-DYHIOgJW.js +1 -0
- package/dist/bicep-BJDZ3U7c.js +2 -0
- package/dist/cameligo-l0J6eaPU.js +1 -0
- package/dist/clojure-BUv_1vEn.js +1 -0
- package/dist/coffee-Cw3141X6.js +1 -0
- package/dist/cpp-CHPWmTTa.js +1 -0
- package/dist/csharp-0ISFInBU.js +1 -0
- package/dist/csp-Dcy9EUAZ.js +1 -0
- package/dist/css-UDjyEDNM.js +3 -0
- package/dist/css.worker-wrapper.d.ts +0 -0
- package/dist/css.worker.js +66 -0
- package/dist/cssMode-CZvh5Cxi.js +1 -0
- package/dist/{cssMode-BQ5BKBAY.mjs → cssMode-D5wFpBcJ.mjs} +3 -3
- package/dist/cypher-BoSKj8sy.js +1 -0
- package/dist/dart-75fOVMIC.js +1 -0
- package/dist/dockerfile-CeTDdZJB.js +1 -0
- package/dist/ecl-BZ8GfbIS.js +1 -0
- package/dist/editor.worker-wrapper.d.ts +0 -0
- package/dist/editor.worker.js +1 -0
- package/dist/editorWorkerHost-CXSl__Sw.mjs +11917 -0
- package/dist/editorWorkerHost-J3OLr02l.js +33 -0
- package/dist/elixir-HwUoMs-6.js +1 -0
- package/dist/flow9-Co-egZvn.js +1 -0
- package/dist/{freemarker2-6GYcye2r.mjs → freemarker2-0KWO0y3D.mjs} +1 -1
- package/dist/freemarker2-CWgJ4a-p.js +3 -0
- package/dist/fsharp-By4FMj_K.js +1 -0
- package/dist/go-D0-3Iavh.js +1 -0
- package/dist/graphql-arXy5b1U.js +1 -0
- package/dist/handlebars-B3DRUYqI.js +1 -0
- package/dist/{handlebars-5_7gZ3QS.mjs → handlebars-CtTh3MzK.mjs} +1 -1
- package/dist/hcl-DQpT3BXv.js +1 -0
- package/dist/{html-2thNXsIu.mjs → html-Bfagd5f8.mjs} +1 -1
- package/dist/html-Cq6ODg2A.js +1 -0
- package/dist/htmlMode-BCWHN8H1.js +1 -0
- package/dist/{htmlMode-Dmqis0oY.mjs → htmlMode-Ca4o_48E.mjs} +3 -3
- package/dist/index-BnVmN2qp.js +875 -0
- package/dist/index-CcXLAo11.js +1 -0
- package/dist/index-D7fx9aNv.mjs +498 -0
- package/dist/{index-CiIcpngo.mjs → index-DnKFAZ-F.mjs} +24450 -35934
- package/dist/index.d.ts +3 -1
- package/dist/index.js +1 -0
- package/dist/ini-CHrdBSR6.js +1 -0
- package/dist/initialize-7Tsg9DJ6.mjs +44 -0
- package/dist/initialize-8Cpp42Fp.js +1 -0
- package/dist/java-DkNlCtA8.js +1 -0
- package/dist/javascript-C_YSapv9.js +1 -0
- package/dist/{javascript-DGu9heQ1.mjs → javascript-D2KmymLa.mjs} +1 -1
- package/dist/json.worker-wrapper.d.ts +0 -0
- package/dist/json.worker.js +17 -0
- package/dist/jsonMode-DaXUMuRa.js +1 -0
- package/dist/jsonMode-Dnqj4FWW.mjs +306 -0
- package/dist/julia-D2YHJdZy.js +1 -0
- package/dist/kotlin-BSyr2f_w.js +1 -0
- package/dist/less-C8csD237.js +2 -0
- package/dist/lexon-Dg5XMXM-.js +1 -0
- package/dist/{liquid-B6d5eZ0w.mjs → liquid-CQtA4TA-.mjs} +1 -1
- package/dist/liquid-Dc6vO2KK.js +1 -0
- package/dist/lspLanguageFeatures-CeustN1U.js +2 -0
- package/dist/lspLanguageFeatures-DUzyYYsS.mjs +534 -0
- package/dist/lua-BOoO7Ej7.js +1 -0
- package/dist/m3-Bny7JARg.js +1 -0
- package/dist/main-B2xgQ6G2.mjs +687 -0
- package/dist/main-C27EQSK2.mjs +947 -0
- package/dist/main-DXJICgQq.js +3 -0
- package/dist/main-Dt1Bdcpc.js +15 -0
- package/dist/markdown-cseWCS9n.js +1 -0
- package/dist/mdx-C2nK3qTe.js +1 -0
- package/dist/{mdx-Dc2EzqW9.mjs → mdx-cjfOdSKt.mjs} +1 -1
- package/dist/mips-7JuqcyJ4.js +1 -0
- package/dist/msdax-BmYA5eV5.js +1 -0
- package/dist/mysql-CHTrPhJ_.js +1 -0
- package/dist/objective-c-CUdbM2R7.js +1 -0
- package/dist/pascal-CNC6uGuD.js +1 -0
- package/dist/pascaligo-BEZzSZnI.js +1 -0
- package/dist/perl-JOl0jAD9.js +1 -0
- package/dist/pgsql-BlC3cJBr.js +1 -0
- package/dist/php-6ijfJ2jK.js +1 -0
- package/dist/pla-DB8tU9Tm.js +1 -0
- package/dist/postiats-BMJJQsUH.js +1 -0
- package/dist/powerquery-CoLfQ6__.js +1 -0
- package/dist/powershell-BA5owzqH.js +1 -0
- package/dist/protobuf-DUMRTG9C.js +2 -0
- package/dist/pug-D3HDBCR9.js +1 -0
- package/dist/python-BaSW5leI.js +1 -0
- package/dist/{python-BN7PRYMW.mjs → python-DA6ByLCZ.mjs} +1 -1
- package/dist/qsharp-DN7Y6XhL.js +1 -0
- package/dist/r-Bc6rlFXl.js +1 -0
- package/dist/{razor-amsYwW3e.mjs → razor-3z9XYGZf.mjs} +1 -1
- package/dist/razor-nQE2Djhf.js +1 -0
- package/dist/redis-BVBmvApp.js +1 -0
- package/dist/redshift-BdEMv0YI.js +1 -0
- package/dist/restructuredtext-Cwgkbiv3.js +1 -0
- package/dist/ruby-BPqQ0TOE.js +1 -0
- package/dist/rust-DGojqpAN.js +1 -0
- package/dist/sb-B572kJZe.js +1 -0
- package/dist/scala-CDQ1h1Nd.js +1 -0
- package/dist/scheme-CgaAfqMQ.js +1 -0
- package/dist/scss-DZHIl239.js +3 -0
- package/dist/shell-D5kOdfAA.js +1 -0
- package/dist/solidity-D6vCwnFo.js +1 -0
- package/dist/sophia-BJdevZpo.js +1 -0
- package/dist/sparql-v4dsLpAQ.js +1 -0
- package/dist/sql-RAt0uxGh.js +1 -0
- package/dist/st-CjwpLApO.js +1 -0
- package/dist/swift-BcIVfYEa.js +3 -0
- package/dist/systemverilog-CX2A8v2w.js +1 -0
- package/dist/tcl-CCvdS1Ng.js +1 -0
- package/dist/ts.worker-wrapper.d.ts +0 -0
- package/dist/ts.worker.js +67706 -0
- package/dist/tsMode-CieVaThB.js +11 -0
- package/dist/{tsMode-CfGJAg8A.mjs → tsMode-pbVGEqHg.mjs} +1 -1
- package/dist/twig-KWJe-gee.js +1 -0
- package/dist/{typescript-BkqvjzTg.mjs → typescript-CL7lZGgL.mjs} +1 -1
- package/dist/typescript-D-fgoGBJ.js +1 -0
- package/dist/typespec-gb5rMy4D.js +1 -0
- package/dist/vb-D2rfixXK.js +1 -0
- package/dist/wgsl-Dpy8Oyoq.js +298 -0
- package/dist/worker-wrapper.d.ts +0 -0
- package/dist/{xml-BE08lKLg.mjs → xml-Dm8zU0Zq.mjs} +1 -1
- package/dist/xml-luJ1w-__.js +1 -0
- package/dist/{yaml-DaPfb7D4.mjs → yaml-DDKFPb37.mjs} +1 -1
- package/dist/yaml-DZkx0RTO.js +1 -0
- package/package.json +2 -2
- package/dist/assets/editor.worker-iXcRX1Tq.js +0 -26
- package/dist/jsonMode-BHf-60PU.mjs +0 -577
- package/dist/lspLanguageFeatures-CQ-4g5T6.mjs +0 -1458
- package/dist/monaco-editor11.es.js +0 -23
- package/dist/monaco-editor11.umd.js +0 -1234
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
import * as monaco from 'monaco-editor';
|
|
2
|
+
export { monaco };
|
|
2
3
|
declare global {
|
|
3
4
|
interface Window {
|
|
4
5
|
MonacoEnvironment?: {
|
|
@@ -6,3 +7,4 @@ declare global {
|
|
|
6
7
|
};
|
|
7
8
|
}
|
|
8
9
|
}
|
|
10
|
+
export declare function setupMonacoEnvironment(): void;
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-BnVmN2qp.js");exports.monaco=e.editor_main;exports.setupMonacoEnvironment=e.setupMonacoEnvironment;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},n={defaultToken:"",tokenPostfix:".ini",escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/^\[[^\]]*\]/,"metatag"],[/(^\w+)(\s*)(\=)/,["key","","delimiter"]],{include:"@whitespace"},[/\d+/,"number"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string",'@string."'],[/'/,"string","@string.'"]],whitespace:[[/[ \t\r\n]+/,""],[/^\s*[#;].*$/,"comment"]],string:[[/[^\\"']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/["']/,{cases:{"$#==$S2":{token:"string",next:"@pop"},"@default":"string"}}]]}};exports.conf=e;exports.language=n;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { eG as u, dJ as f, dL as c } from "./editorWorkerHost-CXSl__Sw.mjs";
|
|
2
|
+
let i = !1;
|
|
3
|
+
function g(t) {
|
|
4
|
+
if (i)
|
|
5
|
+
throw new Error("WebWorker already initialized!");
|
|
6
|
+
i = !0;
|
|
7
|
+
const r = new u((e) => globalThis.postMessage(e), (e) => t(e));
|
|
8
|
+
return globalThis.onmessage = (e) => {
|
|
9
|
+
r.onmessage(e.data);
|
|
10
|
+
}, r;
|
|
11
|
+
}
|
|
12
|
+
function h(t) {
|
|
13
|
+
let r;
|
|
14
|
+
const e = g((s) => {
|
|
15
|
+
const a = f.getChannel(s), l = {
|
|
16
|
+
host: new Proxy({}, {
|
|
17
|
+
get(w, n, k) {
|
|
18
|
+
if (n !== "then") {
|
|
19
|
+
if (typeof n != "string")
|
|
20
|
+
throw new Error("Not supported");
|
|
21
|
+
return (...d) => a.$fhr(n, d);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}),
|
|
25
|
+
getMirrorModels: () => e.requestHandler.getModels()
|
|
26
|
+
};
|
|
27
|
+
return r = t(l), new c(r);
|
|
28
|
+
});
|
|
29
|
+
return r;
|
|
30
|
+
}
|
|
31
|
+
let o = !1;
|
|
32
|
+
function z() {
|
|
33
|
+
return o;
|
|
34
|
+
}
|
|
35
|
+
function m(t) {
|
|
36
|
+
o = !0, self.onmessage = (r) => {
|
|
37
|
+
h((e) => t(e, r.data));
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
export {
|
|
41
|
+
m as a,
|
|
42
|
+
z as i,
|
|
43
|
+
h as s
|
|
44
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";const n=require("./editorWorkerHost-J3OLr02l.js");let o=!1;function f(t){if(o)throw new Error("WebWorker already initialized!");o=!0;const r=new n.WebWorkerServer(e=>globalThis.postMessage(e),e=>t(e));return globalThis.onmessage=e=>{r.onmessage(e.data)},r}function s(t){let r;const e=f(l=>{const u=n.EditorWorkerHost.getChannel(l),d={host:new Proxy({},{get(k,i,w){if(i!=="then"){if(typeof i!="string")throw new Error("Not supported");return(...c)=>u.$fhr(i,c)}}}),getMirrorModels:()=>e.requestHandler.getModels()};return r=t(d),new n.EditorWorker(r)});return r}let a=!1;function g(){return a}function W(t){a=!0,self.onmessage=r=>{s(e=>t(e,r.data))}}exports.initialize=W;exports.isWorkerInitialized=g;exports.start=s;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"<",close:">"}],folding:{markers:{start:new RegExp("^\\s*//\\s*(?:(?:#?region\\b)|(?:<editor-fold\\b))"),end:new RegExp("^\\s*//\\s*(?:(?:#?endregion\\b)|(?:</editor-fold>))")}}},t={defaultToken:"",tokenPostfix:".java",keywords:["abstract","continue","for","new","switch","assert","default","goto","package","synchronized","boolean","do","if","private","this","break","double","implements","protected","throw","byte","else","import","public","throws","case","enum","instanceof","return","transient","catch","extends","int","short","try","char","final","interface","static","void","class","finally","long","strictfp","volatile","const","float","native","super","while","true","false","yield","record","sealed","non-sealed","permits"],operators:["=",">","<","!","~","?",":","==","<=",">=","!=","&&","||","++","--","+","-","*","/","&","|","^","%","<<",">>",">>>","+=","-=","*=","/=","&=","|=","^=","%=","<<=",">>=",">>>="],symbols:/[=><!~?:&|+\-*\/\^%]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,digits:/\d+(_+\d+)*/,octaldigits:/[0-7]+(_+[0-7]+)*/,binarydigits:/[0-1]+(_+[0-1]+)*/,hexdigits:/[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/,tokenizer:{root:[["non-sealed","keyword.non-sealed"],[/[a-zA-Z_$][\w$]*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],{include:"@whitespace"},[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/@\s*[a-zA-Z_\$][\w\$]*/,"annotation"],[/(@digits)[eE]([\-+]?(@digits))?[fFdD]?/,"number.float"],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?[fFdD]?/,"number.float"],[/0[xX](@hexdigits)[Ll]?/,"number.hex"],[/0(@octaldigits)[Ll]?/,"number.octal"],[/0[bB](@binarydigits)[Ll]?/,"number.binary"],[/(@digits)[fFdD]/,"number.float"],[/(@digits)[lL]?/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"""/,"string","@multistring"],[/"/,"string","@string"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@javadoc"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],javadoc:[[/[^\/*]+/,"comment.doc"],[/\/\*/,"comment.doc.invalid"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],multistring:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"""/,"string","@pop"],[/./,"string"]]}};exports.conf=e;exports.language=t;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./typescript-D-fgoGBJ.js"),t=e.conf,a={defaultToken:"invalid",tokenPostfix:".js",keywords:["break","case","catch","class","continue","const","constructor","debugger","default","delete","do","else","export","extends","false","finally","for","from","function","get","if","import","in","instanceof","let","new","null","return","set","static","super","switch","symbol","this","throw","true","try","typeof","undefined","var","void","while","with","yield","async","await","of"],typeKeywords:[],operators:e.language.operators,symbols:e.language.symbols,escapes:e.language.escapes,digits:e.language.digits,octaldigits:e.language.octaldigits,binarydigits:e.language.binarydigits,hexdigits:e.language.hexdigits,regexpctl:e.language.regexpctl,regexpesc:e.language.regexpesc,tokenizer:e.language.tokenizer};exports.conf=t;exports.language=a;
|
|
File without changes
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";const Me=require("./initialize-8Cpp42Fp.js"),E=require("./main-Dt1Bdcpc.js"),v=require("./main-DXJICgQq.js"),p=require("./index-CcXLAo11.js");function W(r,e){if(r===e)return!0;if(r==null||e===null||e===void 0||typeof r!=typeof e||typeof r!="object"||Array.isArray(r)!==Array.isArray(e))return!1;let t,n;if(Array.isArray(r)){if(r.length!==e.length)return!1;for(t=0;t<r.length;t++)if(!W(r[t],e[t]))return!1}else{const s=[];for(n in r)s.push(n);s.sort();const i=[];for(n in e)i.push(n);if(i.sort(),!W(s,i))return!1;for(t=0;t<s.length;t++)if(!W(r[s[t]],e[s[t]]))return!1}return!0}function F(r){return typeof r=="number"}function j(r){return typeof r<"u"}function _(r){return typeof r=="boolean"}function Te(r){return typeof r=="string"}function q(r){return typeof r=="object"&&r!==null&&!Array.isArray(r)}function Le(r,e){if(r.length<e.length)return!1;for(let t=0;t<e.length;t++)if(r[t]!==e[t])return!1;return!0}function G(r,e){const t=r.length-e.length;return t>0?r.lastIndexOf(e)===t:t===0?r===e:!1}function te(r){let e="";Le(r,"(?i)")&&(r=r.substring(4),e="i");try{return new RegExp(r,e+"u")}catch{try{return new RegExp(r,e)}catch{return}}}function he(r){let e=0;for(let t=0;t<r.length;t++){e++;const n=r.charCodeAt(t);55296<=n&&n<=56319&&t++}return e}var w;(function(r){r[r.Undefined=0]="Undefined",r[r.EnumValueMismatch=1]="EnumValueMismatch",r[r.Deprecated=2]="Deprecated",r[r.UnexpectedEndOfComment=257]="UnexpectedEndOfComment",r[r.UnexpectedEndOfString=258]="UnexpectedEndOfString",r[r.UnexpectedEndOfNumber=259]="UnexpectedEndOfNumber",r[r.InvalidUnicode=260]="InvalidUnicode",r[r.InvalidEscapeCharacter=261]="InvalidEscapeCharacter",r[r.InvalidCharacter=262]="InvalidCharacter",r[r.PropertyExpected=513]="PropertyExpected",r[r.CommaExpected=514]="CommaExpected",r[r.ColonExpected=515]="ColonExpected",r[r.ValueExpected=516]="ValueExpected",r[r.CommaOrCloseBacketExpected=517]="CommaOrCloseBacketExpected",r[r.CommaOrCloseBraceExpected=518]="CommaOrCloseBraceExpected",r[r.TrailingComma=519]="TrailingComma",r[r.DuplicateKey=520]="DuplicateKey",r[r.CommentNotPermitted=521]="CommentNotPermitted",r[r.PropertyKeysMustBeDoublequoted=528]="PropertyKeysMustBeDoublequoted",r[r.SchemaResolveError=768]="SchemaResolveError",r[r.SchemaUnsupportedFeature=769]="SchemaUnsupportedFeature"})(w||(w={}));var R;(function(r){r[r.v3=3]="v3",r[r.v4=4]="v4",r[r.v6=6]="v6",r[r.v7=7]="v7",r[r.v2019_09=19]="v2019_09",r[r.v2020_12=20]="v2020_12"})(R||(R={}));var oe;(function(r){r.LATEST={textDocument:{completion:{completionItem:{documentationFormat:[v.MarkupKind.Markdown,v.MarkupKind.PlainText],commitCharactersSupport:!0,labelDetailsSupport:!0}}}}})(oe||(oe={}));const Fe={"color-hex":{errorMessage:p.t("Invalid color format. Use #RGB, #RGBA, #RRGGBB or #RRGGBBAA."),pattern:/^#([0-9A-Fa-f]{3,4}|([0-9A-Fa-f]{2}){3,4})$/},"date-time":{errorMessage:p.t("String is not a RFC3339 date-time."),pattern:/^(\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|60)(\.[0-9]+)?(Z|(\+|-)([01][0-9]|2[0-3]):([0-5][0-9]))$/i},date:{errorMessage:p.t("String is not a RFC3339 date."),pattern:/^(\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$/i},time:{errorMessage:p.t("String is not a RFC3339 time."),pattern:/^([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|60)(\.[0-9]+)?(Z|(\+|-)([01][0-9]|2[0-3]):([0-5][0-9]))$/i},email:{errorMessage:p.t("String is not an e-mail address."),pattern:/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z0-9-]+\.)+[a-zA-Z]{2,}))$/},hostname:{errorMessage:p.t("String is not a hostname."),pattern:/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i},ipv4:{errorMessage:p.t("String is not an IPv4 address."),pattern:/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/},ipv6:{errorMessage:p.t("String is not an IPv6 address."),pattern:/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i}};class B{constructor(e,t,n=0){this.offset=t,this.length=n,this.parent=e}get children(){return[]}toString(){return"type: "+this.type+" ("+this.offset+"/"+this.length+")"+(this.parent?" parent: {"+this.parent.toString()+"}":"")}}class $e extends B{constructor(e,t){super(e,t),this.type="null",this.value=null}}class me extends B{constructor(e,t,n){super(e,n),this.type="boolean",this.value=t}}class De extends B{constructor(e,t){super(e,t),this.type="array",this.items=[]}get children(){return this.items}}class Ee extends B{constructor(e,t){super(e,t),this.type="number",this.isInteger=!0,this.value=Number.NaN}}class re extends B{constructor(e,t,n){super(e,t,n),this.type="string",this.value=""}}class je extends B{constructor(e,t,n){super(e,t),this.type="property",this.colonOffset=-1,this.keyNode=n}get children(){return this.valueNode?[this.keyNode,this.valueNode]:[this.keyNode]}}class Re extends B{constructor(e,t){super(e,t),this.type="object",this.properties=[]}get children(){return this.properties}}function D(r){return _(r)?r?{}:{not:{}}:r}var de;(function(r){r[r.Key=0]="Key",r[r.Enum=1]="Enum"})(de||(de={}));const _e={"http://json-schema.org/draft-03/schema#":R.v3,"http://json-schema.org/draft-04/schema#":R.v4,"http://json-schema.org/draft-06/schema#":R.v6,"http://json-schema.org/draft-07/schema#":R.v7,"https://json-schema.org/draft/2019-09/schema":R.v2019_09,"https://json-schema.org/draft/2020-12/schema":R.v2020_12};class ge{constructor(e){this.schemaDraft=e}}class pe{constructor(e=-1,t){this.focusOffset=e,this.exclude=t,this.schemas=[]}add(e){this.schemas.push(e)}merge(e){Array.prototype.push.apply(this.schemas,e.schemas)}include(e){return(this.focusOffset===-1||ke(e,this.focusOffset))&&e!==this.exclude}newSub(){return new pe(-1,this.exclude)}}class Z{constructor(){}get schemas(){return[]}add(e){}merge(e){}include(e){return!0}newSub(){return this}}Z.instance=new Z;class ${constructor(){this.problems=[],this.propertiesMatches=0,this.processedProperties=new Set,this.propertiesValueMatches=0,this.primaryValueMatches=0,this.enumValueMatch=!1,this.enumValues=void 0}hasProblems(){return!!this.problems.length}merge(e){this.problems=this.problems.concat(e.problems),this.propertiesMatches+=e.propertiesMatches,this.propertiesValueMatches+=e.propertiesValueMatches,this.mergeProcessedProperties(e)}mergeEnumValues(e){if(!this.enumValueMatch&&!e.enumValueMatch&&this.enumValues&&e.enumValues){this.enumValues=this.enumValues.concat(e.enumValues);for(const t of this.problems)t.code===w.EnumValueMismatch&&(t.message=p.t("Value is not accepted. Valid values: {0}.",this.enumValues.map(n=>JSON.stringify(n)).join(", ")))}}mergePropertyMatch(e){this.problems=this.problems.concat(e.problems),this.propertiesMatches++,(e.enumValueMatch||!e.hasProblems()&&e.propertiesMatches)&&this.propertiesValueMatches++,e.enumValueMatch&&e.enumValues&&e.enumValues.length===1&&this.primaryValueMatches++}mergeProcessedProperties(e){e.processedProperties.forEach(t=>this.processedProperties.add(t))}compare(e){const t=this.hasProblems();return t!==e.hasProblems()?t?-1:1:this.enumValueMatch!==e.enumValueMatch?e.enumValueMatch?-1:1:this.primaryValueMatches!==e.primaryValueMatches?this.primaryValueMatches-e.primaryValueMatches:this.propertiesValueMatches!==e.propertiesValueMatches?this.propertiesValueMatches-e.propertiesValueMatches:this.propertiesMatches-e.propertiesMatches}}function Ke(r,e=[]){return new Ne(r,e,[])}function J(r){return E.getNodeValue(r)}function ae(r){return E.getNodePath(r)}function ke(r,e,t=!1){return e>=r.offset&&e<r.offset+r.length||t&&e===r.offset+r.length}class Ne{constructor(e,t=[],n=[]){this.root=e,this.syntaxErrors=t,this.comments=n}getNodeFromOffset(e,t=!1){if(this.root)return E.findNodeAtOffset(this.root,e,t)}visit(e){if(this.root){const t=n=>{let s=e(n);const i=n.children;if(Array.isArray(i))for(let a=0;a<i.length&&s;a++)s=t(i[a]);return s};t(this.root)}}validate(e,t,n=v.DiagnosticSeverity.Warning,s){if(this.root&&t){const i=new $;return L(this.root,t,i,Z.instance,new ge(s??ye(t))),i.problems.map(a=>{const o=v.Range.create(e.positionAt(a.location.offset),e.positionAt(a.location.offset+a.location.length));return v.Diagnostic.create(o,a.message,a.severity??n,a.code)})}}getMatchingSchemas(e,t=-1,n){if(this.root&&e){const s=new pe(t,n),i=ye(e),a=new ge(i);return L(this.root,e,new $,s,a),s.schemas}return[]}}function ye(r,e=R.v2020_12){let t=r.$schema;return t?_e[t]??e:e}function L(r,e,t,n,s){if(!r||!n.include(r))return;if(r.type==="property")return L(r.valueNode,e,t,n,s);const i=r;switch(a(),i.type){case"object":g(i);break;case"array":l(i);break;case"string":h(i);break;case"number":o(i);break}n.add({node:i,schema:e});function a(){var N;function c(m){return i.type===m||m==="integer"&&i.type==="number"&&i.isInteger}if(Array.isArray(e.type)?e.type.some(c)||t.problems.push({location:{offset:i.offset,length:i.length},message:e.errorMessage||p.t("Incorrect type. Expected one of {0}.",e.type.join(", "))}):e.type&&(c(e.type)||t.problems.push({location:{offset:i.offset,length:i.length},message:e.errorMessage||p.t('Incorrect type. Expected "{0}".',e.type)})),Array.isArray(e.allOf))for(const m of e.allOf){const x=new $,T=n.newSub();L(i,D(m),x,T,s),t.merge(x),n.merge(T)}const f=D(e.not);if(f){const m=new $,x=n.newSub();L(i,f,m,x,s),m.hasProblems()||t.problems.push({location:{offset:i.offset,length:i.length},message:e.errorMessage||p.t("Matches a schema that is not allowed.")});for(const T of x.schemas)T.inverted=!T.inverted,n.add(T)}const y=(m,x)=>{const T=[];let k;for(const I of m){const A=D(I),P=new $,C=n.newSub();if(L(i,A,P,C,s),P.hasProblems()||T.push(A),!k)k={schema:A,validationResult:P,matchingSchemas:C};else if(!x&&!P.hasProblems()&&!k.validationResult.hasProblems())k.matchingSchemas.merge(C),k.validationResult.propertiesMatches+=P.propertiesMatches,k.validationResult.propertiesValueMatches+=P.propertiesValueMatches,k.validationResult.mergeProcessedProperties(P);else{const O=P.compare(k.validationResult);O>0?k={schema:A,validationResult:P,matchingSchemas:C}:O===0&&(k.matchingSchemas.merge(C),k.validationResult.mergeEnumValues(P))}}return T.length>1&&x&&t.problems.push({location:{offset:i.offset,length:1},message:p.t("Matches multiple schemas when only one must validate.")}),k&&(t.merge(k.validationResult),n.merge(k.matchingSchemas)),T.length};Array.isArray(e.anyOf)&&y(e.anyOf,!1),Array.isArray(e.oneOf)&&y(e.oneOf,!0);const u=m=>{const x=new $,T=n.newSub();L(i,D(m),x,T,s),t.merge(x),n.merge(T)},b=(m,x,T)=>{const k=D(m),I=new $,A=n.newSub();L(i,k,I,A,s),n.merge(A),t.mergeProcessedProperties(I),I.hasProblems()?T&&u(T):x&&u(x)},d=D(e.if);if(d&&b(d,D(e.then),D(e.else)),Array.isArray(e.enum)){const m=J(i);let x=!1;for(const T of e.enum)if(W(m,T)){x=!0;break}t.enumValues=e.enum,t.enumValueMatch=x,x||t.problems.push({location:{offset:i.offset,length:i.length},code:w.EnumValueMismatch,message:e.errorMessage||p.t("Value is not accepted. Valid values: {0}.",e.enum.map(T=>JSON.stringify(T)).join(", "))})}if(j(e.const)){const m=J(i);W(m,e.const)?t.enumValueMatch=!0:(t.problems.push({location:{offset:i.offset,length:i.length},code:w.EnumValueMismatch,message:e.errorMessage||p.t("Value must be {0}.",JSON.stringify(e.const))}),t.enumValueMatch=!1),t.enumValues=[e.const]}let S=e.deprecationMessage;if(S||e.deprecated){S=S||p.t("Value is deprecated");let m=((N=i.parent)==null?void 0:N.type)==="property"?i.parent:i;t.problems.push({location:{offset:m.offset,length:m.length},severity:v.DiagnosticSeverity.Warning,message:S,code:w.Deprecated})}}function o(c){const f=c.value;function y(x){var k;const T=/^(-?\d+)(?:\.(\d+))?(?:e([-+]\d+))?$/.exec(x.toString());return T&&{value:Number(T[1]+(T[2]||"")),multiplier:(((k=T[2])==null?void 0:k.length)||0)-(parseInt(T[3])||0)}}if(F(e.multipleOf)){let x=-1;if(Number.isInteger(e.multipleOf))x=f%e.multipleOf;else{let T=y(e.multipleOf),k=y(f);if(T&&k){const I=10**Math.abs(k.multiplier-T.multiplier);k.multiplier<T.multiplier?k.value*=I:T.value*=I,x=k.value%T.value}}x!==0&&t.problems.push({location:{offset:c.offset,length:c.length},message:p.t("Value is not divisible by {0}.",e.multipleOf)})}function u(x,T){if(F(T))return T;if(_(T)&&T)return x}function b(x,T){if(!_(T)||!T)return x}const d=u(e.minimum,e.exclusiveMinimum);F(d)&&f<=d&&t.problems.push({location:{offset:c.offset,length:c.length},message:p.t("Value is below the exclusive minimum of {0}.",d)});const S=u(e.maximum,e.exclusiveMaximum);F(S)&&f>=S&&t.problems.push({location:{offset:c.offset,length:c.length},message:p.t("Value is above the exclusive maximum of {0}.",S)});const N=b(e.minimum,e.exclusiveMinimum);F(N)&&f<N&&t.problems.push({location:{offset:c.offset,length:c.length},message:p.t("Value is below the minimum of {0}.",N)});const m=b(e.maximum,e.exclusiveMaximum);F(m)&&f>m&&t.problems.push({location:{offset:c.offset,length:c.length},message:p.t("Value is above the maximum of {0}.",m)})}function h(c){if(F(e.minLength)&&he(c.value)<e.minLength&&t.problems.push({location:{offset:c.offset,length:c.length},message:p.t("String is shorter than the minimum length of {0}.",e.minLength)}),F(e.maxLength)&&he(c.value)>e.maxLength&&t.problems.push({location:{offset:c.offset,length:c.length},message:p.t("String is longer than the maximum length of {0}.",e.maxLength)}),Te(e.pattern)){const f=te(e.pattern);f!=null&&f.test(c.value)||t.problems.push({location:{offset:c.offset,length:c.length},message:e.patternErrorMessage||e.errorMessage||p.t('String does not match the pattern of "{0}".',e.pattern)})}if(e.format)switch(e.format){case"uri":case"uri-reference":{let y;if(!c.value)y=p.t("URI expected.");else{const u=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/.exec(c.value);u?!u[2]&&e.format==="uri"&&(y=p.t("URI with a scheme is expected.")):y=p.t("URI is expected.")}y&&t.problems.push({location:{offset:c.offset,length:c.length},message:e.patternErrorMessage||e.errorMessage||p.t("String is not a URI: {0}",y)})}break;case"color-hex":case"date-time":case"date":case"time":case"email":case"hostname":case"ipv4":case"ipv6":const f=Fe[e.format];(!c.value||!f.pattern.exec(c.value))&&t.problems.push({location:{offset:c.offset,length:c.length},message:e.patternErrorMessage||e.errorMessage||f.errorMessage})}}function l(c){let f,y;s.schemaDraft>=R.v2020_12?(f=e.prefixItems,y=Array.isArray(e.items)?void 0:e.items):(f=Array.isArray(e.items)?e.items:void 0,y=Array.isArray(e.items)?e.additionalItems:e.items);let u=0;if(f!==void 0){const S=Math.min(f.length,c.items.length);for(;u<S;u++){const N=f[u],m=D(N),x=new $,T=c.items[u];T&&(L(T,m,x,n,s),t.mergePropertyMatch(x)),t.processedProperties.add(String(u))}}if(y!==void 0&&u<c.items.length)if(typeof y=="boolean")for(y===!1&&t.problems.push({location:{offset:c.offset,length:c.length},message:p.t("Array has too many items according to schema. Expected {0} or fewer.",u)});u<c.items.length;u++)t.processedProperties.add(String(u)),t.propertiesValueMatches++;else for(;u<c.items.length;u++){const S=new $;L(c.items[u],y,S,n,s),t.mergePropertyMatch(S),t.processedProperties.add(String(u))}const b=D(e.contains);if(b){let S=0;for(let N=0;N<c.items.length;N++){const m=c.items[N],x=new $;L(m,b,x,Z.instance,s),x.hasProblems()||(S++,s.schemaDraft>=R.v2020_12&&t.processedProperties.add(String(N)))}S===0&&!F(e.minContains)&&t.problems.push({location:{offset:c.offset,length:c.length},message:e.errorMessage||p.t("Array does not contain required item.")}),F(e.minContains)&&S<e.minContains&&t.problems.push({location:{offset:c.offset,length:c.length},message:e.errorMessage||p.t("Array has too few items that match the contains contraint. Expected {0} or more.",e.minContains)}),F(e.maxContains)&&S>e.maxContains&&t.problems.push({location:{offset:c.offset,length:c.length},message:e.errorMessage||p.t("Array has too many items that match the contains contraint. Expected {0} or less.",e.maxContains)})}const d=e.unevaluatedItems;if(d!==void 0)for(let S=0;S<c.items.length;S++){if(!t.processedProperties.has(String(S)))if(d===!1)t.problems.push({location:{offset:c.offset,length:c.length},message:p.t("Item does not match any validation rule from the array.")});else{const N=new $;L(c.items[S],e.unevaluatedItems,N,n,s),t.mergePropertyMatch(N)}t.processedProperties.add(String(S)),t.propertiesValueMatches++}if(F(e.minItems)&&c.items.length<e.minItems&&t.problems.push({location:{offset:c.offset,length:c.length},message:p.t("Array has too few items. Expected {0} or more.",e.minItems)}),F(e.maxItems)&&c.items.length>e.maxItems&&t.problems.push({location:{offset:c.offset,length:c.length},message:p.t("Array has too many items. Expected {0} or fewer.",e.maxItems)}),e.uniqueItems===!0){let N=function(){for(let m=0;m<S.length-1;m++){const x=S[m];for(let T=m+1;T<S.length;T++)if(W(x,S[T]))return!0}return!1};const S=J(c);N()&&t.problems.push({location:{offset:c.offset,length:c.length},message:p.t("Array has duplicate items.")})}}function g(c){const f=Object.create(null),y=new Set;for(const m of c.properties){const x=m.keyNode.value;f[x]=m.valueNode,y.add(x)}if(Array.isArray(e.required)){for(const m of e.required)if(!f[m]){const x=c.parent&&c.parent.type==="property"&&c.parent.keyNode,T=x?{offset:x.offset,length:x.length}:{offset:c.offset,length:1};t.problems.push({location:T,message:p.t('Missing property "{0}".',m)})}}const u=m=>{y.delete(m),t.processedProperties.add(m)};if(e.properties)for(const m of Object.keys(e.properties)){u(m);const x=e.properties[m],T=f[m];if(T)if(_(x))if(x)t.propertiesMatches++,t.propertiesValueMatches++;else{const k=T.parent;t.problems.push({location:{offset:k.keyNode.offset,length:k.keyNode.length},message:e.errorMessage||p.t("Property {0} is not allowed.",m)})}else{const k=new $;L(T,x,k,n,s),t.mergePropertyMatch(k)}}if(e.patternProperties)for(const m of Object.keys(e.patternProperties)){const x=te(m);if(x){const T=[];for(const k of y)if(x.test(k)){T.push(k);const I=f[k];if(I){const A=e.patternProperties[m];if(_(A))if(A)t.propertiesMatches++,t.propertiesValueMatches++;else{const P=I.parent;t.problems.push({location:{offset:P.keyNode.offset,length:P.keyNode.length},message:e.errorMessage||p.t("Property {0} is not allowed.",k)})}else{const P=new $;L(I,A,P,n,s),t.mergePropertyMatch(P)}}}T.forEach(u)}}const b=e.additionalProperties;if(b!==void 0)for(const m of y){u(m);const x=f[m];if(x){if(b===!1){const T=x.parent;t.problems.push({location:{offset:T.keyNode.offset,length:T.keyNode.length},message:e.errorMessage||p.t("Property {0} is not allowed.",m)})}else if(b!==!0){const T=new $;L(x,b,T,n,s),t.mergePropertyMatch(T)}}}const d=e.unevaluatedProperties;if(d!==void 0){const m=[];for(const x of y)if(!t.processedProperties.has(x)){m.push(x);const T=f[x];if(T){if(d===!1){const k=T.parent;t.problems.push({location:{offset:k.keyNode.offset,length:k.keyNode.length},message:e.errorMessage||p.t("Property {0} is not allowed.",x)})}else if(d!==!0){const k=new $;L(T,d,k,n,s),t.mergePropertyMatch(k)}}}m.forEach(u)}if(F(e.maxProperties)&&c.properties.length>e.maxProperties&&t.problems.push({location:{offset:c.offset,length:c.length},message:p.t("Object has more properties than limit of {0}.",e.maxProperties)}),F(e.minProperties)&&c.properties.length<e.minProperties&&t.problems.push({location:{offset:c.offset,length:c.length},message:p.t("Object has fewer properties than the required number of {0}",e.minProperties)}),e.dependentRequired)for(const m in e.dependentRequired){const x=f[m],T=e.dependentRequired[m];x&&Array.isArray(T)&&N(m,T)}if(e.dependentSchemas)for(const m in e.dependentSchemas){const x=f[m],T=e.dependentSchemas[m];x&&q(T)&&N(m,T)}if(e.dependencies)for(const m in e.dependencies)f[m]&&N(m,e.dependencies[m]);const S=D(e.propertyNames);if(S)for(const m of c.properties){const x=m.keyNode;x&&L(x,S,t,Z.instance,s)}function N(m,x){if(Array.isArray(x))for(const T of x)f[T]?t.propertiesValueMatches++:t.problems.push({location:{offset:c.offset,length:c.length},message:p.t("Object is missing property {0} required by property {1}.",T,m)});else{const T=D(x);if(T){const k=new $;L(c,T,k,n,s),t.mergePropertyMatch(k)}}}}}function Ue(r,e){const t=[];let n=-1;const s=r.getText(),i=E.createScanner(s,!1),a=e&&e.collectComments?[]:void 0;function o(){for(;;){const k=i.scan();switch(g(),k){case 12:case 13:Array.isArray(a)&&a.push(v.Range.create(r.positionAt(i.getTokenOffset()),r.positionAt(i.getTokenOffset()+i.getTokenLength())));break;case 15:case 14:break;default:return k}}}function h(k,I,A,P,C=v.DiagnosticSeverity.Error){if(t.length===0||A!==n){const O=v.Range.create(r.positionAt(A),r.positionAt(P));t.push(v.Diagnostic.create(O,k,C,I,r.languageId)),n=A}}function l(k,I,A=void 0,P=[],C=[]){let O=i.getTokenOffset(),ne=i.getTokenOffset()+i.getTokenLength();if(O===ne&&O>0){for(O--;O>0&&/\s/.test(s.charAt(O));)O--;ne=O+1}if(h(k,I,O,ne),A&&c(A,!1),P.length+C.length>0){let X=i.getToken();for(;X!==17;){if(P.indexOf(X)!==-1){o();break}else if(C.indexOf(X)!==-1)break;X=o()}}return A}function g(){switch(i.getTokenError()){case 4:return l(p.t("Invalid unicode sequence in string."),w.InvalidUnicode),!0;case 5:return l(p.t("Invalid escape character in string."),w.InvalidEscapeCharacter),!0;case 3:return l(p.t("Unexpected end of number."),w.UnexpectedEndOfNumber),!0;case 1:return l(p.t("Unexpected end of comment."),w.UnexpectedEndOfComment),!0;case 2:return l(p.t("Unexpected end of string."),w.UnexpectedEndOfString),!0;case 6:return l(p.t("Invalid characters in string. Control characters must be escaped."),w.InvalidCharacter),!0}return!1}function c(k,I){return k.length=i.getTokenOffset()+i.getTokenLength()-k.offset,I&&o(),k}function f(k){if(i.getToken()!==3)return;const I=new De(k,i.getTokenOffset());o();let A=!1;for(;i.getToken()!==4&&i.getToken()!==17;){if(i.getToken()===5){A||l(p.t("Value expected"),w.ValueExpected);const C=i.getTokenOffset();if(o(),i.getToken()===4){A&&h(p.t("Trailing comma"),w.TrailingComma,C,C+1);continue}}else A&&l(p.t("Expected comma"),w.CommaExpected);const P=m(I);P?I.items.push(P):l(p.t("Value expected"),w.ValueExpected,void 0,[],[4,5]),A=!0}return i.getToken()!==4?l(p.t("Expected comma or closing bracket"),w.CommaOrCloseBacketExpected,I):c(I,!0)}const y=new re(void 0,0,0);function u(k,I){const A=new je(k,i.getTokenOffset(),y);let P=d(A);if(!P)if(i.getToken()===16){l(p.t("Property keys must be doublequoted"),w.PropertyKeysMustBeDoublequoted);const O=new re(A,i.getTokenOffset(),i.getTokenLength());O.value=i.getTokenValue(),P=O,o()}else return;if(A.keyNode=P,P.value!=="//"){const O=I[P.value];O?(h(p.t("Duplicate object key"),w.DuplicateKey,A.keyNode.offset,A.keyNode.offset+A.keyNode.length,v.DiagnosticSeverity.Warning),q(O)&&h(p.t("Duplicate object key"),w.DuplicateKey,O.keyNode.offset,O.keyNode.offset+O.keyNode.length,v.DiagnosticSeverity.Warning),I[P.value]=!0):I[P.value]=A}if(i.getToken()===6)A.colonOffset=i.getTokenOffset(),o();else if(l(p.t("Colon expected"),w.ColonExpected),i.getToken()===10&&r.positionAt(P.offset+P.length).line<r.positionAt(i.getTokenOffset()).line)return A.length=P.length,A;const C=m(A);return C?(A.valueNode=C,A.length=C.offset+C.length-A.offset,A):l(p.t("Value expected"),w.ValueExpected,A,[],[2,5])}function b(k){if(i.getToken()!==1)return;const I=new Re(k,i.getTokenOffset()),A=Object.create(null);o();let P=!1;for(;i.getToken()!==2&&i.getToken()!==17;){if(i.getToken()===5){P||l(p.t("Property expected"),w.PropertyExpected);const O=i.getTokenOffset();if(o(),i.getToken()===2){P&&h(p.t("Trailing comma"),w.TrailingComma,O,O+1);continue}}else P&&l(p.t("Expected comma"),w.CommaExpected);const C=u(I,A);C?I.properties.push(C):l(p.t("Property expected"),w.PropertyExpected,void 0,[],[2,5]),P=!0}return i.getToken()!==2?l(p.t("Expected comma or closing brace"),w.CommaOrCloseBraceExpected,I):c(I,!0)}function d(k){if(i.getToken()!==10)return;const I=new re(k,i.getTokenOffset());return I.value=i.getTokenValue(),c(I,!0)}function S(k){if(i.getToken()!==11)return;const I=new Ee(k,i.getTokenOffset());if(i.getTokenError()===0){const A=i.getTokenValue();try{const P=JSON.parse(A);if(!F(P))return l(p.t("Invalid number format."),w.Undefined,I);I.value=P}catch{return l(p.t("Invalid number format."),w.Undefined,I)}I.isInteger=A.indexOf(".")===-1}return c(I,!0)}function N(k){switch(i.getToken()){case 7:return c(new $e(k,i.getTokenOffset()),!0);case 8:return c(new me(k,!0,i.getTokenOffset()),!0);case 9:return c(new me(k,!1,i.getTokenOffset()),!0);default:return}}function m(k){return f(k)||b(k)||d(k)||S(k)||N(k)}let x;return o()!==17&&(x=m(x),x?i.getToken()!==17&&l(p.t("End of file expected."),w.Undefined):l(p.t("Expected a JSON object, array or literal."),w.Undefined)),new Ne(x,t,a)}function le(r,e,t){if(r!==null&&typeof r=="object"){const n=e+" ";if(Array.isArray(r)){if(r.length===0)return"[]";let s=`[
|
|
2
|
+
`;for(let i=0;i<r.length;i++)s+=n+le(r[i],n,t),i<r.length-1&&(s+=","),s+=`
|
|
3
|
+
`;return s+=e+"]",s}else{const s=Object.keys(r);if(s.length===0)return"{}";let i=`{
|
|
4
|
+
`;for(let a=0;a<s.length;a++){const o=s[a];i+=n+JSON.stringify(o)+": "+le(r[o],n,t),a<s.length-1&&(i+=","),i+=`
|
|
5
|
+
`}return i+=e+"}",i}}return t(r)}class qe{constructor(e,t=[],n=Promise,s={}){this.schemaService=e,this.contributions=t,this.promiseConstructor=n,this.clientCapabilities=s}doResolve(e){for(let t=this.contributions.length-1;t>=0;t--){const n=this.contributions[t].resolveCompletion;if(n){const s=n(e);if(s)return s}}return this.promiseConstructor.resolve(e)}doComplete(e,t,n){const s={items:[],isIncomplete:!1},i=e.getText(),a=e.offsetAt(t);let o=n.getNodeFromOffset(a,!0);if(this.isInComment(e,o?o.offset:0,a))return Promise.resolve(s);if(o&&a===o.offset+o.length&&a>0){const f=i[a-1];(o.type==="object"&&f==="}"||o.type==="array"&&f==="]")&&(o=o.parent)}const h=this.getCurrentWord(e,a);let l;if(o&&(o.type==="string"||o.type==="number"||o.type==="boolean"||o.type==="null"))l=v.Range.create(e.positionAt(o.offset),e.positionAt(o.offset+o.length));else{let f=a-h.length;f>0&&i[f-1]==='"'&&f--,l=v.Range.create(e.positionAt(f),t)}const g=new Map,c={add:f=>{let y=f.label;const u=g.get(y);if(u)u.documentation||(u.documentation=f.documentation),u.detail||(u.detail=f.detail),u.labelDetails||(u.labelDetails=f.labelDetails);else{if(y=y.replace(/[\n]/g,"↵"),y.length>60){const b=y.substr(0,57).trim()+"...";g.has(b)||(y=b)}f.textEdit=v.TextEdit.replace(l,f.insertText),f.label=y,g.set(y,f),s.items.push(f)}},setAsIncomplete:()=>{s.isIncomplete=!0},error:f=>{console.error(f)},getNumberOfProposals:()=>s.items.length};return this.schemaService.getSchemaForResource(e.uri,n).then(f=>{const y=[];let u=!0,b="",d;if(o&&o.type==="string"){const N=o.parent;N&&N.type==="property"&&N.keyNode===o&&(u=!N.valueNode,d=N,b=i.substr(o.offset+1,o.length-2),N&&(o=N.parent))}if(o&&o.type==="object"){if(o.offset===a)return s;o.properties.forEach(T=>{(!d||d!==T)&&g.set(T.keyNode.value,v.CompletionItem.create("__"))});let m="";u&&(m=this.evaluateSeparatorAfter(e,e.offsetAt(l.end))),f?this.getPropertyCompletions(f,n,o,u,m,c):this.getSchemaLessPropertyCompletions(n,o,b,c);const x=ae(o);this.contributions.forEach(T=>{const k=T.collectPropertyCompletions(e.uri,x,h,u,m==="",c);k&&y.push(k)}),!f&&h.length>0&&i.charAt(a-h.length-1)!=='"'&&(c.add({kind:v.CompletionItemKind.Property,label:this.getLabelForValue(h),insertText:this.getInsertTextForProperty(h,void 0,!1,m),insertTextFormat:v.InsertTextFormat.Snippet,documentation:""}),c.setAsIncomplete())}const S={};return f?this.getValueCompletions(f,n,o,a,e,c,S):this.getSchemaLessValueCompletions(n,o,a,e,c),this.contributions.length>0&&this.getContributedValueCompletions(n,o,a,e,c,y),this.promiseConstructor.all(y).then(()=>{if(c.getNumberOfProposals()===0){let N=a;o&&(o.type==="string"||o.type==="number"||o.type==="boolean"||o.type==="null")&&(N=o.offset+o.length);const m=this.evaluateSeparatorAfter(e,N);this.addFillerValueCompletions(S,m,c)}return s})})}getPropertyCompletions(e,t,n,s,i,a){t.getMatchingSchemas(e.schema,n.offset).forEach(h=>{if(h.node===n&&!h.inverted){const l=h.schema.properties;l&&Object.keys(l).forEach(c=>{const f=l[c];if(typeof f=="object"&&!f.deprecationMessage&&!f.doNotSuggest){const y={kind:v.CompletionItemKind.Property,label:c,insertText:this.getInsertTextForProperty(c,f,s,i),insertTextFormat:v.InsertTextFormat.Snippet,filterText:this.getFilterTextForValue(c),documentation:this.fromMarkup(f.markdownDescription)||f.description||""};f.suggestSortText!==void 0&&(y.sortText=f.suggestSortText),y.insertText&&G(y.insertText,`$1${i}`)&&(y.command={title:"Suggest",command:"editor.action.triggerSuggest"}),a.add(y)}});const g=h.schema.propertyNames;if(typeof g=="object"&&!g.deprecationMessage&&!g.doNotSuggest){const c=(f,y=void 0)=>{const u={kind:v.CompletionItemKind.Property,label:f,insertText:this.getInsertTextForProperty(f,void 0,s,i),insertTextFormat:v.InsertTextFormat.Snippet,filterText:this.getFilterTextForValue(f),documentation:y||this.fromMarkup(g.markdownDescription)||g.description||""};g.suggestSortText!==void 0&&(u.sortText=g.suggestSortText),u.insertText&&G(u.insertText,`$1${i}`)&&(u.command={title:"Suggest",command:"editor.action.triggerSuggest"}),a.add(u)};if(g.enum)for(let f=0;f<g.enum.length;f++){let y;g.markdownEnumDescriptions&&f<g.markdownEnumDescriptions.length?y=this.fromMarkup(g.markdownEnumDescriptions[f]):g.enumDescriptions&&f<g.enumDescriptions.length&&(y=g.enumDescriptions[f]),c(g.enum[f],y)}g.const&&c(g.const)}}})}getSchemaLessPropertyCompletions(e,t,n,s){const i=a=>{a.properties.forEach(o=>{const h=o.keyNode.value;s.add({kind:v.CompletionItemKind.Property,label:h,insertText:this.getInsertTextForValue(h,""),insertTextFormat:v.InsertTextFormat.Snippet,filterText:this.getFilterTextForValue(h),documentation:""})})};if(t.parent)if(t.parent.type==="property"){const a=t.parent.keyNode.value;e.visit(o=>(o.type==="property"&&o!==t.parent&&o.keyNode.value===a&&o.valueNode&&o.valueNode.type==="object"&&i(o.valueNode),!0))}else t.parent.type==="array"&&t.parent.items.forEach(a=>{a.type==="object"&&a!==t&&i(a)});else t.type==="object"&&s.add({kind:v.CompletionItemKind.Property,label:"$schema",insertText:this.getInsertTextForProperty("$schema",void 0,!0,""),insertTextFormat:v.InsertTextFormat.Snippet,documentation:"",filterText:this.getFilterTextForValue("$schema")})}getSchemaLessValueCompletions(e,t,n,s,i){let a=n;if(t&&(t.type==="string"||t.type==="number"||t.type==="boolean"||t.type==="null")&&(a=t.offset+t.length,t=t.parent),!t){i.add({kind:this.getSuggestionKind("object"),label:"Empty object",insertText:this.getInsertTextForValue({},""),insertTextFormat:v.InsertTextFormat.Snippet,documentation:""}),i.add({kind:this.getSuggestionKind("array"),label:"Empty array",insertText:this.getInsertTextForValue([],""),insertTextFormat:v.InsertTextFormat.Snippet,documentation:""});return}const o=this.evaluateSeparatorAfter(s,a),h=l=>{l.parent&&!ke(l.parent,n,!0)&&i.add({kind:this.getSuggestionKind(l.type),label:this.getLabelTextForMatchingNode(l,s),insertText:this.getInsertTextForMatchingNode(l,s,o),insertTextFormat:v.InsertTextFormat.Snippet,documentation:""}),l.type==="boolean"&&this.addBooleanValueCompletion(!l.value,o,i)};if(t.type==="property"&&n>(t.colonOffset||0)){const l=t.valueNode;if(l&&(n>l.offset+l.length||l.type==="object"||l.type==="array"))return;const g=t.keyNode.value;e.visit(c=>(c.type==="property"&&c.keyNode.value===g&&c.valueNode&&h(c.valueNode),!0)),g==="$schema"&&t.parent&&!t.parent.parent&&this.addDollarSchemaCompletions(o,i)}if(t.type==="array")if(t.parent&&t.parent.type==="property"){const l=t.parent.keyNode.value;e.visit(g=>(g.type==="property"&&g.keyNode.value===l&&g.valueNode&&g.valueNode.type==="array"&&g.valueNode.items.forEach(h),!0))}else t.items.forEach(h)}getValueCompletions(e,t,n,s,i,a,o){let h=s,l,g;if(n&&(n.type==="string"||n.type==="number"||n.type==="boolean"||n.type==="null")&&(h=n.offset+n.length,g=n,n=n.parent),!n){this.addSchemaValueCompletions(e.schema,"",a,o);return}if(n.type==="property"&&s>(n.colonOffset||0)){const c=n.valueNode;if(c&&s>c.offset+c.length)return;l=n.keyNode.value,n=n.parent}if(n&&(l!==void 0||n.type==="array")){const c=this.evaluateSeparatorAfter(i,h),f=t.getMatchingSchemas(e.schema,n.offset,g);for(const y of f)if(y.node===n&&!y.inverted&&y.schema){if(n.type==="array"&&y.schema.items){let u=a;if(y.schema.uniqueItems){const b=new Set;n.children.forEach(d=>{d.type!=="array"&&d.type!=="object"&&b.add(this.getLabelForValue(J(d)))}),u={...a,add(d){b.has(d.label)||a.add(d)}}}if(Array.isArray(y.schema.items)){const b=this.findItemAtOffset(n,i,s);b<y.schema.items.length&&this.addSchemaValueCompletions(y.schema.items[b],c,u,o)}else this.addSchemaValueCompletions(y.schema.items,c,u,o)}if(l!==void 0){let u=!1;if(y.schema.properties){const b=y.schema.properties[l];b&&(u=!0,this.addSchemaValueCompletions(b,c,a,o))}if(y.schema.patternProperties&&!u)for(const b of Object.keys(y.schema.patternProperties)){const d=te(b);if(d!=null&&d.test(l)){u=!0;const S=y.schema.patternProperties[b];this.addSchemaValueCompletions(S,c,a,o)}}if(y.schema.additionalProperties&&!u){const b=y.schema.additionalProperties;this.addSchemaValueCompletions(b,c,a,o)}}}l==="$schema"&&!n.parent&&this.addDollarSchemaCompletions(c,a),o.boolean&&(this.addBooleanValueCompletion(!0,c,a),this.addBooleanValueCompletion(!1,c,a)),o.null&&this.addNullValueCompletion(c,a)}}getContributedValueCompletions(e,t,n,s,i,a){if(!t)this.contributions.forEach(o=>{const h=o.collectDefaultCompletions(s.uri,i);h&&a.push(h)});else if((t.type==="string"||t.type==="number"||t.type==="boolean"||t.type==="null")&&(t=t.parent),t&&t.type==="property"&&n>(t.colonOffset||0)){const o=t.keyNode.value,h=t.valueNode;if((!h||n<=h.offset+h.length)&&t.parent){const l=ae(t.parent);this.contributions.forEach(g=>{const c=g.collectValueCompletions(s.uri,l,o,i);c&&a.push(c)})}}}addSchemaValueCompletions(e,t,n,s){typeof e=="object"&&(this.addEnumValueCompletions(e,t,n),this.addDefaultValueCompletions(e,t,n),this.collectTypes(e,s),Array.isArray(e.allOf)&&e.allOf.forEach(i=>this.addSchemaValueCompletions(i,t,n,s)),Array.isArray(e.anyOf)&&e.anyOf.forEach(i=>this.addSchemaValueCompletions(i,t,n,s)),Array.isArray(e.oneOf)&&e.oneOf.forEach(i=>this.addSchemaValueCompletions(i,t,n,s)))}addDefaultValueCompletions(e,t,n,s=0){let i=!1;if(j(e.default)){let a=e.type,o=e.default;for(let l=s;l>0;l--)o=[o],a="array";const h={kind:this.getSuggestionKind(a),label:this.getLabelForValue(o),insertText:this.getInsertTextForValue(o,t),insertTextFormat:v.InsertTextFormat.Snippet};this.doesSupportsLabelDetails()?h.labelDetails={description:p.t("Default value")}:h.detail=p.t("Default value"),n.add(h),i=!0}Array.isArray(e.examples)&&e.examples.forEach(a=>{let o=e.type,h=a;for(let l=s;l>0;l--)h=[h],o="array";n.add({kind:this.getSuggestionKind(o),label:this.getLabelForValue(h),insertText:this.getInsertTextForValue(h,t),insertTextFormat:v.InsertTextFormat.Snippet}),i=!0}),Array.isArray(e.defaultSnippets)&&e.defaultSnippets.forEach(a=>{let o=e.type,h=a.body,l=a.label,g,c;if(j(h)){e.type;for(let f=s;f>0;f--)h=[h];g=this.getInsertTextForSnippetValue(h,t),c=this.getFilterTextForSnippetValue(h),l=l||this.getLabelForSnippetValue(h)}else if(typeof a.bodyText=="string"){let f="",y="",u="";for(let b=s;b>0;b--)f=f+u+`[
|
|
6
|
+
`,y=y+`
|
|
7
|
+
`+u+"]",u+=" ",o="array";g=f+u+a.bodyText.split(`
|
|
8
|
+
`).join(`
|
|
9
|
+
`+u)+y+t,l=l||g,c=g.replace(/[\n]/g,"")}else return;n.add({kind:this.getSuggestionKind(o),label:l,documentation:this.fromMarkup(a.markdownDescription)||a.description,insertText:g,insertTextFormat:v.InsertTextFormat.Snippet,filterText:c}),i=!0}),!i&&typeof e.items=="object"&&!Array.isArray(e.items)&&s<5&&this.addDefaultValueCompletions(e.items,t,n,s+1)}addEnumValueCompletions(e,t,n){if(j(e.const)&&n.add({kind:this.getSuggestionKind(e.type),label:this.getLabelForValue(e.const),insertText:this.getInsertTextForValue(e.const,t),insertTextFormat:v.InsertTextFormat.Snippet,documentation:this.fromMarkup(e.markdownDescription)||e.description}),Array.isArray(e.enum))for(let s=0,i=e.enum.length;s<i;s++){const a=e.enum[s];let o=this.fromMarkup(e.markdownDescription)||e.description;e.markdownEnumDescriptions&&s<e.markdownEnumDescriptions.length&&this.doesSupportMarkdown()?o=this.fromMarkup(e.markdownEnumDescriptions[s]):e.enumDescriptions&&s<e.enumDescriptions.length&&(o=e.enumDescriptions[s]),n.add({kind:this.getSuggestionKind(e.type),label:this.getLabelForValue(a),insertText:this.getInsertTextForValue(a,t),insertTextFormat:v.InsertTextFormat.Snippet,documentation:o})}}collectTypes(e,t){if(Array.isArray(e.enum)||j(e.const))return;const n=e.type;Array.isArray(n)?n.forEach(s=>t[s]=!0):n&&(t[n]=!0)}addFillerValueCompletions(e,t,n){e.object&&n.add({kind:this.getSuggestionKind("object"),label:"{}",insertText:this.getInsertTextForGuessedValue({},t),insertTextFormat:v.InsertTextFormat.Snippet,detail:p.t("New object"),documentation:""}),e.array&&n.add({kind:this.getSuggestionKind("array"),label:"[]",insertText:this.getInsertTextForGuessedValue([],t),insertTextFormat:v.InsertTextFormat.Snippet,detail:p.t("New array"),documentation:""})}addBooleanValueCompletion(e,t,n){n.add({kind:this.getSuggestionKind("boolean"),label:e?"true":"false",insertText:this.getInsertTextForValue(e,t),insertTextFormat:v.InsertTextFormat.Snippet,documentation:""})}addNullValueCompletion(e,t){t.add({kind:this.getSuggestionKind("null"),label:"null",insertText:"null"+e,insertTextFormat:v.InsertTextFormat.Snippet,documentation:""})}addDollarSchemaCompletions(e,t){this.schemaService.getRegisteredSchemaIds(s=>s==="http"||s==="https").forEach(s=>{s.startsWith("http://json-schema.org/draft-")&&(s=s+"#"),t.add({kind:v.CompletionItemKind.Module,label:this.getLabelForValue(s),filterText:this.getFilterTextForValue(s),insertText:this.getInsertTextForValue(s,e),insertTextFormat:v.InsertTextFormat.Snippet,documentation:""})})}getLabelForValue(e){return JSON.stringify(e)}getValueFromLabel(e){return JSON.parse(e)}getFilterTextForValue(e){return JSON.stringify(e)}getFilterTextForSnippetValue(e){return JSON.stringify(e).replace(/\$\{\d+:([^}]+)\}|\$\d+/g,"$1")}getLabelForSnippetValue(e){return JSON.stringify(e).replace(/\$\{\d+:([^}]+)\}|\$\d+/g,"$1")}getInsertTextForPlainText(e){return e.replace(/[\\\$\}]/g,"\\$&")}getInsertTextForValue(e,t){const n=JSON.stringify(e,null," ");return n==="{}"?"{$1}"+t:n==="[]"?"[$1]"+t:this.getInsertTextForPlainText(n+t)}getInsertTextForSnippetValue(e,t){return le(e,"",s=>typeof s=="string"&&s[0]==="^"?s.substr(1):JSON.stringify(s))+t}getInsertTextForGuessedValue(e,t){switch(typeof e){case"object":return e===null?"${1:null}"+t:this.getInsertTextForValue(e,t);case"string":let n=JSON.stringify(e);return n=n.substr(1,n.length-2),n=this.getInsertTextForPlainText(n),'"${1:'+n+'}"'+t;case"number":case"boolean":return"${1:"+JSON.stringify(e)+"}"+t}return this.getInsertTextForValue(e,t)}getSuggestionKind(e){if(Array.isArray(e)){const t=e;e=t.length>0?t[0]:void 0}if(!e)return v.CompletionItemKind.Value;switch(e){case"string":return v.CompletionItemKind.Value;case"object":return v.CompletionItemKind.Module;case"property":return v.CompletionItemKind.Property;default:return v.CompletionItemKind.Value}}getLabelTextForMatchingNode(e,t){switch(e.type){case"array":return"[]";case"object":return"{}";default:return t.getText().substr(e.offset,e.length)}}getInsertTextForMatchingNode(e,t,n){switch(e.type){case"array":return this.getInsertTextForValue([],n);case"object":return this.getInsertTextForValue({},n);default:const s=t.getText().substr(e.offset,e.length)+n;return this.getInsertTextForPlainText(s)}}getInsertTextForProperty(e,t,n,s){const i=this.getInsertTextForValue(e,"");if(!n)return i;const a=i+": ";let o,h=0;if(t){if(Array.isArray(t.defaultSnippets)){if(t.defaultSnippets.length===1){const l=t.defaultSnippets[0].body;j(l)&&(o=this.getInsertTextForSnippetValue(l,""))}h+=t.defaultSnippets.length}if(t.enum&&(!o&&t.enum.length===1&&(o=this.getInsertTextForGuessedValue(t.enum[0],"")),h+=t.enum.length),j(t.const)&&(o||(o=this.getInsertTextForGuessedValue(t.const,"")),h++),j(t.default)&&(o||(o=this.getInsertTextForGuessedValue(t.default,"")),h++),Array.isArray(t.examples)&&t.examples.length&&(o||(o=this.getInsertTextForGuessedValue(t.examples[0],"")),h+=t.examples.length),h===0){let l=Array.isArray(t.type)?t.type[0]:t.type;switch(l||(t.properties?l="object":t.items&&(l="array")),l){case"boolean":o="$1";break;case"string":o='"$1"';break;case"object":o="{$1}";break;case"array":o="[$1]";break;case"number":case"integer":o="${1:0}";break;case"null":o="${1:null}";break;default:return i}}}return(!o||h>1)&&(o="$1"),a+o+s}getCurrentWord(e,t){let n=t-1;const s=e.getText();for(;n>=0&&`
|
|
10
|
+
\r\v":{[,]}`.indexOf(s.charAt(n))===-1;)n--;return s.substring(n+1,t)}evaluateSeparatorAfter(e,t){const n=E.createScanner(e.getText(),!0);switch(n.setPosition(t),n.scan()){case 5:case 2:case 4:case 17:return"";default:return","}}findItemAtOffset(e,t,n){const s=E.createScanner(t.getText(),!0),i=e.items;for(let a=i.length-1;a>=0;a--){const o=i[a];if(n>o.offset+o.length)return s.setPosition(o.offset+o.length),s.scan()===5&&n>=s.getTokenOffset()+s.getTokenLength()?a+1:a;if(n>=o.offset)return a}return 0}isInComment(e,t,n){const s=E.createScanner(e.getText(),!1);s.setPosition(t);let i=s.scan();for(;i!==17&&s.getTokenOffset()+s.getTokenLength()<n;)i=s.scan();return(i===12||i===13)&&s.getTokenOffset()<=n}fromMarkup(e){if(e&&this.doesSupportMarkdown())return{kind:v.MarkupKind.Markdown,value:e}}doesSupportMarkdown(){var e,t,n;if(!j(this.supportsMarkdown)){const s=(n=(t=(e=this.clientCapabilities.textDocument)==null?void 0:e.completion)==null?void 0:t.completionItem)==null?void 0:n.documentationFormat;this.supportsMarkdown=Array.isArray(s)&&s.indexOf(v.MarkupKind.Markdown)!==-1}return this.supportsMarkdown}doesSupportsCommitCharacters(){var e,t,n;return j(this.supportsCommitCharacters)||(this.labelDetailsSupport=(n=(t=(e=this.clientCapabilities.textDocument)==null?void 0:e.completion)==null?void 0:t.completionItem)==null?void 0:n.commitCharactersSupport),this.supportsCommitCharacters}doesSupportsLabelDetails(){var e,t,n;return j(this.labelDetailsSupport)||(this.labelDetailsSupport=(n=(t=(e=this.clientCapabilities.textDocument)==null?void 0:e.completion)==null?void 0:t.completionItem)==null?void 0:n.labelDetailsSupport),this.labelDetailsSupport}}class Je{constructor(e,t=[],n){this.schemaService=e,this.contributions=t,this.promise=n||Promise}doHover(e,t,n){const s=e.offsetAt(t);let i=n.getNodeFromOffset(s);if(!i||(i.type==="object"||i.type==="array")&&s>i.offset+1&&s<i.offset+i.length-1)return this.promise.resolve(null);const a=i;if(i.type==="string"){const g=i.parent;if(g&&g.type==="property"&&g.keyNode===i&&(i=g.valueNode,!i))return this.promise.resolve(null)}const o=v.Range.create(e.positionAt(a.offset),e.positionAt(a.offset+a.length)),h=g=>({contents:g,range:o}),l=ae(i);for(let g=this.contributions.length-1;g>=0;g--){const f=this.contributions[g].getInfoContribution(e.uri,l);if(f)return f.then(y=>h(y))}return this.schemaService.getSchemaForResource(e.uri,n).then(g=>{if(g&&i){const c=n.getMatchingSchemas(g.schema,i.offset);let f,y,u,b;c.every(S=>{if(S.node===i&&!S.inverted&&S.schema&&(f=f||S.schema.title,y=y||S.schema.markdownDescription||ie(S.schema.description),S.schema.enum)){const N=S.schema.enum.indexOf(J(i));S.schema.markdownEnumDescriptions?u=S.schema.markdownEnumDescriptions[N]:S.schema.enumDescriptions&&(u=ie(S.schema.enumDescriptions[N])),u&&(b=S.schema.enum[N],typeof b!="string"&&(b=JSON.stringify(b)))}return!0});let d="";return f&&(d=ie(f)),y&&(d.length>0&&(d+=`
|
|
11
|
+
|
|
12
|
+
`),d+=y),u&&(d.length>0&&(d+=`
|
|
13
|
+
|
|
14
|
+
`),d+=`\`${Be(b)}\`: ${u}`),h([d])}return null})}}function ie(r){if(r)return r.replace(/([^\n\r])(\r?\n)([^\n\r])/gm,`$1
|
|
15
|
+
|
|
16
|
+
$3`).replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}function Be(r){return r.indexOf("`")!==-1?"`` "+r+" ``":r}class We{constructor(e,t){this.jsonSchemaService=e,this.promise=t,this.validationEnabled=!0}configure(e){e&&(this.validationEnabled=e.validate!==!1,this.commentSeverity=e.allowComments?void 0:v.DiagnosticSeverity.Error)}doValidation(e,t,n,s){if(!this.validationEnabled)return this.promise.resolve([]);const i=[],a={},o=l=>{const g=l.range.start.line+" "+l.range.start.character+" "+l.message;a[g]||(a[g]=!0,i.push(l))},h=l=>{let g=n!=null&&n.trailingCommas?Q(n.trailingCommas):v.DiagnosticSeverity.Error,c=n!=null&&n.comments?Q(n.comments):this.commentSeverity,f=n!=null&&n.schemaValidation?Q(n.schemaValidation):v.DiagnosticSeverity.Warning,y=n!=null&&n.schemaRequest?Q(n.schemaRequest):v.DiagnosticSeverity.Warning;if(l){const u=(b,d)=>{if(t.root&&y){const S=t.root,N=S.type==="object"?S.properties[0]:void 0;if(N&&N.keyNode.value==="$schema"){const m=N.valueNode||N,x=v.Range.create(e.positionAt(m.offset),e.positionAt(m.offset+m.length));o(v.Diagnostic.create(x,b,y,d))}else{const m=v.Range.create(e.positionAt(S.offset),e.positionAt(S.offset+1));o(v.Diagnostic.create(m,b,y,d))}}};if(l.errors.length)u(l.errors[0],w.SchemaResolveError);else if(f){for(const d of l.warnings)u(d,w.SchemaUnsupportedFeature);const b=t.validate(e,l.schema,f,n==null?void 0:n.schemaDraft);b&&b.forEach(o)}Ae(l.schema)&&(c=void 0),Pe(l.schema)&&(g=void 0)}for(const u of t.syntaxErrors){if(u.code===w.TrailingComma){if(typeof g!="number")continue;u.severity=g}o(u)}if(typeof c=="number"){const u=p.t("Comments are not permitted in JSON.");t.comments.forEach(b=>{o(v.Diagnostic.create(b,u,c,w.CommentNotPermitted))})}return i};if(s){const l=s.id||"schemaservice://untitled/"+He++;return this.jsonSchemaService.registerExternalSchema({uri:l,schema:s}).getResolvedSchema().then(c=>h(c))}return this.jsonSchemaService.getSchemaForResource(e.uri,t).then(l=>h(l))}getLanguageStatus(e,t){return{schemas:this.jsonSchemaService.getSchemaURIsForResource(e.uri,t)}}}let He=0;function Ae(r){if(r&&typeof r=="object"){if(_(r.allowComments))return r.allowComments;if(r.allOf)for(const e of r.allOf){const t=Ae(e);if(_(t))return t}}}function Pe(r){if(r&&typeof r=="object"){if(_(r.allowTrailingCommas))return r.allowTrailingCommas;const e=r;if(_(e.allowsTrailingCommas))return e.allowsTrailingCommas;if(r.allOf)for(const t of r.allOf){const n=Pe(t);if(_(n))return n}}}function Q(r){switch(r){case"error":return v.DiagnosticSeverity.Error;case"warning":return v.DiagnosticSeverity.Warning;case"ignore":return}}const be=48,ze=57,Ge=65,Y=97,Ze=102;function V(r){return r<be?0:r<=ze?r-be:(r<Y&&(r+=Y-Ge),r>=Y&&r<=Ze?r-Y+10:0)}function Xe(r){if(r[0]==="#")switch(r.length){case 4:return{red:V(r.charCodeAt(1))*17/255,green:V(r.charCodeAt(2))*17/255,blue:V(r.charCodeAt(3))*17/255,alpha:1};case 5:return{red:V(r.charCodeAt(1))*17/255,green:V(r.charCodeAt(2))*17/255,blue:V(r.charCodeAt(3))*17/255,alpha:V(r.charCodeAt(4))*17/255};case 7:return{red:(V(r.charCodeAt(1))*16+V(r.charCodeAt(2)))/255,green:(V(r.charCodeAt(3))*16+V(r.charCodeAt(4)))/255,blue:(V(r.charCodeAt(5))*16+V(r.charCodeAt(6)))/255,alpha:1};case 9:return{red:(V(r.charCodeAt(1))*16+V(r.charCodeAt(2)))/255,green:(V(r.charCodeAt(3))*16+V(r.charCodeAt(4)))/255,blue:(V(r.charCodeAt(5))*16+V(r.charCodeAt(6)))/255,alpha:(V(r.charCodeAt(7))*16+V(r.charCodeAt(8)))/255}}}class Qe{constructor(e){this.schemaService=e}findDocumentSymbols(e,t,n={resultLimit:Number.MAX_VALUE}){const s=t.root;if(!s)return[];let i=n.resultLimit||Number.MAX_VALUE;const a=e.uri;if((a==="vscode://defaultsettings/keybindings.json"||G(a.toLowerCase(),"/user/keybindings.json"))&&s.type==="array"){const f=[];for(const y of s.items)if(y.type==="object"){for(const u of y.properties)if(u.keyNode.value==="key"&&u.valueNode){const b=v.Location.create(e.uri,K(e,y));if(f.push({name:Se(u.valueNode),kind:v.SymbolKind.Function,location:b}),i--,i<=0)return n&&n.onResultLimitExceeded&&n.onResultLimitExceeded(a),f}}return f}const o=[{node:s,containerName:""}];let h=0,l=!1;const g=[],c=(f,y)=>{f.type==="array"?f.items.forEach(u=>{u&&o.push({node:u,containerName:y})}):f.type==="object"&&f.properties.forEach(u=>{const b=u.valueNode;if(b)if(i>0){i--;const d=v.Location.create(e.uri,K(e,u)),S=y?y+"."+u.keyNode.value:u.keyNode.value;g.push({name:this.getKeyLabel(u),kind:this.getSymbolKind(b.type),location:d,containerName:y}),o.push({node:b,containerName:S})}else l=!0})};for(;h<o.length;){const f=o[h++];c(f.node,f.containerName)}return l&&n&&n.onResultLimitExceeded&&n.onResultLimitExceeded(a),g}findDocumentSymbols2(e,t,n={resultLimit:Number.MAX_VALUE}){const s=t.root;if(!s)return[];let i=n.resultLimit||Number.MAX_VALUE;const a=e.uri;if((a==="vscode://defaultsettings/keybindings.json"||G(a.toLowerCase(),"/user/keybindings.json"))&&s.type==="array"){const f=[];for(const y of s.items)if(y.type==="object"){for(const u of y.properties)if(u.keyNode.value==="key"&&u.valueNode){const b=K(e,y),d=K(e,u.keyNode);if(f.push({name:Se(u.valueNode),kind:v.SymbolKind.Function,range:b,selectionRange:d}),i--,i<=0)return n&&n.onResultLimitExceeded&&n.onResultLimitExceeded(a),f}}return f}const o=[],h=[{node:s,result:o}];let l=0,g=!1;const c=(f,y)=>{f.type==="array"?f.items.forEach((u,b)=>{if(u)if(i>0){i--;const d=K(e,u),S=d,m={name:String(b),kind:this.getSymbolKind(u.type),range:d,selectionRange:S,children:[]};y.push(m),h.push({result:m.children,node:u})}else g=!0}):f.type==="object"&&f.properties.forEach(u=>{const b=u.valueNode;if(b)if(i>0){i--;const d=K(e,u),S=K(e,u.keyNode),N=[],m={name:this.getKeyLabel(u),kind:this.getSymbolKind(b.type),range:d,selectionRange:S,children:N,detail:this.getDetail(b)};y.push(m),h.push({result:N,node:b})}else g=!0})};for(;l<h.length;){const f=h[l++];c(f.node,f.result)}return g&&n&&n.onResultLimitExceeded&&n.onResultLimitExceeded(a),o}getSymbolKind(e){switch(e){case"object":return v.SymbolKind.Module;case"string":return v.SymbolKind.String;case"number":return v.SymbolKind.Number;case"array":return v.SymbolKind.Array;case"boolean":return v.SymbolKind.Boolean;default:return v.SymbolKind.Variable}}getKeyLabel(e){let t=e.keyNode.value;return t&&(t=t.replace(/[\n]/g,"↵")),t&&t.trim()?t:`"${t}"`}getDetail(e){if(e){if(e.type==="boolean"||e.type==="number"||e.type==="null"||e.type==="string")return String(e.value);if(e.type==="array")return e.children.length?void 0:"[]";if(e.type==="object")return e.children.length?void 0:"{}"}}findDocumentColors(e,t,n){return this.schemaService.getSchemaForResource(e.uri,t).then(s=>{const i=[];if(s){let a=n&&typeof n.resultLimit=="number"?n.resultLimit:Number.MAX_VALUE;const o=t.getMatchingSchemas(s.schema),h={};for(const l of o)if(!l.inverted&&l.schema&&(l.schema.format==="color"||l.schema.format==="color-hex")&&l.node&&l.node.type==="string"){const g=String(l.node.offset);if(!h[g]){const c=Xe(J(l.node));if(c){const f=K(e,l.node);i.push({color:c,range:f})}if(h[g]=!0,a--,a<=0)return n&&n.onResultLimitExceeded&&n.onResultLimitExceeded(e.uri),i}}}return i})}getColorPresentations(e,t,n,s){const i=[],a=Math.round(n.red*255),o=Math.round(n.green*255),h=Math.round(n.blue*255);function l(c){const f=c.toString(16);return f.length!==2?"0"+f:f}let g;return n.alpha===1?g=`#${l(a)}${l(o)}${l(h)}`:g=`#${l(a)}${l(o)}${l(h)}${l(Math.round(n.alpha*255))}`,i.push({label:g,textEdit:v.TextEdit.replace(s,JSON.stringify(g))}),i}}function K(r,e){return v.Range.create(r.positionAt(e.offset),r.positionAt(e.offset+e.length))}function Se(r){return J(r)||p.t("<empty>")}const ce={schemaAssociations:[],schemas:{"http://json-schema.org/draft-04/schema#":{$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"},$schema:{type:"string",format:"uri"},title:{type:"string"},description:{type:"string"},default:{},multipleOf:{type:"number",minimum:0,exclusiveMinimum:!0},maximum:{type:"number"},exclusiveMaximum:{type:"boolean",default:!1},minimum:{type:"number"},exclusiveMinimum:{type:"boolean",default:!1},maxLength:{allOf:[{$ref:"#/definitions/positiveInteger"}]},minLength:{allOf:[{$ref:"#/definitions/positiveIntegerDefault0"}]},pattern:{type:"string",format:"regex"},additionalItems:{anyOf:[{type:"boolean"},{$ref:"#"}],default:{}},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:{}},maxItems:{allOf:[{$ref:"#/definitions/positiveInteger"}]},minItems:{allOf:[{$ref:"#/definitions/positiveIntegerDefault0"}]},uniqueItems:{type:"boolean",default:!1},maxProperties:{allOf:[{$ref:"#/definitions/positiveInteger"}]},minProperties:{allOf:[{$ref:"#/definitions/positiveIntegerDefault0"}]},required:{allOf:[{$ref:"#/definitions/stringArray"}]},additionalProperties:{anyOf:[{type:"boolean"},{$ref:"#"}],default:{}},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},enum:{type:"array",minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{anyOf:[{type:"string",enum:["date-time","uri","email","hostname","ipv4","ipv6","regex"]},{type:"string"}]},allOf:{allOf:[{$ref:"#/definitions/schemaArray"}]},anyOf:{allOf:[{$ref:"#/definitions/schemaArray"}]},oneOf:{allOf:[{$ref:"#/definitions/schemaArray"}]},not:{allOf:[{$ref:"#"}]}},dependencies:{exclusiveMaximum:["maximum"],exclusiveMinimum:["minimum"]},default:{}},"http://json-schema.org/draft-07/schema#":{definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}}},Ye={id:p.t("A unique identifier for the schema."),$schema:p.t("The schema to verify this document against."),title:p.t("A descriptive title of the element."),description:p.t("A long description of the element. Used in hover menus and suggestions."),default:p.t("A default value. Used by suggestions."),multipleOf:p.t("A number that should cleanly divide the current value (i.e. have no remainder)."),maximum:p.t("The maximum numerical value, inclusive by default."),exclusiveMaximum:p.t("Makes the maximum property exclusive."),minimum:p.t("The minimum numerical value, inclusive by default."),exclusiveMinimum:p.t("Makes the minimum property exclusive."),maxLength:p.t("The maximum length of a string."),minLength:p.t("The minimum length of a string."),pattern:p.t("A regular expression to match the string against. It is not implicitly anchored."),additionalItems:p.t("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:p.t("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:p.t("The maximum number of items that can be inside an array. Inclusive."),minItems:p.t("The minimum number of items that can be inside an array. Inclusive."),uniqueItems:p.t("If all of the items in the array must be unique. Defaults to false."),maxProperties:p.t("The maximum number of properties an object can have. Inclusive."),minProperties:p.t("The minimum number of properties an object can have. Inclusive."),required:p.t("An array of strings that lists the names of all properties required on this object."),additionalProperties:p.t("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:p.t("Not used for validation. Place subschemas here that you wish to reference inline with $ref."),properties:p.t("A map of property names to schemas for each property."),patternProperties:p.t("A map of regular expressions on property names to schemas for matching properties."),dependencies:p.t("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:p.t("The set of literal values that are valid."),type:p.t("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:p.t("Describes the format expected for the value."),allOf:p.t("An array of schemas, all of which must match."),anyOf:p.t("An array of schemas, where at least one must match."),oneOf:p.t("An array of schemas, exactly one of which must match."),not:p.t("A schema which must not match."),$id:p.t("A unique identifier for the schema."),$ref:p.t("Reference a definition hosted on any location."),$comment:p.t("Comments from schema authors to readers or maintainers of the schema."),readOnly:p.t("Indicates that the value of the instance is managed exclusively by the owning authority."),examples:p.t("Sample JSON values associated with a particular schema, for the purpose of illustrating usage."),contains:p.t('An array instance is valid against "contains" if at least one of its elements is valid against the given schema.'),propertyNames:p.t("If the instance is an object, this keyword validates if every property name in the instance validates against the provided schema."),const:p.t("An instance validates successfully against this keyword if its value is equal to the value of the keyword."),contentMediaType:p.t("Describes the media type of a string property."),contentEncoding:p.t("Describes the content encoding of a string property."),if:p.t('The validation outcome of the "if" subschema controls which of the "then" or "else" keywords are evaluated.'),then:p.t('The "if" subschema is used for validation when the "if" subschema succeeds.'),else:p.t('The "else" subschema is used for validation when the "if" subschema fails.')};for(const r in ce.schemas){const e=ce.schemas[r];for(const t in e.properties){let n=e.properties[t];typeof n=="boolean"&&(n=e.properties[t]={});const s=Ye[t];s&&(n.description=s)}}function et(r,e){if(typeof r!="string")throw new TypeError("Expected a string");const t=String(r);let n="";const s=!!e,i=!!e;let a=!1;const o=e&&typeof e.flags=="string"?e.flags:"";let h;for(let l=0,g=t.length;l<g;l++)switch(h=t[l],h){case"/":case"$":case"^":case"+":case".":case"(":case")":case"=":case"!":case"|":n+="\\"+h;break;case"?":if(s){n+=".";break}case"[":case"]":if(s){n+=h;break}case"{":if(s){a=!0,n+="(";break}case"}":if(s){a=!1,n+=")";break}case",":if(a){n+="|";break}n+="\\"+h;break;case"*":const c=t[l-1];let f=1;for(;t[l+1]==="*";)f++,l++;const y=t[l+1];i?f>1&&(c==="/"||c===void 0||c==="{"||c===",")&&(y==="/"||y===void 0||y===","||y==="}")?(y==="/"?l++:c==="/"&&n.endsWith("\\/")&&(n=n.substr(0,n.length-2)),n+="((?:[^/]*(?:/|$))*)"):n+="([^/]*)":n+=".*";break;default:n+=h}return(!o||!~o.indexOf("g"))&&(n="^"+n+"$"),new RegExp(n,o)}const tt="!",nt="/";class rt{constructor(e,t,n){this.folderUri=t,this.uris=n,this.globWrappers=[];try{for(let s of e){const i=s[0]!==tt;i||(s=s.substring(1)),s.length>0&&(s[0]===nt&&(s=s.substring(1)),this.globWrappers.push({regexp:et("**/"+s,{extended:!0,globstar:!0}),include:i}))}t&&(t=Ie(t),t.endsWith("/")||(t=t+"/"),this.folderUri=t)}catch{this.globWrappers.length=0,this.uris=[]}}matchesPattern(e){if(this.folderUri&&!e.startsWith(this.folderUri))return!1;let t=!1;for(const{regexp:n,include:s}of this.globWrappers)n.test(e)&&(t=s);return t}getURIs(){return this.uris}}class it{constructor(e,t,n){this.service=e,this.uri=t,this.dependencies=new Set,this.anchors=void 0,n&&(this.unresolvedSchema=this.service.promise.resolve(new z(n)))}getUnresolvedSchema(){return this.unresolvedSchema||(this.unresolvedSchema=this.service.loadSchema(this.uri)),this.unresolvedSchema}getResolvedSchema(){return this.resolvedSchema||(this.resolvedSchema=this.getUnresolvedSchema().then(e=>this.service.resolveSchemaContent(e,this))),this.resolvedSchema}clearSchema(){const e=!!this.unresolvedSchema;return this.resolvedSchema=void 0,this.unresolvedSchema=void 0,this.dependencies.clear(),this.anchors=void 0,e}}class z{constructor(e,t=[]){this.schema=e,this.errors=t}}class ve{constructor(e,t=[],n=[],s){this.schema=e,this.errors=t,this.warnings=n,this.schemaDraft=s}getSection(e){const t=this.getSectionRecursive(e,this.schema);if(t)return D(t)}getSectionRecursive(e,t){if(!t||typeof t=="boolean"||e.length===0)return t;const n=e.shift();if(t.properties&&typeof t.properties[n])return this.getSectionRecursive(e,t.properties[n]);if(t.patternProperties)for(const s of Object.keys(t.patternProperties)){const i=te(s);if(i!=null&&i.test(n))return this.getSectionRecursive(e,t.patternProperties[s])}else{if(typeof t.additionalProperties=="object")return this.getSectionRecursive(e,t.additionalProperties);if(n.match("[0-9]+")){if(Array.isArray(t.items)){const s=parseInt(n,10);if(!isNaN(s)&&t.items[s])return this.getSectionRecursive(e,t.items[s])}else if(t.items)return this.getSectionRecursive(e,t.items)}}}}class st{constructor(e,t,n){this.contextService=t,this.requestService=e,this.promiseConstructor=n||Promise,this.callOnDispose=[],this.contributionSchemas={},this.contributionAssociations=[],this.schemasById={},this.filePatternAssociations=[],this.registeredSchemasIds={}}getRegisteredSchemaIds(e){return Object.keys(this.registeredSchemasIds).filter(t=>{const n=p.URI.parse(t).scheme;return n!=="schemaservice"&&(!e||e(n))})}get promise(){return this.promiseConstructor}dispose(){for(;this.callOnDispose.length>0;)this.callOnDispose.pop()()}onResourceChange(e){this.cachedSchemaForResource=void 0;let t=!1;e=U(e);const n=[e],s=Object.keys(this.schemasById).map(i=>this.schemasById[i]);for(;n.length;){const i=n.pop();for(let a=0;a<s.length;a++){const o=s[a];o&&(o.uri===i||o.dependencies.has(i))&&(o.uri!==i&&n.push(o.uri),o.clearSchema()&&(t=!0),s[a]=void 0)}}return t}setSchemaContributions(e){if(e.schemas){const t=e.schemas;for(const n in t){const s=U(n);this.contributionSchemas[s]=this.addSchemaHandle(s,t[n])}}if(Array.isArray(e.schemaAssociations)){const t=e.schemaAssociations;for(let n of t){const s=n.uris.map(U),i=this.addFilePatternAssociation(n.pattern,n.folderUri,s);this.contributionAssociations.push(i)}}}addSchemaHandle(e,t){const n=new it(this,e,t);return this.schemasById[e]=n,n}getOrAddSchemaHandle(e,t){return this.schemasById[e]||this.addSchemaHandle(e,t)}addFilePatternAssociation(e,t,n){const s=new rt(e,t,n);return this.filePatternAssociations.push(s),s}registerExternalSchema(e){const t=U(e.uri);return this.registeredSchemasIds[t]=!0,this.cachedSchemaForResource=void 0,e.fileMatch&&e.fileMatch.length&&this.addFilePatternAssociation(e.fileMatch,e.folderUri,[t]),e.schema?this.addSchemaHandle(t,e.schema):this.getOrAddSchemaHandle(t)}clearExternalSchemas(){this.schemasById={},this.filePatternAssociations=[],this.registeredSchemasIds={},this.cachedSchemaForResource=void 0;for(const e in this.contributionSchemas)this.schemasById[e]=this.contributionSchemas[e],this.registeredSchemasIds[e]=!0;for(const e of this.contributionAssociations)this.filePatternAssociations.push(e)}getResolvedSchema(e){const t=U(e),n=this.schemasById[t];return n?n.getResolvedSchema():this.promise.resolve(void 0)}loadSchema(e){if(!this.requestService){const t=p.t("Unable to load schema from '{0}'. No schema request service available",H(e));return this.promise.resolve(new z({},[t]))}return e.startsWith("http://json-schema.org/")&&(e="https"+e.substring(4)),this.requestService(e).then(t=>{if(!t){const a=p.t("Unable to load schema from '{0}': No content.",H(e));return new z({},[a])}const n=[];t.charCodeAt(0)===65279&&(n.push(p.t("Problem reading content from '{0}': UTF-8 with BOM detected, only UTF 8 is allowed.",H(e))),t=t.trimStart());let s={};const i=[];return s=E.parse(t,i),i.length&&n.push(p.t("Unable to parse content from '{0}': Parse error at offset {1}.",H(e),i[0].offset)),new z(s,n)},t=>{let n=t.toString();const s=t.toString().split("Error: ");return s.length>1&&(n=s[1]),G(n,".")&&(n=n.substr(0,n.length-1)),new z({},[p.t("Unable to load schema from '{0}': {1}.",H(e),n)])})}resolveSchemaContent(e,t){const n=e.errors.slice(0),s=e.schema;let i=s.$schema?U(s.$schema):void 0;if(i==="http://json-schema.org/draft-03/schema")return this.promise.resolve(new ve({},[p.t("Draft-03 schemas are not supported.")],[],i));let a=new Set;const o=this.contextService,h=(b,d)=>{d=decodeURIComponent(d);let S=b;return d[0]==="/"&&(d=d.substring(1)),d.split("/").some(N=>(N=N.replace(/~1/g,"/").replace(/~0/g,"~"),S=S[N],!S)),S},l=(b,d,S)=>(d.anchors||(d.anchors=u(b)),d.anchors.get(S)),g=(b,d)=>{for(const S in d)d.hasOwnProperty(S)&&S!=="id"&&S!=="$id"&&(b[S]=d[S])},c=(b,d,S,N)=>{let m;N===void 0||N.length===0?m=d:N.charAt(0)==="/"?m=h(d,N):m=l(d,S,N),m?g(b,m):n.push(p.t("$ref '{0}' in '{1}' can not be resolved.",N||"",S.uri))},f=(b,d,S,N)=>{o&&!/^[A-Za-z][A-Za-z0-9+\-.+]*:\/\/.*/.test(d)&&(d=o.resolveRelativePath(d,N.uri)),d=U(d);const m=this.getOrAddSchemaHandle(d);return m.getUnresolvedSchema().then(x=>{if(N.dependencies.add(d),x.errors.length){const T=S?d+"#"+S:d;n.push(p.t("Problems loading reference '{0}': {1}",T,x.errors[0]))}return c(b,x.schema,m,S),y(b,x.schema,m)})},y=(b,d,S)=>{const N=[];return this.traverseNodes(b,m=>{const x=new Set;for(;m.$ref;){const T=m.$ref,k=T.split("#",2);if(delete m.$ref,k[0].length>0){N.push(f(m,k[0],k[1],S));return}else if(!x.has(T)){const I=k[1];c(m,d,S,I),x.add(T)}}m.$recursiveRef&&a.add("$recursiveRef"),m.$dynamicRef&&a.add("$dynamicRef")}),this.promise.all(N)},u=b=>{const d=new Map;return this.traverseNodes(b,S=>{const N=S.$id||S.id,m=Te(N)&&N.charAt(0)==="#"?N.substring(1):S.$anchor;m&&(d.has(m)?n.push(p.t("Duplicate anchor declaration: '{0}'",m)):d.set(m,S)),S.$recursiveAnchor&&a.add("$recursiveAnchor"),S.$dynamicAnchor&&a.add("$dynamicAnchor")}),d};return y(s,s,t).then(b=>{let d=[];return a.size&&d.push(p.t("The schema uses meta-schema features ({0}) that are not yet supported by the validator.",Array.from(a.keys()).join(", "))),new ve(s,n,d,i)})}traverseNodes(e,t){if(!e||typeof e!="object")return Promise.resolve(null);const n=new Set,s=(...g)=>{for(const c of g)q(c)&&h.push(c)},i=(...g)=>{for(const c of g)if(q(c))for(const f in c){const u=c[f];q(u)&&h.push(u)}},a=(...g)=>{for(const c of g)if(Array.isArray(c))for(const f of c)q(f)&&h.push(f)},o=g=>{if(Array.isArray(g))for(const c of g)q(c)&&h.push(c);else q(g)&&h.push(g)},h=[e];let l=h.pop();for(;l;)n.has(l)||(n.add(l),t(l),s(l.additionalItems,l.additionalProperties,l.not,l.contains,l.propertyNames,l.if,l.then,l.else,l.unevaluatedItems,l.unevaluatedProperties),i(l.definitions,l.$defs,l.properties,l.patternProperties,l.dependencies,l.dependentSchemas),a(l.anyOf,l.allOf,l.oneOf,l.prefixItems),o(l.items)),l=h.pop()}getSchemaFromProperty(e,t){var n,s;if(((n=t.root)==null?void 0:n.type)==="object"){for(const i of t.root.properties)if(i.keyNode.value==="$schema"&&((s=i.valueNode)==null?void 0:s.type)==="string"){let a=i.valueNode.value;return this.contextService&&!/^\w[\w\d+.-]*:/.test(a)&&(a=this.contextService.resolveRelativePath(a,e)),a}}}getAssociatedSchemas(e){const t=Object.create(null),n=[],s=Ie(e);for(const i of this.filePatternAssociations)if(i.matchesPattern(s))for(const a of i.getURIs())t[a]||(n.push(a),t[a]=!0);return n}getSchemaURIsForResource(e,t){let n=t&&this.getSchemaFromProperty(e,t);return n?[n]:this.getAssociatedSchemas(e)}getSchemaForResource(e,t){if(t){let i=this.getSchemaFromProperty(e,t);if(i){const a=U(i);return this.getOrAddSchemaHandle(a).getResolvedSchema()}}if(this.cachedSchemaForResource&&this.cachedSchemaForResource.resource===e)return this.cachedSchemaForResource.resolvedSchema;const n=this.getAssociatedSchemas(e),s=n.length>0?this.createCombinedSchema(e,n).getResolvedSchema():this.promise.resolve(void 0);return this.cachedSchemaForResource={resource:e,resolvedSchema:s},s}createCombinedSchema(e,t){if(t.length===1)return this.getOrAddSchemaHandle(t[0]);{const n="schemaservice://combinedSchema/"+encodeURIComponent(e),s={allOf:t.map(i=>({$ref:i}))};return this.addSchemaHandle(n,s)}}getMatchingSchemas(e,t,n){if(n){const s=n.id||"schemaservice://untitled/matchingSchemas/"+ot++;return this.addSchemaHandle(s,n).getResolvedSchema().then(a=>t.getMatchingSchemas(a.schema).filter(o=>!o.inverted))}return this.getSchemaForResource(e.uri,t).then(s=>s?t.getMatchingSchemas(s.schema).filter(i=>!i.inverted):[])}}let ot=0;function U(r){try{return p.URI.parse(r).toString(!0)}catch{return r}}function Ie(r){try{return p.URI.parse(r).with({fragment:null,query:null}).toString(!0)}catch{return r}}function H(r){try{const e=p.URI.parse(r);if(e.scheme==="file")return e.fsPath}catch{}return r}function at(r,e){const t=[],n=[],s=[];let i=-1;const a=E.createScanner(r.getText(),!1);let o=a.scan();function h(u){t.push(u),n.push(s.length)}for(;o!==17;){switch(o){case 1:case 3:{const u=r.positionAt(a.getTokenOffset()).line,b={startLine:u,endLine:u,kind:o===1?"object":"array"};s.push(b);break}case 2:case 4:{const u=o===2?"object":"array";if(s.length>0&&s[s.length-1].kind===u){const b=s.pop(),d=r.positionAt(a.getTokenOffset()).line;b&&d>b.startLine+1&&i!==b.startLine&&(b.endLine=d-1,h(b),i=b.startLine)}break}case 13:{const u=r.positionAt(a.getTokenOffset()).line,b=r.positionAt(a.getTokenOffset()+a.getTokenLength()).line;a.getTokenError()===1&&u+1<r.lineCount?a.setPosition(r.offsetAt(v.Position.create(u+1,0))):u<b&&(h({startLine:u,endLine:b,kind:v.FoldingRangeKind.Comment}),i=u);break}case 12:{const b=r.getText().substr(a.getTokenOffset(),a.getTokenLength()).match(/^\/\/\s*#(region\b)|(endregion\b)/);if(b){const d=r.positionAt(a.getTokenOffset()).line;if(b[1]){const S={startLine:d,endLine:d,kind:v.FoldingRangeKind.Region};s.push(S)}else{let S=s.length-1;for(;S>=0&&s[S].kind!==v.FoldingRangeKind.Region;)S--;if(S>=0){const N=s[S];s.length=S,d>N.startLine&&i!==N.startLine&&(N.endLine=d,h(N),i=N.startLine)}}}break}}o=a.scan()}const l=e&&e.rangeLimit;if(typeof l!="number"||t.length<=l)return t;e&&e.onRangeLimitExceeded&&e.onRangeLimitExceeded(r.uri);const g=[];for(let u of n)u<30&&(g[u]=(g[u]||0)+1);let c=0,f=0;for(let u=0;u<g.length;u++){const b=g[u];if(b){if(b+c>l){f=u;break}c+=b}}const y=[];for(let u=0;u<t.length;u++){const b=n[u];typeof b=="number"&&(b<f||b===f&&c++<l)&&y.push(t[u])}return y}function lt(r,e,t){function n(o){let h=r.offsetAt(o),l=t.getNodeFromOffset(h,!0);const g=[];for(;l;){switch(l.type){case"string":case"object":case"array":const f=l.offset+1,y=l.offset+l.length-1;f<y&&h>=f&&h<=y&&g.push(s(f,y)),g.push(s(l.offset,l.offset+l.length));break;case"number":case"boolean":case"null":case"property":g.push(s(l.offset,l.offset+l.length));break}if(l.type==="property"||l.parent&&l.parent.type==="array"){const f=a(l.offset+l.length,5);f!==-1&&g.push(s(l.offset,f))}l=l.parent}let c;for(let f=g.length-1;f>=0;f--)c=v.SelectionRange.create(g[f],c);return c||(c=v.SelectionRange.create(v.Range.create(o,o))),c}function s(o,h){return v.Range.create(r.positionAt(o),r.positionAt(h))}const i=E.createScanner(r.getText(),!0);function a(o,h){return i.setPosition(o),i.scan()===h?i.getTokenOffset()+i.getTokenLength():-1}return e.map(n)}function fe(r,e,t){let n;if(t){const i=r.offsetAt(t.start),a=r.offsetAt(t.end)-i;n={offset:i,length:a}}const s={tabSize:e?e.tabSize:4,insertSpaces:(e==null?void 0:e.insertSpaces)===!0,insertFinalNewline:(e==null?void 0:e.insertFinalNewline)===!0,eol:`
|
|
17
|
+
`,keepLines:(e==null?void 0:e.keepLines)===!0};return E.format(r.getText(),n,s).map(i=>v.TextEdit.replace(v.Range.create(r.positionAt(i.offset),r.positionAt(i.offset+i.length)),i.content))}var M;(function(r){r[r.Object=0]="Object",r[r.Array=1]="Array"})(M||(M={}));class ee{constructor(e,t){this.propertyName=e??"",this.beginningLineNumber=t,this.childrenProperties=[],this.lastProperty=!1,this.noKeyName=!1}addChildProperty(e){if(e.parent=this,this.childrenProperties.length>0){let t=0;e.noKeyName?t=this.childrenProperties.length:t=ft(this.childrenProperties,e,ct),t<0&&(t=t*-1-1),this.childrenProperties.splice(t,0,e)}else this.childrenProperties.push(e);return e}}function ct(r,e){const t=r.propertyName.toLowerCase(),n=e.propertyName.toLowerCase();return t<n?-1:t>n?1:0}function ft(r,e,t){const n=e.propertyName.toLowerCase(),s=r[0].propertyName.toLowerCase(),i=r[r.length-1].propertyName.toLowerCase();if(n<s)return 0;if(n>i)return r.length;let a=0,o=r.length-1;for(;a<=o;){let h=o+a>>1,l=t(e,r[h]);if(l>0)a=h+1;else if(l<0)o=h-1;else return h}return-a-1}function ut(r,e){const t={...e,keepLines:!1},n=p.TextDocument.applyEdits(r,fe(r,t,void 0)),s=p.TextDocument.create("test://test.json","json",0,n),i=pt(s),a=ht(s,i),o=fe(a,t,void 0),h=p.TextDocument.applyEdits(a,o);return[v.TextEdit.replace(v.Range.create(v.Position.create(0,0),r.positionAt(r.getText().length)),h)]}function pt(r){const e=r.getText(),t=E.createScanner(e,!1);let n=new ee,s=n,i=n,a=n,o,h=0,l=0,g,c,f=-1,y=-1,u=0,b=0,d=[],S=!1,N=!1;for(;(o=t.scan())!==17;){if(S===!0&&o!==14&&o!==15&&o!==12&&o!==13&&i.endLineNumber===void 0){let m=t.getTokenStartLine();c===2||c===4?a.endLineNumber=m-1:i.endLineNumber=m-1,u=m,S=!1}if(N===!0&&o!==14&&o!==15&&o!==12&&o!==13&&(u=t.getTokenStartLine(),N=!1),t.getTokenStartLine()!==h){for(let m=h;m<t.getTokenStartLine();m++){const x=r.getText(v.Range.create(v.Position.create(m,0),v.Position.create(m+1,0))).length;l=l+x}h=t.getTokenStartLine()}switch(o){case 10:{if(g===void 0||g===1||g===5&&d[d.length-1]===M.Object){const m=new ee(t.getTokenValue(),u);a=i,i=s.addChildProperty(m)}break}case 3:{if(n.beginningLineNumber===void 0&&(n.beginningLineNumber=t.getTokenStartLine()),d[d.length-1]===M.Object)s=i;else if(d[d.length-1]===M.Array){const m=new ee(t.getTokenValue(),u);m.noKeyName=!0,a=i,i=s.addChildProperty(m),s=i}d.push(M.Array),i.type=M.Array,u=t.getTokenStartLine(),u++;break}case 1:{if(n.beginningLineNumber===void 0)n.beginningLineNumber=t.getTokenStartLine();else if(d[d.length-1]===M.Array){const m=new ee(t.getTokenValue(),u);m.noKeyName=!0,a=i,i=s.addChildProperty(m)}i.type=M.Object,d.push(M.Object),s=i,u=t.getTokenStartLine(),u++;break}case 4:{b=t.getTokenStartLine(),d.pop(),i.endLineNumber===void 0&&(g===2||g===4)&&(i.endLineNumber=b-1,i.lastProperty=!0,i.lineWhereToAddComma=f,i.indexWhereToAddComa=y,a=i,i=i?i.parent:void 0,s=i),n.endLineNumber=b,u=b+1;break}case 2:{b=t.getTokenStartLine(),d.pop(),g!==1&&(i.endLineNumber===void 0&&(i.endLineNumber=b-1,i.lastProperty=!0,i.lineWhereToAddComma=f,i.indexWhereToAddComa=y),a=i,i=i?i.parent:void 0,s=i),n.endLineNumber=t.getTokenStartLine(),u=b+1;break}case 5:{b=t.getTokenStartLine(),i.endLineNumber===void 0&&(d[d.length-1]===M.Object||d[d.length-1]===M.Array&&(g===2||g===4))&&(i.endLineNumber=b,i.commaIndex=t.getTokenOffset()-l,i.commaLine=b),(g===2||g===4)&&(a=i,i=i?i.parent:void 0,s=i),u=b+1;break}case 13:{g===5&&f===t.getTokenStartLine()&&(d[d.length-1]===M.Array&&(c===2||c===4)||d[d.length-1]===M.Object)&&(d[d.length-1]===M.Array&&(c===2||c===4)||d[d.length-1]===M.Object)&&(i.endLineNumber=void 0,S=!0),(g===1||g===3)&&f===t.getTokenStartLine()&&(N=!0);break}}o!==14&&o!==13&&o!==12&&o!==15&&(c=g,g=o,f=t.getTokenStartLine(),y=t.getTokenOffset()+t.getTokenLength()-l)}return n}function ht(r,e){if(e.childrenProperties.length===0)return r;const t=p.TextDocument.create("test://test.json","json",0,r.getText()),n=[];for(xe(n,e,e.beginningLineNumber);n.length>0;){const s=n.shift(),i=s.propertyTreeArray;let a=s.beginningLineNumber;for(let o=0;o<i.length;o++){const h=i[o],l=v.Range.create(v.Position.create(h.beginningLineNumber,0),v.Position.create(h.endLineNumber+1,0)),g=r.getText(l),c=p.TextDocument.create("test://test.json","json",0,g);if(h.lastProperty===!0&&o!==i.length-1){const u=h.lineWhereToAddComma-h.beginningLineNumber,b=h.indexWhereToAddComa,d={range:v.Range.create(v.Position.create(u,b),v.Position.create(u,b)),text:","};p.TextDocument.update(c,[d],1)}else if(h.lastProperty===!1&&o===i.length-1){const u=h.commaIndex,d=h.commaLine-h.beginningLineNumber,S={range:v.Range.create(v.Position.create(d,u),v.Position.create(d,u+1)),text:""};p.TextDocument.update(c,[S],1)}const f=h.endLineNumber-h.beginningLineNumber+1,y={range:v.Range.create(v.Position.create(a,0),v.Position.create(a+f,0)),text:c.getText()};p.TextDocument.update(t,[y],1),xe(n,h,a),a=a+f}}return t}function xe(r,e,t){if(e.childrenProperties.length!==0)if(e.type===M.Object){let n=1/0;for(const i of e.childrenProperties)i.beginningLineNumber<n&&(n=i.beginningLineNumber);const s=n-e.beginningLineNumber;t=t+s,r.push(new Oe(t,e.childrenProperties))}else e.type===M.Array&&we(r,e,t)}function we(r,e,t){for(const n of e.childrenProperties){if(n.type===M.Object){let s=1/0;for(const a of n.childrenProperties)a.beginningLineNumber<s&&(s=a.beginningLineNumber);const i=s-n.beginningLineNumber;r.push(new Oe(t+n.beginningLineNumber-e.beginningLineNumber+i,n.childrenProperties))}n.type===M.Array&&we(r,n,t+n.beginningLineNumber-e.beginningLineNumber)}}class Oe{constructor(e,t){this.beginningLineNumber=e,this.propertyTreeArray=t}}function mt(r,e){const t=[];return e.visit(n=>{var s;if(n.type==="property"&&n.keyNode.value==="$ref"&&((s=n.valueNode)==null?void 0:s.type)==="string"){const i=n.valueNode.value,a=gt(e,i);if(a){const o=r.positionAt(a.offset);t.push({target:`${r.uri}#${o.line+1},${o.character+1}`,range:dt(r,n.valueNode)})}}return!0}),Promise.resolve(t)}function dt(r,e){return v.Range.create(r.positionAt(e.offset+1),r.positionAt(e.offset+e.length-1))}function gt(r,e){const t=yt(e);return t?ue(t,r.root):null}function ue(r,e){if(!e)return null;if(r.length===0)return e;const t=r.shift();if(e&&e.type==="object"){const n=e.properties.find(s=>s.keyNode.value===t);return n?ue(r,n.valueNode):null}else if(e&&e.type==="array"&&t.match(/^(0|[1-9][0-9]*)$/)){const n=Number.parseInt(t),s=e.items[n];return s?ue(r,s):null}return null}function yt(r){return r==="#"?[]:r[0]!=="#"||r[1]!=="/"?null:r.substring(2).split(/\//).map(bt)}function bt(r){return r.replace(/~1/g,"/").replace(/~0/g,"~")}function St(r){const e=r.promiseConstructor||Promise,t=new st(r.schemaRequestService,r.workspaceContext,e);t.setSchemaContributions(ce);const n=new qe(t,r.contributions,e,r.clientCapabilities),s=new Je(t,r.contributions,e),i=new Qe(t),a=new We(t,e);return{configure:o=>{var h;t.clearExternalSchemas(),(h=o.schemas)==null||h.forEach(t.registerExternalSchema.bind(t)),a.configure(o)},resetSchema:o=>t.onResourceChange(o),doValidation:a.doValidation.bind(a),getLanguageStatus:a.getLanguageStatus.bind(a),parseJSONDocument:o=>Ue(o,{collectComments:!0}),newJSONDocument:(o,h)=>Ke(o,h),getMatchingSchemas:t.getMatchingSchemas.bind(t),doResolve:n.doResolve.bind(n),doComplete:n.doComplete.bind(n),findDocumentSymbols:i.findDocumentSymbols.bind(i),findDocumentSymbols2:i.findDocumentSymbols2.bind(i),findDocumentColors:i.findDocumentColors.bind(i),getColorPresentations:i.getColorPresentations.bind(i),doHover:s.doHover.bind(s),getFoldingRanges:at,getSelectionRanges:lt,findDefinition:()=>Promise.resolve([]),findLinks:mt,format:(o,h,l)=>fe(o,l,h),sort:(o,h)=>ut(o,h)}}let Ce;typeof fetch<"u"&&(Ce=function(r){return fetch(r).then(e=>e.text())});class vt{constructor(e,t){this._ctx=e,this._languageSettings=t.languageSettings,this._languageId=t.languageId,this._languageService=St({workspaceContext:{resolveRelativePath:(n,s)=>{const i=s.substr(0,s.lastIndexOf("/")+1);return kt(i,n)}},schemaRequestService:t.enableSchemaRequest?Ce:void 0,clientCapabilities:oe.LATEST}),this._languageService.configure(this._languageSettings)}async doValidation(e){let t=this._getTextDocument(e);if(t){let n=this._languageService.parseJSONDocument(t);return this._languageService.doValidation(t,n,this._languageSettings)}return Promise.resolve([])}async doComplete(e,t){let n=this._getTextDocument(e);if(!n)return null;let s=this._languageService.parseJSONDocument(n);return this._languageService.doComplete(n,t,s)}async doResolve(e){return this._languageService.doResolve(e)}async doHover(e,t){let n=this._getTextDocument(e);if(!n)return null;let s=this._languageService.parseJSONDocument(n);return this._languageService.doHover(n,t,s)}async format(e,t,n){let s=this._getTextDocument(e);if(!s)return[];let i=this._languageService.format(s,t,n);return Promise.resolve(i)}async resetSchema(e){return Promise.resolve(this._languageService.resetSchema(e))}async findDocumentSymbols(e){let t=this._getTextDocument(e);if(!t)return[];let n=this._languageService.parseJSONDocument(t),s=this._languageService.findDocumentSymbols2(t,n);return Promise.resolve(s)}async findDocumentColors(e){let t=this._getTextDocument(e);if(!t)return[];let n=this._languageService.parseJSONDocument(t),s=this._languageService.findDocumentColors(t,n);return Promise.resolve(s)}async getColorPresentations(e,t,n){let s=this._getTextDocument(e);if(!s)return[];let i=this._languageService.parseJSONDocument(s),a=this._languageService.getColorPresentations(s,i,t,n);return Promise.resolve(a)}async getFoldingRanges(e,t){let n=this._getTextDocument(e);if(!n)return[];let s=this._languageService.getFoldingRanges(n,t);return Promise.resolve(s)}async getSelectionRanges(e,t){let n=this._getTextDocument(e);if(!n)return[];let s=this._languageService.parseJSONDocument(n),i=this._languageService.getSelectionRanges(n,t,s);return Promise.resolve(i)}async parseJSONDocument(e){let t=this._getTextDocument(e);if(!t)return null;let n=this._languageService.parseJSONDocument(t);return Promise.resolve(n)}async getMatchingSchemas(e){let t=this._getTextDocument(e);if(!t)return[];let n=this._languageService.parseJSONDocument(t);return Promise.resolve(this._languageService.getMatchingSchemas(t,n))}_getTextDocument(e){let t=this._ctx.getMirrorModels();for(let n of t)if(n.uri.toString()===e)return p.TextDocument.create(e,this._languageId,n.version,n.getValue());return null}}const xt=47,se=46;function Tt(r){return r.charCodeAt(0)===xt}function kt(r,e){if(Tt(e)){const t=p.URI.parse(r),n=e.split("/");return t.with({path:Ve(n)}).toString()}return Nt(r,e)}function Ve(r){const e=[];for(const n of r)n.length===0||n.length===1&&n.charCodeAt(0)===se||(n.length===2&&n.charCodeAt(0)===se&&n.charCodeAt(1)===se?e.pop():e.push(n));r.length>1&&r[r.length-1].length===0&&e.push("");let t=e.join("/");return r[0].length===0&&(t="/"+t),t}function Nt(r,...e){const t=p.URI.parse(r),n=t.path.split("/");for(let s of e)n.push(...s.split("/"));return t.with({path:Ve(n)}).toString()}self.onmessage=()=>{Me.initialize((r,e)=>new vt(r,e))};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("./index-BnVmN2qp.js"),n=require("./lspLanguageFeatures-CeustN1U.js"),S=require("./main-Dt1Bdcpc.js");var k=typeof document<"u"?document.currentScript:null;const P=120*1e3;class A{constructor(e){this._defaults=e,this._worker=null,this._client=null,this._idleCheckInterval=window.setInterval(()=>this._checkIfIdle(),30*1e3),this._lastUsedTime=0,this._configChangeListener=this._defaults.onDidChange(()=>this._stopWorker())}_stopWorker(){this._worker&&(this._worker.dispose(),this._worker=null),this._client=null}dispose(){clearInterval(this._idleCheckInterval),this._configChangeListener.dispose(),this._stopWorker()}_checkIfIdle(){if(!this._worker)return;Date.now()-this._lastUsedTime>P&&this._stopWorker()}_getClient(){return this._lastUsedTime=Date.now(),this._client||(this._worker=l.createWebWorker({moduleId:"vs/language/json/jsonWorker",createWorker:()=>new Worker(new URL("/assets/json.worker-CMC9kgPL.js",typeof document>"u"?require("url").pathToFileURL(__filename).href:k&&k.tagName.toUpperCase()==="SCRIPT"&&k.src||new URL("jsonMode-DaXUMuRa.js",document.baseURI).href),{type:"module"}),label:this._defaults.languageId,createData:{languageSettings:this._defaults.diagnosticsOptions,languageId:this._defaults.languageId,enableSchemaRequest:this._defaults.diagnosticsOptions.enableSchemaRequest}}),this._client=this._worker.getProxy()),this._client}getLanguageServiceWorker(...e){let t;return this._getClient().then(i=>{t=i}).then(i=>{if(this._worker)return this._worker.withSyncedResources(e)}).then(i=>t)}}function v(o){return{getInitialState:()=>new h(null,null,!1,null),tokenize:(e,t)=>j(o,e,t)}}const E="delimiter.bracket.json",C="delimiter.array.json",b="delimiter.colon.json",I="delimiter.comma.json",L="keyword.json",O="keyword.json",T="string.value.json",N="number.json",W="string.key.json",y="comment.block.json",M="comment.line.json";class g{constructor(e,t){this.parent=e,this.type=t}static pop(e){return e?e.parent:null}static push(e,t){return new g(e,t)}static equals(e,t){if(!e&&!t)return!0;if(!e||!t)return!1;for(;e&&t;){if(e===t)return!0;if(e.type!==t.type)return!1;e=e.parent,t=t.parent}return!0}}class h{constructor(e,t,i,a){this._state=e,this.scanError=t,this.lastWasColon=i,this.parents=a}clone(){return new h(this._state,this.scanError,this.lastWasColon,this.parents)}equals(e){return e===this?!0:!e||!(e instanceof h)?!1:this.scanError===e.scanError&&this.lastWasColon===e.lastWasColon&&g.equals(this.parents,e.parents)}getStateData(){return this._state}setStateData(e){this._state=e}}function j(o,e,t,i=0){let a=0,p=!1;switch(t.scanError){case 2:e='"'+e,a=1;break;case 1:e="/*"+e,a=2;break}const s=S.createScanner(e);let r=t.lastWasColon,d=t.parents;const m={tokens:[],endState:t.clone()};for(;;){let f=i+s.getPosition(),c="";const _=s.scan();if(_===17)break;if(f===i+s.getPosition())throw new Error("Scanner did not advance, next 3 characters are: "+e.substr(s.getPosition(),3));switch(p&&(f-=a),p=a>0,_){case 1:d=g.push(d,0),c=E,r=!1;break;case 2:d=g.pop(d),c=E,r=!1;break;case 3:d=g.push(d,1),c=C,r=!1;break;case 4:d=g.pop(d),c=C,r=!1;break;case 6:c=b,r=!0;break;case 5:c=I,r=!1;break;case 8:case 9:c=L,r=!1;break;case 7:c=O,r=!1;break;case 10:const R=(d?d.type:0)===1;c=r||R?T:W,r=!1;break;case 11:c=N,r=!1;break}switch(_){case 12:c=M;break;case 13:c=y;break}m.endState=new h(t.getStateData(),s.getTokenError(),r,d),m.tokens.push({startIndex:f,scopes:c})}return m}let u;function F(){return new Promise((o,e)=>{if(!u)return e("JSON not registered!");o(u)})}class U extends n.DiagnosticsAdapter{constructor(e,t,i){super(e,t,i.onDidChange),this._disposables.push(l.editor.onWillDisposeModel(a=>{this._resetSchema(a.uri)})),this._disposables.push(l.editor.onDidChangeModelLanguage(a=>{this._resetSchema(a.model.uri)}))}_resetSchema(e){this._worker().then(t=>{t.resetSchema(e.toString())})}}function K(o){const e=[],t=[],i=new A(o);e.push(i),u=(...s)=>i.getLanguageServiceWorker(...s);function a(){const{languageId:s,modeConfiguration:r}=o;D(t),r.documentFormattingEdits&&t.push(l.languages.registerDocumentFormattingEditProvider(s,new n.DocumentFormattingEditProvider(u))),r.documentRangeFormattingEdits&&t.push(l.languages.registerDocumentRangeFormattingEditProvider(s,new n.DocumentRangeFormattingEditProvider(u))),r.completionItems&&t.push(l.languages.registerCompletionItemProvider(s,new n.CompletionAdapter(u,[" ",":",'"']))),r.hovers&&t.push(l.languages.registerHoverProvider(s,new n.HoverAdapter(u))),r.documentSymbols&&t.push(l.languages.registerDocumentSymbolProvider(s,new n.DocumentSymbolAdapter(u))),r.tokens&&t.push(l.languages.setTokensProvider(s,v(!0))),r.colors&&t.push(l.languages.registerColorProvider(s,new n.DocumentColorAdapter(u))),r.foldingRanges&&t.push(l.languages.registerFoldingRangeProvider(s,new n.FoldingRangeAdapter(u))),r.diagnostics&&t.push(new U(s,u,o)),r.selectionRanges&&t.push(l.languages.registerSelectionRangeProvider(s,new n.SelectionRangeAdapter(u)))}a(),e.push(l.languages.setLanguageConfiguration(o.languageId,q));let p=o.modeConfiguration;return o.onDidChange(s=>{s.modeConfiguration!==p&&(p=s.modeConfiguration,a())}),e.push(w(t)),w(e)}function w(o){return{dispose:()=>D(o)}}function D(o){for(;o.length;)o.pop().dispose()}const q={wordPattern:/(-?\d*\.\d\w*)|([^\[\{\]\}\:\"\,\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"]],autoClosingPairs:[{open:"{",close:"}",notIn:["string"]},{open:"[",close:"]",notIn:["string"]},{open:'"',close:'"',notIn:["string"]}]};exports.CompletionAdapter=n.CompletionAdapter;exports.DefinitionAdapter=n.DefinitionAdapter;exports.DiagnosticsAdapter=n.DiagnosticsAdapter;exports.DocumentColorAdapter=n.DocumentColorAdapter;exports.DocumentFormattingEditProvider=n.DocumentFormattingEditProvider;exports.DocumentHighlightAdapter=n.DocumentHighlightAdapter;exports.DocumentLinkAdapter=n.DocumentLinkAdapter;exports.DocumentRangeFormattingEditProvider=n.DocumentRangeFormattingEditProvider;exports.DocumentSymbolAdapter=n.DocumentSymbolAdapter;exports.FoldingRangeAdapter=n.FoldingRangeAdapter;exports.HoverAdapter=n.HoverAdapter;exports.ReferenceAdapter=n.ReferenceAdapter;exports.RenameAdapter=n.RenameAdapter;exports.SelectionRangeAdapter=n.SelectionRangeAdapter;exports.fromPosition=n.fromPosition;exports.fromRange=n.fromRange;exports.toRange=n.toRange;exports.toTextEdit=n.toTextEdit;exports.WorkerManager=A;exports.getWorker=F;exports.setupMode=K;
|