@hydranium/core 1.0.0-next.38 → 1.0.0-next.380

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 (805) 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 +254 -140
  19. package/lib/documents/ast-document-manager.d.ts.map +1 -1
  20. package/lib/documents/ast-document-manager.js +311 -127
  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 +445 -282
  51. package/lib/documents/hydranium-text-documents.d.ts.map +1 -1
  52. package/lib/documents/hydranium-text-documents.js +903 -504
  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 +145 -0
  71. package/lib/documents/version-sync-service.d.ts.map +1 -0
  72. package/lib/documents/version-sync-service.js +177 -0
  73. package/lib/documents/version-sync-service.js.map +1 -0
  74. package/lib/index.d.ts +3 -0
  75. package/lib/index.d.ts.map +1 -1
  76. package/lib/index.js +3 -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/ast-extension/ast-node-builder.d.ts +12 -7
  83. package/lib/langium/ast-extension/ast-node-builder.d.ts.map +1 -1
  84. package/lib/langium/ast-extension/ast-node-builder.js +25 -9
  85. package/lib/langium/ast-extension/ast-node-builder.js.map +1 -1
  86. package/lib/langium/bootstrap.d.ts +49 -36
  87. package/lib/langium/bootstrap.d.ts.map +1 -1
  88. package/lib/langium/bootstrap.js +75 -36
  89. package/lib/langium/bootstrap.js.map +1 -1
  90. package/lib/langium/build-phase-pass/build-phase-pass-service.d.ts +9 -9
  91. package/lib/langium/build-phase-pass/build-phase-pass-service.d.ts.map +1 -1
  92. package/lib/langium/build-phase-pass/build-phase-pass-service.js +25 -16
  93. package/lib/langium/build-phase-pass/build-phase-pass-service.js.map +1 -1
  94. package/lib/langium/build-phase-pass/build-phase-pass.d.ts +20 -8
  95. package/lib/langium/build-phase-pass/build-phase-pass.d.ts.map +1 -1
  96. package/lib/langium/build-phase-pass/build-phase-pass.js +20 -0
  97. package/lib/langium/build-phase-pass/build-phase-pass.js.map +1 -1
  98. package/lib/langium/composite-ast-reflection.d.ts +46 -0
  99. package/lib/langium/composite-ast-reflection.d.ts.map +1 -0
  100. package/lib/langium/composite-ast-reflection.js +97 -0
  101. package/lib/langium/composite-ast-reflection.js.map +1 -0
  102. package/lib/langium/config/configuration-provider.d.ts +81 -0
  103. package/lib/langium/config/configuration-provider.d.ts.map +1 -0
  104. package/lib/langium/config/configuration-provider.js +112 -0
  105. package/lib/langium/config/configuration-provider.js.map +1 -0
  106. package/lib/langium/config/index.d.ts +1 -0
  107. package/lib/langium/config/index.d.ts.map +1 -1
  108. package/lib/langium/config/index.js +1 -0
  109. package/lib/langium/config/index.js.map +1 -1
  110. package/lib/langium/config/settings.js.map +1 -1
  111. package/lib/langium/diagnostics/console-tee.d.ts +27 -0
  112. package/lib/langium/diagnostics/console-tee.d.ts.map +1 -0
  113. package/lib/langium/diagnostics/console-tee.js +141 -0
  114. package/lib/langium/diagnostics/console-tee.js.map +1 -0
  115. package/lib/langium/diagnostics/hydranium-langium-profiler.d.ts +9 -20
  116. package/lib/langium/diagnostics/hydranium-langium-profiler.d.ts.map +1 -1
  117. package/lib/langium/diagnostics/hydranium-langium-profiler.js +15 -24
  118. package/lib/langium/diagnostics/hydranium-langium-profiler.js.map +1 -1
  119. package/lib/langium/diagnostics/log-preamble.js +1 -1
  120. package/lib/langium/diagnostics/log-preamble.js.map +1 -1
  121. package/lib/langium/diagnostics/logger.d.ts +25 -6
  122. package/lib/langium/diagnostics/logger.d.ts.map +1 -1
  123. package/lib/langium/diagnostics/logger.js +49 -17
  124. package/lib/langium/diagnostics/logger.js.map +1 -1
  125. package/lib/langium/diagnostics/lsp-logger.d.ts +25 -0
  126. package/lib/langium/diagnostics/lsp-logger.d.ts.map +1 -1
  127. package/lib/langium/diagnostics/lsp-logger.js +81 -46
  128. package/lib/langium/diagnostics/lsp-logger.js.map +1 -1
  129. package/lib/langium/diagnostics/server-tracer.d.ts.map +1 -1
  130. package/lib/langium/diagnostics/server-tracer.js.map +1 -1
  131. package/lib/langium/document-builder/build-pipeline-integration.d.ts +21 -1
  132. package/lib/langium/document-builder/build-pipeline-integration.d.ts.map +1 -1
  133. package/lib/langium/document-builder/build-pipeline-integration.js +43 -30
  134. package/lib/langium/document-builder/build-pipeline-integration.js.map +1 -1
  135. package/lib/langium/document-builder/build-session.d.ts +6 -5
  136. package/lib/langium/document-builder/build-session.d.ts.map +1 -1
  137. package/lib/langium/document-builder/build-session.js +5 -5
  138. package/lib/langium/document-builder/build-session.js.map +1 -1
  139. package/lib/langium/document-builder/document-builder.d.ts +355 -39
  140. package/lib/langium/document-builder/document-builder.d.ts.map +1 -1
  141. package/lib/langium/document-builder/document-builder.js +578 -102
  142. package/lib/langium/document-builder/document-builder.js.map +1 -1
  143. package/lib/langium/documentation/comment-provider.d.ts.map +1 -1
  144. package/lib/langium/documentation/comment-provider.js.map +1 -1
  145. package/lib/langium/integration-services.d.ts +39 -23
  146. package/lib/langium/integration-services.d.ts.map +1 -1
  147. package/lib/langium/integration-services.js +7 -4
  148. package/lib/langium/integration-services.js.map +1 -1
  149. package/lib/langium/integrity/integrity-rule.d.ts +22 -8
  150. package/lib/langium/integrity/integrity-rule.d.ts.map +1 -1
  151. package/lib/langium/integrity/integrity-rule.js.map +1 -1
  152. package/lib/langium/integrity/integrity-service.d.ts +104 -27
  153. package/lib/langium/integrity/integrity-service.d.ts.map +1 -1
  154. package/lib/langium/integrity/integrity-service.js +319 -65
  155. package/lib/langium/integrity/integrity-service.js.map +1 -1
  156. package/lib/langium/keys/containment.d.ts +3 -2
  157. package/lib/langium/keys/containment.d.ts.map +1 -1
  158. package/lib/langium/keys/containment.js.map +1 -1
  159. package/lib/langium/keys/name-based-key-provider.d.ts +17 -10
  160. package/lib/langium/keys/name-based-key-provider.d.ts.map +1 -1
  161. package/lib/langium/keys/name-based-key-provider.js +24 -12
  162. package/lib/langium/keys/name-based-key-provider.js.map +1 -1
  163. package/lib/langium/keys/positional-key-provider.d.ts.map +1 -1
  164. package/lib/langium/keys/positional-key-provider.js.map +1 -1
  165. package/lib/langium/labeling/label-provider.d.ts.map +1 -1
  166. package/lib/langium/labeling/label-provider.js.map +1 -1
  167. package/lib/langium/language-module.d.ts +30 -5
  168. package/lib/langium/language-module.d.ts.map +1 -1
  169. package/lib/langium/language-module.js +21 -5
  170. package/lib/langium/language-module.js.map +1 -1
  171. package/lib/langium/model-service/client-session.d.ts +405 -0
  172. package/lib/langium/model-service/client-session.d.ts.map +1 -0
  173. package/lib/langium/model-service/client-session.js +479 -0
  174. package/lib/langium/model-service/client-session.js.map +1 -0
  175. package/lib/langium/model-service/index.d.ts +2 -0
  176. package/lib/langium/model-service/index.d.ts.map +1 -1
  177. package/lib/langium/model-service/index.js +2 -0
  178. package/lib/langium/model-service/index.js.map +1 -1
  179. package/lib/langium/model-service/model-events.d.ts +68 -0
  180. package/lib/langium/model-service/model-events.d.ts.map +1 -0
  181. package/lib/langium/model-service/model-events.js +10 -0
  182. package/lib/langium/model-service/model-events.js.map +1 -0
  183. package/lib/langium/model-service/model-service.d.ts +441 -323
  184. package/lib/langium/model-service/model-service.d.ts.map +1 -1
  185. package/lib/langium/model-service/model-service.js +602 -397
  186. package/lib/langium/model-service/model-service.js.map +1 -1
  187. package/lib/langium/module.d.ts +96 -37
  188. package/lib/langium/module.d.ts.map +1 -1
  189. package/lib/langium/module.js +39 -27
  190. package/lib/langium/module.js.map +1 -1
  191. package/lib/langium/naming/name-provider.d.ts +32 -7
  192. package/lib/langium/naming/name-provider.d.ts.map +1 -1
  193. package/lib/langium/naming/name-provider.js +10 -4
  194. package/lib/langium/naming/name-provider.js.map +1 -1
  195. package/lib/langium/naming/name-separator-validation.d.ts.map +1 -1
  196. package/lib/langium/project/abstract-project-manager.d.ts +184 -13
  197. package/lib/langium/project/abstract-project-manager.d.ts.map +1 -1
  198. package/lib/langium/project/abstract-project-manager.js +336 -16
  199. package/lib/langium/project/abstract-project-manager.js.map +1 -1
  200. package/lib/langium/project/project-change-event.d.ts +22 -3
  201. package/lib/langium/project/project-change-event.d.ts.map +1 -1
  202. package/lib/langium/project/project-manager.d.ts +28 -2
  203. package/lib/langium/project/project-manager.d.ts.map +1 -1
  204. package/lib/langium/project/single-project-manager.d.ts +7 -1
  205. package/lib/langium/project/single-project-manager.d.ts.map +1 -1
  206. package/lib/langium/project/single-project-manager.js +12 -0
  207. package/lib/langium/project/single-project-manager.js.map +1 -1
  208. package/lib/langium/residency/cst-residency-service.d.ts +81 -44
  209. package/lib/langium/residency/cst-residency-service.d.ts.map +1 -1
  210. package/lib/langium/residency/cst-residency-service.js +142 -46
  211. package/lib/langium/residency/cst-residency-service.js.map +1 -1
  212. package/lib/langium/scope/ast-node-description-provider.d.ts +46 -10
  213. package/lib/langium/scope/ast-node-description-provider.d.ts.map +1 -1
  214. package/lib/langium/scope/ast-node-description-provider.js +88 -15
  215. package/lib/langium/scope/ast-node-description-provider.js.map +1 -1
  216. package/lib/langium/scope/built-local-symbols.d.ts +12 -0
  217. package/lib/langium/scope/built-local-symbols.d.ts.map +1 -0
  218. package/lib/langium/scope/built-local-symbols.js +11 -0
  219. package/lib/langium/scope/built-local-symbols.js.map +1 -0
  220. package/lib/langium/scope/fallback-scope.d.ts +27 -0
  221. package/lib/langium/scope/fallback-scope.d.ts.map +1 -0
  222. package/lib/langium/scope/fallback-scope.js +35 -0
  223. package/lib/langium/scope/fallback-scope.js.map +1 -0
  224. package/lib/langium/scope/hydranium-scope-computation.d.ts +21 -18
  225. package/lib/langium/scope/hydranium-scope-computation.d.ts.map +1 -1
  226. package/lib/langium/scope/hydranium-scope-computation.js +38 -39
  227. package/lib/langium/scope/hydranium-scope-computation.js.map +1 -1
  228. package/lib/langium/scope/hydranium-scope-provider.d.ts +122 -32
  229. package/lib/langium/scope/hydranium-scope-provider.d.ts.map +1 -1
  230. package/lib/langium/scope/hydranium-scope-provider.js +217 -39
  231. package/lib/langium/scope/hydranium-scope-provider.js.map +1 -1
  232. package/lib/langium/scope/index.d.ts +1 -0
  233. package/lib/langium/scope/index.d.ts.map +1 -1
  234. package/lib/langium/scope/index.js +1 -0
  235. package/lib/langium/scope/index.js.map +1 -1
  236. package/lib/langium/scope/reference-builder.d.ts.map +1 -1
  237. package/lib/langium/scope/reference-builder.js.map +1 -1
  238. package/lib/langium/scope/reference-candidate-provider.d.ts +6 -5
  239. package/lib/langium/scope/reference-candidate-provider.d.ts.map +1 -1
  240. package/lib/langium/scope/reference-candidate-provider.js +3 -2
  241. package/lib/langium/scope/reference-candidate-provider.js.map +1 -1
  242. package/lib/langium/scope/scope-extension-service.d.ts +69 -37
  243. package/lib/langium/scope/scope-extension-service.d.ts.map +1 -1
  244. package/lib/langium/scope/scope-extension-service.js +102 -29
  245. package/lib/langium/scope/scope-extension-service.js.map +1 -1
  246. package/lib/langium/scope/scoped-ast-node-description.d.ts +1 -3
  247. package/lib/langium/scope/scoped-ast-node-description.d.ts.map +1 -1
  248. package/lib/langium/scope/scoped-ast-node-description.js +1 -3
  249. package/lib/langium/scope/scoped-ast-node-description.js.map +1 -1
  250. package/lib/langium/serialization/abstract-serializer.d.ts +38 -27
  251. package/lib/langium/serialization/abstract-serializer.d.ts.map +1 -1
  252. package/lib/langium/serialization/abstract-serializer.js +54 -30
  253. package/lib/langium/serialization/abstract-serializer.js.map +1 -1
  254. package/lib/langium/serialization/json-serializer.d.ts +8 -1
  255. package/lib/langium/serialization/json-serializer.d.ts.map +1 -1
  256. package/lib/langium/serialization/json-serializer.js +13 -3
  257. package/lib/langium/serialization/json-serializer.js.map +1 -1
  258. package/lib/langium/serialization/serializer.d.ts +1 -1
  259. package/lib/langium/serialization/yaml-serializer.d.ts +12 -0
  260. package/lib/langium/serialization/yaml-serializer.d.ts.map +1 -1
  261. package/lib/langium/serialization/yaml-serializer.js +24 -4
  262. package/lib/langium/serialization/yaml-serializer.js.map +1 -1
  263. package/lib/langium/service-registry.d.ts +29 -1
  264. package/lib/langium/service-registry.d.ts.map +1 -1
  265. package/lib/langium/service-registry.js +37 -0
  266. package/lib/langium/service-registry.js.map +1 -1
  267. package/lib/langium/shared-services.d.ts +10 -4
  268. package/lib/langium/shared-services.d.ts.map +1 -1
  269. package/lib/langium/shared-services.js.map +1 -1
  270. package/lib/langium/single-langium-copy.d.ts +22 -0
  271. package/lib/langium/single-langium-copy.d.ts.map +1 -0
  272. package/lib/langium/single-langium-copy.js +36 -0
  273. package/lib/langium/single-langium-copy.js.map +1 -0
  274. package/lib/langium/transfer/transfer-encoder.d.ts +60 -39
  275. package/lib/langium/transfer/transfer-encoder.d.ts.map +1 -1
  276. package/lib/langium/transfer/transfer-encoder.js +35 -24
  277. package/lib/langium/transfer/transfer-encoder.js.map +1 -1
  278. package/lib/langium/trivia/comment-preserver.d.ts +543 -0
  279. package/lib/langium/trivia/comment-preserver.d.ts.map +1 -0
  280. package/lib/langium/trivia/comment-preserver.js +1165 -0
  281. package/lib/langium/trivia/comment-preserver.js.map +1 -0
  282. package/lib/langium/trivia/document-ending-preserver.d.ts +51 -0
  283. package/lib/langium/trivia/document-ending-preserver.d.ts.map +1 -0
  284. package/lib/langium/trivia/document-ending-preserver.js +62 -0
  285. package/lib/langium/trivia/document-ending-preserver.js.map +1 -0
  286. package/lib/langium/trivia/index.d.ts +14 -0
  287. package/lib/langium/trivia/index.d.ts.map +1 -0
  288. package/lib/langium/trivia/index.js +14 -0
  289. package/lib/langium/trivia/index.js.map +1 -0
  290. package/lib/langium/trivia/trivia-contribution.d.ts +37 -0
  291. package/lib/langium/trivia/trivia-contribution.d.ts.map +1 -0
  292. package/lib/langium/trivia/trivia-contribution.js +10 -0
  293. package/lib/langium/trivia/trivia-contribution.js.map +1 -0
  294. package/lib/langium/trivia/trivia-preserver.d.ts +52 -0
  295. package/lib/langium/trivia/trivia-preserver.d.ts.map +1 -0
  296. package/lib/langium/trivia/trivia-preserver.js +10 -0
  297. package/lib/langium/trivia/trivia-preserver.js.map +1 -0
  298. package/lib/langium/trivia/trivia-service.d.ts +70 -0
  299. package/lib/langium/trivia/trivia-service.d.ts.map +1 -0
  300. package/lib/langium/trivia/trivia-service.js +56 -0
  301. package/lib/langium/trivia/trivia-service.js.map +1 -0
  302. package/lib/langium/update-rewrite/normalize-empty-strings.d.ts.map +1 -1
  303. package/lib/langium/update-rewrite/update-rewrite-service.d.ts +1 -1
  304. package/lib/langium/update-rewrite/update-rewrite-service.d.ts.map +1 -1
  305. package/lib/langium/update-rewrite/update-rewrite-service.js.map +1 -1
  306. package/lib/langium/update-rewrite/update-rewrite.d.ts +1 -1
  307. package/lib/langium/validation/document-validator.d.ts +168 -23
  308. package/lib/langium/validation/document-validator.d.ts.map +1 -1
  309. package/lib/langium/validation/document-validator.js +264 -26
  310. package/lib/langium/validation/document-validator.js.map +1 -1
  311. package/lib/langium/validation/validation-contribution-collector.d.ts +9 -1
  312. package/lib/langium/validation/validation-contribution-collector.d.ts.map +1 -1
  313. package/lib/langium/validation/validation-contribution-collector.js +1 -1
  314. package/lib/langium/validation/validation-contribution-collector.js.map +1 -1
  315. package/lib/langium/workspace/ast-node-locator.d.ts +24 -0
  316. package/lib/langium/workspace/ast-node-locator.d.ts.map +1 -0
  317. package/lib/langium/workspace/ast-node-locator.js +32 -0
  318. package/lib/langium/workspace/ast-node-locator.js.map +1 -0
  319. package/lib/langium/workspace/document-uri-policy.d.ts +24 -15
  320. package/lib/langium/workspace/document-uri-policy.d.ts.map +1 -1
  321. package/lib/langium/workspace/document-uri-policy.js +22 -13
  322. package/lib/langium/workspace/document-uri-policy.js.map +1 -1
  323. package/lib/langium/workspace/file-not-found.d.ts +23 -0
  324. package/lib/langium/workspace/file-not-found.d.ts.map +1 -0
  325. package/lib/langium/workspace/file-not-found.js +31 -0
  326. package/lib/langium/workspace/file-not-found.js.map +1 -0
  327. package/lib/langium/workspace/file-system-provider.d.ts +167 -8
  328. package/lib/langium/workspace/file-system-provider.d.ts.map +1 -1
  329. package/lib/langium/workspace/file-system-provider.js +115 -13
  330. package/lib/langium/workspace/file-system-provider.js.map +1 -1
  331. package/lib/langium/workspace/hydranium-langium-document-factory.d.ts +35 -1
  332. package/lib/langium/workspace/hydranium-langium-document-factory.d.ts.map +1 -1
  333. package/lib/langium/workspace/hydranium-langium-document-factory.js +77 -0
  334. package/lib/langium/workspace/hydranium-langium-document-factory.js.map +1 -1
  335. package/lib/langium/workspace/hydranium-workspace-lock.d.ts +43 -1
  336. package/lib/langium/workspace/hydranium-workspace-lock.d.ts.map +1 -1
  337. package/lib/langium/workspace/hydranium-workspace-lock.js +58 -1
  338. package/lib/langium/workspace/hydranium-workspace-lock.js.map +1 -1
  339. package/lib/langium/workspace/hydranium-workspace-manager.d.ts +105 -21
  340. package/lib/langium/workspace/hydranium-workspace-manager.d.ts.map +1 -1
  341. package/lib/langium/workspace/hydranium-workspace-manager.js +186 -31
  342. package/lib/langium/workspace/hydranium-workspace-manager.js.map +1 -1
  343. package/lib/langium/workspace/in-memory-file-system-provider.d.ts +26 -9
  344. package/lib/langium/workspace/in-memory-file-system-provider.d.ts.map +1 -1
  345. package/lib/langium/workspace/in-memory-file-system-provider.js +45 -22
  346. package/lib/langium/workspace/in-memory-file-system-provider.js.map +1 -1
  347. package/lib/langium/workspace/index-manager.d.ts.map +1 -1
  348. package/lib/langium/workspace/index-manager.js.map +1 -1
  349. package/lib/langium/workspace/index.d.ts +3 -0
  350. package/lib/langium/workspace/index.d.ts.map +1 -1
  351. package/lib/langium/workspace/index.js +3 -0
  352. package/lib/langium/workspace/index.js.map +1 -1
  353. package/lib/langium/workspace/initialize-workspace.d.ts +40 -3
  354. package/lib/langium/workspace/initialize-workspace.d.ts.map +1 -1
  355. package/lib/langium/workspace/initialize-workspace.js +68 -3
  356. package/lib/langium/workspace/initialize-workspace.js.map +1 -1
  357. package/lib/langium/workspace/langium-documents.d.ts +7 -0
  358. package/lib/langium/workspace/langium-documents.d.ts.map +1 -1
  359. package/lib/langium/workspace/langium-documents.js +18 -1
  360. package/lib/langium/workspace/langium-documents.js.map +1 -1
  361. package/lib/langium/workspace/persistent-file-system-provider.d.ts +16 -10
  362. package/lib/langium/workspace/persistent-file-system-provider.d.ts.map +1 -1
  363. package/lib/langium/workspace/persistent-file-system-provider.js +25 -13
  364. package/lib/langium/workspace/persistent-file-system-provider.js.map +1 -1
  365. package/lib/{documents → langium/workspace}/self-save-registry.d.ts +7 -9
  366. package/lib/langium/workspace/self-save-registry.d.ts.map +1 -0
  367. package/lib/{documents → langium/workspace}/self-save-registry.js +9 -11
  368. package/lib/langium/workspace/self-save-registry.js.map +1 -0
  369. package/lib/langium/workspace/syntax-errors.d.ts +23 -0
  370. package/lib/langium/workspace/syntax-errors.d.ts.map +1 -0
  371. package/lib/langium/workspace/syntax-errors.js +29 -0
  372. package/lib/langium/workspace/syntax-errors.js.map +1 -0
  373. package/lib/langium/workspace/virtual-document.d.ts +55 -21
  374. package/lib/langium/workspace/virtual-document.d.ts.map +1 -1
  375. package/lib/langium/workspace/virtual-document.js +87 -24
  376. package/lib/langium/workspace/virtual-document.js.map +1 -1
  377. package/lib/langium/workspace/write-lock-scope.d.ts +22 -10
  378. package/lib/langium/workspace/write-lock-scope.d.ts.map +1 -1
  379. package/lib/langium/workspace/write-lock-scope.js +15 -5
  380. package/lib/langium/workspace/write-lock-scope.js.map +1 -1
  381. package/lib/launcher/integrated-server.d.ts +3 -1
  382. package/lib/launcher/integrated-server.d.ts.map +1 -1
  383. package/lib/locale/server-locale.d.ts +6 -6
  384. package/lib/locale/server-locale.d.ts.map +1 -1
  385. package/lib/locale/server-locale.js.map +1 -1
  386. package/lib/lsp/completion/hydranium-completion-provider.d.ts +44 -2
  387. package/lib/lsp/completion/hydranium-completion-provider.d.ts.map +1 -1
  388. package/lib/lsp/completion/hydranium-completion-provider.js +68 -0
  389. package/lib/lsp/completion/hydranium-completion-provider.js.map +1 -1
  390. package/lib/lsp/connection-features.d.ts +23 -0
  391. package/lib/lsp/connection-features.d.ts.map +1 -0
  392. package/lib/lsp/connection-features.js +60 -0
  393. package/lib/lsp/connection-features.js.map +1 -0
  394. package/lib/lsp/diagnostics-connection.d.ts +27 -0
  395. package/lib/lsp/diagnostics-connection.d.ts.map +1 -0
  396. package/lib/lsp/diagnostics-connection.js +53 -0
  397. package/lib/lsp/diagnostics-connection.js.map +1 -0
  398. package/lib/lsp/edit-requests-guard.d.ts +31 -0
  399. package/lib/lsp/edit-requests-guard.d.ts.map +1 -0
  400. package/lib/lsp/edit-requests-guard.js +125 -0
  401. package/lib/lsp/edit-requests-guard.js.map +1 -0
  402. package/lib/lsp/hydranium-document-update-handler.d.ts +126 -82
  403. package/lib/lsp/hydranium-document-update-handler.d.ts.map +1 -1
  404. package/lib/lsp/hydranium-document-update-handler.js +234 -101
  405. package/lib/lsp/hydranium-document-update-handler.js.map +1 -1
  406. package/lib/lsp/index.d.ts +6 -2
  407. package/lib/lsp/index.d.ts.map +1 -1
  408. package/lib/lsp/index.js +6 -2
  409. package/lib/lsp/index.js.map +1 -1
  410. package/lib/lsp/lsp-latency.d.ts +39 -0
  411. package/lib/lsp/lsp-latency.d.ts.map +1 -0
  412. package/lib/lsp/lsp-latency.js +58 -0
  413. package/lib/lsp/lsp-latency.js.map +1 -0
  414. package/lib/lsp/save-text-document.d.ts +31 -0
  415. package/lib/lsp/save-text-document.d.ts.map +1 -0
  416. package/lib/lsp/save-text-document.js +52 -0
  417. package/lib/lsp/save-text-document.js.map +1 -0
  418. package/lib/lsp/semantic-token-provider.d.ts +58 -2
  419. package/lib/lsp/semantic-token-provider.d.ts.map +1 -1
  420. package/lib/lsp/semantic-token-provider.js +98 -9
  421. package/lib/lsp/semantic-token-provider.js.map +1 -1
  422. package/lib/lsp/shared-module.d.ts +4 -8
  423. package/lib/lsp/shared-module.d.ts.map +1 -1
  424. package/lib/lsp/shared-module.js.map +1 -1
  425. package/lib/lsp/start-language-server.d.ts +12 -7
  426. package/lib/lsp/start-language-server.d.ts.map +1 -1
  427. package/lib/lsp/start-language-server.js +21 -7
  428. package/lib/lsp/start-language-server.js.map +1 -1
  429. package/lib/messages/carriers.d.ts +4 -6
  430. package/lib/messages/carriers.d.ts.map +1 -1
  431. package/lib/messages/carriers.js +4 -6
  432. package/lib/messages/carriers.js.map +1 -1
  433. package/lib/messages/index.d.ts +2 -2
  434. package/lib/messages/index.d.ts.map +1 -1
  435. package/lib/messages/index.js +2 -2
  436. package/lib/messages/index.js.map +1 -1
  437. package/lib/messages/renderer.d.ts +10 -4
  438. package/lib/messages/renderer.d.ts.map +1 -1
  439. package/lib/messages/renderer.js +6 -0
  440. package/lib/messages/renderer.js.map +1 -1
  441. package/lib/node/event-loop-monitor.d.ts.map +1 -1
  442. package/lib/node/event-loop-monitor.js +2 -1
  443. package/lib/node/event-loop-monitor.js.map +1 -1
  444. package/lib/node/heap-ceiling.d.ts +61 -0
  445. package/lib/node/heap-ceiling.d.ts.map +1 -0
  446. package/lib/node/heap-ceiling.js +72 -0
  447. package/lib/node/heap-ceiling.js.map +1 -0
  448. package/lib/node/index.d.ts +1 -1
  449. package/lib/node/index.d.ts.map +1 -1
  450. package/lib/node/index.js +5 -1
  451. package/lib/node/index.js.map +1 -1
  452. package/lib/node/latency-from-env.d.ts +1 -1
  453. package/lib/node/latency-from-env.js +1 -1
  454. package/lib/node/lint-grammar.js.map +1 -1
  455. package/lib/node/log-file-sink.d.ts +3 -2
  456. package/lib/node/log-file-sink.d.ts.map +1 -1
  457. package/lib/node/log-file-sink.js +6 -2
  458. package/lib/node/log-file-sink.js.map +1 -1
  459. package/lib/node/log-preamble-node.d.ts +5 -3
  460. package/lib/node/log-preamble-node.d.ts.map +1 -1
  461. package/lib/node/log-preamble-node.js +13 -10
  462. package/lib/node/log-preamble-node.js.map +1 -1
  463. package/lib/node/measure-memory.d.ts.map +1 -1
  464. package/lib/node/measure-memory.js +5 -4
  465. package/lib/node/measure-memory.js.map +1 -1
  466. package/lib/node/memory-monitor.d.ts +2 -2
  467. package/lib/node/memory-monitor.d.ts.map +1 -1
  468. package/lib/node/memory-monitor.js +9 -10
  469. package/lib/node/memory-monitor.js.map +1 -1
  470. package/lib/node/node-file-system-provider.d.ts +67 -9
  471. package/lib/node/node-file-system-provider.d.ts.map +1 -1
  472. package/lib/node/node-file-system-provider.js +198 -53
  473. package/lib/node/node-file-system-provider.js.map +1 -1
  474. package/lib/node/profile-capture.d.ts +12 -4
  475. package/lib/node/profile-capture.d.ts.map +1 -1
  476. package/lib/node/profile-capture.js +8 -6
  477. package/lib/node/profile-capture.js.map +1 -1
  478. package/lib/node/profile-digest.js.map +1 -1
  479. package/lib/node/profiling-run.d.ts +13 -3
  480. package/lib/node/profiling-run.d.ts.map +1 -1
  481. package/lib/node/profiling-run.js +17 -8
  482. package/lib/node/profiling-run.js.map +1 -1
  483. package/lib/node/rename-over-open-readers.d.ts +61 -0
  484. package/lib/node/rename-over-open-readers.d.ts.map +1 -0
  485. package/lib/node/rename-over-open-readers.js +80 -0
  486. package/lib/node/rename-over-open-readers.js.map +1 -0
  487. package/lib/node/server-diagnostics.js +1 -1
  488. package/lib/node/server-diagnostics.js.map +1 -1
  489. package/lib/node/server-state-snapshot.d.ts +1 -2
  490. package/lib/node/server-state-snapshot.d.ts.map +1 -1
  491. package/lib/node/server-state-snapshot.js +4 -4
  492. package/lib/node/server-state-snapshot.js.map +1 -1
  493. package/lib/node/socket-launcher.d.ts +43 -7
  494. package/lib/node/socket-launcher.d.ts.map +1 -1
  495. package/lib/node/socket-launcher.js +42 -7
  496. package/lib/node/socket-launcher.js.map +1 -1
  497. package/lib/node/startup-cpu-profile.d.ts +29 -0
  498. package/lib/node/startup-cpu-profile.d.ts.map +1 -0
  499. package/lib/node/startup-cpu-profile.js +91 -0
  500. package/lib/node/startup-cpu-profile.js.map +1 -0
  501. package/lib/node/stdio-launcher.d.ts +13 -13
  502. package/lib/node/stdio-launcher.d.ts.map +1 -1
  503. package/lib/node/stdio-launcher.js +21 -11
  504. package/lib/node/stdio-launcher.js.map +1 -1
  505. package/lib/node/validate-workspace.d.ts +1 -1
  506. package/lib/node/validate-workspace.d.ts.map +1 -1
  507. package/lib/node/validate-workspace.js +5 -1
  508. package/lib/node/validate-workspace.js.map +1 -1
  509. package/lib/testing/document-uri-policy-conformance.js +1 -1
  510. package/lib/testing/document-uri-policy-conformance.js.map +1 -1
  511. package/lib/testing/fake-description.js.map +1 -1
  512. package/lib/testing/fake-document.d.ts +2 -1
  513. package/lib/testing/fake-document.d.ts.map +1 -1
  514. package/lib/testing/fake-document.js.map +1 -1
  515. package/lib/testing/index.d.ts +1 -1
  516. package/lib/testing/index.d.ts.map +1 -1
  517. package/lib/testing/index.js +2 -1
  518. package/lib/testing/index.js.map +1 -1
  519. package/lib/testing/langium-test-helpers.d.ts.map +1 -1
  520. package/lib/testing/langium-test-helpers.js +1 -0
  521. package/lib/testing/langium-test-helpers.js.map +1 -1
  522. package/lib/testing/make-noop-language-services.js.map +1 -1
  523. package/lib/testing/make-noop-shared-services.js.map +1 -1
  524. package/lib/testing/make-test-services.d.ts +45 -14
  525. package/lib/testing/make-test-services.d.ts.map +1 -1
  526. package/lib/testing/make-test-services.js +23 -7
  527. package/lib/testing/make-test-services.js.map +1 -1
  528. package/lib/testing/make-test-tracer.d.ts +12 -0
  529. package/lib/testing/make-test-tracer.d.ts.map +1 -1
  530. package/lib/testing/make-test-tracer.js +13 -0
  531. package/lib/testing/make-test-tracer.js.map +1 -1
  532. package/lib/testing/node/applied-edit-capture.d.ts +29 -0
  533. package/lib/testing/node/applied-edit-capture.d.ts.map +1 -0
  534. package/lib/testing/node/applied-edit-capture.js +117 -0
  535. package/lib/testing/node/applied-edit-capture.js.map +1 -0
  536. package/lib/testing/node/golden-corpus.js.map +1 -1
  537. package/lib/testing/node/index.d.ts +1 -0
  538. package/lib/testing/node/index.d.ts.map +1 -1
  539. package/lib/testing/node/index.js +1 -0
  540. package/lib/testing/node/index.js.map +1 -1
  541. package/lib/testing/node/lsp-harness.d.ts.map +1 -1
  542. package/lib/testing/node/lsp-harness.js +2 -0
  543. package/lib/testing/node/lsp-harness.js.map +1 -1
  544. package/lib/testing/node/lsp-server-connection.d.ts +21 -6
  545. package/lib/testing/node/lsp-server-connection.d.ts.map +1 -1
  546. package/lib/testing/node/lsp-server-connection.js +49 -106
  547. package/lib/testing/node/lsp-server-connection.js.map +1 -1
  548. package/lib/testing/node/scratch-workspace.d.ts.map +1 -1
  549. package/lib/testing/node/scratch-workspace.js +10 -5
  550. package/lib/testing/node/scratch-workspace.js.map +1 -1
  551. package/lib/testing/node/spawned-server.d.ts +30 -1
  552. package/lib/testing/node/spawned-server.d.ts.map +1 -1
  553. package/lib/testing/node/spawned-server.js +39 -2
  554. package/lib/testing/node/spawned-server.js.map +1 -1
  555. package/lib/testing/node/unhandled-rejections.d.ts +20 -0
  556. package/lib/testing/node/unhandled-rejections.d.ts.map +1 -0
  557. package/lib/testing/node/unhandled-rejections.js +32 -0
  558. package/lib/testing/node/unhandled-rejections.js.map +1 -0
  559. package/lib/testing/playwright/browser-capture-bridge.js.map +1 -1
  560. package/lib/testing/playwright/e2e-profiling.js.map +1 -1
  561. package/lib/testing/playwright/flaky-network-proxy.d.ts +76 -0
  562. package/lib/testing/playwright/flaky-network-proxy.d.ts.map +1 -0
  563. package/lib/testing/playwright/flaky-network-proxy.js +164 -0
  564. package/lib/testing/playwright/flaky-network-proxy.js.map +1 -0
  565. package/lib/testing/playwright/index.d.ts +1 -0
  566. package/lib/testing/playwright/index.d.ts.map +1 -1
  567. package/lib/testing/playwright/index.js +1 -0
  568. package/lib/testing/playwright/index.js.map +1 -1
  569. package/lib/testing/playwright/server-log-capture.d.ts +46 -16
  570. package/lib/testing/playwright/server-log-capture.d.ts.map +1 -1
  571. package/lib/testing/playwright/server-log-capture.js +111 -40
  572. package/lib/testing/playwright/server-log-capture.js.map +1 -1
  573. package/lib/testing/playwright/server-log-fixture.d.ts +16 -0
  574. package/lib/testing/playwright/server-log-fixture.d.ts.map +1 -1
  575. package/lib/testing/playwright/server-log-fixture.js +25 -6
  576. package/lib/testing/playwright/server-log-fixture.js.map +1 -1
  577. package/lib/testing/playwright/server-log-region.d.ts +15 -0
  578. package/lib/testing/playwright/server-log-region.d.ts.map +1 -0
  579. package/lib/testing/playwright/server-log-region.js +30 -0
  580. package/lib/testing/playwright/server-log-region.js.map +1 -0
  581. package/lib/testing/playwright/server-log-rename-reporter.d.ts.map +1 -1
  582. package/lib/testing/playwright/server-log-rename-reporter.js +4 -3
  583. package/lib/testing/playwright/server-log-rename-reporter.js.map +1 -1
  584. package/lib/testing/run-update-pipeline.d.ts +8 -5
  585. package/lib/testing/run-update-pipeline.d.ts.map +1 -1
  586. package/lib/testing/run-update-pipeline.js.map +1 -1
  587. package/lib/testing/stub-ast-document-manager.d.ts +11 -51
  588. package/lib/testing/stub-ast-document-manager.d.ts.map +1 -1
  589. package/lib/testing/stub-ast-document-manager.js +31 -59
  590. package/lib/testing/stub-ast-document-manager.js.map +1 -1
  591. package/lib/testing/stub-document-builder.d.ts +33 -11
  592. package/lib/testing/stub-document-builder.d.ts.map +1 -1
  593. package/lib/testing/stub-document-builder.js +110 -5
  594. package/lib/testing/stub-document-builder.js.map +1 -1
  595. package/lib/testing/stub-hydranium-text-documents.d.ts +33 -10
  596. package/lib/testing/stub-hydranium-text-documents.d.ts.map +1 -1
  597. package/lib/testing/stub-hydranium-text-documents.js +132 -16
  598. package/lib/testing/stub-hydranium-text-documents.js.map +1 -1
  599. package/lib/testing/stub-index-manager.js.map +1 -1
  600. package/lib/testing/stub-langium-documents.d.ts +3 -2
  601. package/lib/testing/stub-langium-documents.d.ts.map +1 -1
  602. package/lib/testing/stub-langium-documents.js.map +1 -1
  603. package/lib/testing/stub-model-service.d.ts +8 -7
  604. package/lib/testing/stub-model-service.d.ts.map +1 -1
  605. package/lib/testing/stub-model-service.js +4 -4
  606. package/lib/testing/stub-model-service.js.map +1 -1
  607. package/lib/testing/stub-project-manager.d.ts.map +1 -1
  608. package/lib/testing/stub-project-manager.js +10 -0
  609. package/lib/testing/stub-project-manager.js.map +1 -1
  610. package/lib/testing/stub-self-save-registry.d.ts +1 -1
  611. package/lib/testing/stub-self-save-registry.d.ts.map +1 -1
  612. package/lib/testing/stub-service-registry.d.ts +1 -1
  613. package/lib/testing/stub-service-registry.js.map +1 -1
  614. package/lib/testing/stub-writable-file-system.d.ts +1 -1
  615. package/lib/testing/stub-writable-file-system.d.ts.map +1 -1
  616. package/lib/testing/stub-writable-file-system.js +2 -1
  617. package/lib/testing/stub-writable-file-system.js.map +1 -1
  618. package/lib/util/connection-liveness.d.ts +22 -6
  619. package/lib/util/connection-liveness.d.ts.map +1 -1
  620. package/lib/util/connection-liveness.js +75 -15
  621. package/lib/util/connection-liveness.js.map +1 -1
  622. package/lib/util/environment.d.ts +7 -0
  623. package/lib/util/environment.d.ts.map +1 -1
  624. package/lib/util/environment.js +15 -1
  625. package/lib/util/environment.js.map +1 -1
  626. package/lib/util/registry.d.ts.map +1 -1
  627. package/package.json +41 -60
  628. package/src/browser/host-heads-in-worker.ts +218 -0
  629. package/src/browser/index.ts +17 -0
  630. package/src/browser/indexeddb-file-system-store.ts +192 -0
  631. package/src/browser/start-language-server-in-worker.ts +56 -0
  632. package/src/documents/ast-document-manager.ts +477 -249
  633. package/src/documents/client-ids.ts +5 -22
  634. package/src/documents/client-session-errors.ts +26 -0
  635. package/src/documents/client-session-registry.ts +262 -0
  636. package/src/documents/dirty-state-tracker.ts +167 -0
  637. package/src/documents/document-release-handler.ts +404 -0
  638. package/src/documents/document-release-scheduler.ts +121 -0
  639. package/src/documents/file-system-task-queue.ts +74 -0
  640. package/src/documents/hydranium-text-documents.ts +1029 -616
  641. package/src/documents/index.ts +10 -2
  642. package/src/documents/language-client-shadow.ts +501 -0
  643. package/src/documents/model-ledger.ts +66 -0
  644. package/src/documents/text-ledger.ts +112 -0
  645. package/src/documents/version-sync-service.ts +289 -0
  646. package/src/index.ts +3 -0
  647. package/src/langium/ast-extension/ast-extension-service.ts +77 -41
  648. package/src/langium/ast-extension/ast-node-builder.ts +35 -13
  649. package/src/langium/bootstrap.ts +79 -43
  650. package/src/langium/build-phase-pass/build-phase-pass-service.ts +29 -19
  651. package/src/langium/build-phase-pass/build-phase-pass.ts +37 -8
  652. package/src/langium/composite-ast-reflection.ts +112 -0
  653. package/src/langium/config/configuration-provider.ts +119 -0
  654. package/src/langium/config/index.ts +1 -0
  655. package/src/langium/diagnostics/console-tee.ts +150 -0
  656. package/src/langium/diagnostics/hydranium-langium-profiler.ts +15 -39
  657. package/src/langium/diagnostics/log-preamble.ts +1 -1
  658. package/src/langium/diagnostics/logger.ts +51 -17
  659. package/src/langium/diagnostics/lsp-logger.ts +83 -45
  660. package/src/langium/document-builder/build-pipeline-integration.ts +57 -32
  661. package/src/langium/document-builder/build-session.ts +4 -3
  662. package/src/langium/document-builder/document-builder.ts +709 -105
  663. package/src/langium/integration-services.ts +58 -27
  664. package/src/langium/integrity/integrity-rule.ts +22 -8
  665. package/src/langium/integrity/integrity-service.ts +348 -71
  666. package/src/langium/keys/containment.ts +3 -2
  667. package/src/langium/keys/name-based-key-provider.ts +24 -12
  668. package/src/langium/language-module.ts +52 -9
  669. package/src/langium/model-service/client-session.ts +769 -0
  670. package/src/langium/model-service/index.ts +2 -0
  671. package/src/langium/model-service/model-events.ts +82 -0
  672. package/src/langium/model-service/model-service.ts +885 -522
  673. package/src/langium/module.ts +139 -63
  674. package/src/langium/naming/name-provider.ts +34 -8
  675. package/src/langium/project/abstract-project-manager.ts +409 -20
  676. package/src/langium/project/project-change-event.ts +25 -3
  677. package/src/langium/project/project-manager.ts +31 -2
  678. package/src/langium/project/single-project-manager.ts +16 -1
  679. package/src/langium/residency/cst-residency-service.ts +197 -73
  680. package/src/langium/scope/ast-node-description-provider.ts +111 -16
  681. package/src/langium/scope/built-local-symbols.ts +13 -0
  682. package/src/langium/scope/fallback-scope.ts +38 -0
  683. package/src/langium/scope/hydranium-scope-computation.ts +45 -44
  684. package/src/langium/scope/hydranium-scope-provider.ts +245 -41
  685. package/src/langium/scope/index.ts +1 -0
  686. package/src/langium/scope/reference-candidate-provider.ts +6 -5
  687. package/src/langium/scope/scope-extension-service.ts +148 -56
  688. package/src/langium/scope/scoped-ast-node-description.ts +1 -3
  689. package/src/langium/serialization/abstract-serializer.ts +57 -41
  690. package/src/langium/serialization/json-serializer.ts +14 -3
  691. package/src/langium/serialization/serializer.ts +1 -1
  692. package/src/langium/serialization/yaml-serializer.ts +26 -4
  693. package/src/langium/service-registry.ts +41 -2
  694. package/src/langium/shared-services.ts +13 -4
  695. package/src/langium/single-langium-copy.ts +42 -0
  696. package/src/langium/transfer/transfer-encoder.ts +76 -50
  697. package/src/langium/trivia/comment-preserver.ts +1410 -0
  698. package/src/langium/trivia/document-ending-preserver.ts +71 -0
  699. package/src/langium/trivia/index.ts +14 -0
  700. package/src/langium/trivia/trivia-contribution.ts +39 -0
  701. package/src/langium/trivia/trivia-preserver.ts +56 -0
  702. package/src/langium/trivia/trivia-service.ts +99 -0
  703. package/src/langium/update-rewrite/update-rewrite-service.ts +1 -1
  704. package/src/langium/update-rewrite/update-rewrite.ts +1 -1
  705. package/src/langium/validation/document-validator.ts +312 -31
  706. package/src/langium/validation/validation-contribution-collector.ts +10 -1
  707. package/src/langium/workspace/ast-node-locator.ts +33 -0
  708. package/src/langium/workspace/document-uri-policy.ts +32 -18
  709. package/src/langium/workspace/file-not-found.ts +35 -0
  710. package/src/langium/workspace/file-system-provider.ts +258 -16
  711. package/src/langium/workspace/hydranium-langium-document-factory.ts +107 -0
  712. package/src/langium/workspace/hydranium-workspace-lock.ts +86 -2
  713. package/src/langium/workspace/hydranium-workspace-manager.ts +214 -35
  714. package/src/langium/workspace/in-memory-file-system-provider.ts +54 -23
  715. package/src/langium/workspace/index.ts +3 -0
  716. package/src/langium/workspace/initialize-workspace.ts +96 -4
  717. package/src/langium/workspace/langium-documents.ts +19 -1
  718. package/src/langium/workspace/persistent-file-system-provider.ts +27 -15
  719. package/src/{documents → langium/workspace}/self-save-registry.ts +12 -14
  720. package/src/langium/workspace/syntax-errors.ts +34 -0
  721. package/src/langium/workspace/virtual-document.ts +106 -25
  722. package/src/langium/workspace/write-lock-scope.ts +27 -12
  723. package/src/launcher/integrated-server.ts +3 -1
  724. package/src/locale/server-locale.ts +6 -6
  725. package/src/lsp/completion/hydranium-completion-provider.ts +82 -2
  726. package/src/lsp/connection-features.ts +67 -0
  727. package/src/lsp/diagnostics-connection.ts +56 -0
  728. package/src/lsp/edit-requests-guard.ts +152 -0
  729. package/src/lsp/hydranium-document-update-handler.ts +284 -110
  730. package/src/lsp/index.ts +6 -2
  731. package/src/lsp/lsp-latency.ts +62 -0
  732. package/src/lsp/save-text-document.ts +63 -0
  733. package/src/lsp/semantic-token-provider.ts +146 -8
  734. package/src/lsp/shared-module.ts +4 -8
  735. package/src/lsp/start-language-server.ts +21 -7
  736. package/src/messages/carriers.ts +4 -6
  737. package/src/messages/index.ts +11 -2
  738. package/src/messages/renderer.ts +11 -3
  739. package/src/node/event-loop-monitor.ts +2 -1
  740. package/src/node/heap-ceiling.ts +108 -0
  741. package/src/node/index.ts +5 -1
  742. package/src/node/latency-from-env.ts +1 -1
  743. package/src/node/log-file-sink.ts +6 -2
  744. package/src/node/log-preamble-node.ts +20 -10
  745. package/src/node/measure-memory.ts +5 -4
  746. package/src/node/memory-monitor.ts +10 -10
  747. package/src/node/node-file-system-provider.ts +214 -57
  748. package/src/node/profile-capture.ts +16 -15
  749. package/src/node/profiling-run.ts +30 -8
  750. package/src/node/rename-over-open-readers.ts +94 -0
  751. package/src/node/server-diagnostics.ts +1 -1
  752. package/src/node/server-state-snapshot.ts +6 -7
  753. package/src/node/socket-launcher.ts +78 -14
  754. package/src/node/startup-cpu-profile.ts +94 -0
  755. package/src/node/stdio-launcher.ts +29 -19
  756. package/src/node/validate-workspace.ts +8 -2
  757. package/src/testing/document-uri-policy-conformance.ts +1 -1
  758. package/src/testing/fake-document.ts +2 -1
  759. package/src/testing/index.ts +2 -1
  760. package/src/testing/langium-test-helpers.ts +1 -0
  761. package/src/testing/make-test-services.ts +83 -31
  762. package/src/testing/make-test-tracer.ts +26 -0
  763. package/src/testing/node/applied-edit-capture.ts +141 -0
  764. package/src/testing/node/index.ts +1 -0
  765. package/src/testing/node/lsp-harness.ts +2 -0
  766. package/src/testing/node/lsp-server-connection.ts +83 -119
  767. package/src/testing/node/scratch-workspace.ts +10 -5
  768. package/src/testing/node/spawned-server.ts +57 -3
  769. package/src/testing/node/unhandled-rejections.ts +31 -0
  770. package/src/testing/parse-semantic-root.ts +1 -1
  771. package/src/testing/playwright/flaky-network-proxy.ts +240 -0
  772. package/src/testing/playwright/index.ts +1 -0
  773. package/src/testing/playwright/server-log-capture.ts +137 -47
  774. package/src/testing/playwright/server-log-fixture.ts +46 -6
  775. package/src/testing/playwright/server-log-region.ts +32 -0
  776. package/src/testing/playwright/server-log-rename-reporter.ts +4 -3
  777. package/src/testing/run-update-pipeline.ts +8 -5
  778. package/src/testing/stub-ast-document-manager.ts +47 -123
  779. package/src/testing/stub-document-builder.ts +155 -18
  780. package/src/testing/stub-hydranium-text-documents.ts +184 -27
  781. package/src/testing/stub-langium-documents.ts +3 -2
  782. package/src/testing/stub-model-service.ts +9 -8
  783. package/src/testing/stub-project-manager.ts +10 -0
  784. package/src/testing/stub-self-save-registry.ts +1 -1
  785. package/src/testing/stub-service-registry.ts +1 -1
  786. package/src/testing/stub-writable-file-system.ts +3 -2
  787. package/src/util/connection-liveness.ts +81 -15
  788. package/src/util/environment.ts +24 -2
  789. package/lib/documents/language-client-text-shadow.d.ts +0 -124
  790. package/lib/documents/language-client-text-shadow.d.ts.map +0 -1
  791. package/lib/documents/language-client-text-shadow.js +0 -190
  792. package/lib/documents/language-client-text-shadow.js.map +0 -1
  793. package/lib/documents/self-save-registry.d.ts.map +0 -1
  794. package/lib/documents/self-save-registry.js.map +0 -1
  795. package/lib/lsp/instrument-connection.d.ts +0 -36
  796. package/lib/lsp/instrument-connection.d.ts.map +0 -1
  797. package/lib/lsp/instrument-connection.js +0 -62
  798. package/lib/lsp/instrument-connection.js.map +0 -1
  799. package/lib/node/process-memory.d.ts +0 -66
  800. package/lib/node/process-memory.d.ts.map +0 -1
  801. package/lib/node/process-memory.js +0 -252
  802. package/lib/node/process-memory.js.map +0 -1
  803. package/src/documents/language-client-text-shadow.ts +0 -211
  804. package/src/lsp/instrument-connection.ts +0 -66
  805. package/src/node/process-memory.ts +0 -299
@@ -1 +1 @@
1
- {"version":3,"file":"shared-services.d.ts","sourceRoot":"","sources":["../../src/langium/shared-services.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AACvF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AAC5F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAChF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kDAAkD,CAAC;AACjG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAC;AAC5F,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,iDAAiD,CAAC;AAEtG;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,WAAW,2BAA2B,CAAC,QAAQ,SAAS,OAAO,GAAG,OAAO,CAAE,SAAQ,yBAAyB;IAC/G,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,8BAA8B,CAAC,CAAC;IACpE;;;;OAIG;IACH,eAAe,EAAE,eAAe,CAAC;IACjC,uEAAuE;IACvE,YAAY,EAAE,YAAY,CAAC;IAC3B;;;;;;;;OAQG;IACH,eAAe,EAAE,uBAAuB,CAAC;IACzC,SAAS,EAAE,yBAAyB,CAAC,WAAW,CAAC,GAAG;QAGjD,kBAAkB,EAAE,0BAA0B,CAAC;QAI/C,gBAAgB,EAAE,yBAAyB,CAAC;QAK7B,gBAAgB,EAAE,yBAAyB,CAAC;QAC3D,cAAc,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;QACzC,gBAAgB,EAAE,gBAAgB,CAAC;QACnC,wBAAwB,EAAE,wBAAwB,CAAC;QACnD,qBAAqB,EAAE,qBAAqB,CAAC;QAC7C,mBAAmB,EAAE,mBAAmB,CAAC;QACzC,iBAAiB,EAAE,iBAAiB,CAAC;KACvC,CAAC;CACJ;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,2BAA2B,KAAK,OAAO,GAAG,CAAC,QAAQ,EAAE,OAAO,KAAK,OAAO,CAEvI"}
1
+ {"version":3,"file":"shared-services.d.ts","sourceRoot":"","sources":["../../src/langium/shared-services.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AACtF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AAC5F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAChF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kDAAkD,CAAC;AACjG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAC;AAC5F,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AACvF,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,iDAAiD,CAAC;AAEtG;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,WAAW,2BAA2B,CAAC,QAAQ,SAAS,OAAO,GAAG,OAAO,CAAE,SAAQ,yBAAyB;IAC/G,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,8BAA8B,CAAC,CAAC;IACpE;;;;OAIG;IACH,eAAe,EAAE,eAAe,CAAC;IACjC,uEAAuE;IACvE,YAAY,EAAE,YAAY,CAAC;IAC3B;;;;;;;;OAQG;IACH,eAAe,EAAE,uBAAuB,CAAC;IACzC,SAAS,EAAE,yBAAyB,CAAC,WAAW,CAAC,GAAG;QAGjD,kBAAkB,EAAE,0BAA0B,CAAC;QAI/C,gBAAgB,EAAE,yBAAyB,CAAC;QAK7B,gBAAgB,EAAE,yBAAyB,CAAC;QAI5C,eAAe,EAAE,wBAAwB,CAAC;QACzD,cAAc,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;QACzC,gBAAgB,EAAE,gBAAgB,CAAC;QACnC,wBAAwB,EAAE,wBAAwB,CAAC;QACnD,qBAAqB,EAAE,qBAAqB,CAAC;QAC7C,mBAAmB,EAAE,mBAAmB,CAAC;QACzC,iBAAiB,EAAE,iBAAiB,CAAC;QACrC,WAAW,EAAE,WAAW,CAAC;QACzB,kBAAkB,EAAE,kBAAkB,CAAC;KACzC,CAAC;CACJ;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,2BAA2B,KAAK,OAAO,GAAG,CAAC,QAAQ,EAAE,OAAO,KAAK,OAAO,CAEvI"}
@@ -1 +1 @@
1
- {"version":3,"file":"shared-services.js","sourceRoot":"","sources":["../../src/langium/shared-services.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAgGlF;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,mBAAmB,CAAU,MAA0D;IACpG,OAAO,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,QAAuC,CAAC,CAAC;AACtE,CAAC"}
1
+ {"version":3,"file":"shared-services.js","sourceRoot":"","sources":["../../src/langium/shared-services.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAyGlF;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,mBAAmB,CAAU,MAA0D;IACpG,OAAO,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,QAAuC,CAAC,CAAC;AACtE,CAAC"}
@@ -0,0 +1,22 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2026 EclipseSource and others.
3
+ *
4
+ * This program and the accompanying materials are made available under the
5
+ * terms of the MIT License which is available in the project root.
6
+ *
7
+ * SPDX-License-Identifier: MIT
8
+ ********************************************************************************/
9
+ import { type AstReflection } from '@hydranium/langium';
10
+ /**
11
+ * Fail fast when `reflection` extends `AbstractAstReflection` from a second
12
+ * copy of `langium`, which the files `langium-cli` generates run on: a second
13
+ * install, or one install a bundler or test runner loads twice.
14
+ *
15
+ * A reflection whose prototype chain misses this copy's base is taken to come
16
+ * from another copy when it carries the `subtypes` and `allSubtypes` fields that
17
+ * base creates, which `AstReflection` does not declare. Fields rather than the
18
+ * class name, because bundlers and minifiers rename classes; a hand-written
19
+ * reflection passes unless it declares both fields itself.
20
+ */
21
+ export declare function assertSingleLangiumCopy(reflection: AstReflection, subject?: () => string): void;
22
+ //# sourceMappingURL=single-langium-copy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"single-langium-copy.d.ts","sourceRoot":"","sources":["../../src/langium/single-langium-copy.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAAyB,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAE/E;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CACpC,UAAU,EAAE,aAAa,EACzB,OAAO,GAAE,MAAM,MAA+F,GAC9G,IAAI,CAgBN"}
@@ -0,0 +1,36 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2026 EclipseSource and others.
3
+ *
4
+ * This program and the accompanying materials are made available under the
5
+ * terms of the MIT License which is available in the project root.
6
+ *
7
+ * SPDX-License-Identifier: MIT
8
+ ********************************************************************************/
9
+ import { AbstractAstReflection } from '@hydranium/langium';
10
+ /**
11
+ * Fail fast when `reflection` extends `AbstractAstReflection` from a second
12
+ * copy of `langium`, which the files `langium-cli` generates run on: a second
13
+ * install, or one install a bundler or test runner loads twice.
14
+ *
15
+ * A reflection whose prototype chain misses this copy's base is taken to come
16
+ * from another copy when it carries the `subtypes` and `allSubtypes` fields that
17
+ * base creates, which `AstReflection` does not declare. Fields rather than the
18
+ * class name, because bundlers and minifiers rename classes; a hand-written
19
+ * reflection passes unless it declares both fields itself.
20
+ */
21
+ export function assertSingleLangiumCopy(reflection, subject = () => `the shared AstReflection (${reflection.constructor?.name ?? 'no constructor'})`) {
22
+ if (reflection instanceof AbstractAstReflection) {
23
+ return;
24
+ }
25
+ if (Object.hasOwn(reflection, 'subtypes') && Object.hasOwn(reflection, 'allSubtypes')) {
26
+ throw new Error(`[hydranium] ${subject()} extends \`AbstractAstReflection\` from another instance of \`langium\` than ` +
27
+ 'the one `@hydranium/langium` loads, a second physical copy or one install loaded twice, so the generated ' +
28
+ 'code runs on one and the framework on the other. Values Langium compares by identity, such as its ' +
29
+ 'cancellation signal, are not recognised across the two. `npm explain langium` lists each installed copy ' +
30
+ 'and what requires it. If your package resolves another version, declare `langium` at the version ' +
31
+ '`@hydranium/langium` pins and reinstall from scratch, without the lockfile; in a workspace, declare the ' +
32
+ 'same pins in the root as well. If a test runner or bundler inlines `langium` but not `@hydranium/*`, ' +
33
+ 'load both the same way.');
34
+ }
35
+ }
36
+ //# sourceMappingURL=single-langium-copy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"single-langium-copy.js","sourceRoot":"","sources":["../../src/langium/single-langium-copy.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAAE,qBAAqB,EAAsB,MAAM,oBAAoB,CAAC;AAE/E;;;;;;;;;;GAUG;AACH,MAAM,UAAU,uBAAuB,CACpC,UAAyB,EACzB,OAAO,GAAiB,GAAG,EAAE,CAAC,6BAA6B,UAAU,CAAC,WAAW,EAAE,IAAI,IAAI,gBAAgB,GAAG;IAE9G,IAAI,UAAU,YAAY,qBAAqB,EAAE,CAAC;QAC/C,OAAO;IACV,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,EAAE,CAAC;QACrF,MAAM,IAAI,KAAK,CACZ,eAAe,OAAO,EAAE,+EAA+E;YACpG,2GAA2G;YAC3G,oGAAoG;YACpG,0GAA0G;YAC1G,mGAAmG;YACnG,0GAA0G;YAC1G,uGAAuG;YACvG,yBAAyB,CAC9B,CAAC;IACL,CAAC;AACJ,CAAC"}
@@ -6,13 +6,13 @@
6
6
  *
7
7
  * SPDX-License-Identifier: MIT
8
8
  ********************************************************************************/
9
- import { type Tracer, type TransferDiagnostic, type TransferElement, type TransferDocument, type TransferTypeFor } from '@hydranium/protocol';
9
+ import { type TransferModelSnapshot, type Tracer, type TransferDiagnostic, type TransferElement, type TransferTypeFor } from '@hydranium/protocol';
10
10
  import { type AstNode, DocumentCache, type LangiumDocument } from '@hydranium/langium';
11
11
  import { Diagnostic } from 'vscode-languageserver-protocol';
12
12
  import { type AstDocument } from '../../documents/ast-document-manager.js';
13
13
  import { type LogNameOptions } from '../diagnostics/logger.js';
14
14
  import { type ServerSharedServicesMinimal } from '../shared-services.js';
15
- import { type TransferLspDiagnostic } from '../validation/document-validator.js';
15
+ import { type AstDiagnostic } from '../validation/document-validator.js';
16
16
  /**
17
17
  * Which set of properties {@link TransferEncoder.toTransfer} emits.
18
18
  *
@@ -20,25 +20,28 @@ import { type TransferLspDiagnostic } from '../validation/document-validator.js'
20
20
  * including AST-extension-derived computed scalars and synthetic child
21
21
  * mirrors. This is the wire shape clients consume, and the default.
22
22
  * - `'grammar'` — only the grammar-declared properties, per
23
- * `AstReflection.getTypeMetaData($type).properties`. Excludes every
24
- * computed / synthetic property by construction (no naming convention,
25
- * no registration). Yields the authored state a serializer round-trips —
26
- * a diffable, acyclic baseline for field-level recording / forward-write
27
- * reconcile.
23
+ * `AstReflection.getTypeMetaData($type).properties`, each carrying the
24
+ * node's own authored value. Excludes every computed / synthetic property
25
+ * by construction (no naming convention, no registration) and bypasses the
26
+ * `resolvePropertyValue` substitution hook, so neither a computed KEY nor a
27
+ * computed VALUE can reach this shape. Yields the authored state a
28
+ * serializer round-trips — a diffable, acyclic baseline for field-level
29
+ * recording / forward-write reconcile.
28
30
  */
29
31
  export type TransferMode = 'full' | 'grammar';
30
32
  /**
31
33
  * Per-encode inputs threaded through the {@link TransferEncoder} walk and its
32
34
  * hooks. Created once per encode entry (see
33
- * {@link TransferEncoder.createEncodeContext}) and passed unchanged through
34
- * the recursion, so every hook invocation of one encode observes the same
35
- * inputs — unlike instance state, which two interleaving encodes would
35
+ * {@link DefaultTransferEncoder.createEncodeContext}) and passed unchanged
36
+ * through the recursion, so every hook invocation of one encode observes the
37
+ * same inputs — unlike instance state, which two interleaving encodes would
36
38
  * clobber.
37
39
  *
38
40
  * Adopters widen the context by overriding `createEncodeContext` with a
39
41
  * covariant return type and narrowing the hook parameter types accordingly
40
42
  * (TypeScript method bivariance admits the narrowing). An input that changes
41
- * the encoded output must also be folded into {@link TransferEncoder.rootCacheKey}.
43
+ * the encoded output must also be folded into
44
+ * {@link DefaultTransferEncoder.rootCacheKey}.
42
45
  */
43
46
  export interface EncodeContext {
44
47
  /** Property-set selection for this encode — see {@link TransferMode}. */
@@ -52,21 +55,30 @@ export interface EncodeContext {
52
55
  readonly uri?: string;
53
56
  }
54
57
  /**
55
- * The non-root inputs {@link TransferEncoder.assembleTransferDocument} needs to
56
- * build a wire envelope. Both of the encoder's document paths narrow to this
57
- * before assembling — a built `LangiumDocument` (whose `uri` / `version` live on
58
- * its `textDocument`) and a server-internal `AstDocument` snapshot, which
59
- * satisfies the shape structurally — so the assembly seam has exactly one
60
- * implementation to override.
58
+ * The non-root inputs {@link DefaultTransferEncoder.assembleTransferDocument}
59
+ * needs to build a wire envelope. Both of the encoder's document paths narrow
60
+ * to this before assembling — a built `LangiumDocument` (whose `uri` /
61
+ * `version` live on its `textDocument`) and a server-internal `AstDocument`
62
+ * snapshot, which satisfies the shape structurally — so the assembly seam has
63
+ * exactly one implementation to override.
61
64
  *
62
65
  * `diagnostics` accepts either the wire shape (an already-projected
63
66
  * `TDiagnostic`, as a snapshot may carry) or a raw LSP {@link Diagnostic}; the
64
67
  * assembly projects each through {@link TransferEncoder.toTransferDiagnostic}.
68
+ * Absent for a document not validated yet, and left absent on the wire.
65
69
  */
66
70
  export interface TransferEnvelopeSource<TDiagnostic> {
67
71
  readonly uri: string;
68
72
  readonly version: number;
69
- readonly diagnostics: readonly (TDiagnostic | Diagnostic)[];
73
+ readonly diagnostics?: readonly (TDiagnostic | Diagnostic)[];
74
+ }
75
+ /**
76
+ * A `TransferDocument` as the encoder produces it: the model block without
77
+ * its `hash`, which the data server computes from the encoded model.
78
+ */
79
+ export interface EncodedTransferDocument<TTransfer extends TransferElement, TDiagnostic = TransferDiagnostic> {
80
+ uri: string;
81
+ model: Omit<TransferModelSnapshot<TTransfer, TDiagnostic>, 'hash'>;
70
82
  }
71
83
  /**
72
84
  * The AST→transfer contract a DI slot holds, implemented by
@@ -92,9 +104,9 @@ export interface TransferEnvelopeSource<TDiagnostic> {
92
104
  */
93
105
  export interface TransferEncoder<TDiagnostic extends TransferDiagnostic = TransferDiagnostic> {
94
106
  toTransfer<T extends AstNode>(ast: T, mode?: TransferMode): TransferElement;
95
- toTransferDocument(langiumDocument: LangiumDocument): TransferDocument<TransferElement, TDiagnostic>;
96
- astDocumentToTransferDocument<TAst extends AstNode>(document: AstDocument<TAst, TDiagnostic | TransferLspDiagnostic>): TransferDocument<TransferElement, TDiagnostic>;
97
- toTransferDiagnostic(diagnostic: TransferLspDiagnostic): TDiagnostic;
107
+ toTransferDocument(langiumDocument: LangiumDocument): EncodedTransferDocument<TransferElement, TDiagnostic>;
108
+ astDocumentToTransferDocument<TAst extends AstNode>(document: AstDocument<TAst, AstDiagnostic>): EncodedTransferDocument<TransferElement, TDiagnostic>;
109
+ toTransferDiagnostic(diagnostic: AstDiagnostic): TDiagnostic;
98
110
  }
99
111
  /**
100
112
  * One-directional structural mapper from a Langium AST into the wire
@@ -113,8 +125,8 @@ export interface TransferEncoder<TDiagnostic extends TransferDiagnostic = Transf
113
125
  * resolving each AST type to its declared wire shape. Default is
114
126
  * `Record<string, TransferElement>`, which collapses every encoded node
115
127
  * to the structural base — adequate for adopters without a generated
116
- * overlay; richer adopters declare typed maps for autocomplete on the
117
- * encoder's return types.
128
+ * overlay; an adopter passes the generated `<LanguageId>TransferTypes` to
129
+ * type the encoder's returns by the grammar.
118
130
  * - `TDiagnostic` — wire-diagnostic shape produced by
119
131
  * {@link toTransferDiagnostic}. Constrained to extend
120
132
  * {@link TransferDiagnostic} so the framework default (which constructs a
@@ -129,15 +141,16 @@ export interface TransferEncoder<TDiagnostic extends TransferDiagnostic = Transf
129
141
  * - {@link propertyKeys} — which property names the walk visits.
130
142
  * - {@link shouldEmitProperty} — per-key filter on top of the default
131
143
  * `$`-internals strip.
132
- * - {@link resolvePropertyValue} — value substitution per property.
144
+ * - {@link resolvePropertyValue} — value substitution per property, `'full'`
145
+ * mode only (see there for why `'grammar'` bypasses it).
133
146
  * - {@link finalizeTransferNode} — post-decoration per encoded node.
134
147
  * - {@link toTransferValue} — recursion seam per property value. Override
135
148
  * to special-case reference encoding or to drop specific value shapes.
136
149
  * Envelope-level seams:
137
150
  * - {@link toTransferDocument} — bundle root + diagnostics into the wire
138
- * {@link TransferDocument} envelope. Override to filter / merge
151
+ * {@link EncodedTransferDocument} envelope. Override to filter / merge
139
152
  * diagnostics from auxiliary sources or to project a synthesised root.
140
- * - {@link toTransferDiagnostic} — project a {@link TransferLspDiagnostic}
153
+ * - {@link toTransferDiagnostic} — project a {@link AstDiagnostic}
141
154
  * (the framework validator's output) to {@link TDiagnostic}.
142
155
  */
143
156
  export declare class DefaultTransferEncoder<TTransferMap = Record<string, TransferElement>, TDiagnostic extends TransferDiagnostic = TransferDiagnostic> {
@@ -222,8 +235,17 @@ export declare class DefaultTransferEncoder<TTransferMap = Record<string, Transf
222
235
  */
223
236
  protected shouldEmitProperty(_ast: AstNode, key: string, _context: EncodeContext): boolean;
224
237
  /**
225
- * Which value the walk emits under `key`. Default: the node's own value.
226
- * Override to substitute a derived value under a grammar property name.
238
+ * Which value the walk emits under `key`, in `'full'` mode ONLY. Default:
239
+ * the node's own value.
240
+ *
241
+ * Override to substitute a derived value under a grammar property name — an
242
+ * inheritance-resolved field, a preference-dependent label. `'grammar'`
243
+ * bypasses this hook and reads the node directly: that mode's contract is
244
+ * the authored state a serializer round-trips, and a substituted value is by
245
+ * construction not the one the document declared. An override that applied
246
+ * in both modes would leave the grammar shape carrying derived values under
247
+ * declared property names — diffable and acyclic still, but no longer
248
+ * authored, which is the property every consumer of that mode relies on.
227
249
  */
228
250
  protected resolvePropertyValue(ast: AstNode, key: string, _context: EncodeContext): unknown;
229
251
  /**
@@ -234,7 +256,7 @@ export declare class DefaultTransferEncoder<TTransferMap = Record<string, Transf
234
256
  */
235
257
  protected finalizeTransferNode(_ast: AstNode, _result: Record<string, unknown>, _context: EncodeContext): void;
236
258
  /**
237
- * Build a wire {@link TransferDocument} envelope from a built
259
+ * Build a wire {@link EncodedTransferDocument} envelope from a built
238
260
  * {@link LangiumDocument}. The `'full'` root is served from the internal
239
261
  * {@link rootCache} (memoised per document until it next rebuilds), under
240
262
  * {@link rootCacheKey} — so the data-server's fingerprint and emitted
@@ -256,7 +278,7 @@ export declare class DefaultTransferEncoder<TTransferMap = Record<string, Transf
256
278
  * that claim — Langium types `parseResult.value` as a bare `AstNode` — but
257
279
  * the runtime walk doesn't depend on the typing being correct.
258
280
  */
259
- toTransferDocument<TAst extends AstNode>(langiumDocument: LangiumDocument): TransferDocument<TransferTypeFor<TAst, TTransferMap>, TDiagnostic>;
281
+ toTransferDocument<TAst extends AstNode>(langiumDocument: LangiumDocument): EncodedTransferDocument<TransferTypeFor<TAst, TTransferMap>, TDiagnostic>;
260
282
  /**
261
283
  * Wrap an already-encoded root into the wire envelope (uri / version /
262
284
  * projected diagnostics).
@@ -269,19 +291,18 @@ export declare class DefaultTransferEncoder<TTransferMap = Record<string, Transf
269
291
  * {@link TransferEnvelopeSource} rather than a `LangiumDocument` precisely
270
292
  * so the snapshot path can reach it without a `LangiumDocuments` lookup.
271
293
  */
272
- protected assembleTransferDocument<TAst extends AstNode>(source: TransferEnvelopeSource<TDiagnostic>, root: TransferTypeFor<TAst, TTransferMap>): TransferDocument<TransferTypeFor<TAst, TTransferMap>, TDiagnostic>;
294
+ protected assembleTransferDocument<TAst extends AstNode>(source: TransferEnvelopeSource<TDiagnostic>, root: TransferTypeFor<TAst, TTransferMap>): EncodedTransferDocument<TransferTypeFor<TAst, TTransferMap>, TDiagnostic>;
273
295
  /**
274
- * Build a wire {@link TransferDocument} envelope from a server-internal
275
- * {@link AstDocument} snapshot (the AST-typed envelope emitted by
276
- * `AstDocumentManager.onUpdate` / `onSave` and returned from
277
- * `ModelService.request` / `update` / `save`). Distinct from
296
+ * Build a wire {@link EncodedTransferDocument} envelope from a server-internal
297
+ * {@link AstDocument} snapshot (the AST-typed envelope `ModelService`'s
298
+ * events carry and its reads and session writes return). Distinct from
278
299
  * {@link toTransferDocument}(`LangiumDocument`) which encodes against
279
300
  * the live build artifact — adopter facade returns hold the snapshot
280
301
  * directly, and this helper bridges that to the wire shape without a
281
302
  * second `LangiumDocuments.getDocument` lookup.
282
303
  *
283
304
  * The `diagnostic` projection assumes the snapshot's diagnostics carry
284
- * the `TransferLspDiagnostic` shape ({@link Diagnostic} plus the
305
+ * the `AstDiagnostic` shape ({@link Diagnostic} plus the
285
306
  * framework validator's `element` / `property` decoration). Snapshots
286
307
  * built from raw Langium diagnostics structurally satisfy this — the
287
308
  * extra fields are optional in the projection.
@@ -291,10 +312,10 @@ export declare class DefaultTransferEncoder<TTransferMap = Record<string, Transf
291
312
  * {@link TransferEnvelopeSource} structurally), so this path shares the
292
313
  * assembly seam rather than duplicating it.
293
314
  */
294
- astDocumentToTransferDocument<TAst extends AstNode>(document: AstDocument<TAst, TDiagnostic | TransferLspDiagnostic>): TransferDocument<TransferTypeFor<TAst, TTransferMap>, TDiagnostic>;
315
+ astDocumentToTransferDocument<TAst extends AstNode>(document: AstDocument<TAst, AstDiagnostic>): EncodedTransferDocument<TransferTypeFor<TAst, TTransferMap>, TDiagnostic>;
295
316
  /**
296
317
  * Project an LSP-shaped diagnostic (typically a
297
- * {@link TransferLspDiagnostic} produced by
318
+ * {@link AstDiagnostic} produced by
298
319
  * `HydraniumDocumentValidator` — adds `element` + optional `property`
299
320
  * to the standard {@link Diagnostic} shape) to the wire-diagnostic
300
321
  * shape.
@@ -313,7 +334,7 @@ export declare class DefaultTransferEncoder<TTransferMap = Record<string, Transf
313
334
  * Override only if the wire-diagnostic shape needs fields beyond
314
335
  * what {@link TransferDiagnostic} carries.
315
336
  */
316
- toTransferDiagnostic(diagnostic: TransferLspDiagnostic): TDiagnostic;
337
+ toTransferDiagnostic(diagnostic: AstDiagnostic): TDiagnostic;
317
338
  /**
318
339
  * Recursion seam — converts a single property value during the AST
319
340
  * walk. Arrays recurse element-wise; cross-references collapse to
@@ -1 +1 @@
1
- {"version":3,"file":"transfer-encoder.d.ts","sourceRoot":"","sources":["../../../src/langium/transfer/transfer-encoder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transfer-encoder.d.ts","sourceRoot":"","sources":["../../../src/langium/transfer/transfer-encoder.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@
6
6
  *
7
7
  * SPDX-License-Identifier: MIT
8
8
  ********************************************************************************/
9
- import { hasMessageIdentity } from '@hydranium/protocol';
9
+ import { asModelVersion, hasMessageIdentity } from '@hydranium/protocol';
10
10
  import { AstUtils, DocumentCache, DocumentState, isAstNode, isReference } from '@hydranium/langium';
11
11
  import { Diagnostic, DiagnosticSeverity } from 'vscode-languageserver-protocol';
12
12
  /**
@@ -26,8 +26,8 @@ import { Diagnostic, DiagnosticSeverity } from 'vscode-languageserver-protocol';
26
26
  * resolving each AST type to its declared wire shape. Default is
27
27
  * `Record<string, TransferElement>`, which collapses every encoded node
28
28
  * to the structural base — adequate for adopters without a generated
29
- * overlay; richer adopters declare typed maps for autocomplete on the
30
- * encoder's return types.
29
+ * overlay; an adopter passes the generated `<LanguageId>TransferTypes` to
30
+ * type the encoder's returns by the grammar.
31
31
  * - `TDiagnostic` — wire-diagnostic shape produced by
32
32
  * {@link toTransferDiagnostic}. Constrained to extend
33
33
  * {@link TransferDiagnostic} so the framework default (which constructs a
@@ -42,15 +42,16 @@ import { Diagnostic, DiagnosticSeverity } from 'vscode-languageserver-protocol';
42
42
  * - {@link propertyKeys} — which property names the walk visits.
43
43
  * - {@link shouldEmitProperty} — per-key filter on top of the default
44
44
  * `$`-internals strip.
45
- * - {@link resolvePropertyValue} — value substitution per property.
45
+ * - {@link resolvePropertyValue} — value substitution per property, `'full'`
46
+ * mode only (see there for why `'grammar'` bypasses it).
46
47
  * - {@link finalizeTransferNode} — post-decoration per encoded node.
47
48
  * - {@link toTransferValue} — recursion seam per property value. Override
48
49
  * to special-case reference encoding or to drop specific value shapes.
49
50
  * Envelope-level seams:
50
51
  * - {@link toTransferDocument} — bundle root + diagnostics into the wire
51
- * {@link TransferDocument} envelope. Override to filter / merge
52
+ * {@link EncodedTransferDocument} envelope. Override to filter / merge
52
53
  * diagnostics from auxiliary sources or to project a synthesised root.
53
- * - {@link toTransferDiagnostic} — project a {@link TransferLspDiagnostic}
54
+ * - {@link toTransferDiagnostic} — project a {@link AstDiagnostic}
54
55
  * (the framework validator's output) to {@link TDiagnostic}.
55
56
  */
56
57
  export class DefaultTransferEncoder {
@@ -142,7 +143,13 @@ export class DefaultTransferEncoder {
142
143
  if (!this.shouldEmitProperty(ast, key, context)) {
143
144
  continue;
144
145
  }
145
- const value = this.resolvePropertyValue(ast, key, context);
146
+ // `'grammar'` reads the authored value straight off the node rather than
147
+ // through `resolvePropertyValue`. The mode promises a shape the serializer
148
+ // round-trips, and a value-substitution hook cannot honour that: what it
149
+ // returns is by construction not what the document declared. Scoping the
150
+ // hook to `'full'` is what makes that guarantee structural instead of a
151
+ // rule every override has to remember.
152
+ const value = context.mode === 'grammar' ? ast[key] : this.resolvePropertyValue(ast, key, context);
146
153
  // `'grammar'` lists every declared property, including those absent on
147
154
  // this node; skip the absent ones. (`'full'` enumerates only own
148
155
  // properties, so absent properties never surface there.) Part of the
@@ -180,8 +187,17 @@ export class DefaultTransferEncoder {
180
187
  return !key.startsWith('$');
181
188
  }
182
189
  /**
183
- * Which value the walk emits under `key`. Default: the node's own value.
184
- * Override to substitute a derived value under a grammar property name.
190
+ * Which value the walk emits under `key`, in `'full'` mode ONLY. Default:
191
+ * the node's own value.
192
+ *
193
+ * Override to substitute a derived value under a grammar property name — an
194
+ * inheritance-resolved field, a preference-dependent label. `'grammar'`
195
+ * bypasses this hook and reads the node directly: that mode's contract is
196
+ * the authored state a serializer round-trips, and a substituted value is by
197
+ * construction not the one the document declared. An override that applied
198
+ * in both modes would leave the grammar shape carrying derived values under
199
+ * declared property names — diffable and acyclic still, but no longer
200
+ * authored, which is the property every consumer of that mode relies on.
185
201
  */
186
202
  resolvePropertyValue(ast, key, _context) {
187
203
  return ast[key];
@@ -196,7 +212,7 @@ export class DefaultTransferEncoder {
196
212
  // Intentionally empty — adopter seam.
197
213
  }
198
214
  /**
199
- * Build a wire {@link TransferDocument} envelope from a built
215
+ * Build a wire {@link EncodedTransferDocument} envelope from a built
200
216
  * {@link LangiumDocument}. The `'full'` root is served from the internal
201
217
  * {@link rootCache} (memoised per document until it next rebuilds), under
202
218
  * {@link rootCacheKey} — so the data-server's fingerprint and emitted
@@ -223,8 +239,8 @@ export class DefaultTransferEncoder {
223
239
  const root = this.rootCache.get(langiumDocument.uri, this.rootCacheKey(context), () => this.encodeNode(langiumDocument.parseResult.value, context));
224
240
  return this.assembleTransferDocument({
225
241
  uri: langiumDocument.textDocument.uri,
226
- version: langiumDocument.textDocument.version,
227
- diagnostics: langiumDocument.diagnostics ?? []
242
+ version: this.services.workspace.ModelLedger.versionOf(langiumDocument.parseResult.value),
243
+ diagnostics: langiumDocument.diagnostics
228
244
  }, root);
229
245
  }
230
246
  /**
@@ -240,25 +256,20 @@ export class DefaultTransferEncoder {
240
256
  * so the snapshot path can reach it without a `LangiumDocuments` lookup.
241
257
  */
242
258
  assembleTransferDocument(source, root) {
243
- return {
244
- uri: source.uri,
245
- version: source.version,
246
- root,
247
- diagnostics: source.diagnostics.map(diagnostic => this.toTransferDiagnostic(diagnostic))
248
- };
259
+ const diagnostics = source.diagnostics?.map(diagnostic => this.toTransferDiagnostic(diagnostic));
260
+ return { uri: source.uri, model: { root, version: asModelVersion(source.version), ...(diagnostics ? { diagnostics } : {}) } };
249
261
  }
250
262
  /**
251
- * Build a wire {@link TransferDocument} envelope from a server-internal
252
- * {@link AstDocument} snapshot (the AST-typed envelope emitted by
253
- * `AstDocumentManager.onUpdate` / `onSave` and returned from
254
- * `ModelService.request` / `update` / `save`). Distinct from
263
+ * Build a wire {@link EncodedTransferDocument} envelope from a server-internal
264
+ * {@link AstDocument} snapshot (the AST-typed envelope `ModelService`'s
265
+ * events carry and its reads and session writes return). Distinct from
255
266
  * {@link toTransferDocument}(`LangiumDocument`) which encodes against
256
267
  * the live build artifact — adopter facade returns hold the snapshot
257
268
  * directly, and this helper bridges that to the wire shape without a
258
269
  * second `LangiumDocuments.getDocument` lookup.
259
270
  *
260
271
  * The `diagnostic` projection assumes the snapshot's diagnostics carry
261
- * the `TransferLspDiagnostic` shape ({@link Diagnostic} plus the
272
+ * the `AstDiagnostic` shape ({@link Diagnostic} plus the
262
273
  * framework validator's `element` / `property` decoration). Snapshots
263
274
  * built from raw Langium diagnostics structurally satisfy this — the
264
275
  * extra fields are optional in the projection.
@@ -274,7 +285,7 @@ export class DefaultTransferEncoder {
274
285
  }
275
286
  /**
276
287
  * Project an LSP-shaped diagnostic (typically a
277
- * {@link TransferLspDiagnostic} produced by
288
+ * {@link AstDiagnostic} produced by
278
289
  * `HydraniumDocumentValidator` — adds `element` + optional `property`
279
290
  * to the standard {@link Diagnostic} shape) to the wire-diagnostic
280
291
  * shape.
@@ -1 +1 @@
1
- {"version":3,"file":"transfer-encoder.js","sourceRoot":"","sources":["../../../src/langium/transfer/transfer-encoder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transfer-encoder.js","sourceRoot":"","sources":["../../../src/langium/transfer/transfer-encoder.ts"],"names":[],"mappings":"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"}