@likec4/language-server 1.55.0 → 1.56.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.
@@ -1,5 +1,4 @@
1
1
  import { A as NoFileSystem, C as LikeC4ModelBuilder, E as LangiumDocuments, F as FileSystemProvider, H as ProjectData, I as FileSystemWatcher, L as FileSystemWatcherModuleContext, M as NoLikeC4ManualLayouts, P as FileSystemModuleContext, R as LikeC4ManualLayouts, S as ViewLocateResult, T as LikeC4WorkspaceManager, U as ProjectsManager, V as Project, _ as LikeC4ViewsModuleContext, b as LikeC4Views, d as LikeC4LanguageServices, f as DocumentParser, j as NoFileSystemWatcher, n as LikeC4AddedServices, o as LikeC4SharedServices, p as LikeC4ModelParser, r as LikeC4Services, s as createLanguageServices, t as LanguageServicesContext, u as FormatOptions, w as FqnIndex, x as LikeC4ModelLocator, y as WithWasmGraphviz, z as LikeC4ManualLayoutsModuleContext } from "../_chunks/module.mjs";
2
- import "../_chunks/protocol.mjs";
3
2
 
4
3
  //#region src/browser/index.d.ts
5
4
  /**
@@ -1 +1 @@
1
- import"../_chunks/icons.mjs";import{ci as e,li as t,si as n}from"../_chunks/utils.mjs";import{t as r}from"../_chunks/module.mjs";import"../_chunks/common-exports.mjs";import{configureLogger as i,getConsoleSink as a,getTextFormatter as o}from"@likec4/log";import{startLanguageServer as s}from"langium/lsp";import{BrowserMessageReader as c,BrowserMessageWriter as l,createConnection as u}from"vscode-languageserver/browser";function startLanguageServer(e){let t=u(new c(e),new l(e));i({sinks:{console:a({formatter:o({format:({level:e,category:t,message:n})=>`${e} ${t} ${n}`})})},loggers:[{category:`likec4`,sinks:[`console`],lowestLevel:`debug`}]});let n=r({connection:t});return s(n.shared),n}export{n as NoFileSystem,e as NoFileSystemWatcher,t as NoLikeC4ManualLayouts,r as createLanguageServices,startLanguageServer};
1
+ import{ci as e,li as t,si as n}from"../_chunks/utils.mjs";import{t as r}from"../_chunks/module.mjs";import"../_chunks/common-exports.mjs";import{configureLogger as i,getConsoleSink as a,getTextFormatter as o}from"@likec4/log";import{startLanguageServer as s}from"langium/lsp";import{BrowserMessageReader as c,BrowserMessageWriter as l,createConnection as u}from"vscode-languageserver/browser";function startLanguageServer(e){let t=u(new c(e),new l(e));i({sinks:{console:a({formatter:o({format:({level:e,category:t,message:n})=>`${e} ${t} ${n}`})})},loggers:[{category:`likec4`,sinks:[`console`],lowestLevel:`debug`}]});let n=r({connection:t});return s(n.shared),n}export{n as NoFileSystem,e as NoFileSystemWatcher,t as NoLikeC4ManualLayouts,r as createLanguageServices,startLanguageServer};
@@ -1 +1 @@
1
- import"../_chunks/icons.mjs";import"../_chunks/utils.mjs";import"../_chunks/module.mjs";import"../_chunks/common-exports.mjs";import{startLanguageServer as e}from"./index.mjs";function errToString(e){switch(!0){case e instanceof Error:return e.message;case typeof e==`object`&&!!e:try{return JSON.stringify(e)}catch{return`[unserializable value]`}case typeof e==`string`:return e;case e==null:return``;case typeof e==`number`||typeof e==`boolean`:return String(e);case typeof e==`symbol`:return e.toString();default:return`unknown`}}const log=(e,t)=>{let n=t==null?e:`${e} ${errToString(t)}`;try{console.error(`[LikeC4 LSP worker]`,n)}catch{}};self.onerror=e=>(log(`Uncaught error`,e.message??e.error),!1),self.onunhandledrejection=e=>{log(`Unhandled rejection`,e.reason)};try{e(self)}catch(e){throw log(`Failed to start language server`,e),e}
1
+ import{startLanguageServer as e}from"./index.mjs";function errToString(e){switch(!0){case e instanceof Error:return e.message;case typeof e==`object`&&!!e:try{return JSON.stringify(e)}catch{return`[unserializable value]`}case typeof e==`string`:return e;case e==null:return``;case typeof e==`number`||typeof e==`boolean`:return String(e);case typeof e==`symbol`:return e.toString();default:return`unknown`}}const log=(e,t)=>{let n=t==null?e:`${e} ${errToString(t)}`;try{console.error(`[LikeC4 LSP worker]`,n)}catch{}};self.onerror=e=>(log(`Uncaught error`,e.message??e.error),!1),self.onunhandledrejection=e=>{log(`Unhandled rejection`,e.reason)};try{e(self)}catch(e){throw log(`Failed to start language server`,e),e}
@@ -1,3 +1,2 @@
1
1
  import { A as NoFileSystem, B as ManualLayoutsSnapshot, D as WithLikeC4ManualLayouts, F as FileSystemProvider, I as FileSystemWatcher, L as FileSystemWatcherModuleContext, M as NoLikeC4ManualLayouts, N as FileNode, O as WithChokidarWatcher, P as FileSystemModuleContext, R as LikeC4ManualLayouts, j as NoFileSystemWatcher, k as WithFileSystem, z as LikeC4ManualLayoutsModuleContext } from "../_chunks/module.mjs";
2
- import "../_chunks/protocol.mjs";
3
2
  export { FileNode, FileSystemModuleContext, FileSystemProvider, FileSystemWatcher, FileSystemWatcherModuleContext, LikeC4ManualLayouts, LikeC4ManualLayoutsModuleContext, ManualLayoutsSnapshot, NoFileSystem, NoFileSystemWatcher, NoLikeC4ManualLayouts, WithChokidarWatcher, WithFileSystem, WithLikeC4ManualLayouts };
@@ -1 +1 @@
1
- import"../_chunks/icons.mjs";import{ci as e,li as t,si as n}from"../_chunks/utils.mjs";import{n as r,r as i,t as a}from"../_chunks/LikeC4FileSystem.mjs";export{n as NoFileSystem,e as NoFileSystemWatcher,t as NoLikeC4ManualLayouts,r as WithChokidarWatcher,a as WithFileSystem,i as WithLikeC4ManualLayouts};
1
+ import{ci as e,li as t,si as n}from"../_chunks/utils.mjs";import{n as r,r as i,t as a}from"../_chunks/LikeC4FileSystem.mjs";export{n as NoFileSystem,e as NoFileSystemWatcher,t as NoLikeC4ManualLayouts,r as WithChokidarWatcher,a as WithFileSystem,i as WithLikeC4ManualLayouts};
package/dist/index.d.mts CHANGED
@@ -1,3 +1,2 @@
1
1
  import { A as NoFileSystem, C as LikeC4ModelBuilder, D as WithLikeC4ManualLayouts, E as LangiumDocuments, F as FileSystemProvider, H as ProjectData, I as FileSystemWatcher, L as FileSystemWatcherModuleContext, M as NoLikeC4ManualLayouts, P as FileSystemModuleContext, R as LikeC4ManualLayouts, S as ViewLocateResult, T as LikeC4WorkspaceManager, U as ProjectsManager, V as Project, _ as LikeC4ViewsModuleContext, b as LikeC4Views, d as LikeC4LanguageServices, f as DocumentParser, g as configureLanguageServerLogger, h as ConfigureLanguageServerLoggerOptions, j as NoFileSystemWatcher, k as WithFileSystem, m as startLanguageServer, n as LikeC4AddedServices, o as LikeC4SharedServices, p as LikeC4ModelParser, r as LikeC4Services, s as createLanguageServices, t as LanguageServicesContext, u as FormatOptions, w as FqnIndex, x as LikeC4ModelLocator, y as WithWasmGraphviz, z as LikeC4ManualLayoutsModuleContext } from "./_chunks/module.mjs";
2
- import "./_chunks/protocol.mjs";
3
2
  export { ConfigureLanguageServerLoggerOptions, DocumentParser, FileSystemModuleContext, FileSystemProvider, FileSystemWatcher, FileSystemWatcherModuleContext, FormatOptions, FqnIndex, LangiumDocuments, LanguageServicesContext, LikeC4AddedServices, LikeC4LanguageServices, LikeC4ManualLayouts, LikeC4ManualLayoutsModuleContext, LikeC4ModelBuilder, LikeC4ModelLocator, LikeC4ModelParser, LikeC4Services, LikeC4SharedServices, LikeC4Views, LikeC4ViewsModuleContext, LikeC4WorkspaceManager, NoFileSystem, NoFileSystemWatcher, NoLikeC4ManualLayouts, Project, ProjectData, ProjectsManager, ViewLocateResult, WithFileSystem, WithLikeC4ManualLayouts, WithWasmGraphviz, configureLanguageServerLogger, createLanguageServices, startLanguageServer };
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- import"./_chunks/icons.mjs";import{ci as e,ii as t,li as n,oi as r,si as i}from"./_chunks/utils.mjs";import{r as a,t as o}from"./_chunks/LikeC4FileSystem.mjs";import{i as s,t as c}from"./_chunks/module.mjs";import"./_chunks/common-exports.mjs";import{configureLogger as l,getAnsiColorFormatter as u,getConsoleSink as d,getConsoleStderrSink as f,getTextFormatter as p}from"@likec4/log";import{isEmpty as m}from"remeda";import{startLanguageServer as h}from"langium/lsp";import{GraphvizWasmAdapter as g,QueueGraphvizLayoter as _}from"@likec4/layouts";import{GraphvizBinaryAdapter as v}from"@likec4/layouts/graphviz/binary";import{defu as y}from"defu";import{isDevelopment as b}from"std-env";import x from"which";function configureLanguageServerLogger({lspConnection:e,enableTelemetry:n=!!e,useStdErr:i=!1,logLevel:a=b?`debug`:`warning`,nonBlocking:o=!1,colors:s=!1}={}){let c=!!e&&n&&!b;l({reset:!0,sinks:{console:i?f({formatter:p()}):d({formatter:s?u():p(),nonBlocking:o}),...c&&{telemetry:t(e)}},loggers:[{category:[`likec4`],sinks:[`console`,...c?[`telemetry`]:[]],lowestLevel:a}]}),r.trace(`logger configured`)}function graphvizBinPath(){try{return x.sync(`dot`)}catch(e){return r.error(`Error checking for native Graphviz:`,{error:e}),null}}const S={likec4:{Layouter(e){r.debug(`Creating ConfigurableLayouter`);let t=e.likec4.Graphviz,n=new _({graphviz:t});return e.shared.workspace.ConfigurationProvider.onConfigurationSectionUpdate(t=>{if(r.debug(`Configuration update: {update}`,{update:t}),t.section!==e.LanguageMetaData.languageId){r.debug(`Ignoring configuration update as it is not for ${e.LanguageMetaData.languageId}`);return}try{let{mode:i,path:a}=t.configuration.graphviz??{mode:`wasm`,path:``};if(i!==`wasm`){let t=m(a)?graphvizBinPath():a;if(!m(t)){n.changePort(new v(t)),r.info`use graphviz binary: ${t}`;return}r.warn(`No Graphviz binaries found on PATH, use graphviz wasm`),e.shared.lsp.Connection?.window.showWarningMessage(`No Graphviz binaries found on PATH, set path to binaries in settings.`)}n.changePort(new g),r.info(`use graphviz wasm`)}catch(e){r.error(`Failed to update configuration`,{error:e})}}),n}}};function startLanguageServer(e){let t=e?.connection,n=y(e,{enableWatcher:!0,enableManualLayouts:!0,graphviz:`wasm`,configureLogger:!1});n.configureLogger!==!1&&(n.configureLogger===`stderr`?configureLanguageServerLogger({lspConnection:t,enableTelemetry:!1,useStdErr:!0}):n.configureLogger===`console`&&configureLanguageServerLogger({lspConnection:t})),t?r.info(`Starting LikeC4 language server`):r.warn(`Starting LikeC4 language server (headless - no LSP connection)`);let i=c({...t&&{connection:t},...o(n.enableWatcher),...n.enableManualLayouts&&a,...s(n.graphviz===`binary`?new v:new g)},t?{likec4:{...S.likec4}}:void 0);return h(i.shared),i}export{i as NoFileSystem,e as NoFileSystemWatcher,n as NoLikeC4ManualLayouts,o as WithFileSystem,a as WithLikeC4ManualLayouts,configureLanguageServerLogger,c as createLanguageServices,startLanguageServer};
1
+ import{ci as e,ii as t,li as n,oi as r,si as i}from"./_chunks/utils.mjs";import{r as a,t as o}from"./_chunks/LikeC4FileSystem.mjs";import{i as s,t as c}from"./_chunks/module.mjs";import"./_chunks/common-exports.mjs";import{configureLogger as l,getAnsiColorFormatter as u,getConsoleSink as d,getConsoleStderrSink as f,getTextFormatter as p}from"@likec4/log";import{isEmpty as m}from"remeda";import{startLanguageServer as h}from"langium/lsp";import{GraphvizWasmAdapter as g,QueueGraphvizLayoter as _}from"@likec4/layouts";import{GraphvizBinaryAdapter as v}from"@likec4/layouts/graphviz/binary";import{defu as y}from"defu";import{isDevelopment as b}from"std-env";import x from"which";function configureLanguageServerLogger({lspConnection:e,enableTelemetry:n=!!e,useStdErr:i=!1,logLevel:a=b?`debug`:`warning`,nonBlocking:o=!1,colors:s=!1}={}){let c=!!e&&n&&!b;l({reset:!0,sinks:{console:i?f({formatter:p()}):d({formatter:s?u():p(),nonBlocking:o}),...c&&{telemetry:t(e)}},loggers:[{category:[`likec4`],sinks:[`console`,...c?[`telemetry`]:[]],lowestLevel:a}]}),r.trace(`logger configured`)}function graphvizBinPath(){try{return x.sync(`dot`)}catch(e){return r.error(`Error checking for native Graphviz:`,{error:e}),null}}const S={likec4:{Layouter(e){r.debug(`Creating ConfigurableLayouter`);let t=e.likec4.Graphviz,n=new _({graphviz:t});return e.shared.workspace.ConfigurationProvider.onConfigurationSectionUpdate(t=>{if(r.debug(`Configuration update: {update}`,{update:t}),t.section!==e.LanguageMetaData.languageId){r.debug(`Ignoring configuration update as it is not for ${e.LanguageMetaData.languageId}`);return}try{let{mode:i,path:a}=t.configuration.graphviz??{mode:`wasm`,path:``};if(i!==`wasm`){let t=m(a)?graphvizBinPath():a;if(!m(t)){n.changePort(new v(t)),r.info`use graphviz binary: ${t}`;return}r.warn(`No Graphviz binaries found on PATH, use graphviz wasm`),e.shared.lsp.Connection?.window.showWarningMessage(`No Graphviz binaries found on PATH, set path to binaries in settings.`)}n.changePort(new g),r.info(`use graphviz wasm`)}catch(e){r.error(`Failed to update configuration`,{error:e})}}),n}}};function startLanguageServer(e){let t=e?.connection,n=y(e,{enableWatcher:!0,enableManualLayouts:!0,graphviz:`wasm`,configureLogger:!1});n.configureLogger!==!1&&(n.configureLogger===`stderr`?configureLanguageServerLogger({lspConnection:t,enableTelemetry:!1,useStdErr:!0}):n.configureLogger===`console`&&configureLanguageServerLogger({lspConnection:t})),t?r.info(`Starting LikeC4 language server`):r.warn(`Starting LikeC4 language server (headless - no LSP connection)`);let i=c({...t&&{connection:t},...o(n.enableWatcher),...n.enableManualLayouts&&a,...s(n.graphviz===`binary`?new v:new g)},t?{likec4:{...S.likec4}}:void 0);return h(i.shared),i}export{i as NoFileSystem,e as NoFileSystemWatcher,n as NoLikeC4ManualLayouts,o as WithFileSystem,a as WithLikeC4ManualLayouts,configureLanguageServerLogger,c as createLanguageServices,startLanguageServer};
package/dist/module.d.mts CHANGED
@@ -1,3 +1,2 @@
1
1
  import { A as NoFileSystem, M as NoLikeC4ManualLayouts, a as LikeC4SharedModuleContext, c as createLikeC4Module, i as LikeC4ServicesContext, l as createSharedServices, n as LikeC4AddedServices, o as LikeC4SharedServices, r as LikeC4Services, s as createLanguageServices, t as LanguageServicesContext, v as WithGraphviz, y as WithWasmGraphviz } from "./_chunks/module.mjs";
2
- import "./_chunks/protocol.mjs";
3
2
  export { LanguageServicesContext, LikeC4AddedServices, LikeC4Services, LikeC4ServicesContext, LikeC4SharedModuleContext, LikeC4SharedServices, NoFileSystem, NoLikeC4ManualLayouts, WithGraphviz, WithWasmGraphviz, createLanguageServices, createLikeC4Module, createSharedServices };
package/dist/module.mjs CHANGED
@@ -1 +1 @@
1
- import"./_chunks/icons.mjs";import{li as e,si as t}from"./_chunks/utils.mjs";import{a as n,i as r,n as i,r as a,t as o}from"./_chunks/module.mjs";export{t as NoFileSystem,e as NoLikeC4ManualLayouts,r as WithGraphviz,n as WithWasmGraphviz,o as createLanguageServices,i as createLikeC4Module,a as createSharedServices};
1
+ import{li as e,si as t}from"./_chunks/utils.mjs";import{a as n,i as r,n as i,r as a,t as o}from"./_chunks/module.mjs";export{t as NoFileSystem,e as NoLikeC4ManualLayouts,r as WithGraphviz,n as WithWasmGraphviz,o as createLanguageServices,i as createLikeC4Module,a as createSharedServices};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@likec4/language-server",
3
3
  "description": "LikeC4 Language Server",
4
- "version": "1.55.0",
4
+ "version": "1.56.0",
5
5
  "license": "MIT",
6
6
  "bugs": "https://github.com/likec4/likec4/issues",
7
7
  "homepage": "https://likec4.dev",
@@ -148,10 +148,10 @@
148
148
  "vscode-uri": "3.1.0",
149
149
  "which": "^5.0.0",
150
150
  "zod": "^4.3.6",
151
- "@likec4/config": "1.55.0",
152
- "@likec4/core": "1.55.0",
153
- "@likec4/layouts": "1.55.0",
154
- "@likec4/log": "1.55.0"
151
+ "@likec4/config": "1.56.0",
152
+ "@likec4/core": "1.56.0",
153
+ "@likec4/layouts": "1.56.0",
154
+ "@likec4/log": "1.56.0"
155
155
  },
156
156
  "peerDependencies": {
157
157
  "bundle-require": "^5.1.0",
@@ -167,7 +167,7 @@
167
167
  },
168
168
  "devDependencies": {
169
169
  "@types/natural-compare-lite": "^1.4.2",
170
- "@types/node": "~22.19.15",
170
+ "@types/node": "~22.19.17",
171
171
  "@types/picomatch": "^4.0.3",
172
172
  "@types/vscode": "^1.106.1",
173
173
  "@types/which": "^3.0.4",
@@ -177,12 +177,12 @@
177
177
  "obuild": "0.4.31",
178
178
  "oxlint": "1.59.0",
179
179
  "tsx": "4.21.0",
180
- "turbo": "2.9.5",
180
+ "turbo": "2.9.6",
181
181
  "typescript": "5.9.3",
182
182
  "vitest": "4.1.3",
183
- "@likec4/devops": "1.42.0",
184
183
  "@likec4/icons": "1.46.4",
185
- "@likec4/tsconfig": "1.55.0"
184
+ "@likec4/tsconfig": "1.56.0",
185
+ "@likec4/devops": "1.42.0"
186
186
  },
187
187
  "scripts": {
188
188
  "typecheck": "tsc -b --verbose",
@@ -156,6 +156,7 @@ export function createTestServices(options?: {
156
156
  }
157
157
 
158
158
  return {
159
+ initialize,
159
160
  services,
160
161
  addDocument,
161
162
  removeDocument,
@@ -188,12 +189,15 @@ export async function createMultiProjectTestServices<const Projects extends Reco
188
189
  ) {
189
190
  const workspace = 'file:///test/workspace'
190
191
  const {
192
+ initialize,
191
193
  services,
192
194
  addDocument,
193
195
  validateAll,
194
196
  resetState,
195
197
  } = createTestServices({ workspace })
196
198
 
199
+ await initialize()
200
+
197
201
  const projects = {} as {
198
202
  readonly [K in keyof Projects]: {
199
203
  readonly [L in keyof Projects[K]]: LikeC4LangiumDocument