@redocly/openapi-language-server 0.0.6 → 0.0.7

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/lib/index.d.ts CHANGED
@@ -396,17 +396,17 @@ declare module '@redocly/openapi-language-server/server/sort' {
396
396
  NewItem = "newItem",
397
397
  PathMap = "PathMap",
398
398
  MediaTypeMap = "MediaTypeMap",
399
- DefinitionRoot = "DefinitionRoot",
400
- DefinitionRootOpenapi = "DefinitionRoot_openapi",
401
- DefinitionRootInfo = "DefinitionRoot_info",
402
- DefinitionRootJsonSchemaDialect = "DefinitionRoot_jsonSchemaDialect",
403
- DefinitionRootServers = "DefinitionRoot_servers",
404
- DefinitionRootPaths = "DefinitionRoot_paths",
405
- DefinitionRootWebhooks = "DefinitionRoot_webhooks",
406
- DefinitionRootComponents = "DefinitionRoot_components",
407
- DefinitionRootSecurity = "DefinitionRoot_security",
408
- DefinitionRootTags = "DefinitionRoot_tags",
409
- DefinitionRootExternalDocs = "DefinitionRoot_externalDocs",
399
+ Root = "Root",
400
+ RootOpenapi = "Root_openapi",
401
+ RootInfo = "Root_info",
402
+ RootJsonSchemaDialect = "Root_jsonSchemaDialect",
403
+ RootServers = "Root_servers",
404
+ RootPaths = "Root_paths",
405
+ RootWebhooks = "Root_webhooks",
406
+ RootComponents = "Root_components",
407
+ RootSecurity = "Root_security",
408
+ RootTags = "Root_tags",
409
+ RootExternalDocs = "Root_externalDocs",
410
410
  Info = "Info",
411
411
  InfoTitle = "Info_title",
412
412
  InfoSummary = "Info_summary",
package/lib/index.js CHANGED
@@ -68,7 +68,7 @@ ${JSON.stringify(h,null,4)}`);let S=h;if(we.string(S.id)||we.number(S.id)){let F
68
68
  Did you mean: ${e.suggest[0]} ?`:`
69
69
  Did you mean:
70
70
  - ${e.suggest.slice(0,mb).join(`
71
- - `)}`}function Mf(e,t){e.forEach(n=>{let r;switch(n.severity){case"error":r=Ye.DiagnosticSeverity.Error;break;case"warn":r=Ye.DiagnosticSeverity.Warning;break;default:r=Ye.DiagnosticSeverity.Warning}let i=fb(n.location[0]),o=Be(i.source.absoluteRef).toString(),s=Ye.Position.create(i.start.line-1,i.start.col-1),a=i.end?Ye.Position.create(i.end.line-1,i.end.col-1):s,l=n.message+vb(n),p=Ye.Diagnostic.create(Ye.Range.create(s,a),l,r,void 0,"Redocly OpenAPI");Lf(o,p,t)})}function bb(e){return e.filter(({severity:t})=>t==="error").map(t=>({...t,location:t.location.map(n=>({...n,source:{...n.source,_ast:null}}))}))}var ro=rt(rn(),1);var ve=rt(rn(),1);function ke(e,t){return e?t?Qi[e+"_"+t]||t:Qi[e]||Qi[Er.Default]:Qi[Er.Default]}var Er=(j=>(j.FileCompletion="FileCompletion",j.FolderCompletion="FolderCompletion",j.LocalComponentCompletion="LocalComponentCompletion",j.NewLine="newLine",j.PropertyName="propertyName",j.NewItem="newItem",j.PathMap="PathMap",j.MediaTypeMap="MediaTypeMap",j.DefinitionRoot="DefinitionRoot",j.DefinitionRootOpenapi="DefinitionRoot_openapi",j.DefinitionRootInfo="DefinitionRoot_info",j.DefinitionRootJsonSchemaDialect="DefinitionRoot_jsonSchemaDialect",j.DefinitionRootServers="DefinitionRoot_servers",j.DefinitionRootPaths="DefinitionRoot_paths",j.DefinitionRootWebhooks="DefinitionRoot_webhooks",j.DefinitionRootComponents="DefinitionRoot_components",j.DefinitionRootSecurity="DefinitionRoot_security",j.DefinitionRootTags="DefinitionRoot_tags",j.DefinitionRootExternalDocs="DefinitionRoot_externalDocs",j.Info="Info",j.InfoTitle="Info_title",j.InfoSummary="Info_summary",j.InfoDescription="Info_description",j.InfoTermsOfService="Info_termsOfService",j.InfoContact="Info_contact",j.ContactName="Contact_name",j.ContactUrl="Contact_url",j.ContactEmail="Contact_email",j.InfoLicense="Info_license",j.LicenseName="License_name",j.LicenseIdentifier="License_identifier",j.LicenseUrl="License_url",j.InfoVersion="Info_version",j.jsonSchemaDialect="jsonSchemaDialect",j.ServerList="Server_List",j.ServerUrl="Server_url",j.ServerDescription="Server_description",j.ServerVariables="Server_variables",j.Default="Default",j))(Er||{}),_b=["newLine","MediaTypeMap","PathMap","propertyName","newItem","DefinitionRoot_openapi","DefinitionRoot","Info","DefinitionRoot_info","Info_title","Info_summary","Info_description","Info_termsOfService","Info_contact","Contact_name","Contact_url","Contact_email","Info_license","License_name","License_identifier","License_url","Info_version","DefinitionRoot_jsonSchemaDialect","jsonSchemaDialect","DefinitionRoot_servers","Server_List","Server_url","Server_description","Server_variables","DefinitionRoot_paths","DefinitionRoot_webhooks","DefinitionRoot_components","DefinitionRoot_security","DefinitionRoot_tags","DefinitionRoot_externalDocs","LocalComponentCompletion","FolderCompletion","FileCompletion","Default"],Qi=_b.reduce((e,t,n)=>(e[t]=String.fromCharCode(n),e),{});var un="newItem",Or="propertyName",er="newLine";function Ji(e){return!!(e?.name&&Ff[e.name])}function Na(e){return Ff[e]||[]}var Ff={[er]:[{label:"newLine",kind:ve.CompletionItemKind.Constructor,data:{},sortText:ke(er)}],[Or]:[{label:Or,kind:ve.CompletionItemKind.Constructor,data:{properties:{}},sortText:ke(Or)}],ServerVariable_Map:[{label:"newVariableName",kind:ve.CompletionItemKind.Property,data:{properties:{}},sortText:ke("ServerVariable_Map")}],ResponsesMap:[{label:"200",kind:ve.CompletionItemKind.Property,data:{properties:{}}},{label:"201",kind:ve.CompletionItemKind.Property,data:{properties:{}}},{label:"204",kind:ve.CompletionItemKind.Property,data:{properties:{}}},{label:"301",kind:ve.CompletionItemKind.Property,data:{properties:{}}},{label:"303",kind:ve.CompletionItemKind.Property,data:{properties:{}}},{label:"400",kind:ve.CompletionItemKind.Property,data:{properties:{}}},{label:"401",kind:ve.CompletionItemKind.Property,data:{properties:{}}},{label:"403",kind:ve.CompletionItemKind.Property,data:{properties:{}}},{label:"404",kind:ve.CompletionItemKind.Property,data:{properties:{}}},{label:"500",kind:ve.CompletionItemKind.Property,data:{properties:{}}},{label:"503",kind:ve.CompletionItemKind.Property,data:{properties:{}}}],PathMap:[{label:"/newPath",kind:ve.CompletionItemKind.Property,data:{properties:{}},sortText:ke("PathMap")}],MediaTypeMap:[{label:"mime/type",kind:ve.CompletionItemKind.Property,data:{properties:{}},sortText:ke("MediaTypeMap")},{label:"application/json",kind:ve.CompletionItemKind.Property,data:{properties:{}},sortText:ke("MediaTypeMap")},{label:"application/octet-stream",kind:ve.CompletionItemKind.Property,data:{properties:{}},sortText:ke("MediaTypeMap")},{label:"multipart/form-data",kind:ve.CompletionItemKind.Property,data:{properties:{}},sortText:ke("MediaTypeMap")},{label:"application/x-www-form-urlencoded",kind:ve.CompletionItemKind.Property,data:{properties:{}},sortText:ke("MediaTypeMap")},{label:"application/xml",kind:ve.CompletionItemKind.Property,data:[],sortText:ke("MediaTypeMap")}]};var kn=rt(Ui(),1);import{normalizeTypes as jf,Oas3Types as Db,Oas2Types as Rb,Oas3_1Types as If,OasVersion as xn,ConfigTypes as Cb,openAPIMajor as Pb}from"@redocly/openapi-core";var qa=new Map;function Wf(e,t){if(!e)return null;let n=e,r=!0;return t.forEach(i=>{if(r=!1,ka(n)&&n.items&&n.items[i])n=n.items[i],r=!0;else if(qf(n)){let o=Xi(n);for(let s of o)if(xa(s)&&s.key?.value===i){n=s?.value,r=!0;break}}}),r?n:(console.warn("Cannot find node by path",t),null)}function Tb(e,t){for(let n=0;n<t.length;n++)if(n===t.length-1||t[n+1]>e)return n;return t.length-1}function Ea(e,t,n,r=!1){let{node:i,nodePath:o=[]}=e,s=n.offsetAt(t),a=Xi(i);if(a.length===0||wb(i)||!r&&xb(i,n,t))return e;let l=kb(a,s);return Ea({nodePath:Sb(o,i,a[l],l),node:a[l]},t,n,r)}function wb(e){return e?.kind===kn.Kind.MAPPING&&!e?.value}function xb(e,t,n){let r=t.getText({start:t.positionAt(t._lineOffsets[n.line]),end:n}),i=Ab(e,t),o=r?.match(/^\s+/)?.[0]?.length||0;return(/^\s*[\w\-\$\/\{\}]+$/.test(r)?o:n.character)===i}function kb(e,t){for(let n=1;n<e.length;n++){let r=e[n];if(!!r&&r.startPosition>t)return n-1}return e.length-1}function Sb(e,t,n,r){return ka(t)?[...e,r]:xa(n)&&n?.key?.value&&typeof n.key.value=="string"?[...e,n.key.value]:e}function Ab(e,t){let n=e?.startPosition??0,r=Tb(n,t._lineOffsets);if(r>=0){let i=t._lineOffsets[r];return n-i}return 0}function Oa(e,t){let n=e,r=null,i=new Array(t.length).fill(null);t.forEach((s,a)=>{let l;if(e?.name&&e?.name!==n?.name&&(n=e,r=s),e&&e?.properties&&!Object.keys(e?.properties).length&&e?.items?.properties)l=e.items;else if(e?.properties&&e.properties[s])l=e.properties[s],zi(l)&&(l=l(null,s));else if(e?.additionalProperties&&!zi(e?.additionalProperties))l=e.additionalProperties;else if(zi(e?.additionalProperties)&&s){let p=e.additionalProperties(null,s);p&&(l=p)}l&&(e=l,i[a]=l)}),e?.name&&n?.name&&e?.name!==n?.name&&(r=null);let o=i.every(s=>!!s);return{currentType:o||t[0]==="openapi"||t.length===0?e:null,parentType:o?n:null,endPath:r}}function Hf(e,t){if(or(t))return jf(Cb).ConfigRoot;let{types:n,isDefault:r}=qb(e);if(!e)return n;let i=r?Sa(t):n;return r&&!Sa(t)&&e?null:i||n}function Nb(e){if(qa.has(e))return qa.get(e);let t=jf(Eb(e)).DefinitionRoot;return qa.set(e,t),t}function Bf(e){let t,n=!1;if(e?.kind===kn.Kind.MAP)for(let r of e.mappings){let i=r.key?.value,o=String(r?.value?.value);if(i==="openapi"&&o.startsWith("3.1")){t=xn.Version3_1;break}if(i==="openapi"&&o.startsWith("3.0")){t=xn.Version3_0;break}if(i==="swagger"&&o==="2.0"){t=xn.Version2;break}}return t||(t=xn.Version3_1,n=!0),{version:t,isDefault:n}}function Uf(e){let{version:t,isDefault:n}=Bf(e);return{version:Pb(t),isDefault:n}}function qb(e){let{version:t,isDefault:n}=Bf(e);return{types:Nb(t),isDefault:n}}function Xi(e){switch(e?.kind){case kn.Kind.MAPPING:return[e.key,e.value];case kn.Kind.MAP:return e.mappings;case kn.Kind.SEQ:return e?.items;default:return[]}}function Eb(e){switch(e){case xn.Version3_1:return If;case xn.Version3_0:return Db;case xn.Version2:return Rb;default:return If}}function Gi(e,t,n){if(typeof t>"u"&&(t={}),typeof n>"u"&&(n=0),!e)return{};let r=e?.mappings||e?.items;if(r){let i=0;for(let o of r)o?.value===null||!o?.value?.value?t[o?.key?.value||i]={value:Nf(o?.value)?o?.value:null,startOffset:o?.key?.value?o.startPosition+o.key.value.length+1:null,endOffset:null,indent:n}:t[o?.key?.value||i]={value:o?.value?.value,rawValue:o?.value?.rawValue||null,startOffset:o?.value?.startPosition||null,endOffset:o?.value?.endPosition||null,indent:n},Object.keys(o?.value||o||{}).includes("items")?(t[o?.key?.value||i]={type:"sequence",startOffset:o.startPosition,endOffset:o.endPosition,indent:n,value:null},Gi(o?.value||o,t[o?.key?.value||i],n+1)):Object.keys(o?.value||o||{}).includes("mappings")&&(t[o?.key?.value||i]={type:"map",startOffset:o.startPosition,endOffset:o.endPosition,indent:n,value:null},Gi(o?.value||o,t[o?.key?.value||i],n+1)),i++}return t}import{mapTypeToComponent as $f}from"@redocly/openapi-core";var Ma={Schema:[{name:"$ref",value:{type:"string",name:"Schema"}}],PathItem:[{name:"$ref",value:{type:"string",name:"PathItem"}}],Parameter:[{name:"$ref",value:{type:"string",name:"Parameter"}}],Response:[{name:"$ref",value:{type:"string",name:"Response"}}],Example:[{name:"$ref",value:{type:"string",name:"Example"}}],RequestBody:[{name:"$ref",value:{type:"string",name:"RequestBody"}}],Header:[{name:"$ref",value:{type:"string",name:"Header"}}],SecuritySchema:[{name:"$ref",value:{type:"string",name:"SecuritySchema"}}],Link:[{name:"$ref",value:{type:"string",name:"Link"}}],Callback:[{name:"$ref",value:{type:"string",name:"Callback"}}]};function zf(e){let t=Ma[e.name];return t&&t.forEach(n=>{e.properties[n.name]=n.value}),e}var Zi=rt(rn(),1),Dt=class{constructor({kind:t,label:n,value:r,textEdit:i,filterText:o,sortText:s,data:a}){this.kind=t||Zi.CompletionItemKind.Value,this.label=n;let{node:l,lineOffset:p,position:m}=a;this.insertText=r??n,this.filterText=o||this.insertText,this.sortText=s,this.textEdit=i||(l.value==null?void 0:this.getTextEdit(l,m,p))}getTextEdit(t,n,r){let i=t.startPosition-r,o=t.singleQuoted||t.doubleQuoted?2:0,s=i+t.value.length+o;return Zi.TextEdit.replace({start:{line:n.line,character:i},end:{line:n.line,character:s}},this.insertText)}};var tr=rt(rn(),1),Sn=class{constructor({kind:t,label:n,insertText:r,insertTextFormat:i,filterText:o,sortText:s,data:a}){this.insertTextFormat=i||n.includes("$")?tr.InsertTextFormat.PlainText:tr.InsertTextFormat.Snippet,this.kind=t||tr.CompletionItemKind.Property,this.label=n,this.data=a||{},this.insertText=r??n,this.filterText=o||this.insertText,this.sortText=s,this.command=this.kind===tr.CompletionItemKind.Property?{title:"Suggested values",command:"editor.action.triggerSuggest"}:null}};var Mr={example:"example",default:"default",enum:"enum",ref:"$ref"},eo=[Mr.default,Mr.example];var Qf=rt(Ui(),1);var We={};ja(We,{default:()=>Kf.default});po(We,rt(La()));var Kf=rt(La());function Mb(e,t){let n=t.slice(0,t.length-1),{currentType:r}=Oa(e,n);if(r?.name){let[i]=Ma[r.name]||[];return i?.value}return null}function Lb(e,t){let n=t[t.length-1];if(Af(n))return Mb(e,t);let{currentType:r}=Oa(e,t);return Ji(r)?r:r?r?.name&&(r?.name.includes("Map")||r?.name.includes("Named"))?{name:Or,properties:{}}:r:null}async function Jf(e,t){let n=await _n(e),r=n.getText(),i=(0,Qf.safeLoad)(r,{filename:e}),{node:o,nodePath:s}=Ea({node:i,nodePath:[]},t,n),a=Hf(i,e),l=Lb(a,s),p=n._lineOffsets[t.line],m=n.getText({start:n.positionAt(p),end:t});return{currentAst:i,node:o,nodePath:s,position:t,lineText:m,lineOffset:p,openApiType:l}}async function Gf(e,t){let n=Fe.resolvePath(Be(e)),r=Fe.dirname(n),i=await Ua(Fe.joinPath(r,t),r.path),o=Fe.resolvePath(r,i.path);return{refPath:t,refDirPath:i,refDirAbsolutePath:o,isAbsolutePath:t&&(0,We.isAbsolute)(t),docAbsolutePath:n,docAbsoluteDirPath:r,root:"/"}}var Xf=rt(rn(),1);var to=class extends Dt{constructor(n){super(n);this.kind=Xf.CompletionItemKind.Folder,this.command={title:"Complete path",command:"editor.action.triggerSuggest",arguments:[]}}};var Zf=rt(rn(),1),no=class extends Dt{constructor(t){super(t),this.kind=Zf.CompletionItemKind.File}};var Fb=He.supportedLanguages.concat({languageId:"markdown",filePattern:/\.md$/});function Ib(e){let{refPath:t,docAbsoluteDirPath:n,isAbsolutePath:r,root:i}=e,o=(0,We.resolve)(n.path,t,".."),s=r?o:(0,We.relative)(n.path,o),a=s&&s!==i?"/":"";return{name:"../",type:1,matchBy:t,sortBy:ke("FolderCompletion"),value:`${s}${a}`}}async function jb(e,t,n){let r=[],{refDirAbsolutePath:i,docAbsolutePath:o}=n;for(let s of e)try{let a=Fe.resolvePath(i,s),l=await He.fs.stat(a);l.isFile()&&a.path!==o.path&&t.supportedFiles.some(p=>p.filePattern.test(s))&&r.push({name:s,type:0}),l.isDirectory()&&r.push({name:s,type:1})}catch{continue}return r}function ed(e,t){let{docAbsoluteDirPath:n,isAbsolutePath:r,refDirAbsolutePath:i,root:o,refPath:s}=t,a=[];return i.path!==o&&a.push(Ib(t)),a.concat(e.map(({name:l,type:p})=>{let m=(0,We.resolve)(i.path,l),v=(0,We.relative)(n.path,m),C=s.slice(0,s.lastIndexOf(We.sep)+1),T=r?m:v;if(p===0)return{type:p,name:l,value:T,sortBy:`${ke("FileCompletion")}${l}`,matchBy:`${C}${l}`};let x=`${l}/`;return{type:p,name:x,value:`${T}${v?"/":""}`,sortBy:`${ke("FolderCompletion")}${l}`,matchBy:`${C}${l}`}}))}function td(e,t){let{node:n,lineOffset:r,position:i}=t;return e.map(o=>{let{name:s,value:a,matchBy:l,sortBy:p,type:m}=o,v={label:s,filterText:qr(l,n),sortText:p,value:a,data:{lineOffset:r,position:i,node:n}};return m===1?new to(v):new no(v)})}async function nd(e,t){let{node:n}=t,r=n.value??"",i=await Gf(e,r),{refDirAbsolutePath:o}=i,s=[];try{s=await He.fs.readDir(o)}catch{return td(ed([],i),t)}let a=await jb(s,{supportedFiles:Fb},i);return td(ed(a,i),t)}function rd(e,t){if(t?.items)return"- "+rd(e,t.items);if(t?.required)return Object.values(t.required).map((n,r)=>`${n}: \${${r+1}}`).join(`
71
+ - `)}`}function Mf(e,t){e.forEach(n=>{let r;switch(n.severity){case"error":r=Ye.DiagnosticSeverity.Error;break;case"warn":r=Ye.DiagnosticSeverity.Warning;break;default:r=Ye.DiagnosticSeverity.Warning}let i=fb(n.location[0]),o=Be(i.source.absoluteRef).toString(),s=Ye.Position.create(i.start.line-1,i.start.col-1),a=i.end?Ye.Position.create(i.end.line-1,i.end.col-1):s,l=n.message+vb(n),p=Ye.Diagnostic.create(Ye.Range.create(s,a),l,r,void 0,"Redocly OpenAPI");Lf(o,p,t)})}function bb(e){return e.filter(({severity:t})=>t==="error").map(t=>({...t,location:t.location.map(n=>({...n,source:{...n.source,_ast:null}}))}))}var ro=rt(rn(),1);var ve=rt(rn(),1);function ke(e,t){return e?t?Qi[e+"_"+t]||t:Qi[e]||Qi[Er.Default]:Qi[Er.Default]}var Er=(j=>(j.FileCompletion="FileCompletion",j.FolderCompletion="FolderCompletion",j.LocalComponentCompletion="LocalComponentCompletion",j.NewLine="newLine",j.PropertyName="propertyName",j.NewItem="newItem",j.PathMap="PathMap",j.MediaTypeMap="MediaTypeMap",j.Root="Root",j.RootOpenapi="Root_openapi",j.RootInfo="Root_info",j.RootJsonSchemaDialect="Root_jsonSchemaDialect",j.RootServers="Root_servers",j.RootPaths="Root_paths",j.RootWebhooks="Root_webhooks",j.RootComponents="Root_components",j.RootSecurity="Root_security",j.RootTags="Root_tags",j.RootExternalDocs="Root_externalDocs",j.Info="Info",j.InfoTitle="Info_title",j.InfoSummary="Info_summary",j.InfoDescription="Info_description",j.InfoTermsOfService="Info_termsOfService",j.InfoContact="Info_contact",j.ContactName="Contact_name",j.ContactUrl="Contact_url",j.ContactEmail="Contact_email",j.InfoLicense="Info_license",j.LicenseName="License_name",j.LicenseIdentifier="License_identifier",j.LicenseUrl="License_url",j.InfoVersion="Info_version",j.jsonSchemaDialect="jsonSchemaDialect",j.ServerList="Server_List",j.ServerUrl="Server_url",j.ServerDescription="Server_description",j.ServerVariables="Server_variables",j.Default="Default",j))(Er||{}),_b=["newLine","MediaTypeMap","PathMap","propertyName","newItem","Root_openapi","Root","Info","Root_info","Info_title","Info_summary","Info_description","Info_termsOfService","Info_contact","Contact_name","Contact_url","Contact_email","Info_license","License_name","License_identifier","License_url","Info_version","Root_jsonSchemaDialect","jsonSchemaDialect","Root_servers","Server_List","Server_url","Server_description","Server_variables","Root_paths","Root_webhooks","Root_components","Root_security","Root_tags","Root_externalDocs","LocalComponentCompletion","FolderCompletion","FileCompletion","Default"],Qi=_b.reduce((e,t,n)=>(e[t]=String.fromCharCode(n),e),{});var un="newItem",Or="propertyName",er="newLine";function Ji(e){return!!(e?.name&&Ff[e.name])}function Na(e){return Ff[e]||[]}var Ff={[er]:[{label:"newLine",kind:ve.CompletionItemKind.Constructor,data:{},sortText:ke(er)}],[Or]:[{label:Or,kind:ve.CompletionItemKind.Constructor,data:{properties:{}},sortText:ke(Or)}],ServerVariable_Map:[{label:"newVariableName",kind:ve.CompletionItemKind.Property,data:{properties:{}},sortText:ke("ServerVariable_Map")}],ResponsesMap:[{label:"200",kind:ve.CompletionItemKind.Property,data:{properties:{}}},{label:"201",kind:ve.CompletionItemKind.Property,data:{properties:{}}},{label:"204",kind:ve.CompletionItemKind.Property,data:{properties:{}}},{label:"301",kind:ve.CompletionItemKind.Property,data:{properties:{}}},{label:"303",kind:ve.CompletionItemKind.Property,data:{properties:{}}},{label:"400",kind:ve.CompletionItemKind.Property,data:{properties:{}}},{label:"401",kind:ve.CompletionItemKind.Property,data:{properties:{}}},{label:"403",kind:ve.CompletionItemKind.Property,data:{properties:{}}},{label:"404",kind:ve.CompletionItemKind.Property,data:{properties:{}}},{label:"500",kind:ve.CompletionItemKind.Property,data:{properties:{}}},{label:"503",kind:ve.CompletionItemKind.Property,data:{properties:{}}}],PathMap:[{label:"/newPath",kind:ve.CompletionItemKind.Property,data:{properties:{}},sortText:ke("PathMap")}],MediaTypeMap:[{label:"mime/type",kind:ve.CompletionItemKind.Property,data:{properties:{}},sortText:ke("MediaTypeMap")},{label:"application/json",kind:ve.CompletionItemKind.Property,data:{properties:{}},sortText:ke("MediaTypeMap")},{label:"application/octet-stream",kind:ve.CompletionItemKind.Property,data:{properties:{}},sortText:ke("MediaTypeMap")},{label:"multipart/form-data",kind:ve.CompletionItemKind.Property,data:{properties:{}},sortText:ke("MediaTypeMap")},{label:"application/x-www-form-urlencoded",kind:ve.CompletionItemKind.Property,data:{properties:{}},sortText:ke("MediaTypeMap")},{label:"application/xml",kind:ve.CompletionItemKind.Property,data:[],sortText:ke("MediaTypeMap")}]};var kn=rt(Ui(),1);import{normalizeTypes as jf,Oas3Types as Db,Oas2Types as Rb,Oas3_1Types as If,OasVersion as xn,ConfigTypes as Cb,openAPIMajor as Pb}from"@redocly/openapi-core";var qa=new Map;function Wf(e,t){if(!e)return null;let n=e,r=!0;return t.forEach(i=>{if(r=!1,ka(n)&&n.items&&n.items[i])n=n.items[i],r=!0;else if(qf(n)){let o=Xi(n);for(let s of o)if(xa(s)&&s.key?.value===i){n=s?.value,r=!0;break}}}),r?n:(console.warn("Cannot find node by path",t),null)}function Tb(e,t){for(let n=0;n<t.length;n++)if(n===t.length-1||t[n+1]>e)return n;return t.length-1}function Ea(e,t,n,r=!1){let{node:i,nodePath:o=[]}=e,s=n.offsetAt(t),a=Xi(i);if(a.length===0||wb(i)||!r&&xb(i,n,t))return e;let l=kb(a,s);return Ea({nodePath:Sb(o,i,a[l],l),node:a[l]},t,n,r)}function wb(e){return e?.kind===kn.Kind.MAPPING&&!e?.value}function xb(e,t,n){let r=t.getText({start:t.positionAt(t._lineOffsets[n.line]),end:n}),i=Ab(e,t),o=r?.match(/^\s+/)?.[0]?.length||0;return(/^\s*[\w\-\$\/\{\}]+$/.test(r)?o:n.character)===i}function kb(e,t){for(let n=1;n<e.length;n++){let r=e[n];if(!!r&&r.startPosition>t)return n-1}return e.length-1}function Sb(e,t,n,r){return ka(t)?[...e,r]:xa(n)&&n?.key?.value&&typeof n.key.value=="string"?[...e,n.key.value]:e}function Ab(e,t){let n=e?.startPosition??0,r=Tb(n,t._lineOffsets);if(r>=0){let i=t._lineOffsets[r];return n-i}return 0}function Oa(e,t){let n=e,r=null,i=new Array(t.length).fill(null);t.forEach((s,a)=>{let l;if(e?.name&&e?.name!==n?.name&&(n=e,r=s),e&&e?.properties&&!Object.keys(e?.properties).length&&e?.items?.properties)l=e.items;else if(e?.properties&&e.properties[s])l=e.properties[s],zi(l)&&(l=l(null,s));else if(e?.additionalProperties&&!zi(e?.additionalProperties))l=e.additionalProperties;else if(zi(e?.additionalProperties)&&s){let p=e.additionalProperties(null,s);p&&(l=p)}l&&(e=l,i[a]=l)}),e?.name&&n?.name&&e?.name!==n?.name&&(r=null);let o=i.every(s=>!!s);return{currentType:o||t[0]==="openapi"||t.length===0?e:null,parentType:o?n:null,endPath:r}}function Hf(e,t){if(or(t))return jf(Cb).ConfigRoot;let{types:n,isDefault:r}=qb(e);if(!e)return n;let i=r?Sa(t):n;return r&&!Sa(t)&&e?null:i||n}function Nb(e){if(qa.has(e))return qa.get(e);let t=jf(Eb(e)).Root;return qa.set(e,t),t}function Bf(e){let t,n=!1;if(e?.kind===kn.Kind.MAP)for(let r of e.mappings){let i=r.key?.value,o=String(r?.value?.value);if(i==="openapi"&&o.startsWith("3.1")){t=xn.Version3_1;break}if(i==="openapi"&&o.startsWith("3.0")){t=xn.Version3_0;break}if(i==="swagger"&&o==="2.0"){t=xn.Version2;break}}return t||(t=xn.Version3_1,n=!0),{version:t,isDefault:n}}function Uf(e){let{version:t,isDefault:n}=Bf(e);return{version:Pb(t),isDefault:n}}function qb(e){let{version:t,isDefault:n}=Bf(e);return{types:Nb(t),isDefault:n}}function Xi(e){switch(e?.kind){case kn.Kind.MAPPING:return[e.key,e.value];case kn.Kind.MAP:return e.mappings;case kn.Kind.SEQ:return e?.items;default:return[]}}function Eb(e){switch(e){case xn.Version3_1:return If;case xn.Version3_0:return Db;case xn.Version2:return Rb;default:return If}}function Gi(e,t,n){if(typeof t>"u"&&(t={}),typeof n>"u"&&(n=0),!e)return{};let r=e?.mappings||e?.items;if(r){let i=0;for(let o of r)o?.value===null||!o?.value?.value?t[o?.key?.value||i]={value:Nf(o?.value)?o?.value:null,startOffset:o?.key?.value?o.startPosition+o.key.value.length+1:null,endOffset:null,indent:n}:t[o?.key?.value||i]={value:o?.value?.value,rawValue:o?.value?.rawValue||null,startOffset:o?.value?.startPosition||null,endOffset:o?.value?.endPosition||null,indent:n},Object.keys(o?.value||o||{}).includes("items")?(t[o?.key?.value||i]={type:"sequence",startOffset:o.startPosition,endOffset:o.endPosition,indent:n,value:null},Gi(o?.value||o,t[o?.key?.value||i],n+1)):Object.keys(o?.value||o||{}).includes("mappings")&&(t[o?.key?.value||i]={type:"map",startOffset:o.startPosition,endOffset:o.endPosition,indent:n,value:null},Gi(o?.value||o,t[o?.key?.value||i],n+1)),i++}return t}import{mapTypeToComponent as $f}from"@redocly/openapi-core";var Ma={Schema:[{name:"$ref",value:{type:"string",name:"Schema"}}],PathItem:[{name:"$ref",value:{type:"string",name:"PathItem"}}],Parameter:[{name:"$ref",value:{type:"string",name:"Parameter"}}],Response:[{name:"$ref",value:{type:"string",name:"Response"}}],Example:[{name:"$ref",value:{type:"string",name:"Example"}}],RequestBody:[{name:"$ref",value:{type:"string",name:"RequestBody"}}],Header:[{name:"$ref",value:{type:"string",name:"Header"}}],SecuritySchema:[{name:"$ref",value:{type:"string",name:"SecuritySchema"}}],Link:[{name:"$ref",value:{type:"string",name:"Link"}}],Callback:[{name:"$ref",value:{type:"string",name:"Callback"}}]};function zf(e){let t=Ma[e.name];return t&&t.forEach(n=>{e.properties[n.name]=n.value}),e}var Zi=rt(rn(),1),Dt=class{constructor({kind:t,label:n,value:r,textEdit:i,filterText:o,sortText:s,data:a}){this.kind=t||Zi.CompletionItemKind.Value,this.label=n;let{node:l,lineOffset:p,position:m}=a;this.insertText=r??n,this.filterText=o||this.insertText,this.sortText=s,this.textEdit=i||(l.value==null?void 0:this.getTextEdit(l,m,p))}getTextEdit(t,n,r){let i=t.startPosition-r,o=t.singleQuoted||t.doubleQuoted?2:0,s=i+t.value.length+o;return Zi.TextEdit.replace({start:{line:n.line,character:i},end:{line:n.line,character:s}},this.insertText)}};var tr=rt(rn(),1),Sn=class{constructor({kind:t,label:n,insertText:r,insertTextFormat:i,filterText:o,sortText:s,data:a}){this.insertTextFormat=i||n.includes("$")?tr.InsertTextFormat.PlainText:tr.InsertTextFormat.Snippet,this.kind=t||tr.CompletionItemKind.Property,this.label=n,this.data=a||{},this.insertText=r??n,this.filterText=o||this.insertText,this.sortText=s,this.command=this.kind===tr.CompletionItemKind.Property?{title:"Suggested values",command:"editor.action.triggerSuggest"}:null}};var Mr={example:"example",default:"default",enum:"enum",ref:"$ref"},eo=[Mr.default,Mr.example];var Qf=rt(Ui(),1);var We={};ja(We,{default:()=>Kf.default});po(We,rt(La()));var Kf=rt(La());function Mb(e,t){let n=t.slice(0,t.length-1),{currentType:r}=Oa(e,n);if(r?.name){let[i]=Ma[r.name]||[];return i?.value}return null}function Lb(e,t){let n=t[t.length-1];if(Af(n))return Mb(e,t);let{currentType:r}=Oa(e,t);return Ji(r)?r:r?r?.name&&(r?.name.includes("Map")||r?.name.includes("Named"))?{name:Or,properties:{}}:r:null}async function Jf(e,t){let n=await _n(e),r=n.getText(),i=(0,Qf.safeLoad)(r,{filename:e}),{node:o,nodePath:s}=Ea({node:i,nodePath:[]},t,n),a=Hf(i,e),l=Lb(a,s),p=n._lineOffsets[t.line],m=n.getText({start:n.positionAt(p),end:t});return{currentAst:i,node:o,nodePath:s,position:t,lineText:m,lineOffset:p,openApiType:l}}async function Gf(e,t){let n=Fe.resolvePath(Be(e)),r=Fe.dirname(n),i=await Ua(Fe.joinPath(r,t),r.path),o=Fe.resolvePath(r,i.path);return{refPath:t,refDirPath:i,refDirAbsolutePath:o,isAbsolutePath:t&&(0,We.isAbsolute)(t),docAbsolutePath:n,docAbsoluteDirPath:r,root:"/"}}var Xf=rt(rn(),1);var to=class extends Dt{constructor(n){super(n);this.kind=Xf.CompletionItemKind.Folder,this.command={title:"Complete path",command:"editor.action.triggerSuggest",arguments:[]}}};var Zf=rt(rn(),1),no=class extends Dt{constructor(t){super(t),this.kind=Zf.CompletionItemKind.File}};var Fb=He.supportedLanguages.concat({languageId:"markdown",filePattern:/\.md$/});function Ib(e){let{refPath:t,docAbsoluteDirPath:n,isAbsolutePath:r,root:i}=e,o=(0,We.resolve)(n.path,t,".."),s=r?o:(0,We.relative)(n.path,o),a=s&&s!==i?"/":"";return{name:"../",type:1,matchBy:t,sortBy:ke("FolderCompletion"),value:`${s}${a}`}}async function jb(e,t,n){let r=[],{refDirAbsolutePath:i,docAbsolutePath:o}=n;for(let s of e)try{let a=Fe.resolvePath(i,s),l=await He.fs.stat(a);l.isFile()&&a.path!==o.path&&t.supportedFiles.some(p=>p.filePattern.test(s))&&r.push({name:s,type:0}),l.isDirectory()&&r.push({name:s,type:1})}catch{continue}return r}function ed(e,t){let{docAbsoluteDirPath:n,isAbsolutePath:r,refDirAbsolutePath:i,root:o,refPath:s}=t,a=[];return i.path!==o&&a.push(Ib(t)),a.concat(e.map(({name:l,type:p})=>{let m=(0,We.resolve)(i.path,l),v=(0,We.relative)(n.path,m),C=s.slice(0,s.lastIndexOf(We.sep)+1),T=r?m:v;if(p===0)return{type:p,name:l,value:T,sortBy:`${ke("FileCompletion")}${l}`,matchBy:`${C}${l}`};let x=`${l}/`;return{type:p,name:x,value:`${T}${v?"/":""}`,sortBy:`${ke("FolderCompletion")}${l}`,matchBy:`${C}${l}`}}))}function td(e,t){let{node:n,lineOffset:r,position:i}=t;return e.map(o=>{let{name:s,value:a,matchBy:l,sortBy:p,type:m}=o,v={label:s,filterText:qr(l,n),sortText:p,value:a,data:{lineOffset:r,position:i,node:n}};return m===1?new to(v):new no(v)})}async function nd(e,t){let{node:n}=t,r=n.value??"",i=await Gf(e,r),{refDirAbsolutePath:o}=i,s=[];try{s=await He.fs.readDir(o)}catch{return td(ed([],i),t)}let a=await jb(s,{supportedFiles:Fb},i);return td(ed(a,i),t)}function rd(e,t){if(t?.items)return"- "+rd(e,t.items);if(t?.required)return Object.values(t.required).map((n,r)=>`${n}: \${${r+1}}`).join(`
72
72
  `);if(e==="openapi"){let n="3.1.0",[r,i,o]=n.split(".");return`\${1:${r}}.\${2:${i}}.\${3:${o}}`}return""}function Wb(e,t,n,r){if(e===un)return"";if(r?.items||r?.required){let i=`
73
73
  `;return n.includes(`
74
74
  `)&&(i+=" "),i}return n.includes(`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redocly/openapi-language-server",
3
- "version": "0.0.6",
3
+ "version": "0.0.7",
4
4
  "description": "Redocly OpenAPI language server",
5
5
  "main": "lib/index.js",
6
6
  "type": "module",
@@ -20,7 +20,7 @@
20
20
  "author": "Redocly LLC <team@redocly.com>",
21
21
  "license": "SEE LICENSE IN LICENSE",
22
22
  "peerDependencies": {
23
- "@redocly/openapi-core": "^1.0.0-beta.108"
23
+ "@redocly/openapi-core": "^1.0.0-beta.109"
24
24
  },
25
25
  "devDependencies": {
26
26
  "@typescript-eslint/eslint-plugin": "^5.33.1",