@hydranium/core 1.0.0-next.31 → 1.0.0-next.315

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (769) hide show
  1. package/README.md +78 -82
  2. package/lib/browser/host-heads-in-worker.d.ts +77 -0
  3. package/lib/browser/host-heads-in-worker.d.ts.map +1 -0
  4. package/lib/browser/host-heads-in-worker.js +169 -0
  5. package/lib/browser/host-heads-in-worker.js.map +1 -0
  6. package/lib/browser/index.d.ts +12 -0
  7. package/lib/browser/index.d.ts.map +1 -0
  8. package/lib/browser/index.js +17 -0
  9. package/lib/browser/index.js.map +1 -0
  10. package/lib/browser/indexeddb-file-system-store.d.ts +82 -0
  11. package/lib/browser/indexeddb-file-system-store.d.ts.map +1 -0
  12. package/lib/browser/indexeddb-file-system-store.js +181 -0
  13. package/lib/browser/indexeddb-file-system-store.js.map +1 -0
  14. package/lib/browser/start-language-server-in-worker.d.ts +32 -0
  15. package/lib/browser/start-language-server-in-worker.d.ts.map +1 -0
  16. package/lib/browser/start-language-server-in-worker.js +40 -0
  17. package/lib/browser/start-language-server-in-worker.js.map +1 -0
  18. package/lib/documents/ast-document-manager.d.ts +256 -124
  19. package/lib/documents/ast-document-manager.d.ts.map +1 -1
  20. package/lib/documents/ast-document-manager.js +293 -132
  21. package/lib/documents/ast-document-manager.js.map +1 -1
  22. package/lib/documents/client-ids.d.ts +5 -19
  23. package/lib/documents/client-ids.d.ts.map +1 -1
  24. package/lib/documents/client-ids.js +5 -19
  25. package/lib/documents/client-ids.js.map +1 -1
  26. package/lib/documents/client-session-errors.d.ts +15 -0
  27. package/lib/documents/client-session-errors.d.ts.map +1 -0
  28. package/lib/documents/client-session-errors.js +15 -0
  29. package/lib/documents/client-session-errors.js.map +1 -0
  30. package/lib/documents/client-session-registry.d.ts +146 -0
  31. package/lib/documents/client-session-registry.d.ts.map +1 -0
  32. package/lib/documents/client-session-registry.js +207 -0
  33. package/lib/documents/client-session-registry.js.map +1 -0
  34. package/lib/documents/dirty-state-tracker.d.ts +101 -0
  35. package/lib/documents/dirty-state-tracker.d.ts.map +1 -0
  36. package/lib/documents/dirty-state-tracker.js +85 -0
  37. package/lib/documents/dirty-state-tracker.js.map +1 -0
  38. package/lib/documents/document-release-handler.d.ts +204 -0
  39. package/lib/documents/document-release-handler.d.ts.map +1 -0
  40. package/lib/documents/document-release-handler.js +317 -0
  41. package/lib/documents/document-release-handler.js.map +1 -0
  42. package/lib/documents/document-release-scheduler.d.ts +67 -0
  43. package/lib/documents/document-release-scheduler.d.ts.map +1 -0
  44. package/lib/documents/document-release-scheduler.js +80 -0
  45. package/lib/documents/document-release-scheduler.js.map +1 -0
  46. package/lib/documents/file-system-task-queue.d.ts +52 -0
  47. package/lib/documents/file-system-task-queue.d.ts.map +1 -0
  48. package/lib/documents/file-system-task-queue.js +37 -0
  49. package/lib/documents/file-system-task-queue.js.map +1 -0
  50. package/lib/documents/hydranium-text-documents.d.ts +436 -282
  51. package/lib/documents/hydranium-text-documents.d.ts.map +1 -1
  52. package/lib/documents/hydranium-text-documents.js +897 -483
  53. package/lib/documents/hydranium-text-documents.js.map +1 -1
  54. package/lib/documents/index.d.ts +10 -2
  55. package/lib/documents/index.d.ts.map +1 -1
  56. package/lib/documents/index.js +10 -2
  57. package/lib/documents/index.js.map +1 -1
  58. package/lib/documents/language-client-shadow.d.ts +234 -0
  59. package/lib/documents/language-client-shadow.d.ts.map +1 -0
  60. package/lib/documents/language-client-shadow.js +306 -0
  61. package/lib/documents/language-client-shadow.js.map +1 -0
  62. package/lib/documents/model-ledger.d.ts +47 -0
  63. package/lib/documents/model-ledger.d.ts.map +1 -0
  64. package/lib/documents/model-ledger.js +30 -0
  65. package/lib/documents/model-ledger.js.map +1 -0
  66. package/lib/documents/text-ledger.d.ts +64 -0
  67. package/lib/documents/text-ledger.d.ts.map +1 -0
  68. package/lib/documents/text-ledger.js +63 -0
  69. package/lib/documents/text-ledger.js.map +1 -0
  70. package/lib/documents/version-sync-service.d.ts +138 -0
  71. package/lib/documents/version-sync-service.d.ts.map +1 -0
  72. package/lib/documents/version-sync-service.js +173 -0
  73. package/lib/documents/version-sync-service.js.map +1 -0
  74. package/lib/index.d.ts +5 -0
  75. package/lib/index.d.ts.map +1 -1
  76. package/lib/index.js +8 -0
  77. package/lib/index.js.map +1 -1
  78. package/lib/langium/ast-extension/ast-extension-service.d.ts +42 -31
  79. package/lib/langium/ast-extension/ast-extension-service.d.ts.map +1 -1
  80. package/lib/langium/ast-extension/ast-extension-service.js +45 -19
  81. package/lib/langium/ast-extension/ast-extension-service.js.map +1 -1
  82. package/lib/langium/bootstrap.d.ts +49 -36
  83. package/lib/langium/bootstrap.d.ts.map +1 -1
  84. package/lib/langium/bootstrap.js +91 -45
  85. package/lib/langium/bootstrap.js.map +1 -1
  86. package/lib/langium/build-phase-pass/build-phase-pass-service.d.ts +9 -9
  87. package/lib/langium/build-phase-pass/build-phase-pass-service.d.ts.map +1 -1
  88. package/lib/langium/build-phase-pass/build-phase-pass-service.js +25 -16
  89. package/lib/langium/build-phase-pass/build-phase-pass-service.js.map +1 -1
  90. package/lib/langium/build-phase-pass/build-phase-pass.d.ts +20 -8
  91. package/lib/langium/build-phase-pass/build-phase-pass.d.ts.map +1 -1
  92. package/lib/langium/build-phase-pass/build-phase-pass.js +20 -0
  93. package/lib/langium/build-phase-pass/build-phase-pass.js.map +1 -1
  94. package/lib/langium/composite-ast-reflection.d.ts +46 -0
  95. package/lib/langium/composite-ast-reflection.d.ts.map +1 -0
  96. package/lib/langium/composite-ast-reflection.js +97 -0
  97. package/lib/langium/composite-ast-reflection.js.map +1 -0
  98. package/lib/langium/config/configuration-provider.d.ts +81 -0
  99. package/lib/langium/config/configuration-provider.d.ts.map +1 -0
  100. package/lib/langium/config/configuration-provider.js +112 -0
  101. package/lib/langium/config/configuration-provider.js.map +1 -0
  102. package/lib/langium/config/index.d.ts +1 -0
  103. package/lib/langium/config/index.d.ts.map +1 -1
  104. package/lib/langium/config/index.js +1 -0
  105. package/lib/langium/config/index.js.map +1 -1
  106. package/lib/langium/config/settings.js.map +1 -1
  107. package/lib/langium/diagnostics/hydranium-langium-profiler.d.ts +9 -20
  108. package/lib/langium/diagnostics/hydranium-langium-profiler.d.ts.map +1 -1
  109. package/lib/langium/diagnostics/hydranium-langium-profiler.js +15 -24
  110. package/lib/langium/diagnostics/hydranium-langium-profiler.js.map +1 -1
  111. package/lib/langium/diagnostics/log-preamble.js +1 -1
  112. package/lib/langium/diagnostics/log-preamble.js.map +1 -1
  113. package/lib/langium/diagnostics/logger.d.ts +19 -4
  114. package/lib/langium/diagnostics/logger.d.ts.map +1 -1
  115. package/lib/langium/diagnostics/logger.js +36 -11
  116. package/lib/langium/diagnostics/logger.js.map +1 -1
  117. package/lib/langium/diagnostics/lsp-logger.d.ts +17 -0
  118. package/lib/langium/diagnostics/lsp-logger.d.ts.map +1 -1
  119. package/lib/langium/diagnostics/lsp-logger.js +58 -17
  120. package/lib/langium/diagnostics/lsp-logger.js.map +1 -1
  121. package/lib/langium/diagnostics/server-tracer.d.ts.map +1 -1
  122. package/lib/langium/diagnostics/server-tracer.js.map +1 -1
  123. package/lib/langium/document-builder/build-pipeline-integration.d.ts +21 -1
  124. package/lib/langium/document-builder/build-pipeline-integration.d.ts.map +1 -1
  125. package/lib/langium/document-builder/build-pipeline-integration.js +28 -30
  126. package/lib/langium/document-builder/build-pipeline-integration.js.map +1 -1
  127. package/lib/langium/document-builder/build-session.d.ts +6 -5
  128. package/lib/langium/document-builder/build-session.d.ts.map +1 -1
  129. package/lib/langium/document-builder/build-session.js +5 -5
  130. package/lib/langium/document-builder/build-session.js.map +1 -1
  131. package/lib/langium/document-builder/document-builder.d.ts +309 -35
  132. package/lib/langium/document-builder/document-builder.d.ts.map +1 -1
  133. package/lib/langium/document-builder/document-builder.js +511 -75
  134. package/lib/langium/document-builder/document-builder.js.map +1 -1
  135. package/lib/langium/documentation/comment-provider.d.ts.map +1 -1
  136. package/lib/langium/documentation/comment-provider.js.map +1 -1
  137. package/lib/langium/integration-services.d.ts +40 -24
  138. package/lib/langium/integration-services.d.ts.map +1 -1
  139. package/lib/langium/integration-services.js +7 -4
  140. package/lib/langium/integration-services.js.map +1 -1
  141. package/lib/langium/integrity/integrity-rule.d.ts +17 -8
  142. package/lib/langium/integrity/integrity-rule.d.ts.map +1 -1
  143. package/lib/langium/integrity/integrity-rule.js.map +1 -1
  144. package/lib/langium/integrity/integrity-service.d.ts +95 -27
  145. package/lib/langium/integrity/integrity-service.d.ts.map +1 -1
  146. package/lib/langium/integrity/integrity-service.js +303 -63
  147. package/lib/langium/integrity/integrity-service.js.map +1 -1
  148. package/lib/langium/keys/containment.d.ts +64 -0
  149. package/lib/langium/keys/containment.d.ts.map +1 -0
  150. package/lib/langium/keys/containment.js +53 -0
  151. package/lib/langium/keys/containment.js.map +1 -0
  152. package/lib/langium/keys/index.d.ts +1 -0
  153. package/lib/langium/keys/index.d.ts.map +1 -1
  154. package/lib/langium/keys/index.js +1 -0
  155. package/lib/langium/keys/index.js.map +1 -1
  156. package/lib/langium/keys/name-based-key-provider.d.ts +4 -0
  157. package/lib/langium/keys/name-based-key-provider.d.ts.map +1 -1
  158. package/lib/langium/keys/name-based-key-provider.js +4 -0
  159. package/lib/langium/keys/name-based-key-provider.js.map +1 -1
  160. package/lib/langium/keys/positional-key-provider.d.ts.map +1 -1
  161. package/lib/langium/keys/positional-key-provider.js.map +1 -1
  162. package/lib/langium/labeling/label-provider.d.ts.map +1 -1
  163. package/lib/langium/labeling/label-provider.js.map +1 -1
  164. package/lib/langium/language-module.d.ts +30 -5
  165. package/lib/langium/language-module.d.ts.map +1 -1
  166. package/lib/langium/language-module.js +18 -4
  167. package/lib/langium/language-module.js.map +1 -1
  168. package/lib/langium/model-service/client-session.d.ts +383 -0
  169. package/lib/langium/model-service/client-session.d.ts.map +1 -0
  170. package/lib/langium/model-service/client-session.js +455 -0
  171. package/lib/langium/model-service/client-session.js.map +1 -0
  172. package/lib/langium/model-service/index.d.ts +2 -0
  173. package/lib/langium/model-service/index.d.ts.map +1 -1
  174. package/lib/langium/model-service/index.js +2 -0
  175. package/lib/langium/model-service/index.js.map +1 -1
  176. package/lib/langium/model-service/model-events.d.ts +66 -0
  177. package/lib/langium/model-service/model-events.d.ts.map +1 -0
  178. package/lib/langium/model-service/model-events.js +10 -0
  179. package/lib/langium/model-service/model-events.js.map +1 -0
  180. package/lib/langium/model-service/model-service.d.ts +480 -289
  181. package/lib/langium/model-service/model-service.d.ts.map +1 -1
  182. package/lib/langium/model-service/model-service.js +597 -456
  183. package/lib/langium/model-service/model-service.js.map +1 -1
  184. package/lib/langium/module.d.ts +158 -37
  185. package/lib/langium/module.d.ts.map +1 -1
  186. package/lib/langium/module.js +52 -36
  187. package/lib/langium/module.js.map +1 -1
  188. package/lib/langium/naming/name-provider.d.ts +42 -7
  189. package/lib/langium/naming/name-provider.d.ts.map +1 -1
  190. package/lib/langium/naming/name-provider.js +10 -4
  191. package/lib/langium/naming/name-provider.js.map +1 -1
  192. package/lib/langium/naming/name-separator-validation.d.ts +23 -1
  193. package/lib/langium/naming/name-separator-validation.d.ts.map +1 -1
  194. package/lib/langium/naming/name-separator-validation.js +22 -0
  195. package/lib/langium/naming/name-separator-validation.js.map +1 -1
  196. package/lib/langium/project/abstract-project-manager.d.ts.map +1 -1
  197. package/lib/langium/project/abstract-project-manager.js +13 -6
  198. package/lib/langium/project/abstract-project-manager.js.map +1 -1
  199. package/lib/langium/project/project-change-event.d.ts +2 -2
  200. package/lib/langium/project/single-project-manager.d.ts.map +1 -1
  201. package/lib/langium/project/single-project-manager.js.map +1 -1
  202. package/lib/langium/residency/cst-residency-service.d.ts +38 -14
  203. package/lib/langium/residency/cst-residency-service.d.ts.map +1 -1
  204. package/lib/langium/residency/cst-residency-service.js +24 -58
  205. package/lib/langium/residency/cst-residency-service.js.map +1 -1
  206. package/lib/langium/scope/ast-node-description-provider.d.ts.map +1 -1
  207. package/lib/langium/scope/ast-node-description-provider.js.map +1 -1
  208. package/lib/langium/scope/fallback-scope.d.ts +27 -0
  209. package/lib/langium/scope/fallback-scope.d.ts.map +1 -0
  210. package/lib/langium/scope/fallback-scope.js +35 -0
  211. package/lib/langium/scope/fallback-scope.js.map +1 -0
  212. package/lib/langium/scope/hydranium-scope-computation.d.ts +21 -18
  213. package/lib/langium/scope/hydranium-scope-computation.d.ts.map +1 -1
  214. package/lib/langium/scope/hydranium-scope-computation.js +38 -39
  215. package/lib/langium/scope/hydranium-scope-computation.js.map +1 -1
  216. package/lib/langium/scope/hydranium-scope-provider.d.ts +29 -11
  217. package/lib/langium/scope/hydranium-scope-provider.d.ts.map +1 -1
  218. package/lib/langium/scope/hydranium-scope-provider.js +37 -15
  219. package/lib/langium/scope/hydranium-scope-provider.js.map +1 -1
  220. package/lib/langium/scope/index.d.ts +1 -0
  221. package/lib/langium/scope/index.d.ts.map +1 -1
  222. package/lib/langium/scope/index.js +1 -0
  223. package/lib/langium/scope/index.js.map +1 -1
  224. package/lib/langium/scope/reference-builder.d.ts.map +1 -1
  225. package/lib/langium/scope/reference-builder.js.map +1 -1
  226. package/lib/langium/scope/reference-candidate-provider.d.ts +6 -5
  227. package/lib/langium/scope/reference-candidate-provider.d.ts.map +1 -1
  228. package/lib/langium/scope/reference-candidate-provider.js +3 -2
  229. package/lib/langium/scope/reference-candidate-provider.js.map +1 -1
  230. package/lib/langium/scope/scope-extension-service.d.ts +41 -37
  231. package/lib/langium/scope/scope-extension-service.d.ts.map +1 -1
  232. package/lib/langium/scope/scope-extension-service.js +57 -29
  233. package/lib/langium/scope/scope-extension-service.js.map +1 -1
  234. package/lib/langium/scope/scoped-ast-node-description.d.ts +1 -3
  235. package/lib/langium/scope/scoped-ast-node-description.d.ts.map +1 -1
  236. package/lib/langium/scope/scoped-ast-node-description.js +1 -3
  237. package/lib/langium/scope/scoped-ast-node-description.js.map +1 -1
  238. package/lib/langium/serialization/abstract-serializer.d.ts +38 -27
  239. package/lib/langium/serialization/abstract-serializer.d.ts.map +1 -1
  240. package/lib/langium/serialization/abstract-serializer.js +54 -30
  241. package/lib/langium/serialization/abstract-serializer.js.map +1 -1
  242. package/lib/langium/serialization/json-serializer.d.ts +8 -1
  243. package/lib/langium/serialization/json-serializer.d.ts.map +1 -1
  244. package/lib/langium/serialization/json-serializer.js +13 -3
  245. package/lib/langium/serialization/json-serializer.js.map +1 -1
  246. package/lib/langium/serialization/serializer.d.ts +1 -1
  247. package/lib/langium/serialization/yaml-serializer.d.ts +4 -0
  248. package/lib/langium/serialization/yaml-serializer.d.ts.map +1 -1
  249. package/lib/langium/serialization/yaml-serializer.js +4 -0
  250. package/lib/langium/serialization/yaml-serializer.js.map +1 -1
  251. package/lib/langium/service-registry.d.ts +29 -1
  252. package/lib/langium/service-registry.d.ts.map +1 -1
  253. package/lib/langium/service-registry.js +37 -0
  254. package/lib/langium/service-registry.js.map +1 -1
  255. package/lib/langium/shared-services.d.ts +23 -6
  256. package/lib/langium/shared-services.d.ts.map +1 -1
  257. package/lib/langium/shared-services.js.map +1 -1
  258. package/lib/langium/single-langium-copy.d.ts +22 -0
  259. package/lib/langium/single-langium-copy.d.ts.map +1 -0
  260. package/lib/langium/single-langium-copy.js +36 -0
  261. package/lib/langium/single-langium-copy.js.map +1 -0
  262. package/lib/langium/transfer/transfer-encoder.d.ts +84 -35
  263. package/lib/langium/transfer/transfer-encoder.d.ts.map +1 -1
  264. package/lib/langium/transfer/transfer-encoder.js +34 -23
  265. package/lib/langium/transfer/transfer-encoder.js.map +1 -1
  266. package/lib/langium/trivia/comment-preserver.d.ts +423 -0
  267. package/lib/langium/trivia/comment-preserver.d.ts.map +1 -0
  268. package/lib/langium/trivia/comment-preserver.js +906 -0
  269. package/lib/langium/trivia/comment-preserver.js.map +1 -0
  270. package/lib/langium/trivia/document-ending-preserver.d.ts +51 -0
  271. package/lib/langium/trivia/document-ending-preserver.d.ts.map +1 -0
  272. package/lib/langium/trivia/document-ending-preserver.js +62 -0
  273. package/lib/langium/trivia/document-ending-preserver.js.map +1 -0
  274. package/lib/langium/trivia/index.d.ts +14 -0
  275. package/lib/langium/trivia/index.d.ts.map +1 -0
  276. package/lib/langium/trivia/index.js +14 -0
  277. package/lib/langium/trivia/index.js.map +1 -0
  278. package/lib/langium/trivia/trivia-contribution.d.ts +37 -0
  279. package/lib/langium/trivia/trivia-contribution.d.ts.map +1 -0
  280. package/lib/langium/trivia/trivia-contribution.js +10 -0
  281. package/lib/langium/trivia/trivia-contribution.js.map +1 -0
  282. package/lib/langium/trivia/trivia-preserver.d.ts +52 -0
  283. package/lib/langium/trivia/trivia-preserver.d.ts.map +1 -0
  284. package/lib/langium/trivia/trivia-preserver.js +10 -0
  285. package/lib/langium/trivia/trivia-preserver.js.map +1 -0
  286. package/lib/langium/trivia/trivia-service.d.ts +70 -0
  287. package/lib/langium/trivia/trivia-service.d.ts.map +1 -0
  288. package/lib/langium/trivia/trivia-service.js +56 -0
  289. package/lib/langium/trivia/trivia-service.js.map +1 -0
  290. package/lib/langium/update-rewrite/normalize-empty-strings.d.ts.map +1 -1
  291. package/lib/langium/update-rewrite/update-rewrite-service.d.ts +1 -1
  292. package/lib/langium/update-rewrite/update-rewrite-service.d.ts.map +1 -1
  293. package/lib/langium/update-rewrite/update-rewrite-service.js.map +1 -1
  294. package/lib/langium/update-rewrite/update-rewrite.d.ts +1 -1
  295. package/lib/langium/validation/document-validator.d.ts +280 -9
  296. package/lib/langium/validation/document-validator.d.ts.map +1 -1
  297. package/lib/langium/validation/document-validator.js +453 -8
  298. package/lib/langium/validation/document-validator.js.map +1 -1
  299. package/lib/langium/validation/validation-contribution-collector.d.ts +9 -1
  300. package/lib/langium/validation/validation-contribution-collector.d.ts.map +1 -1
  301. package/lib/langium/validation/validation-contribution-collector.js +1 -1
  302. package/lib/langium/validation/validation-contribution-collector.js.map +1 -1
  303. package/lib/langium/workspace/document-uri-policy.d.ts +24 -15
  304. package/lib/langium/workspace/document-uri-policy.d.ts.map +1 -1
  305. package/lib/langium/workspace/document-uri-policy.js +22 -13
  306. package/lib/langium/workspace/document-uri-policy.js.map +1 -1
  307. package/lib/langium/workspace/file-not-found.d.ts +23 -0
  308. package/lib/langium/workspace/file-not-found.d.ts.map +1 -0
  309. package/lib/langium/workspace/file-not-found.js +31 -0
  310. package/lib/langium/workspace/file-not-found.js.map +1 -0
  311. package/lib/langium/workspace/file-system-provider.d.ts +167 -8
  312. package/lib/langium/workspace/file-system-provider.d.ts.map +1 -1
  313. package/lib/langium/workspace/file-system-provider.js +115 -13
  314. package/lib/langium/workspace/file-system-provider.js.map +1 -1
  315. package/lib/langium/workspace/hydranium-langium-document-factory.d.ts +31 -1
  316. package/lib/langium/workspace/hydranium-langium-document-factory.d.ts.map +1 -1
  317. package/lib/langium/workspace/hydranium-langium-document-factory.js +54 -0
  318. package/lib/langium/workspace/hydranium-langium-document-factory.js.map +1 -1
  319. package/lib/langium/workspace/hydranium-workspace-lock.d.ts +43 -1
  320. package/lib/langium/workspace/hydranium-workspace-lock.d.ts.map +1 -1
  321. package/lib/langium/workspace/hydranium-workspace-lock.js +58 -1
  322. package/lib/langium/workspace/hydranium-workspace-lock.js.map +1 -1
  323. package/lib/langium/workspace/hydranium-workspace-manager.d.ts +124 -22
  324. package/lib/langium/workspace/hydranium-workspace-manager.d.ts.map +1 -1
  325. package/lib/langium/workspace/hydranium-workspace-manager.js +212 -31
  326. package/lib/langium/workspace/hydranium-workspace-manager.js.map +1 -1
  327. package/lib/langium/workspace/in-memory-file-system-provider.d.ts +26 -9
  328. package/lib/langium/workspace/in-memory-file-system-provider.d.ts.map +1 -1
  329. package/lib/langium/workspace/in-memory-file-system-provider.js +45 -22
  330. package/lib/langium/workspace/in-memory-file-system-provider.js.map +1 -1
  331. package/lib/langium/workspace/index-manager.d.ts.map +1 -1
  332. package/lib/langium/workspace/index-manager.js.map +1 -1
  333. package/lib/langium/workspace/index.d.ts +1 -0
  334. package/lib/langium/workspace/index.d.ts.map +1 -1
  335. package/lib/langium/workspace/index.js +1 -0
  336. package/lib/langium/workspace/index.js.map +1 -1
  337. package/lib/langium/workspace/initialize-workspace.d.ts +61 -4
  338. package/lib/langium/workspace/initialize-workspace.d.ts.map +1 -1
  339. package/lib/langium/workspace/initialize-workspace.js +80 -7
  340. package/lib/langium/workspace/initialize-workspace.js.map +1 -1
  341. package/lib/langium/workspace/langium-documents.d.ts +7 -0
  342. package/lib/langium/workspace/langium-documents.d.ts.map +1 -1
  343. package/lib/langium/workspace/langium-documents.js +18 -1
  344. package/lib/langium/workspace/langium-documents.js.map +1 -1
  345. package/lib/langium/workspace/persistent-file-system-provider.d.ts +16 -10
  346. package/lib/langium/workspace/persistent-file-system-provider.d.ts.map +1 -1
  347. package/lib/langium/workspace/persistent-file-system-provider.js +25 -13
  348. package/lib/langium/workspace/persistent-file-system-provider.js.map +1 -1
  349. package/lib/langium/workspace/self-save-registry.d.ts +84 -0
  350. package/lib/langium/workspace/self-save-registry.d.ts.map +1 -0
  351. package/lib/{documents → langium/workspace}/self-save-registry.js +33 -22
  352. package/lib/langium/workspace/self-save-registry.js.map +1 -0
  353. package/lib/langium/workspace/virtual-document.d.ts +55 -21
  354. package/lib/langium/workspace/virtual-document.d.ts.map +1 -1
  355. package/lib/langium/workspace/virtual-document.js +87 -24
  356. package/lib/langium/workspace/virtual-document.js.map +1 -1
  357. package/lib/langium/workspace/write-lock-scope.d.ts +22 -10
  358. package/lib/langium/workspace/write-lock-scope.d.ts.map +1 -1
  359. package/lib/langium/workspace/write-lock-scope.js +15 -5
  360. package/lib/langium/workspace/write-lock-scope.js.map +1 -1
  361. package/lib/launcher/integrated-server.d.ts +3 -1
  362. package/lib/launcher/integrated-server.d.ts.map +1 -1
  363. package/lib/locale/index.d.ts +10 -0
  364. package/lib/locale/index.d.ts.map +1 -0
  365. package/lib/locale/index.js +10 -0
  366. package/lib/locale/index.js.map +1 -0
  367. package/lib/locale/server-locale.d.ts +73 -0
  368. package/lib/locale/server-locale.d.ts.map +1 -0
  369. package/lib/locale/server-locale.js +61 -0
  370. package/lib/locale/server-locale.js.map +1 -0
  371. package/lib/lsp/completion/hydranium-completion-provider.d.ts +44 -2
  372. package/lib/lsp/completion/hydranium-completion-provider.d.ts.map +1 -1
  373. package/lib/lsp/completion/hydranium-completion-provider.js +68 -0
  374. package/lib/lsp/completion/hydranium-completion-provider.js.map +1 -1
  375. package/lib/lsp/connection-features.d.ts +23 -0
  376. package/lib/lsp/connection-features.d.ts.map +1 -0
  377. package/lib/lsp/connection-features.js +60 -0
  378. package/lib/lsp/connection-features.js.map +1 -0
  379. package/lib/lsp/diagnostics-connection.d.ts +27 -0
  380. package/lib/lsp/diagnostics-connection.d.ts.map +1 -0
  381. package/lib/lsp/diagnostics-connection.js +53 -0
  382. package/lib/lsp/diagnostics-connection.js.map +1 -0
  383. package/lib/lsp/hydranium-document-update-handler.d.ts +126 -82
  384. package/lib/lsp/hydranium-document-update-handler.d.ts.map +1 -1
  385. package/lib/lsp/hydranium-document-update-handler.js +235 -102
  386. package/lib/lsp/hydranium-document-update-handler.js.map +1 -1
  387. package/lib/lsp/index.d.ts +4 -1
  388. package/lib/lsp/index.d.ts.map +1 -1
  389. package/lib/lsp/index.js +4 -1
  390. package/lib/lsp/index.js.map +1 -1
  391. package/lib/lsp/lsp-latency.d.ts +39 -0
  392. package/lib/lsp/lsp-latency.d.ts.map +1 -0
  393. package/lib/lsp/lsp-latency.js +58 -0
  394. package/lib/lsp/lsp-latency.js.map +1 -0
  395. package/lib/lsp/save-text-document.d.ts +31 -0
  396. package/lib/lsp/save-text-document.d.ts.map +1 -0
  397. package/lib/lsp/save-text-document.js +52 -0
  398. package/lib/lsp/save-text-document.js.map +1 -0
  399. package/lib/lsp/semantic-token-provider.d.ts +34 -1
  400. package/lib/lsp/semantic-token-provider.d.ts.map +1 -1
  401. package/lib/lsp/semantic-token-provider.js +55 -8
  402. package/lib/lsp/semantic-token-provider.js.map +1 -1
  403. package/lib/lsp/shared-module.d.ts +4 -8
  404. package/lib/lsp/shared-module.d.ts.map +1 -1
  405. package/lib/lsp/shared-module.js.map +1 -1
  406. package/lib/lsp/start-language-server.d.ts +8 -7
  407. package/lib/lsp/start-language-server.d.ts.map +1 -1
  408. package/lib/lsp/start-language-server.js +13 -7
  409. package/lib/lsp/start-language-server.js.map +1 -1
  410. package/lib/messages/carriers.d.ts +18 -12
  411. package/lib/messages/carriers.d.ts.map +1 -1
  412. package/lib/messages/carriers.js +22 -13
  413. package/lib/messages/carriers.js.map +1 -1
  414. package/lib/messages/index.d.ts +4 -1
  415. package/lib/messages/index.d.ts.map +1 -1
  416. package/lib/messages/index.js +4 -1
  417. package/lib/messages/index.js.map +1 -1
  418. package/lib/messages/renderer.d.ts +142 -0
  419. package/lib/messages/renderer.d.ts.map +1 -0
  420. package/lib/messages/renderer.js +165 -0
  421. package/lib/messages/renderer.js.map +1 -0
  422. package/lib/node/event-loop-monitor.d.ts.map +1 -1
  423. package/lib/node/event-loop-monitor.js +2 -1
  424. package/lib/node/event-loop-monitor.js.map +1 -1
  425. package/lib/node/heap-ceiling.d.ts +61 -0
  426. package/lib/node/heap-ceiling.d.ts.map +1 -0
  427. package/lib/node/heap-ceiling.js +72 -0
  428. package/lib/node/heap-ceiling.js.map +1 -0
  429. package/lib/node/index.d.ts +1 -1
  430. package/lib/node/index.d.ts.map +1 -1
  431. package/lib/node/index.js +5 -1
  432. package/lib/node/index.js.map +1 -1
  433. package/lib/node/latency-from-env.d.ts +1 -1
  434. package/lib/node/latency-from-env.js +1 -1
  435. package/lib/node/lint-grammar.js.map +1 -1
  436. package/lib/node/log-preamble-node.d.ts +5 -3
  437. package/lib/node/log-preamble-node.d.ts.map +1 -1
  438. package/lib/node/log-preamble-node.js +13 -10
  439. package/lib/node/log-preamble-node.js.map +1 -1
  440. package/lib/node/measure-memory.d.ts.map +1 -1
  441. package/lib/node/measure-memory.js +5 -4
  442. package/lib/node/measure-memory.js.map +1 -1
  443. package/lib/node/memory-monitor.d.ts +2 -2
  444. package/lib/node/memory-monitor.d.ts.map +1 -1
  445. package/lib/node/memory-monitor.js +9 -10
  446. package/lib/node/memory-monitor.js.map +1 -1
  447. package/lib/node/node-file-system-provider.d.ts +67 -9
  448. package/lib/node/node-file-system-provider.d.ts.map +1 -1
  449. package/lib/node/node-file-system-provider.js +198 -53
  450. package/lib/node/node-file-system-provider.js.map +1 -1
  451. package/lib/node/profile-capture.d.ts +12 -4
  452. package/lib/node/profile-capture.d.ts.map +1 -1
  453. package/lib/node/profile-capture.js +8 -6
  454. package/lib/node/profile-capture.js.map +1 -1
  455. package/lib/node/profile-digest.js.map +1 -1
  456. package/lib/node/profiling-run.d.ts +13 -3
  457. package/lib/node/profiling-run.d.ts.map +1 -1
  458. package/lib/node/profiling-run.js +17 -8
  459. package/lib/node/profiling-run.js.map +1 -1
  460. package/lib/node/rename-over-open-readers.d.ts +61 -0
  461. package/lib/node/rename-over-open-readers.d.ts.map +1 -0
  462. package/lib/node/rename-over-open-readers.js +80 -0
  463. package/lib/node/rename-over-open-readers.js.map +1 -0
  464. package/lib/node/server-diagnostics.js +1 -1
  465. package/lib/node/server-diagnostics.js.map +1 -1
  466. package/lib/node/server-state-snapshot.js +4 -4
  467. package/lib/node/server-state-snapshot.js.map +1 -1
  468. package/lib/node/socket-launcher.d.ts +43 -7
  469. package/lib/node/socket-launcher.d.ts.map +1 -1
  470. package/lib/node/socket-launcher.js +42 -7
  471. package/lib/node/socket-launcher.js.map +1 -1
  472. package/lib/node/startup-cpu-profile.d.ts +29 -0
  473. package/lib/node/startup-cpu-profile.d.ts.map +1 -0
  474. package/lib/node/startup-cpu-profile.js +91 -0
  475. package/lib/node/startup-cpu-profile.js.map +1 -0
  476. package/lib/node/stdio-launcher.d.ts +13 -13
  477. package/lib/node/stdio-launcher.d.ts.map +1 -1
  478. package/lib/node/stdio-launcher.js +21 -11
  479. package/lib/node/stdio-launcher.js.map +1 -1
  480. package/lib/testing/document-uri-policy-conformance.js +1 -1
  481. package/lib/testing/document-uri-policy-conformance.js.map +1 -1
  482. package/lib/testing/fake-description.js.map +1 -1
  483. package/lib/testing/fake-document.d.ts +2 -1
  484. package/lib/testing/fake-document.d.ts.map +1 -1
  485. package/lib/testing/fake-document.js.map +1 -1
  486. package/lib/testing/index.d.ts +1 -1
  487. package/lib/testing/index.d.ts.map +1 -1
  488. package/lib/testing/index.js +2 -1
  489. package/lib/testing/index.js.map +1 -1
  490. package/lib/testing/langium-test-helpers.d.ts.map +1 -1
  491. package/lib/testing/langium-test-helpers.js +1 -0
  492. package/lib/testing/langium-test-helpers.js.map +1 -1
  493. package/lib/testing/make-noop-language-services.js.map +1 -1
  494. package/lib/testing/make-noop-shared-services.d.ts +14 -0
  495. package/lib/testing/make-noop-shared-services.d.ts.map +1 -1
  496. package/lib/testing/make-noop-shared-services.js +28 -2
  497. package/lib/testing/make-noop-shared-services.js.map +1 -1
  498. package/lib/testing/make-test-services.d.ts +72 -14
  499. package/lib/testing/make-test-services.d.ts.map +1 -1
  500. package/lib/testing/make-test-services.js +42 -10
  501. package/lib/testing/make-test-services.js.map +1 -1
  502. package/lib/testing/make-test-tracer.d.ts +12 -0
  503. package/lib/testing/make-test-tracer.d.ts.map +1 -1
  504. package/lib/testing/make-test-tracer.js +13 -0
  505. package/lib/testing/make-test-tracer.js.map +1 -1
  506. package/lib/testing/node/applied-edit-capture.d.ts +29 -0
  507. package/lib/testing/node/applied-edit-capture.d.ts.map +1 -0
  508. package/lib/testing/node/applied-edit-capture.js +117 -0
  509. package/lib/testing/node/applied-edit-capture.js.map +1 -0
  510. package/lib/testing/node/golden-corpus.js.map +1 -1
  511. package/lib/testing/node/index.d.ts +1 -0
  512. package/lib/testing/node/index.d.ts.map +1 -1
  513. package/lib/testing/node/index.js +1 -0
  514. package/lib/testing/node/index.js.map +1 -1
  515. package/lib/testing/node/lsp-harness.d.ts.map +1 -1
  516. package/lib/testing/node/lsp-harness.js +2 -0
  517. package/lib/testing/node/lsp-harness.js.map +1 -1
  518. package/lib/testing/node/lsp-server-connection.d.ts +21 -6
  519. package/lib/testing/node/lsp-server-connection.d.ts.map +1 -1
  520. package/lib/testing/node/lsp-server-connection.js +49 -106
  521. package/lib/testing/node/lsp-server-connection.js.map +1 -1
  522. package/lib/testing/node/scratch-workspace.d.ts.map +1 -1
  523. package/lib/testing/node/scratch-workspace.js +10 -5
  524. package/lib/testing/node/scratch-workspace.js.map +1 -1
  525. package/lib/testing/node/spawned-server.d.ts +30 -1
  526. package/lib/testing/node/spawned-server.d.ts.map +1 -1
  527. package/lib/testing/node/spawned-server.js +39 -2
  528. package/lib/testing/node/spawned-server.js.map +1 -1
  529. package/lib/testing/node/unhandled-rejections.d.ts +20 -0
  530. package/lib/testing/node/unhandled-rejections.d.ts.map +1 -0
  531. package/lib/testing/node/unhandled-rejections.js +32 -0
  532. package/lib/testing/node/unhandled-rejections.js.map +1 -0
  533. package/lib/testing/playwright/browser-capture-bridge.js.map +1 -1
  534. package/lib/testing/playwright/e2e-profiling.js.map +1 -1
  535. package/lib/testing/playwright/flaky-network-proxy.d.ts +76 -0
  536. package/lib/testing/playwright/flaky-network-proxy.d.ts.map +1 -0
  537. package/lib/testing/playwright/flaky-network-proxy.js +164 -0
  538. package/lib/testing/playwright/flaky-network-proxy.js.map +1 -0
  539. package/lib/testing/playwright/index.d.ts +1 -0
  540. package/lib/testing/playwright/index.d.ts.map +1 -1
  541. package/lib/testing/playwright/index.js +1 -0
  542. package/lib/testing/playwright/index.js.map +1 -1
  543. package/lib/testing/playwright/server-log-capture.d.ts +46 -16
  544. package/lib/testing/playwright/server-log-capture.d.ts.map +1 -1
  545. package/lib/testing/playwright/server-log-capture.js +111 -40
  546. package/lib/testing/playwright/server-log-capture.js.map +1 -1
  547. package/lib/testing/playwright/server-log-fixture.d.ts +16 -0
  548. package/lib/testing/playwright/server-log-fixture.d.ts.map +1 -1
  549. package/lib/testing/playwright/server-log-fixture.js +25 -6
  550. package/lib/testing/playwright/server-log-fixture.js.map +1 -1
  551. package/lib/testing/playwright/server-log-region.d.ts +15 -0
  552. package/lib/testing/playwright/server-log-region.d.ts.map +1 -0
  553. package/lib/testing/playwright/server-log-region.js +30 -0
  554. package/lib/testing/playwright/server-log-region.js.map +1 -0
  555. package/lib/testing/playwright/server-log-rename-reporter.d.ts.map +1 -1
  556. package/lib/testing/playwright/server-log-rename-reporter.js +4 -3
  557. package/lib/testing/playwright/server-log-rename-reporter.js.map +1 -1
  558. package/lib/testing/run-update-pipeline.d.ts +8 -5
  559. package/lib/testing/run-update-pipeline.d.ts.map +1 -1
  560. package/lib/testing/run-update-pipeline.js.map +1 -1
  561. package/lib/testing/stub-ast-document-manager.d.ts +11 -52
  562. package/lib/testing/stub-ast-document-manager.d.ts.map +1 -1
  563. package/lib/testing/stub-ast-document-manager.js +31 -62
  564. package/lib/testing/stub-ast-document-manager.js.map +1 -1
  565. package/lib/testing/stub-document-builder.d.ts +33 -11
  566. package/lib/testing/stub-document-builder.d.ts.map +1 -1
  567. package/lib/testing/stub-document-builder.js +103 -5
  568. package/lib/testing/stub-document-builder.js.map +1 -1
  569. package/lib/testing/stub-hydranium-text-documents.d.ts +33 -10
  570. package/lib/testing/stub-hydranium-text-documents.d.ts.map +1 -1
  571. package/lib/testing/stub-hydranium-text-documents.js +132 -16
  572. package/lib/testing/stub-hydranium-text-documents.js.map +1 -1
  573. package/lib/testing/stub-index-manager.js.map +1 -1
  574. package/lib/testing/stub-langium-documents.d.ts +3 -2
  575. package/lib/testing/stub-langium-documents.d.ts.map +1 -1
  576. package/lib/testing/stub-langium-documents.js.map +1 -1
  577. package/lib/testing/stub-model-service.d.ts +9 -8
  578. package/lib/testing/stub-model-service.d.ts.map +1 -1
  579. package/lib/testing/stub-model-service.js +6 -6
  580. package/lib/testing/stub-model-service.js.map +1 -1
  581. package/lib/testing/stub-project-manager.js.map +1 -1
  582. package/lib/testing/stub-self-save-registry.d.ts +1 -1
  583. package/lib/testing/stub-self-save-registry.d.ts.map +1 -1
  584. package/lib/testing/stub-service-registry.d.ts +1 -1
  585. package/lib/testing/stub-service-registry.js.map +1 -1
  586. package/lib/testing/stub-writable-file-system.d.ts +1 -1
  587. package/lib/testing/stub-writable-file-system.d.ts.map +1 -1
  588. package/lib/testing/stub-writable-file-system.js +2 -1
  589. package/lib/testing/stub-writable-file-system.js.map +1 -1
  590. package/lib/util/connection-liveness.d.ts +19 -6
  591. package/lib/util/connection-liveness.d.ts.map +1 -1
  592. package/lib/util/connection-liveness.js +61 -15
  593. package/lib/util/connection-liveness.js.map +1 -1
  594. package/lib/util/environment.d.ts.map +1 -1
  595. package/lib/util/environment.js.map +1 -1
  596. package/lib/util/registry.d.ts.map +1 -1
  597. package/package.json +38 -57
  598. package/src/browser/host-heads-in-worker.ts +218 -0
  599. package/src/browser/index.ts +17 -0
  600. package/src/browser/indexeddb-file-system-store.ts +192 -0
  601. package/src/browser/start-language-server-in-worker.ts +56 -0
  602. package/src/documents/ast-document-manager.ts +467 -233
  603. package/src/documents/client-ids.ts +5 -22
  604. package/src/documents/client-session-errors.ts +24 -0
  605. package/src/documents/client-session-registry.ts +262 -0
  606. package/src/documents/dirty-state-tracker.ts +167 -0
  607. package/src/documents/document-release-handler.ts +404 -0
  608. package/src/documents/document-release-scheduler.ts +121 -0
  609. package/src/documents/file-system-task-queue.ts +74 -0
  610. package/src/documents/hydranium-text-documents.ts +1022 -595
  611. package/src/documents/index.ts +10 -2
  612. package/src/documents/language-client-shadow.ts +501 -0
  613. package/src/documents/model-ledger.ts +66 -0
  614. package/src/documents/text-ledger.ts +112 -0
  615. package/src/documents/version-sync-service.ts +275 -0
  616. package/src/index.ts +8 -0
  617. package/src/langium/ast-extension/ast-extension-service.ts +77 -41
  618. package/src/langium/bootstrap.ts +95 -52
  619. package/src/langium/build-phase-pass/build-phase-pass-service.ts +29 -19
  620. package/src/langium/build-phase-pass/build-phase-pass.ts +37 -8
  621. package/src/langium/composite-ast-reflection.ts +112 -0
  622. package/src/langium/config/configuration-provider.ts +119 -0
  623. package/src/langium/config/index.ts +1 -0
  624. package/src/langium/diagnostics/hydranium-langium-profiler.ts +15 -39
  625. package/src/langium/diagnostics/log-preamble.ts +1 -1
  626. package/src/langium/diagnostics/logger.ts +38 -11
  627. package/src/langium/diagnostics/lsp-logger.ts +61 -16
  628. package/src/langium/document-builder/build-pipeline-integration.ts +46 -32
  629. package/src/langium/document-builder/build-session.ts +4 -3
  630. package/src/langium/document-builder/document-builder.ts +616 -73
  631. package/src/langium/integration-services.ts +59 -28
  632. package/src/langium/integrity/integrity-rule.ts +17 -8
  633. package/src/langium/integrity/integrity-service.ts +332 -69
  634. package/src/langium/keys/containment.ts +87 -0
  635. package/src/langium/keys/index.ts +1 -0
  636. package/src/langium/keys/name-based-key-provider.ts +4 -0
  637. package/src/langium/language-module.ts +49 -8
  638. package/src/langium/model-service/client-session.ts +718 -0
  639. package/src/langium/model-service/index.ts +2 -0
  640. package/src/langium/model-service/model-events.ts +80 -0
  641. package/src/langium/model-service/model-service.ts +908 -485
  642. package/src/langium/module.ts +212 -67
  643. package/src/langium/naming/name-provider.ts +44 -8
  644. package/src/langium/naming/name-separator-validation.ts +25 -3
  645. package/src/langium/project/abstract-project-manager.ts +13 -5
  646. package/src/langium/project/project-change-event.ts +2 -2
  647. package/src/langium/residency/cst-residency-service.ts +54 -19
  648. package/src/langium/scope/fallback-scope.ts +38 -0
  649. package/src/langium/scope/hydranium-scope-computation.ts +45 -44
  650. package/src/langium/scope/hydranium-scope-provider.ts +49 -16
  651. package/src/langium/scope/index.ts +1 -0
  652. package/src/langium/scope/reference-candidate-provider.ts +6 -5
  653. package/src/langium/scope/scope-extension-service.ts +74 -59
  654. package/src/langium/scope/scoped-ast-node-description.ts +1 -3
  655. package/src/langium/serialization/abstract-serializer.ts +57 -41
  656. package/src/langium/serialization/json-serializer.ts +14 -3
  657. package/src/langium/serialization/serializer.ts +1 -1
  658. package/src/langium/serialization/yaml-serializer.ts +4 -0
  659. package/src/langium/service-registry.ts +41 -2
  660. package/src/langium/shared-services.ts +26 -6
  661. package/src/langium/single-langium-copy.ts +42 -0
  662. package/src/langium/transfer/transfer-encoder.ts +102 -45
  663. package/src/langium/trivia/comment-preserver.ts +1100 -0
  664. package/src/langium/trivia/document-ending-preserver.ts +71 -0
  665. package/src/langium/trivia/index.ts +14 -0
  666. package/src/langium/trivia/trivia-contribution.ts +39 -0
  667. package/src/langium/trivia/trivia-preserver.ts +56 -0
  668. package/src/langium/trivia/trivia-service.ts +99 -0
  669. package/src/langium/update-rewrite/update-rewrite-service.ts +1 -1
  670. package/src/langium/update-rewrite/update-rewrite.ts +1 -1
  671. package/src/langium/validation/document-validator.ts +528 -13
  672. package/src/langium/validation/validation-contribution-collector.ts +10 -1
  673. package/src/langium/workspace/document-uri-policy.ts +32 -18
  674. package/src/langium/workspace/file-not-found.ts +35 -0
  675. package/src/langium/workspace/file-system-provider.ts +258 -16
  676. package/src/langium/workspace/hydranium-langium-document-factory.ts +83 -0
  677. package/src/langium/workspace/hydranium-workspace-lock.ts +86 -2
  678. package/src/langium/workspace/hydranium-workspace-manager.ts +241 -35
  679. package/src/langium/workspace/in-memory-file-system-provider.ts +54 -23
  680. package/src/langium/workspace/index.ts +1 -0
  681. package/src/langium/workspace/initialize-workspace.ts +129 -8
  682. package/src/langium/workspace/langium-documents.ts +19 -1
  683. package/src/langium/workspace/persistent-file-system-provider.ts +27 -15
  684. package/src/langium/workspace/self-save-registry.ts +118 -0
  685. package/src/langium/workspace/virtual-document.ts +106 -25
  686. package/src/langium/workspace/write-lock-scope.ts +27 -12
  687. package/src/launcher/integrated-server.ts +3 -1
  688. package/src/locale/index.ts +10 -0
  689. package/src/locale/server-locale.ts +86 -0
  690. package/src/lsp/completion/hydranium-completion-provider.ts +82 -2
  691. package/src/lsp/connection-features.ts +67 -0
  692. package/src/lsp/diagnostics-connection.ts +56 -0
  693. package/src/lsp/hydranium-document-update-handler.ts +285 -111
  694. package/src/lsp/index.ts +4 -1
  695. package/src/lsp/lsp-latency.ts +62 -0
  696. package/src/lsp/save-text-document.ts +63 -0
  697. package/src/lsp/semantic-token-provider.ts +74 -7
  698. package/src/lsp/shared-module.ts +4 -8
  699. package/src/lsp/start-language-server.ts +13 -7
  700. package/src/messages/carriers.ts +23 -15
  701. package/src/messages/index.ts +13 -1
  702. package/src/messages/renderer.ts +212 -0
  703. package/src/node/event-loop-monitor.ts +2 -1
  704. package/src/node/heap-ceiling.ts +108 -0
  705. package/src/node/index.ts +5 -1
  706. package/src/node/latency-from-env.ts +1 -1
  707. package/src/node/log-preamble-node.ts +20 -10
  708. package/src/node/measure-memory.ts +5 -4
  709. package/src/node/memory-monitor.ts +10 -10
  710. package/src/node/node-file-system-provider.ts +214 -57
  711. package/src/node/profile-capture.ts +16 -15
  712. package/src/node/profiling-run.ts +30 -8
  713. package/src/node/rename-over-open-readers.ts +94 -0
  714. package/src/node/server-diagnostics.ts +1 -1
  715. package/src/node/server-state-snapshot.ts +5 -5
  716. package/src/node/socket-launcher.ts +78 -14
  717. package/src/node/startup-cpu-profile.ts +94 -0
  718. package/src/node/stdio-launcher.ts +29 -19
  719. package/src/testing/document-uri-policy-conformance.ts +1 -1
  720. package/src/testing/fake-document.ts +2 -1
  721. package/src/testing/index.ts +2 -1
  722. package/src/testing/langium-test-helpers.ts +1 -0
  723. package/src/testing/make-noop-shared-services.ts +50 -2
  724. package/src/testing/make-test-services.ts +125 -31
  725. package/src/testing/make-test-tracer.ts +26 -0
  726. package/src/testing/node/applied-edit-capture.ts +141 -0
  727. package/src/testing/node/index.ts +1 -0
  728. package/src/testing/node/lsp-harness.ts +2 -0
  729. package/src/testing/node/lsp-server-connection.ts +83 -119
  730. package/src/testing/node/scratch-workspace.ts +10 -5
  731. package/src/testing/node/spawned-server.ts +57 -3
  732. package/src/testing/node/unhandled-rejections.ts +31 -0
  733. package/src/testing/parse-semantic-root.ts +1 -1
  734. package/src/testing/playwright/flaky-network-proxy.ts +240 -0
  735. package/src/testing/playwright/index.ts +1 -0
  736. package/src/testing/playwright/server-log-capture.ts +137 -47
  737. package/src/testing/playwright/server-log-fixture.ts +46 -6
  738. package/src/testing/playwright/server-log-region.ts +32 -0
  739. package/src/testing/playwright/server-log-rename-reporter.ts +4 -3
  740. package/src/testing/run-update-pipeline.ts +8 -5
  741. package/src/testing/stub-ast-document-manager.ts +47 -128
  742. package/src/testing/stub-document-builder.ts +133 -18
  743. package/src/testing/stub-hydranium-text-documents.ts +184 -27
  744. package/src/testing/stub-langium-documents.ts +3 -2
  745. package/src/testing/stub-model-service.ts +11 -10
  746. package/src/testing/stub-self-save-registry.ts +1 -1
  747. package/src/testing/stub-service-registry.ts +1 -1
  748. package/src/testing/stub-writable-file-system.ts +3 -2
  749. package/src/util/connection-liveness.ts +67 -15
  750. package/src/util/environment.ts +9 -1
  751. package/lib/documents/language-client-text-shadow.d.ts +0 -101
  752. package/lib/documents/language-client-text-shadow.d.ts.map +0 -1
  753. package/lib/documents/language-client-text-shadow.js +0 -156
  754. package/lib/documents/language-client-text-shadow.js.map +0 -1
  755. package/lib/documents/self-save-registry.d.ts +0 -55
  756. package/lib/documents/self-save-registry.d.ts.map +0 -1
  757. package/lib/documents/self-save-registry.js.map +0 -1
  758. package/lib/lsp/instrument-connection.d.ts +0 -36
  759. package/lib/lsp/instrument-connection.d.ts.map +0 -1
  760. package/lib/lsp/instrument-connection.js +0 -62
  761. package/lib/lsp/instrument-connection.js.map +0 -1
  762. package/lib/node/process-memory.d.ts +0 -66
  763. package/lib/node/process-memory.d.ts.map +0 -1
  764. package/lib/node/process-memory.js +0 -252
  765. package/lib/node/process-memory.js.map +0 -1
  766. package/src/documents/language-client-text-shadow.ts +0 -175
  767. package/src/documents/self-save-registry.ts +0 -81
  768. package/src/lsp/instrument-connection.ts +0 -66
  769. package/src/node/process-memory.ts +0 -299
@@ -18,8 +18,7 @@ import {
18
18
  } from '@hydranium/langium/lsp';
19
19
  import { DEFAULT_EAGER_SERVICES, bootstrapLangiumLanguages } from './bootstrap.js';
20
20
  import { createServerLanguageModule } from './language-module.js';
21
- import { createServerSharedModule, type ServerModuleContext } from './module.js';
22
- import type { ServerSharedServicesMinimal } from './shared-services.js';
21
+ import { createServerSharedModule, type ServerModuleContext, type ServerSharedServices } from './module.js';
23
22
 
24
23
  /**
25
24
  * Options accepted by {@link createIntegrationServices}. Wraps the
@@ -40,7 +39,7 @@ import type { ServerSharedServicesMinimal } from './shared-services.js';
40
39
  */
41
40
  export interface IntegrationServicesOptions<
42
41
  TContext extends ServerModuleContext,
43
- TShared extends LangiumSharedServices & ServerSharedServicesMinimal,
42
+ TShared extends LangiumSharedServices & ServerSharedServices,
44
43
  TLanguage extends LangiumServices
45
44
  > {
46
45
  /**
@@ -69,17 +68,17 @@ export interface IntegrationServicesOptions<
69
68
  /**
70
69
  * Module emitted by `langium-cli` (grammar metadata, AST reflection).
71
70
  *
72
- * `AstReflection` is a SINGLE shared slot, so in a multi-grammar
73
- * composition this must be the *combined* generated shared module of
74
- * ONE `langium-cli` run over all grammars (one `langium-config.json`
75
- * with several entry grammars). Two independently generated language
76
- * packages each bind this one slot and the last one wins, leaving the
77
- * other grammar's types unknown to reflection — `isSubtype` answers
78
- * false, `getTypeMetaData` is empty, and indexing, reference routing
79
- * and the transfer encoder all silently miss those types.
71
+ * `AstReflection` is a single shared slot, so in a multi-grammar
72
+ * composition this must cover every grammar: either the combined
73
+ * generated shared module of one `langium-cli` run over all grammars,
74
+ * or a module binding `AstReflection` to a `CompositeAstReflection`
75
+ * over each separately generated package's reflection. Spreading two
76
+ * packages' generated shared modules instead keeps only the last one's
77
+ * reflection — `isSubtype` answers false for the other grammar's types,
78
+ * `getTypeMetaData` is empty, and indexing, reference routing and the
79
+ * transfer encoder all silently miss them.
80
80
  * {@link bootstrapLangiumLanguages} throws when a language's types are
81
- * wholly absent and warns on a partial gap, because the types cannot
82
- * express "these modules came from one generator run".
81
+ * wholly absent and warns on a partial gap.
83
82
  */
84
83
  generated: Module<TShared, PartialLangiumSharedServices>;
85
84
  /** Adopter's override module (workspace manager, file-system provider, integrity rules, etc.). */
@@ -104,7 +103,7 @@ export interface IntegrationServicesOptions<
104
103
  *
105
104
  * Both differences are the point, and neither is served by
106
105
  * {@link extra}. Most framework shared services are constructed with
107
- * no options (`ModelService: services => new ModelService(services)`),
106
+ * no options (`ModelService: services => new DefaultModelService(services)`),
108
107
  * so rebinding the slot is the only way to boot one configured
109
108
  * differently; a caller that needs that is usually a test, and the slot
110
109
  * it needs is as often a framework ADDITION (`Clock`, `Tracer`,
@@ -159,6 +158,23 @@ export interface IntegrationServicesOptions<
159
158
  * still win over heads.
160
159
  */
161
160
  extra?: ReadonlyArray<Module<TLanguage, PartialLangiumServices>>;
161
+ /**
162
+ * Modules composed LAST, after `adopter`, and partial over `TLanguage`
163
+ * rather than over Langium's per-language services. The language-tier
164
+ * twin of {@link IntegrationServicesOptions.sharedModules}'s
165
+ * `overrides`, and both differences carry the same weight they do
166
+ * there.
167
+ *
168
+ * A per-language framework service is constructed by the framework's
169
+ * own module with no options
170
+ * (`IntegrityService: services => new DefaultIntegrityService(services)`),
171
+ * so booting one configured differently means rebinding the slot.
172
+ * {@link extra} serves neither half of that: it composes BEFORE
173
+ * `adopter` and so loses every slot the adopter binds, and it is typed
174
+ * `PartialLangiumServices`, which cannot express a framework ADDITION
175
+ * like `IntegrityService` or `AstExtensionService` at all.
176
+ */
177
+ overrides?: ReadonlyArray<Module<TLanguage, DeepPartial<TLanguage>>>;
162
178
  };
163
179
 
164
180
  /**
@@ -179,11 +195,9 @@ export interface IntegrationServicesOptions<
179
195
  * language's, so a second grammar that reuses the same service
180
196
  * overrides only supplies its own `generated` module.
181
197
  *
182
- * Every grammar composed here must come from ONE `langium-cli` run —
183
- * see the `generated` note on {@link IntegrationServicesOptions.sharedModules}.
184
- * The shared `AstReflection` slot cannot hold two independently
185
- * generated reflections, so separately generated language packages are
186
- * detected at bootstrap rather than supported.
198
+ * The primary `generated` shared module must reflect every grammar
199
+ * composed here — see the `generated` note on
200
+ * {@link IntegrationServicesOptions.sharedModules}.
187
201
  *
188
202
  * Multi-grammar adopters should also rebind `lsp.configurationRoot`
189
203
  * (it defaults to the first registered language's id) and, if they
@@ -209,19 +223,21 @@ export interface IntegrationServicesOptions<
209
223
  * differs only in its grammar-generated module.
210
224
  */
211
225
  export interface AdditionalLanguageModules<
212
- TShared extends LangiumSharedServices & ServerSharedServicesMinimal,
226
+ TShared extends LangiumSharedServices & ServerSharedServices,
213
227
  TLanguage extends LangiumServices
214
228
  > {
215
229
  /**
216
- * Module emitted by `langium-cli` for this grammar — from the SAME run
217
- * that produced the primary language's modules and the shared
218
- * `generated` module, not a separately generated language package.
230
+ * Module emitted by `langium-cli` for this grammar. The shared
231
+ * `generated` module must reflect its types, either from the same run or
232
+ * through a `CompositeAstReflection`.
219
233
  */
220
234
  generated: Module<TLanguage, PartialLangiumServices>;
221
235
  /** Adopter overrides for this language. Defaults to the primary language's. */
222
236
  adopter?: (shared: TShared) => Module<TLanguage, PartialLangiumServices>;
223
237
  /** Protocol-head modules for this language. Defaults to the primary language's. */
224
238
  extra?: ReadonlyArray<Module<TLanguage, PartialLangiumServices>>;
239
+ /** Last-composed overrides for this language. Defaults to the primary language's. */
240
+ overrides?: ReadonlyArray<Module<TLanguage, DeepPartial<TLanguage>>>;
225
241
  }
226
242
 
227
243
  /**
@@ -243,7 +259,7 @@ export interface AdditionalLanguageModules<
243
259
  */
244
260
  export function createIntegrationServices<
245
261
  TContext extends ServerModuleContext,
246
- TShared extends LangiumSharedServices & ServerSharedServicesMinimal,
262
+ TShared extends LangiumSharedServices & ServerSharedServices,
247
263
  TLanguage extends LangiumServices
248
264
  >(
249
265
  options: IntegrationServicesOptions<TContext, TShared, TLanguage>
@@ -283,19 +299,34 @@ export function createIntegrationServices<
283
299
  const composeLanguage = (
284
300
  generated: Module<TLanguage, PartialLangiumServices>,
285
301
  adopter: (shared: TShared) => Module<TLanguage, PartialLangiumServices>,
286
- extra: ReadonlyArray<Module<TLanguage, PartialLangiumServices>>
302
+ extra: ReadonlyArray<Module<TLanguage, PartialLangiumServices>>,
303
+ overrides: ReadonlyArray<Module<TLanguage, DeepPartial<TLanguage>>>
287
304
  ): TLanguage => {
288
305
  const defaultLanguageModule = createDefaultModule({ shared }) as unknown as Module<TLanguage, PartialLangiumServices>;
289
306
  const serverLanguageModule = createServerLanguageModule(context) as unknown as Module<TLanguage, PartialLangiumServices>;
290
- return inject(defaultLanguageModule, generated, serverLanguageModule, ...extra, adopter(shared)) as unknown as TLanguage;
307
+ return inject(
308
+ defaultLanguageModule,
309
+ generated,
310
+ serverLanguageModule,
311
+ ...extra,
312
+ adopter(shared),
313
+ // Last, so an override outranks the adopter too — see `overrides`.
314
+ ...(overrides as ReadonlyArray<Module<TLanguage, PartialLangiumServices>>)
315
+ ) as unknown as TLanguage;
291
316
  };
292
317
 
293
318
  const primaryExtra = (languageModules.extra ?? []) as ReadonlyArray<Module<TLanguage, PartialLangiumServices>>;
294
- const language = composeLanguage(languageModules.generated, languageModules.adopter, primaryExtra);
319
+ const primaryOverrides = languageModules.overrides ?? [];
320
+ const language = composeLanguage(languageModules.generated, languageModules.adopter, primaryExtra, primaryOverrides);
295
321
  const languages = [
296
322
  language,
297
323
  ...additionalLanguages.map(additional =>
298
- composeLanguage(additional.generated, additional.adopter ?? languageModules.adopter, additional.extra ?? primaryExtra)
324
+ composeLanguage(
325
+ additional.generated,
326
+ additional.adopter ?? languageModules.adopter,
327
+ additional.extra ?? primaryExtra,
328
+ additional.overrides ?? primaryOverrides
329
+ )
299
330
  )
300
331
  ];
301
332
 
@@ -49,14 +49,23 @@ export namespace IntegrityPhase {
49
49
  }
50
50
 
51
51
  /**
52
- * Controls how integrity corrections are persisted for *closed* files. The
53
- * mode does not reach open files: their corrected text is delivered by the
54
- * model service's settled-state sync, whatever the mode says.
52
+ * Controls how integrity corrections are persisted for files no editor holds.
53
+ * The mode does not reach a file open in the language client: the correction
54
+ * is delivered to the editor, which shows it as an unsaved change.
55
55
  *
56
- * - `silent`: write to disk immediately; no editor involvement.
57
- * - `editor`: open the file dirty via `applyEdit`. If the user closes without
58
- * saving, the correction is suppressed until the file changes or the
59
- * workspace reloads.
56
+ * - `silent`: write to disk immediately; no editor involvement. For a file
57
+ * held only through the data or GLSP head, only while disk still holds the
58
+ * text the correction was computed from and the text store still holds the
59
+ * correction. Otherwise — the holder has unsaved edits, disk changed behind
60
+ * the server, or disk cannot be read — the correction waits in the text
61
+ * store for the next save. A server's first write, whichever language
62
+ * makes it, is logged at `info`, naming the file and the `syncMode` option.
63
+ * - `editor`: leave disk alone and stage the correction; the next open of the
64
+ * file takes it over the disk text, and an editor shows it as an unsaved
65
+ * change. Until then no editor sees it. A file held only through the data
66
+ * or GLSP head is not staged: the correction stays in the text store, and
67
+ * since those heads mark only their own edits unsaved, nothing shows that
68
+ * store and disk differ until a save or the last close.
60
69
  */
61
70
  export type IntegritySyncMode = 'silent' | 'editor';
62
71
 
@@ -69,7 +78,7 @@ export type IntegritySyncMode = 'silent' | 'editor';
69
78
  * bucket. Lower runs first; ties break by registration order.
70
79
  */
71
80
  export interface IntegrityRule<T extends AstNode = AstNode> extends RegistryItem {
72
- /** Which AST node type this rule applies to. */
81
+ /** Which AST node type this rule applies to, subtypes included. */
73
82
  readonly nodeType: string;
74
83
  /** At which document state this rule should run. Be aware that extension properties may not be available in all phases. */
75
84
  readonly phase: IntegrityPhase;