@hydranium/core 1.0.0-next.27 → 1.0.0-next.271

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 (735) hide show
  1. package/README.md +64 -82
  2. package/lib/documents/ast-document-manager.d.ts +219 -122
  3. package/lib/documents/ast-document-manager.d.ts.map +1 -1
  4. package/lib/documents/ast-document-manager.js +242 -130
  5. package/lib/documents/ast-document-manager.js.map +1 -1
  6. package/lib/documents/client-ids.d.ts +5 -19
  7. package/lib/documents/client-ids.d.ts.map +1 -1
  8. package/lib/documents/client-ids.js +5 -19
  9. package/lib/documents/client-ids.js.map +1 -1
  10. package/lib/documents/client-session-errors.d.ts +15 -0
  11. package/lib/documents/client-session-errors.d.ts.map +1 -0
  12. package/lib/documents/client-session-errors.js +15 -0
  13. package/lib/documents/client-session-errors.js.map +1 -0
  14. package/lib/documents/client-session-registry.d.ts +146 -0
  15. package/lib/documents/client-session-registry.d.ts.map +1 -0
  16. package/lib/documents/client-session-registry.js +207 -0
  17. package/lib/documents/client-session-registry.js.map +1 -0
  18. package/lib/documents/dirty-state-tracker.d.ts +86 -0
  19. package/lib/documents/dirty-state-tracker.d.ts.map +1 -0
  20. package/lib/documents/dirty-state-tracker.js +72 -0
  21. package/lib/documents/dirty-state-tracker.js.map +1 -0
  22. package/lib/documents/document-release-handler.d.ts +204 -0
  23. package/lib/documents/document-release-handler.d.ts.map +1 -0
  24. package/lib/documents/document-release-handler.js +317 -0
  25. package/lib/documents/document-release-handler.js.map +1 -0
  26. package/lib/documents/document-release-scheduler.d.ts +67 -0
  27. package/lib/documents/document-release-scheduler.d.ts.map +1 -0
  28. package/lib/documents/document-release-scheduler.js +80 -0
  29. package/lib/documents/document-release-scheduler.js.map +1 -0
  30. package/lib/documents/file-system-task-queue.d.ts +49 -0
  31. package/lib/documents/file-system-task-queue.d.ts.map +1 -0
  32. package/lib/documents/file-system-task-queue.js +34 -0
  33. package/lib/documents/file-system-task-queue.js.map +1 -0
  34. package/lib/documents/hydranium-text-documents.d.ts +401 -282
  35. package/lib/documents/hydranium-text-documents.d.ts.map +1 -1
  36. package/lib/documents/hydranium-text-documents.js +827 -483
  37. package/lib/documents/hydranium-text-documents.js.map +1 -1
  38. package/lib/documents/index.d.ts +10 -2
  39. package/lib/documents/index.d.ts.map +1 -1
  40. package/lib/documents/index.js +10 -2
  41. package/lib/documents/index.js.map +1 -1
  42. package/lib/documents/language-client-shadow.d.ts +218 -0
  43. package/lib/documents/language-client-shadow.d.ts.map +1 -0
  44. package/lib/documents/language-client-shadow.js +284 -0
  45. package/lib/documents/language-client-shadow.js.map +1 -0
  46. package/lib/documents/model-ledger.d.ts +47 -0
  47. package/lib/documents/model-ledger.d.ts.map +1 -0
  48. package/lib/documents/model-ledger.js +30 -0
  49. package/lib/documents/model-ledger.js.map +1 -0
  50. package/lib/documents/text-ledger.d.ts +64 -0
  51. package/lib/documents/text-ledger.d.ts.map +1 -0
  52. package/lib/documents/text-ledger.js +63 -0
  53. package/lib/documents/text-ledger.js.map +1 -0
  54. package/lib/documents/version-sync-service.d.ts +138 -0
  55. package/lib/documents/version-sync-service.d.ts.map +1 -0
  56. package/lib/documents/version-sync-service.js +173 -0
  57. package/lib/documents/version-sync-service.js.map +1 -0
  58. package/lib/index.d.ts +5 -0
  59. package/lib/index.d.ts.map +1 -1
  60. package/lib/index.js +8 -0
  61. package/lib/index.js.map +1 -1
  62. package/lib/langium/ast-extension/ast-extension-service.d.ts +3 -0
  63. package/lib/langium/ast-extension/ast-extension-service.d.ts.map +1 -1
  64. package/lib/langium/ast-extension/ast-extension-service.js.map +1 -1
  65. package/lib/langium/ast-extension/ast-node-builder.d.ts +32 -9
  66. package/lib/langium/ast-extension/ast-node-builder.d.ts.map +1 -1
  67. package/lib/langium/ast-extension/ast-node-builder.js +60 -22
  68. package/lib/langium/ast-extension/ast-node-builder.js.map +1 -1
  69. package/lib/langium/bootstrap.d.ts +34 -25
  70. package/lib/langium/bootstrap.d.ts.map +1 -1
  71. package/lib/langium/bootstrap.js +77 -37
  72. package/lib/langium/bootstrap.js.map +1 -1
  73. package/lib/langium/build-phase-pass/build-phase-pass-service.d.ts +1 -1
  74. package/lib/langium/build-phase-pass/build-phase-pass-service.d.ts.map +1 -1
  75. package/lib/langium/build-phase-pass/build-phase-pass-service.js.map +1 -1
  76. package/lib/langium/build-phase-pass/build-phase-pass.d.ts +1 -1
  77. package/lib/langium/composite-ast-reflection.d.ts +46 -0
  78. package/lib/langium/composite-ast-reflection.d.ts.map +1 -0
  79. package/lib/langium/composite-ast-reflection.js +97 -0
  80. package/lib/langium/composite-ast-reflection.js.map +1 -0
  81. package/lib/langium/config/configuration-provider.d.ts +81 -0
  82. package/lib/langium/config/configuration-provider.d.ts.map +1 -0
  83. package/lib/langium/config/configuration-provider.js +112 -0
  84. package/lib/langium/config/configuration-provider.js.map +1 -0
  85. package/lib/langium/config/index.d.ts +1 -0
  86. package/lib/langium/config/index.d.ts.map +1 -1
  87. package/lib/langium/config/index.js +1 -0
  88. package/lib/langium/config/index.js.map +1 -1
  89. package/lib/langium/config/settings.js.map +1 -1
  90. package/lib/langium/diagnostics/hydranium-langium-profiler.d.ts +9 -20
  91. package/lib/langium/diagnostics/hydranium-langium-profiler.d.ts.map +1 -1
  92. package/lib/langium/diagnostics/hydranium-langium-profiler.js +15 -24
  93. package/lib/langium/diagnostics/hydranium-langium-profiler.js.map +1 -1
  94. package/lib/langium/diagnostics/log-preamble.js +1 -1
  95. package/lib/langium/diagnostics/log-preamble.js.map +1 -1
  96. package/lib/langium/diagnostics/logger.d.ts +10 -3
  97. package/lib/langium/diagnostics/logger.d.ts.map +1 -1
  98. package/lib/langium/diagnostics/logger.js +12 -5
  99. package/lib/langium/diagnostics/logger.js.map +1 -1
  100. package/lib/langium/diagnostics/lsp-logger.d.ts +17 -0
  101. package/lib/langium/diagnostics/lsp-logger.d.ts.map +1 -1
  102. package/lib/langium/diagnostics/lsp-logger.js +58 -17
  103. package/lib/langium/diagnostics/lsp-logger.js.map +1 -1
  104. package/lib/langium/diagnostics/server-tracer.d.ts.map +1 -1
  105. package/lib/langium/diagnostics/server-tracer.js.map +1 -1
  106. package/lib/langium/document-builder/build-pipeline-integration.d.ts +21 -1
  107. package/lib/langium/document-builder/build-pipeline-integration.d.ts.map +1 -1
  108. package/lib/langium/document-builder/build-pipeline-integration.js +32 -5
  109. package/lib/langium/document-builder/build-pipeline-integration.js.map +1 -1
  110. package/lib/langium/document-builder/build-session.d.ts +6 -5
  111. package/lib/langium/document-builder/build-session.d.ts.map +1 -1
  112. package/lib/langium/document-builder/build-session.js +5 -5
  113. package/lib/langium/document-builder/build-session.js.map +1 -1
  114. package/lib/langium/document-builder/document-builder.d.ts +309 -35
  115. package/lib/langium/document-builder/document-builder.d.ts.map +1 -1
  116. package/lib/langium/document-builder/document-builder.js +511 -75
  117. package/lib/langium/document-builder/document-builder.js.map +1 -1
  118. package/lib/langium/documentation/comment-provider.d.ts.map +1 -1
  119. package/lib/langium/documentation/comment-provider.js.map +1 -1
  120. package/lib/langium/integration-services.d.ts +61 -19
  121. package/lib/langium/integration-services.d.ts.map +1 -1
  122. package/lib/langium/integration-services.js +10 -5
  123. package/lib/langium/integration-services.js.map +1 -1
  124. package/lib/langium/integrity/integrity-rule.d.ts +16 -8
  125. package/lib/langium/integrity/integrity-rule.d.ts.map +1 -1
  126. package/lib/langium/integrity/integrity-rule.js.map +1 -1
  127. package/lib/langium/integrity/integrity-service.d.ts +83 -27
  128. package/lib/langium/integrity/integrity-service.d.ts.map +1 -1
  129. package/lib/langium/integrity/integrity-service.js +273 -63
  130. package/lib/langium/integrity/integrity-service.js.map +1 -1
  131. package/lib/langium/keys/containment.d.ts +64 -0
  132. package/lib/langium/keys/containment.d.ts.map +1 -0
  133. package/lib/langium/keys/containment.js +53 -0
  134. package/lib/langium/keys/containment.js.map +1 -0
  135. package/lib/langium/keys/index.d.ts +1 -0
  136. package/lib/langium/keys/index.d.ts.map +1 -1
  137. package/lib/langium/keys/index.js +1 -0
  138. package/lib/langium/keys/index.js.map +1 -1
  139. package/lib/langium/keys/name-based-key-provider.d.ts +4 -0
  140. package/lib/langium/keys/name-based-key-provider.d.ts.map +1 -1
  141. package/lib/langium/keys/name-based-key-provider.js +4 -0
  142. package/lib/langium/keys/name-based-key-provider.js.map +1 -1
  143. package/lib/langium/keys/positional-key-provider.d.ts.map +1 -1
  144. package/lib/langium/keys/positional-key-provider.js.map +1 -1
  145. package/lib/langium/labeling/label-provider.d.ts.map +1 -1
  146. package/lib/langium/labeling/label-provider.js.map +1 -1
  147. package/lib/langium/language-module.d.ts +30 -5
  148. package/lib/langium/language-module.d.ts.map +1 -1
  149. package/lib/langium/language-module.js +18 -4
  150. package/lib/langium/language-module.js.map +1 -1
  151. package/lib/langium/model-service/client-session.d.ts +343 -0
  152. package/lib/langium/model-service/client-session.d.ts.map +1 -0
  153. package/lib/langium/model-service/client-session.js +428 -0
  154. package/lib/langium/model-service/client-session.js.map +1 -0
  155. package/lib/langium/model-service/index.d.ts +2 -0
  156. package/lib/langium/model-service/index.d.ts.map +1 -1
  157. package/lib/langium/model-service/index.js +2 -0
  158. package/lib/langium/model-service/index.js.map +1 -1
  159. package/lib/langium/model-service/model-events.d.ts +61 -0
  160. package/lib/langium/model-service/model-events.d.ts.map +1 -0
  161. package/lib/langium/model-service/model-events.js +10 -0
  162. package/lib/langium/model-service/model-events.js.map +1 -0
  163. package/lib/langium/model-service/model-service.d.ts +433 -282
  164. package/lib/langium/model-service/model-service.d.ts.map +1 -1
  165. package/lib/langium/model-service/model-service.js +537 -441
  166. package/lib/langium/model-service/model-service.js.map +1 -1
  167. package/lib/langium/module.d.ts +151 -36
  168. package/lib/langium/module.d.ts.map +1 -1
  169. package/lib/langium/module.js +48 -36
  170. package/lib/langium/module.js.map +1 -1
  171. package/lib/langium/naming/name-provider.d.ts +27 -6
  172. package/lib/langium/naming/name-provider.d.ts.map +1 -1
  173. package/lib/langium/naming/name-provider.js +4 -3
  174. package/lib/langium/naming/name-provider.js.map +1 -1
  175. package/lib/langium/naming/name-separator-validation.d.ts +23 -1
  176. package/lib/langium/naming/name-separator-validation.d.ts.map +1 -1
  177. package/lib/langium/naming/name-separator-validation.js +22 -0
  178. package/lib/langium/naming/name-separator-validation.js.map +1 -1
  179. package/lib/langium/project/abstract-project-manager.d.ts.map +1 -1
  180. package/lib/langium/project/abstract-project-manager.js +13 -6
  181. package/lib/langium/project/abstract-project-manager.js.map +1 -1
  182. package/lib/langium/project/project-change-event.d.ts +2 -2
  183. package/lib/langium/project/single-project-manager.d.ts.map +1 -1
  184. package/lib/langium/project/single-project-manager.js.map +1 -1
  185. package/lib/langium/residency/cst-residency-service.d.ts +35 -12
  186. package/lib/langium/residency/cst-residency-service.d.ts.map +1 -1
  187. package/lib/langium/residency/cst-residency-service.js +23 -57
  188. package/lib/langium/residency/cst-residency-service.js.map +1 -1
  189. package/lib/langium/scope/ast-node-description-provider.d.ts.map +1 -1
  190. package/lib/langium/scope/ast-node-description-provider.js.map +1 -1
  191. package/lib/langium/scope/fallback-scope.d.ts +27 -0
  192. package/lib/langium/scope/fallback-scope.d.ts.map +1 -0
  193. package/lib/langium/scope/fallback-scope.js +35 -0
  194. package/lib/langium/scope/fallback-scope.js.map +1 -0
  195. package/lib/langium/scope/hydranium-scope-computation.d.ts +21 -18
  196. package/lib/langium/scope/hydranium-scope-computation.d.ts.map +1 -1
  197. package/lib/langium/scope/hydranium-scope-computation.js +38 -39
  198. package/lib/langium/scope/hydranium-scope-computation.js.map +1 -1
  199. package/lib/langium/scope/hydranium-scope-provider.d.ts +61 -24
  200. package/lib/langium/scope/hydranium-scope-provider.d.ts.map +1 -1
  201. package/lib/langium/scope/hydranium-scope-provider.js +74 -35
  202. package/lib/langium/scope/hydranium-scope-provider.js.map +1 -1
  203. package/lib/langium/scope/index.d.ts +1 -0
  204. package/lib/langium/scope/index.d.ts.map +1 -1
  205. package/lib/langium/scope/index.js +1 -0
  206. package/lib/langium/scope/index.js.map +1 -1
  207. package/lib/langium/scope/reference-builder.d.ts.map +1 -1
  208. package/lib/langium/scope/reference-builder.js.map +1 -1
  209. package/lib/langium/scope/reference-candidate-provider.d.ts +6 -5
  210. package/lib/langium/scope/reference-candidate-provider.d.ts.map +1 -1
  211. package/lib/langium/scope/reference-candidate-provider.js +3 -2
  212. package/lib/langium/scope/reference-candidate-provider.js.map +1 -1
  213. package/lib/langium/scope/scope-extension-service.d.ts +41 -37
  214. package/lib/langium/scope/scope-extension-service.d.ts.map +1 -1
  215. package/lib/langium/scope/scope-extension-service.js +57 -29
  216. package/lib/langium/scope/scope-extension-service.js.map +1 -1
  217. package/lib/langium/scope/scoped-ast-node-description.d.ts +1 -3
  218. package/lib/langium/scope/scoped-ast-node-description.d.ts.map +1 -1
  219. package/lib/langium/scope/scoped-ast-node-description.js +1 -3
  220. package/lib/langium/scope/scoped-ast-node-description.js.map +1 -1
  221. package/lib/langium/serialization/abstract-serializer.d.ts +11 -20
  222. package/lib/langium/serialization/abstract-serializer.d.ts.map +1 -1
  223. package/lib/langium/serialization/abstract-serializer.js +12 -21
  224. package/lib/langium/serialization/abstract-serializer.js.map +1 -1
  225. package/lib/langium/serialization/json-serializer.d.ts +1 -1
  226. package/lib/langium/serialization/json-serializer.d.ts.map +1 -1
  227. package/lib/langium/serialization/json-serializer.js.map +1 -1
  228. package/lib/langium/serialization/serializer.d.ts +1 -1
  229. package/lib/langium/serialization/yaml-serializer.d.ts.map +1 -1
  230. package/lib/langium/serialization/yaml-serializer.js.map +1 -1
  231. package/lib/langium/service-registry.d.ts +29 -1
  232. package/lib/langium/service-registry.d.ts.map +1 -1
  233. package/lib/langium/service-registry.js +37 -0
  234. package/lib/langium/service-registry.js.map +1 -1
  235. package/lib/langium/shared-services.d.ts +23 -6
  236. package/lib/langium/shared-services.d.ts.map +1 -1
  237. package/lib/langium/shared-services.js.map +1 -1
  238. package/lib/langium/single-langium-copy.d.ts +22 -0
  239. package/lib/langium/single-langium-copy.d.ts.map +1 -0
  240. package/lib/langium/single-langium-copy.js +36 -0
  241. package/lib/langium/single-langium-copy.js.map +1 -0
  242. package/lib/langium/transfer/transfer-encoder.d.ts +88 -36
  243. package/lib/langium/transfer/transfer-encoder.d.ts.map +1 -1
  244. package/lib/langium/transfer/transfer-encoder.js +46 -24
  245. package/lib/langium/transfer/transfer-encoder.js.map +1 -1
  246. package/lib/langium/trivia/comment-preserver.d.ts +423 -0
  247. package/lib/langium/trivia/comment-preserver.d.ts.map +1 -0
  248. package/lib/langium/trivia/comment-preserver.js +906 -0
  249. package/lib/langium/trivia/comment-preserver.js.map +1 -0
  250. package/lib/langium/trivia/document-ending-preserver.d.ts +43 -0
  251. package/lib/langium/trivia/document-ending-preserver.d.ts.map +1 -0
  252. package/lib/langium/trivia/document-ending-preserver.js +48 -0
  253. package/lib/langium/trivia/document-ending-preserver.js.map +1 -0
  254. package/lib/langium/trivia/index.d.ts +14 -0
  255. package/lib/langium/trivia/index.d.ts.map +1 -0
  256. package/lib/langium/trivia/index.js +14 -0
  257. package/lib/langium/trivia/index.js.map +1 -0
  258. package/lib/langium/trivia/trivia-contribution.d.ts +37 -0
  259. package/lib/langium/trivia/trivia-contribution.d.ts.map +1 -0
  260. package/lib/langium/trivia/trivia-contribution.js +10 -0
  261. package/lib/langium/trivia/trivia-contribution.js.map +1 -0
  262. package/lib/langium/trivia/trivia-preserver.d.ts +50 -0
  263. package/lib/langium/trivia/trivia-preserver.d.ts.map +1 -0
  264. package/lib/langium/trivia/trivia-preserver.js +10 -0
  265. package/lib/langium/trivia/trivia-preserver.js.map +1 -0
  266. package/lib/langium/trivia/trivia-service.d.ts +70 -0
  267. package/lib/langium/trivia/trivia-service.d.ts.map +1 -0
  268. package/lib/langium/trivia/trivia-service.js +56 -0
  269. package/lib/langium/trivia/trivia-service.js.map +1 -0
  270. package/lib/langium/update-rewrite/normalize-empty-strings.d.ts.map +1 -1
  271. package/lib/langium/update-rewrite/update-rewrite-service.d.ts +1 -1
  272. package/lib/langium/update-rewrite/update-rewrite-service.d.ts.map +1 -1
  273. package/lib/langium/update-rewrite/update-rewrite-service.js.map +1 -1
  274. package/lib/langium/update-rewrite/update-rewrite.d.ts +1 -1
  275. package/lib/langium/validation/document-validator.d.ts +280 -9
  276. package/lib/langium/validation/document-validator.d.ts.map +1 -1
  277. package/lib/langium/validation/document-validator.js +453 -8
  278. package/lib/langium/validation/document-validator.js.map +1 -1
  279. package/lib/langium/validation/validation-contribution-collector.d.ts +9 -1
  280. package/lib/langium/validation/validation-contribution-collector.d.ts.map +1 -1
  281. package/lib/langium/validation/validation-contribution-collector.js +1 -1
  282. package/lib/langium/validation/validation-contribution-collector.js.map +1 -1
  283. package/lib/langium/workspace/document-uri-policy.d.ts +15 -10
  284. package/lib/langium/workspace/document-uri-policy.d.ts.map +1 -1
  285. package/lib/langium/workspace/document-uri-policy.js +7 -5
  286. package/lib/langium/workspace/document-uri-policy.js.map +1 -1
  287. package/lib/langium/workspace/file-not-found.d.ts +23 -0
  288. package/lib/langium/workspace/file-not-found.d.ts.map +1 -0
  289. package/lib/langium/workspace/file-not-found.js +31 -0
  290. package/lib/langium/workspace/file-not-found.js.map +1 -0
  291. package/lib/langium/workspace/file-system-provider.d.ts +147 -9
  292. package/lib/langium/workspace/file-system-provider.d.ts.map +1 -1
  293. package/lib/langium/workspace/file-system-provider.js +97 -14
  294. package/lib/langium/workspace/file-system-provider.js.map +1 -1
  295. package/lib/langium/workspace/hydranium-langium-document-factory.d.ts +56 -1
  296. package/lib/langium/workspace/hydranium-langium-document-factory.d.ts.map +1 -1
  297. package/lib/langium/workspace/hydranium-langium-document-factory.js +79 -0
  298. package/lib/langium/workspace/hydranium-langium-document-factory.js.map +1 -1
  299. package/lib/langium/workspace/hydranium-workspace-lock.d.ts +43 -1
  300. package/lib/langium/workspace/hydranium-workspace-lock.d.ts.map +1 -1
  301. package/lib/langium/workspace/hydranium-workspace-lock.js +58 -1
  302. package/lib/langium/workspace/hydranium-workspace-lock.js.map +1 -1
  303. package/lib/langium/workspace/hydranium-workspace-manager.d.ts +82 -9
  304. package/lib/langium/workspace/hydranium-workspace-manager.d.ts.map +1 -1
  305. package/lib/langium/workspace/hydranium-workspace-manager.js +129 -12
  306. package/lib/langium/workspace/hydranium-workspace-manager.js.map +1 -1
  307. package/lib/langium/workspace/in-memory-file-system-provider.d.ts +22 -7
  308. package/lib/langium/workspace/in-memory-file-system-provider.d.ts.map +1 -1
  309. package/lib/langium/workspace/in-memory-file-system-provider.js +36 -19
  310. package/lib/langium/workspace/in-memory-file-system-provider.js.map +1 -1
  311. package/lib/langium/workspace/index-manager.d.ts.map +1 -1
  312. package/lib/langium/workspace/index-manager.js.map +1 -1
  313. package/lib/langium/workspace/index.d.ts +1 -0
  314. package/lib/langium/workspace/index.d.ts.map +1 -1
  315. package/lib/langium/workspace/index.js +1 -0
  316. package/lib/langium/workspace/index.js.map +1 -1
  317. package/lib/langium/workspace/initialize-workspace.d.ts +31 -2
  318. package/lib/langium/workspace/initialize-workspace.d.ts.map +1 -1
  319. package/lib/langium/workspace/initialize-workspace.js +13 -5
  320. package/lib/langium/workspace/initialize-workspace.js.map +1 -1
  321. package/lib/langium/workspace/langium-documents.d.ts +37 -4
  322. package/lib/langium/workspace/langium-documents.d.ts.map +1 -1
  323. package/lib/langium/workspace/langium-documents.js +49 -4
  324. package/lib/langium/workspace/langium-documents.js.map +1 -1
  325. package/lib/langium/workspace/persistent-file-system-provider.d.ts +1 -8
  326. package/lib/langium/workspace/persistent-file-system-provider.d.ts.map +1 -1
  327. package/lib/langium/workspace/persistent-file-system-provider.js +2 -8
  328. package/lib/langium/workspace/persistent-file-system-provider.js.map +1 -1
  329. package/lib/langium/workspace/self-save-registry.d.ts +84 -0
  330. package/lib/langium/workspace/self-save-registry.d.ts.map +1 -0
  331. package/lib/{documents → langium/workspace}/self-save-registry.js +33 -22
  332. package/lib/langium/workspace/self-save-registry.js.map +1 -0
  333. package/lib/langium/workspace/virtual-document.d.ts +48 -15
  334. package/lib/langium/workspace/virtual-document.d.ts.map +1 -1
  335. package/lib/langium/workspace/virtual-document.js +78 -18
  336. package/lib/langium/workspace/virtual-document.js.map +1 -1
  337. package/lib/langium/workspace/write-lock-scope.d.ts +20 -10
  338. package/lib/langium/workspace/write-lock-scope.d.ts.map +1 -1
  339. package/lib/langium/workspace/write-lock-scope.js +12 -4
  340. package/lib/langium/workspace/write-lock-scope.js.map +1 -1
  341. package/lib/launcher/integrated-server.d.ts +3 -1
  342. package/lib/launcher/integrated-server.d.ts.map +1 -1
  343. package/lib/locale/index.d.ts +10 -0
  344. package/lib/locale/index.d.ts.map +1 -0
  345. package/lib/locale/index.js +10 -0
  346. package/lib/locale/index.js.map +1 -0
  347. package/lib/locale/server-locale.d.ts +73 -0
  348. package/lib/locale/server-locale.d.ts.map +1 -0
  349. package/lib/locale/server-locale.js +61 -0
  350. package/lib/locale/server-locale.js.map +1 -0
  351. package/lib/lsp/completion/hydranium-completion-provider.d.ts +44 -2
  352. package/lib/lsp/completion/hydranium-completion-provider.d.ts.map +1 -1
  353. package/lib/lsp/completion/hydranium-completion-provider.js +68 -0
  354. package/lib/lsp/completion/hydranium-completion-provider.js.map +1 -1
  355. package/lib/lsp/connection-features.d.ts +23 -0
  356. package/lib/lsp/connection-features.d.ts.map +1 -0
  357. package/lib/lsp/connection-features.js +60 -0
  358. package/lib/lsp/connection-features.js.map +1 -0
  359. package/lib/lsp/diagnostics-connection.d.ts +27 -0
  360. package/lib/lsp/diagnostics-connection.d.ts.map +1 -0
  361. package/lib/lsp/diagnostics-connection.js +53 -0
  362. package/lib/lsp/diagnostics-connection.js.map +1 -0
  363. package/lib/lsp/hydranium-document-update-handler.d.ts +92 -81
  364. package/lib/lsp/hydranium-document-update-handler.d.ts.map +1 -1
  365. package/lib/lsp/hydranium-document-update-handler.js +155 -101
  366. package/lib/lsp/hydranium-document-update-handler.js.map +1 -1
  367. package/lib/lsp/index.d.ts +3 -1
  368. package/lib/lsp/index.d.ts.map +1 -1
  369. package/lib/lsp/index.js +3 -1
  370. package/lib/lsp/index.js.map +1 -1
  371. package/lib/lsp/lsp-latency.d.ts +39 -0
  372. package/lib/lsp/lsp-latency.d.ts.map +1 -0
  373. package/lib/lsp/lsp-latency.js +58 -0
  374. package/lib/lsp/lsp-latency.js.map +1 -0
  375. package/lib/lsp/semantic-token-provider.d.ts +34 -1
  376. package/lib/lsp/semantic-token-provider.d.ts.map +1 -1
  377. package/lib/lsp/semantic-token-provider.js +55 -8
  378. package/lib/lsp/semantic-token-provider.js.map +1 -1
  379. package/lib/lsp/shared-module.d.ts +4 -8
  380. package/lib/lsp/shared-module.d.ts.map +1 -1
  381. package/lib/lsp/shared-module.js.map +1 -1
  382. package/lib/lsp/start-language-server.d.ts +8 -7
  383. package/lib/lsp/start-language-server.d.ts.map +1 -1
  384. package/lib/lsp/start-language-server.js +13 -7
  385. package/lib/lsp/start-language-server.js.map +1 -1
  386. package/lib/messages/carriers.d.ts +18 -12
  387. package/lib/messages/carriers.d.ts.map +1 -1
  388. package/lib/messages/carriers.js +22 -13
  389. package/lib/messages/carriers.js.map +1 -1
  390. package/lib/messages/index.d.ts +4 -1
  391. package/lib/messages/index.d.ts.map +1 -1
  392. package/lib/messages/index.js +4 -1
  393. package/lib/messages/index.js.map +1 -1
  394. package/lib/messages/renderer.d.ts +142 -0
  395. package/lib/messages/renderer.d.ts.map +1 -0
  396. package/lib/messages/renderer.js +165 -0
  397. package/lib/messages/renderer.js.map +1 -0
  398. package/lib/node/event-loop-monitor.d.ts.map +1 -1
  399. package/lib/node/event-loop-monitor.js +2 -1
  400. package/lib/node/event-loop-monitor.js.map +1 -1
  401. package/lib/node/heap-ceiling.d.ts +61 -0
  402. package/lib/node/heap-ceiling.d.ts.map +1 -0
  403. package/lib/node/heap-ceiling.js +72 -0
  404. package/lib/node/heap-ceiling.js.map +1 -0
  405. package/lib/node/index.d.ts +1 -1
  406. package/lib/node/index.d.ts.map +1 -1
  407. package/lib/node/index.js +1 -1
  408. package/lib/node/index.js.map +1 -1
  409. package/lib/node/latency-from-env.d.ts +1 -1
  410. package/lib/node/latency-from-env.js +1 -1
  411. package/lib/node/lint-grammar.js.map +1 -1
  412. package/lib/node/log-preamble-node.d.ts +5 -3
  413. package/lib/node/log-preamble-node.d.ts.map +1 -1
  414. package/lib/node/log-preamble-node.js +13 -10
  415. package/lib/node/log-preamble-node.js.map +1 -1
  416. package/lib/node/measure-memory.d.ts.map +1 -1
  417. package/lib/node/measure-memory.js +5 -4
  418. package/lib/node/measure-memory.js.map +1 -1
  419. package/lib/node/memory-monitor.d.ts +2 -2
  420. package/lib/node/memory-monitor.d.ts.map +1 -1
  421. package/lib/node/memory-monitor.js +9 -10
  422. package/lib/node/memory-monitor.js.map +1 -1
  423. package/lib/node/node-file-system-provider.d.ts +54 -9
  424. package/lib/node/node-file-system-provider.d.ts.map +1 -1
  425. package/lib/node/node-file-system-provider.js +141 -52
  426. package/lib/node/node-file-system-provider.js.map +1 -1
  427. package/lib/node/profile-capture.d.ts +12 -4
  428. package/lib/node/profile-capture.d.ts.map +1 -1
  429. package/lib/node/profile-capture.js +8 -6
  430. package/lib/node/profile-capture.js.map +1 -1
  431. package/lib/node/profile-digest.js.map +1 -1
  432. package/lib/node/profiling-run.d.ts +13 -3
  433. package/lib/node/profiling-run.d.ts.map +1 -1
  434. package/lib/node/profiling-run.js +17 -8
  435. package/lib/node/profiling-run.js.map +1 -1
  436. package/lib/node/rename-over-open-readers.d.ts +61 -0
  437. package/lib/node/rename-over-open-readers.d.ts.map +1 -0
  438. package/lib/node/rename-over-open-readers.js +80 -0
  439. package/lib/node/rename-over-open-readers.js.map +1 -0
  440. package/lib/node/server-diagnostics.js +1 -1
  441. package/lib/node/server-diagnostics.js.map +1 -1
  442. package/lib/node/server-state-snapshot.js +4 -4
  443. package/lib/node/server-state-snapshot.js.map +1 -1
  444. package/lib/node/socket-launcher.d.ts +20 -4
  445. package/lib/node/socket-launcher.d.ts.map +1 -1
  446. package/lib/node/socket-launcher.js +8 -7
  447. package/lib/node/socket-launcher.js.map +1 -1
  448. package/lib/node/stdio-launcher.d.ts +6 -5
  449. package/lib/node/stdio-launcher.d.ts.map +1 -1
  450. package/lib/node/stdio-launcher.js +13 -4
  451. package/lib/node/stdio-launcher.js.map +1 -1
  452. package/lib/testing/document-uri-policy-conformance.js +1 -1
  453. package/lib/testing/document-uri-policy-conformance.js.map +1 -1
  454. package/lib/testing/fake-description.js.map +1 -1
  455. package/lib/testing/fake-document.d.ts +16 -4
  456. package/lib/testing/fake-document.d.ts.map +1 -1
  457. package/lib/testing/fake-document.js +18 -3
  458. package/lib/testing/fake-document.js.map +1 -1
  459. package/lib/testing/index.d.ts +1 -1
  460. package/lib/testing/index.d.ts.map +1 -1
  461. package/lib/testing/index.js +2 -1
  462. package/lib/testing/index.js.map +1 -1
  463. package/lib/testing/langium-test-helpers.d.ts.map +1 -1
  464. package/lib/testing/langium-test-helpers.js +1 -0
  465. package/lib/testing/langium-test-helpers.js.map +1 -1
  466. package/lib/testing/make-noop-language-services.js.map +1 -1
  467. package/lib/testing/make-noop-shared-services.d.ts +14 -0
  468. package/lib/testing/make-noop-shared-services.d.ts.map +1 -1
  469. package/lib/testing/make-noop-shared-services.js +28 -2
  470. package/lib/testing/make-noop-shared-services.js.map +1 -1
  471. package/lib/testing/make-test-services.d.ts +72 -14
  472. package/lib/testing/make-test-services.d.ts.map +1 -1
  473. package/lib/testing/make-test-services.js +42 -10
  474. package/lib/testing/make-test-services.js.map +1 -1
  475. package/lib/testing/make-test-tracer.d.ts +12 -0
  476. package/lib/testing/make-test-tracer.d.ts.map +1 -1
  477. package/lib/testing/make-test-tracer.js +13 -0
  478. package/lib/testing/make-test-tracer.js.map +1 -1
  479. package/lib/testing/node/applied-edit-capture.d.ts +29 -0
  480. package/lib/testing/node/applied-edit-capture.d.ts.map +1 -0
  481. package/lib/testing/node/applied-edit-capture.js +115 -0
  482. package/lib/testing/node/applied-edit-capture.js.map +1 -0
  483. package/lib/testing/node/golden-corpus.js.map +1 -1
  484. package/lib/testing/node/index.d.ts +1 -0
  485. package/lib/testing/node/index.d.ts.map +1 -1
  486. package/lib/testing/node/index.js +1 -0
  487. package/lib/testing/node/index.js.map +1 -1
  488. package/lib/testing/node/lsp-harness.d.ts.map +1 -1
  489. package/lib/testing/node/lsp-harness.js +2 -0
  490. package/lib/testing/node/lsp-harness.js.map +1 -1
  491. package/lib/testing/node/lsp-server-connection.d.ts +12 -4
  492. package/lib/testing/node/lsp-server-connection.d.ts.map +1 -1
  493. package/lib/testing/node/lsp-server-connection.js +45 -106
  494. package/lib/testing/node/lsp-server-connection.js.map +1 -1
  495. package/lib/testing/node/scratch-workspace.d.ts.map +1 -1
  496. package/lib/testing/node/scratch-workspace.js +10 -5
  497. package/lib/testing/node/scratch-workspace.js.map +1 -1
  498. package/lib/testing/node/spawned-server.d.ts +30 -1
  499. package/lib/testing/node/spawned-server.d.ts.map +1 -1
  500. package/lib/testing/node/spawned-server.js +39 -2
  501. package/lib/testing/node/spawned-server.js.map +1 -1
  502. package/lib/testing/node/unhandled-rejections.d.ts +20 -0
  503. package/lib/testing/node/unhandled-rejections.d.ts.map +1 -0
  504. package/lib/testing/node/unhandled-rejections.js +32 -0
  505. package/lib/testing/node/unhandled-rejections.js.map +1 -0
  506. package/lib/testing/playwright/browser-capture-bridge.js.map +1 -1
  507. package/lib/testing/playwright/e2e-profiling.js.map +1 -1
  508. package/lib/testing/playwright/flaky-network-proxy.d.ts +76 -0
  509. package/lib/testing/playwright/flaky-network-proxy.d.ts.map +1 -0
  510. package/lib/testing/playwright/flaky-network-proxy.js +164 -0
  511. package/lib/testing/playwright/flaky-network-proxy.js.map +1 -0
  512. package/lib/testing/playwright/index.d.ts +1 -0
  513. package/lib/testing/playwright/index.d.ts.map +1 -1
  514. package/lib/testing/playwright/index.js +1 -0
  515. package/lib/testing/playwright/index.js.map +1 -1
  516. package/lib/testing/playwright/server-log-capture.d.ts +35 -8
  517. package/lib/testing/playwright/server-log-capture.d.ts.map +1 -1
  518. package/lib/testing/playwright/server-log-capture.js +39 -6
  519. package/lib/testing/playwright/server-log-capture.js.map +1 -1
  520. package/lib/testing/playwright/server-log-fixture.d.ts +16 -0
  521. package/lib/testing/playwright/server-log-fixture.d.ts.map +1 -1
  522. package/lib/testing/playwright/server-log-fixture.js +25 -6
  523. package/lib/testing/playwright/server-log-fixture.js.map +1 -1
  524. package/lib/testing/playwright/server-log-region.d.ts +15 -0
  525. package/lib/testing/playwright/server-log-region.d.ts.map +1 -0
  526. package/lib/testing/playwright/server-log-region.js +30 -0
  527. package/lib/testing/playwright/server-log-region.js.map +1 -0
  528. package/lib/testing/playwright/server-log-rename-reporter.d.ts.map +1 -1
  529. package/lib/testing/playwright/server-log-rename-reporter.js +10 -1
  530. package/lib/testing/playwright/server-log-rename-reporter.js.map +1 -1
  531. package/lib/testing/run-update-pipeline.d.ts +6 -5
  532. package/lib/testing/run-update-pipeline.d.ts.map +1 -1
  533. package/lib/testing/run-update-pipeline.js.map +1 -1
  534. package/lib/testing/stub-ast-document-manager.d.ts +11 -52
  535. package/lib/testing/stub-ast-document-manager.d.ts.map +1 -1
  536. package/lib/testing/stub-ast-document-manager.js +24 -65
  537. package/lib/testing/stub-ast-document-manager.js.map +1 -1
  538. package/lib/testing/stub-document-builder.d.ts +33 -11
  539. package/lib/testing/stub-document-builder.d.ts.map +1 -1
  540. package/lib/testing/stub-document-builder.js +103 -5
  541. package/lib/testing/stub-document-builder.js.map +1 -1
  542. package/lib/testing/stub-hydranium-text-documents.d.ts +33 -10
  543. package/lib/testing/stub-hydranium-text-documents.d.ts.map +1 -1
  544. package/lib/testing/stub-hydranium-text-documents.js +115 -16
  545. package/lib/testing/stub-hydranium-text-documents.js.map +1 -1
  546. package/lib/testing/stub-index-manager.js.map +1 -1
  547. package/lib/testing/stub-langium-documents.d.ts +3 -2
  548. package/lib/testing/stub-langium-documents.d.ts.map +1 -1
  549. package/lib/testing/stub-langium-documents.js.map +1 -1
  550. package/lib/testing/stub-model-service.d.ts +9 -8
  551. package/lib/testing/stub-model-service.d.ts.map +1 -1
  552. package/lib/testing/stub-model-service.js +6 -6
  553. package/lib/testing/stub-model-service.js.map +1 -1
  554. package/lib/testing/stub-project-manager.js.map +1 -1
  555. package/lib/testing/stub-self-save-registry.d.ts +1 -1
  556. package/lib/testing/stub-self-save-registry.d.ts.map +1 -1
  557. package/lib/testing/stub-service-registry.d.ts +1 -1
  558. package/lib/testing/stub-service-registry.js.map +1 -1
  559. package/lib/testing/stub-writable-file-system.d.ts +1 -1
  560. package/lib/testing/stub-writable-file-system.d.ts.map +1 -1
  561. package/lib/testing/stub-writable-file-system.js +2 -1
  562. package/lib/testing/stub-writable-file-system.js.map +1 -1
  563. package/lib/util/connection-liveness.d.ts +19 -6
  564. package/lib/util/connection-liveness.d.ts.map +1 -1
  565. package/lib/util/connection-liveness.js +61 -15
  566. package/lib/util/connection-liveness.js.map +1 -1
  567. package/lib/util/environment.d.ts.map +1 -1
  568. package/lib/util/environment.js.map +1 -1
  569. package/lib/util/registry.d.ts.map +1 -1
  570. package/package.json +29 -53
  571. package/src/documents/ast-document-manager.ts +383 -231
  572. package/src/documents/client-ids.ts +5 -22
  573. package/src/documents/client-session-errors.ts +24 -0
  574. package/src/documents/client-session-registry.ts +262 -0
  575. package/src/documents/dirty-state-tracker.ts +140 -0
  576. package/src/documents/document-release-handler.ts +404 -0
  577. package/src/documents/document-release-scheduler.ts +121 -0
  578. package/src/documents/file-system-task-queue.ts +68 -0
  579. package/src/documents/hydranium-text-documents.ts +944 -595
  580. package/src/documents/index.ts +10 -2
  581. package/src/documents/language-client-shadow.ts +452 -0
  582. package/src/documents/model-ledger.ts +66 -0
  583. package/src/documents/text-ledger.ts +112 -0
  584. package/src/documents/version-sync-service.ts +275 -0
  585. package/src/index.ts +8 -0
  586. package/src/langium/ast-extension/ast-extension-service.ts +3 -0
  587. package/src/langium/ast-extension/ast-node-builder.ts +66 -22
  588. package/src/langium/bootstrap.ts +77 -37
  589. package/src/langium/build-phase-pass/build-phase-pass-service.ts +1 -1
  590. package/src/langium/build-phase-pass/build-phase-pass.ts +1 -1
  591. package/src/langium/composite-ast-reflection.ts +112 -0
  592. package/src/langium/config/configuration-provider.ts +119 -0
  593. package/src/langium/config/index.ts +1 -0
  594. package/src/langium/diagnostics/hydranium-langium-profiler.ts +15 -39
  595. package/src/langium/diagnostics/log-preamble.ts +1 -1
  596. package/src/langium/diagnostics/logger.ts +12 -5
  597. package/src/langium/diagnostics/lsp-logger.ts +61 -16
  598. package/src/langium/document-builder/build-pipeline-integration.ts +50 -5
  599. package/src/langium/document-builder/build-session.ts +4 -3
  600. package/src/langium/document-builder/document-builder.ts +616 -73
  601. package/src/langium/integration-services.ts +83 -24
  602. package/src/langium/integrity/integrity-rule.ts +16 -8
  603. package/src/langium/integrity/integrity-service.ts +296 -69
  604. package/src/langium/keys/containment.ts +87 -0
  605. package/src/langium/keys/index.ts +1 -0
  606. package/src/langium/keys/name-based-key-provider.ts +4 -0
  607. package/src/langium/language-module.ts +49 -8
  608. package/src/langium/model-service/client-session.ts +661 -0
  609. package/src/langium/model-service/index.ts +2 -0
  610. package/src/langium/model-service/model-events.ts +75 -0
  611. package/src/langium/model-service/model-service.ts +824 -471
  612. package/src/langium/module.ts +201 -66
  613. package/src/langium/naming/name-provider.ts +29 -7
  614. package/src/langium/naming/name-separator-validation.ts +25 -3
  615. package/src/langium/project/abstract-project-manager.ts +13 -5
  616. package/src/langium/project/project-change-event.ts +2 -2
  617. package/src/langium/residency/cst-residency-service.ts +50 -16
  618. package/src/langium/scope/fallback-scope.ts +38 -0
  619. package/src/langium/scope/hydranium-scope-computation.ts +45 -44
  620. package/src/langium/scope/hydranium-scope-provider.ts +89 -38
  621. package/src/langium/scope/index.ts +1 -0
  622. package/src/langium/scope/reference-candidate-provider.ts +6 -5
  623. package/src/langium/scope/scope-extension-service.ts +74 -59
  624. package/src/langium/scope/scoped-ast-node-description.ts +1 -3
  625. package/src/langium/serialization/abstract-serializer.ts +13 -32
  626. package/src/langium/serialization/serializer.ts +1 -1
  627. package/src/langium/service-registry.ts +41 -2
  628. package/src/langium/shared-services.ts +26 -6
  629. package/src/langium/single-langium-copy.ts +42 -0
  630. package/src/langium/transfer/transfer-encoder.ts +115 -47
  631. package/src/langium/trivia/comment-preserver.ts +1100 -0
  632. package/src/langium/trivia/document-ending-preserver.ts +55 -0
  633. package/src/langium/trivia/index.ts +14 -0
  634. package/src/langium/trivia/trivia-contribution.ts +39 -0
  635. package/src/langium/trivia/trivia-preserver.ts +54 -0
  636. package/src/langium/trivia/trivia-service.ts +99 -0
  637. package/src/langium/update-rewrite/update-rewrite-service.ts +1 -1
  638. package/src/langium/update-rewrite/update-rewrite.ts +1 -1
  639. package/src/langium/validation/document-validator.ts +528 -13
  640. package/src/langium/validation/validation-contribution-collector.ts +10 -1
  641. package/src/langium/workspace/document-uri-policy.ts +15 -10
  642. package/src/langium/workspace/file-not-found.ts +35 -0
  643. package/src/langium/workspace/file-system-provider.ts +221 -17
  644. package/src/langium/workspace/hydranium-langium-document-factory.ts +117 -0
  645. package/src/langium/workspace/hydranium-workspace-lock.ts +86 -2
  646. package/src/langium/workspace/hydranium-workspace-manager.ts +155 -16
  647. package/src/langium/workspace/in-memory-file-system-provider.ts +41 -20
  648. package/src/langium/workspace/index.ts +1 -0
  649. package/src/langium/workspace/initialize-workspace.ts +43 -5
  650. package/src/langium/workspace/langium-documents.ts +63 -5
  651. package/src/langium/workspace/persistent-file-system-provider.ts +3 -9
  652. package/src/langium/workspace/self-save-registry.ts +118 -0
  653. package/src/langium/workspace/virtual-document.ts +96 -19
  654. package/src/langium/workspace/write-lock-scope.ts +24 -11
  655. package/src/launcher/integrated-server.ts +3 -1
  656. package/src/locale/index.ts +10 -0
  657. package/src/locale/server-locale.ts +86 -0
  658. package/src/lsp/completion/hydranium-completion-provider.ts +82 -2
  659. package/src/lsp/connection-features.ts +67 -0
  660. package/src/lsp/diagnostics-connection.ts +56 -0
  661. package/src/lsp/hydranium-document-update-handler.ts +197 -110
  662. package/src/lsp/index.ts +3 -1
  663. package/src/lsp/lsp-latency.ts +62 -0
  664. package/src/lsp/semantic-token-provider.ts +74 -7
  665. package/src/lsp/shared-module.ts +4 -8
  666. package/src/lsp/start-language-server.ts +13 -7
  667. package/src/messages/carriers.ts +23 -15
  668. package/src/messages/index.ts +13 -1
  669. package/src/messages/renderer.ts +212 -0
  670. package/src/node/event-loop-monitor.ts +2 -1
  671. package/src/node/heap-ceiling.ts +108 -0
  672. package/src/node/index.ts +1 -1
  673. package/src/node/latency-from-env.ts +1 -1
  674. package/src/node/log-preamble-node.ts +20 -10
  675. package/src/node/measure-memory.ts +5 -4
  676. package/src/node/memory-monitor.ts +10 -10
  677. package/src/node/node-file-system-provider.ts +157 -56
  678. package/src/node/profile-capture.ts +16 -15
  679. package/src/node/profiling-run.ts +30 -8
  680. package/src/node/rename-over-open-readers.ts +94 -0
  681. package/src/node/server-diagnostics.ts +1 -1
  682. package/src/node/server-state-snapshot.ts +5 -5
  683. package/src/node/socket-launcher.ts +27 -11
  684. package/src/node/stdio-launcher.ts +18 -9
  685. package/src/testing/document-uri-policy-conformance.ts +1 -1
  686. package/src/testing/fake-document.ts +24 -5
  687. package/src/testing/index.ts +2 -1
  688. package/src/testing/langium-test-helpers.ts +1 -0
  689. package/src/testing/make-noop-shared-services.ts +50 -2
  690. package/src/testing/make-test-services.ts +125 -31
  691. package/src/testing/make-test-tracer.ts +26 -0
  692. package/src/testing/node/applied-edit-capture.ts +139 -0
  693. package/src/testing/node/index.ts +1 -0
  694. package/src/testing/node/lsp-harness.ts +2 -0
  695. package/src/testing/node/lsp-server-connection.ts +74 -117
  696. package/src/testing/node/scratch-workspace.ts +10 -5
  697. package/src/testing/node/spawned-server.ts +57 -3
  698. package/src/testing/node/unhandled-rejections.ts +31 -0
  699. package/src/testing/parse-semantic-root.ts +1 -1
  700. package/src/testing/playwright/flaky-network-proxy.ts +240 -0
  701. package/src/testing/playwright/index.ts +1 -0
  702. package/src/testing/playwright/server-log-capture.ts +63 -11
  703. package/src/testing/playwright/server-log-fixture.ts +46 -6
  704. package/src/testing/playwright/server-log-region.ts +32 -0
  705. package/src/testing/playwright/server-log-rename-reporter.ts +12 -1
  706. package/src/testing/run-update-pipeline.ts +6 -5
  707. package/src/testing/stub-ast-document-manager.ts +36 -138
  708. package/src/testing/stub-document-builder.ts +133 -18
  709. package/src/testing/stub-hydranium-text-documents.ts +165 -27
  710. package/src/testing/stub-langium-documents.ts +3 -2
  711. package/src/testing/stub-model-service.ts +11 -10
  712. package/src/testing/stub-self-save-registry.ts +1 -1
  713. package/src/testing/stub-service-registry.ts +1 -1
  714. package/src/testing/stub-writable-file-system.ts +3 -2
  715. package/src/util/connection-liveness.ts +67 -15
  716. package/src/util/environment.ts +9 -1
  717. package/lib/documents/language-client-text-shadow.d.ts +0 -101
  718. package/lib/documents/language-client-text-shadow.d.ts.map +0 -1
  719. package/lib/documents/language-client-text-shadow.js +0 -156
  720. package/lib/documents/language-client-text-shadow.js.map +0 -1
  721. package/lib/documents/self-save-registry.d.ts +0 -55
  722. package/lib/documents/self-save-registry.d.ts.map +0 -1
  723. package/lib/documents/self-save-registry.js.map +0 -1
  724. package/lib/lsp/instrument-connection.d.ts +0 -36
  725. package/lib/lsp/instrument-connection.d.ts.map +0 -1
  726. package/lib/lsp/instrument-connection.js +0 -62
  727. package/lib/lsp/instrument-connection.js.map +0 -1
  728. package/lib/node/process-memory.d.ts +0 -66
  729. package/lib/node/process-memory.d.ts.map +0 -1
  730. package/lib/node/process-memory.js +0 -252
  731. package/lib/node/process-memory.js.map +0 -1
  732. package/src/documents/language-client-text-shadow.ts +0 -175
  733. package/src/documents/self-save-registry.ts +0 -81
  734. package/src/lsp/instrument-connection.ts +0 -66
  735. package/src/node/process-memory.ts +0 -299
@@ -60,16 +60,18 @@ export declare function warnOnUnexpectedBindings(shared: LangiumSharedServices,
60
60
  * dispatch every build-phase pass and drive AST enrichment, and
61
61
  * registers the framework integrity passes itself. The per-language
62
62
  * feature services it routes to (`ast.AstExtensionService` +
63
- * `integrity.IntegrityService`, plus `references.ScopeExtensionService`
64
- * read by the scope provider) hold the registries and the logic but own
63
+ * `integrity.IntegrityService`) hold the registries and the logic but own
65
64
  * no listeners, so they need not be eager: each language's services
66
- * construct lazily when the orchestrator (or scope provider) first
67
- * reaches them, and their constructors register that language's rules /
68
- * extensions just-in-time.
69
- * - **`profilers.LangiumProfiler`** — self-registers a `Validated`
70
- * BuildPhasePass that flushes the aggregated parse/link/validate profile
71
- * once per build. No production cost (the profiler is trace-gated), but
72
- * the pass must be registered up front.
65
+ * construct lazily when the orchestrator first reaches them, and their
66
+ * constructors register that language's rules / extensions just-in-time.
67
+ * `references.ScopeExtensionService`, read by the scope provider, does
68
+ * subscribe to the builder, but only to report its own calls, so
69
+ * constructing it at its first call misses none.
70
+ * - **`profilers.LangiumProfiler`** — subscribes to
71
+ * `documentBuilder.onBuildEnded` to flush the aggregated
72
+ * parse/link/validate profile once per build. No production cost (the
73
+ * profiler is trace-gated), but the listener must be attached before the
74
+ * first build ends.
73
75
  * - **`workspace.CstResidencyService`** — self-registers a `Validated`
74
76
  * BuildPhasePass that sheds the CST of closed documents. The framework
75
77
  * default strategy is `always-keep`, so the pass runs but sheds nothing
@@ -96,30 +98,33 @@ export declare const DEFAULT_EAGER_SERVICES: ReadonlyArray<(services: ServerShar
96
98
  * discarded.
97
99
  *
98
100
  * Bootstrap responsibilities, in order:
99
- * 1. Hand the shared services to `shared.ServiceRegistry` if it accepts
101
+ * 1. {@link assertSingleLangiumCopy} — fail fast when the shared
102
+ * `AstReflection` is built on a second copy of `langium`, before any
103
+ * later check can fail first and name the wrong cause.
104
+ * 2. Hand the shared services to `shared.ServiceRegistry` if it accepts
100
105
  * them after construction, so Langium's declared-languageId lookup
101
106
  * rung works however the adopter's registry binding was built.
102
- * 2. {@link assertDistinctFileRouting} — before registration, because
107
+ * 3. {@link assertDistinctFileRouting} — before registration, because
103
108
  * `register` resolves a routing collision by last-wins and afterwards
104
109
  * the evidence is gone.
105
- * 3. Register `language` against `shared.ServiceRegistry`, the
110
+ * 4. Register `language` against `shared.ServiceRegistry`, the
106
111
  * required final step of any Langium DI bootstrap. Done before slot
107
112
  * validation so subclassed registries (typed-accessor extensions)
108
113
  * populate any side state before validation walks construct services
109
114
  * that read from the registry.
110
- * 4. {@link assertCoreSlotsBound} — fail fast if the consumer's
115
+ * 5. {@link assertCoreSlotsBound} — fail fast if the consumer's
111
116
  * `inject(...)` composition is missing a `@hydranium/core` module. May
112
117
  * trigger lazy service construction as side effect of walking the
113
118
  * slots; that construction expects a populated `ServiceRegistry`,
114
119
  * hence the order.
115
- * 5. {@link warnOnUnexpectedBindings} — opt-in (gated by
120
+ * 6. {@link warnOnUnexpectedBindings} — opt-in (gated by
116
121
  * {@link STRICT_BINDINGS_ENV}); warns when a framework slot is bound
117
122
  * to a non-subclass of its framework base. No-op unless the env is set.
118
- * 6. {@link assertReflectionCoversLanguages} — catch a clobbered shared
123
+ * 7. {@link assertReflectionCoversLanguages} — catch a clobbered shared
119
124
  * `AstReflection` before it starts silently answering `isSubtype`
120
125
  * false for a registered language's types. Skipped here, since a lone
121
126
  * language has no sibling that could clobber it.
122
- * 7. Invoke eager-construction accessors in array order.
127
+ * 8. Invoke eager-construction accessors in array order.
123
128
  *
124
129
  * Multi-grammar adopters use {@link bootstrapLangiumLanguages}, which
125
130
  * registers every language before validating slots or constructing the
@@ -139,16 +144,20 @@ export declare function bootstrapLangium<TShared extends LangiumSharedServices &
139
144
  * ORDER across languages is what makes this a distinct function rather
140
145
  * than a loop the caller could write:
141
146
  *
142
- * 1. **Every** language is registered against `shared.ServiceRegistry`
143
- * first. Slot validation and eager construction both build services
147
+ * 1. {@link assertSingleLangiumCopy} runs **once**, before anything else,
148
+ * since every language shares the one `AstReflection`.
149
+ * 2. **Every** language is registered against `shared.ServiceRegistry`
150
+ * next. Slot validation and eager construction both build services
144
151
  * that read the registry — a per-language
145
152
  * register-then-validate-then-eager loop would run them while later
146
153
  * languages were still missing, so a shared service that walks
147
154
  * `ServiceRegistry.all` (or resolves by extension) would see a
148
155
  * half-populated registry and cache the wrong answer.
149
- * 2. `assertCoreSlotsBound` / `warnOnUnexpectedBindings` per language —
156
+ * 3. `assertCoreSlotsBound` / `warnOnUnexpectedBindings` per language —
150
157
  * each language composes its own module chain, so each is checked.
151
- * 3. Eager accessors run **once**, after all registrations. They take
158
+ * 4. {@link assertReflectionCoversLanguages} runs **once**, on the one
159
+ * shared `AstReflection`.
160
+ * 5. Eager accessors run **once**, after all registrations. They take
152
161
  * the shared tier, and the framework's eager set is shared-tier only
153
162
  * (`ProjectManager`, `BuildPipelineIntegration`, `LangiumProfiler`,
154
163
  * `CstResidencyService`) — `BuildPipelineIntegration` in particular
@@ -203,11 +212,11 @@ export declare function assertDistinctFileRouting(languages: ReadonlyArray<Langi
203
212
  *
204
213
  * The check is per language, on the types its grammar can produce, and costs
205
214
  * one grammar walk per language at boot; a single-language composition, which
206
- * nothing can clobber, is skipped entirely. It cannot repair the situation — a
207
- * reflection that spans independently generated grammars is a real design piece
208
- * (a composite reflection dispatching per owning language) and is not attempted
209
- * here; the point is to turn a silent runtime misbehaviour into a boot failure
210
- * that names the language and the mistake.
215
+ * nothing can clobber, is skipped entirely. It cannot repair the situation, since
216
+ * the losing reflection is already gone; the point is to turn a silent runtime
217
+ * misbehaviour into a boot failure that names the language and the mistake. The
218
+ * repair is the adopter's: bind a `CompositeAstReflection` over every package's
219
+ * generated reflection, or generate all grammars in one `langium-cli` run.
211
220
  *
212
221
  * **Two severities, because a clobber is not always total.** Throwing only when
213
222
  * NONE of a language's types are known misses the realistic case: two grammars
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/langium/bootstrap.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAIlF,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC1F,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AA+GxE;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,qBAAqB,EAAE,QAAQ,EAAE,eAAe,GAAG,IAAI,CAanG;AAED;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,8BAA8B,CAAC;AAmF/D;;;;;;;;;;;;GAYG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,qBAAqB,EAAE,QAAQ,EAAE,eAAe,GAAG,IAAI,CAiBvG;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,eAAO,MAAM,sBAAsB,EAAE,aAAa,CAAC,CAAC,QAAQ,EAAE,2BAA2B,KAAK,OAAO,CAKpG,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,SAAS,qBAAqB,GAAG,2BAA2B,EAAE,KAAK,SAAS,eAAe,EAChI,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,KAAK,EACf,0BAA0B,GAAE,aAAa,CAAC,CAAC,QAAQ,EAAE,OAAO,KAAK,OAAO,CAA0B,GAClG;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,KAAK,CAAA;CAAE,CAGtC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,yBAAyB,CACtC,OAAO,SAAS,qBAAqB,GAAG,2BAA2B,EACnE,KAAK,SAAS,eAAe,EAE7B,MAAM,EAAE,OAAO,EACf,SAAS,EAAE,aAAa,CAAC,KAAK,CAAC,EAC/B,0BAA0B,GAAE,aAAa,CAAC,CAAC,QAAQ,EAAE,OAAO,KAAK,OAAO,CAA0B,GAClG;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,aAAa,CAAC,KAAK,CAAC,CAAA;CAAE,CAiCtD;AAYD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,aAAa,CAAC,eAAe,CAAC,GAAG,IAAI,CA+BzF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,qBAAqB,EAAE,SAAS,EAAE,aAAa,CAAC,eAAe,CAAC,GAAG,IAAI,CAiC9H"}
1
+ {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/langium/bootstrap.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAIlF,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC1F,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AAyHxE;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,qBAAqB,EAAE,QAAQ,EAAE,eAAe,GAAG,IAAI,CAanG;AAED;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,8BAA8B,CAAC;AAiG/D;;;;;;;;;;;;GAYG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,qBAAqB,EAAE,QAAQ,EAAE,eAAe,GAAG,IAAI,CAiBvG;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,eAAO,MAAM,sBAAsB,EAAE,aAAa,CAAC,CAAC,QAAQ,EAAE,2BAA2B,KAAK,OAAO,CAKpG,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,SAAS,qBAAqB,GAAG,2BAA2B,EAAE,KAAK,SAAS,eAAe,EAChI,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,KAAK,EACf,0BAA0B,GAAE,aAAa,CAAC,CAAC,QAAQ,EAAE,OAAO,KAAK,OAAO,CAA0B,GAClG;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,KAAK,CAAA;CAAE,CAGtC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAgB,yBAAyB,CACtC,OAAO,SAAS,qBAAqB,GAAG,2BAA2B,EACnE,KAAK,SAAS,eAAe,EAE7B,MAAM,EAAE,OAAO,EACf,SAAS,EAAE,aAAa,CAAC,KAAK,CAAC,EAC/B,0BAA0B,GAAE,aAAa,CAAC,CAAC,QAAQ,EAAE,OAAO,KAAK,OAAO,CAA0B,GAClG;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,aAAa,CAAC,KAAK,CAAC,CAAA;CAAE,CAsCtD;AAYD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,aAAa,CAAC,eAAe,CAAC,GAAG,IAAI,CA+BzF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,qBAAqB,EAAE,SAAS,EAAE,aAAa,CAAC,eAAe,CAAC,GAAG,IAAI,CAkC9H"}
@@ -7,15 +7,18 @@
7
7
  * SPDX-License-Identifier: MIT
8
8
  ********************************************************************************/
9
9
  import { collectProducibleTypes } from './language-types.js';
10
- import { AstDocumentManager } from '../documents/ast-document-manager.js';
10
+ import { assertSingleLangiumCopy } from './single-langium-copy.js';
11
+ import { DefaultAstDocumentManager } from '../documents/ast-document-manager.js';
11
12
  import { HydraniumTextDocuments } from '../documents/hydranium-text-documents.js';
12
- import { BuildPipelineIntegration } from './document-builder/build-pipeline-integration.js';
13
+ import { DefaultBuildPipelineIntegration } from './document-builder/build-pipeline-integration.js';
13
14
  import { HydraniumDocumentBuilder } from './document-builder/document-builder.js';
14
- import { ModelService } from './model-service/model-service.js';
15
+ import { DefaultModelService } from './model-service/model-service.js';
15
16
  import { HydraniumScopeComputation } from './scope/hydranium-scope-computation.js';
16
17
  import { HydraniumScopeProvider } from './scope/hydranium-scope-provider.js';
17
18
  import { processEnv } from '../util/environment.js';
18
- import { TransferEncoder } from './transfer/transfer-encoder.js';
19
+ import { DefaultTransferEncoder } from './transfer/transfer-encoder.js';
20
+ import { HydraniumLangiumDocumentFactory } from './workspace/hydranium-langium-document-factory.js';
21
+ import { HydraniumLangiumDocuments } from './workspace/langium-documents.js';
19
22
  import { HydraniumWorkspaceManager } from './workspace/hydranium-workspace-manager.js';
20
23
  function nested(services, ...keys) {
21
24
  let current = services;
@@ -46,7 +49,14 @@ const EXPECTED_SHARED_SLOTS = [
46
49
  side: 'shared',
47
50
  path: 'workspace.BuildPipelineIntegration',
48
51
  get: services => nested(services, 'workspace', 'BuildPipelineIntegration')
49
- }
52
+ },
53
+ // Unbound, this fails where the cause is least visible: the render pass runs
54
+ // inside the `Validated` phase, so a `TypeError` there propagates out of
55
+ // `notifyDocumentPhase` and the document reaches `Validated` with Langium's
56
+ // publisher never invoked — the client receives no diagnostics for the file
57
+ // and the stack names the document builder.
58
+ { side: 'shared', path: 'MessageRenderer', get: services => nested(services, 'MessageRenderer') },
59
+ { side: 'shared', path: 'ServerLocale', get: services => nested(services, 'ServerLocale') }
50
60
  ];
51
61
  /**
52
62
  * Language-side slots bound by `createServerLanguageModule`. If any
@@ -129,6 +139,20 @@ export function assertCoreSlotsBound(shared, language) {
129
139
  export const STRICT_BINDINGS_ENV = 'HYDRANIUM_STRICT_BINDINGS';
130
140
  const STRICT_SHARED_SLOTS = [
131
141
  { side: 'shared', path: 'workspace.TextDocuments', base: HydraniumTextDocuments, get: s => nested(s, 'workspace', 'TextDocuments') },
142
+ // Every root it builds records no version, so every write gated on one conflicts.
143
+ {
144
+ side: 'shared',
145
+ path: 'workspace.LangiumDocumentFactory',
146
+ base: HydraniumLangiumDocumentFactory,
147
+ get: s => nested(s, 'workspace', 'LangiumDocumentFactory')
148
+ },
149
+ // It reports no registered root, so none is reconciled with the text store or announced.
150
+ {
151
+ side: 'shared',
152
+ path: 'workspace.LangiumDocuments',
153
+ base: HydraniumLangiumDocuments,
154
+ get: s => nested(s, 'workspace', 'LangiumDocuments')
155
+ },
132
156
  {
133
157
  side: 'shared',
134
158
  path: 'workspace.WorkspaceManager',
@@ -144,17 +168,17 @@ const STRICT_SHARED_SLOTS = [
144
168
  {
145
169
  side: 'shared',
146
170
  path: 'workspace.AstDocumentManager',
147
- base: AstDocumentManager,
171
+ base: DefaultAstDocumentManager,
148
172
  get: s => nested(s, 'workspace', 'AstDocumentManager')
149
173
  },
150
174
  {
151
175
  side: 'shared',
152
176
  path: 'workspace.BuildPipelineIntegration',
153
- base: BuildPipelineIntegration,
177
+ base: DefaultBuildPipelineIntegration,
154
178
  get: s => nested(s, 'workspace', 'BuildPipelineIntegration')
155
179
  },
156
- { side: 'shared', path: 'model.TransferEncoder', base: TransferEncoder, get: s => nested(s, 'model', 'TransferEncoder') },
157
- { side: 'shared', path: 'model.ModelService', base: ModelService, get: s => nested(s, 'model', 'ModelService') }
180
+ { side: 'shared', path: 'model.TransferEncoder', base: DefaultTransferEncoder, get: s => nested(s, 'model', 'TransferEncoder') },
181
+ { side: 'shared', path: 'model.ModelService', base: DefaultModelService, get: s => nested(s, 'model', 'ModelService') }
158
182
  ];
159
183
  const STRICT_LANGUAGE_SLOTS = [
160
184
  {
@@ -227,16 +251,18 @@ export function warnOnUnexpectedBindings(shared, language) {
227
251
  * dispatch every build-phase pass and drive AST enrichment, and
228
252
  * registers the framework integrity passes itself. The per-language
229
253
  * feature services it routes to (`ast.AstExtensionService` +
230
- * `integrity.IntegrityService`, plus `references.ScopeExtensionService`
231
- * read by the scope provider) hold the registries and the logic but own
254
+ * `integrity.IntegrityService`) hold the registries and the logic but own
232
255
  * no listeners, so they need not be eager: each language's services
233
- * construct lazily when the orchestrator (or scope provider) first
234
- * reaches them, and their constructors register that language's rules /
235
- * extensions just-in-time.
236
- * - **`profilers.LangiumProfiler`** — self-registers a `Validated`
237
- * BuildPhasePass that flushes the aggregated parse/link/validate profile
238
- * once per build. No production cost (the profiler is trace-gated), but
239
- * the pass must be registered up front.
256
+ * construct lazily when the orchestrator first reaches them, and their
257
+ * constructors register that language's rules / extensions just-in-time.
258
+ * `references.ScopeExtensionService`, read by the scope provider, does
259
+ * subscribe to the builder, but only to report its own calls, so
260
+ * constructing it at its first call misses none.
261
+ * - **`profilers.LangiumProfiler`** — subscribes to
262
+ * `documentBuilder.onBuildEnded` to flush the aggregated
263
+ * parse/link/validate profile once per build. No production cost (the
264
+ * profiler is trace-gated), but the listener must be attached before the
265
+ * first build ends.
240
266
  * - **`workspace.CstResidencyService`** — self-registers a `Validated`
241
267
  * BuildPhasePass that sheds the CST of closed documents. The framework
242
268
  * default strategy is `always-keep`, so the pass runs but sheds nothing
@@ -268,30 +294,33 @@ export const DEFAULT_EAGER_SERVICES = [
268
294
  * discarded.
269
295
  *
270
296
  * Bootstrap responsibilities, in order:
271
- * 1. Hand the shared services to `shared.ServiceRegistry` if it accepts
297
+ * 1. {@link assertSingleLangiumCopy} — fail fast when the shared
298
+ * `AstReflection` is built on a second copy of `langium`, before any
299
+ * later check can fail first and name the wrong cause.
300
+ * 2. Hand the shared services to `shared.ServiceRegistry` if it accepts
272
301
  * them after construction, so Langium's declared-languageId lookup
273
302
  * rung works however the adopter's registry binding was built.
274
- * 2. {@link assertDistinctFileRouting} — before registration, because
303
+ * 3. {@link assertDistinctFileRouting} — before registration, because
275
304
  * `register` resolves a routing collision by last-wins and afterwards
276
305
  * the evidence is gone.
277
- * 3. Register `language` against `shared.ServiceRegistry`, the
306
+ * 4. Register `language` against `shared.ServiceRegistry`, the
278
307
  * required final step of any Langium DI bootstrap. Done before slot
279
308
  * validation so subclassed registries (typed-accessor extensions)
280
309
  * populate any side state before validation walks construct services
281
310
  * that read from the registry.
282
- * 4. {@link assertCoreSlotsBound} — fail fast if the consumer's
311
+ * 5. {@link assertCoreSlotsBound} — fail fast if the consumer's
283
312
  * `inject(...)` composition is missing a `@hydranium/core` module. May
284
313
  * trigger lazy service construction as side effect of walking the
285
314
  * slots; that construction expects a populated `ServiceRegistry`,
286
315
  * hence the order.
287
- * 5. {@link warnOnUnexpectedBindings} — opt-in (gated by
316
+ * 6. {@link warnOnUnexpectedBindings} — opt-in (gated by
288
317
  * {@link STRICT_BINDINGS_ENV}); warns when a framework slot is bound
289
318
  * to a non-subclass of its framework base. No-op unless the env is set.
290
- * 6. {@link assertReflectionCoversLanguages} — catch a clobbered shared
319
+ * 7. {@link assertReflectionCoversLanguages} — catch a clobbered shared
291
320
  * `AstReflection` before it starts silently answering `isSubtype`
292
321
  * false for a registered language's types. Skipped here, since a lone
293
322
  * language has no sibling that could clobber it.
294
- * 7. Invoke eager-construction accessors in array order.
323
+ * 8. Invoke eager-construction accessors in array order.
295
324
  *
296
325
  * Multi-grammar adopters use {@link bootstrapLangiumLanguages}, which
297
326
  * registers every language before validating slots or constructing the
@@ -311,16 +340,20 @@ export function bootstrapLangium(shared, language, eagerlyConstructedServices =
311
340
  * ORDER across languages is what makes this a distinct function rather
312
341
  * than a loop the caller could write:
313
342
  *
314
- * 1. **Every** language is registered against `shared.ServiceRegistry`
315
- * first. Slot validation and eager construction both build services
343
+ * 1. {@link assertSingleLangiumCopy} runs **once**, before anything else,
344
+ * since every language shares the one `AstReflection`.
345
+ * 2. **Every** language is registered against `shared.ServiceRegistry`
346
+ * next. Slot validation and eager construction both build services
316
347
  * that read the registry — a per-language
317
348
  * register-then-validate-then-eager loop would run them while later
318
349
  * languages were still missing, so a shared service that walks
319
350
  * `ServiceRegistry.all` (or resolves by extension) would see a
320
351
  * half-populated registry and cache the wrong answer.
321
- * 2. `assertCoreSlotsBound` / `warnOnUnexpectedBindings` per language —
352
+ * 3. `assertCoreSlotsBound` / `warnOnUnexpectedBindings` per language —
322
353
  * each language composes its own module chain, so each is checked.
323
- * 3. Eager accessors run **once**, after all registrations. They take
354
+ * 4. {@link assertReflectionCoversLanguages} runs **once**, on the one
355
+ * shared `AstReflection`.
356
+ * 5. Eager accessors run **once**, after all registrations. They take
324
357
  * the shared tier, and the framework's eager set is shared-tier only
325
358
  * (`ProjectManager`, `BuildPipelineIntegration`, `LangiumProfiler`,
326
359
  * `CstResidencyService`) — `BuildPipelineIntegration` in particular
@@ -339,6 +372,11 @@ export function bootstrapLangiumLanguages(shared, languages, eagerlyConstructedS
339
372
  'registered language cannot validate its slots. Pass the language(s) produced by your ' +
340
373
  '`inject(...)` composition.');
341
374
  }
375
+ // First, because a second copy of `langium` can make a later check fail
376
+ // first and name the wrong cause.
377
+ if (shared.AstReflection) {
378
+ assertSingleLangiumCopy(shared.AstReflection);
379
+ }
342
380
  // Back-fill the shared services onto a registry that was constructed
343
381
  // without them, so Langium's declared-languageId lookup rung works no
344
382
  // matter how the adopter's `ServiceRegistry` binding built it. An adopter
@@ -441,11 +479,11 @@ export function assertDistinctFileRouting(languages) {
441
479
  *
442
480
  * The check is per language, on the types its grammar can produce, and costs
443
481
  * one grammar walk per language at boot; a single-language composition, which
444
- * nothing can clobber, is skipped entirely. It cannot repair the situation — a
445
- * reflection that spans independently generated grammars is a real design piece
446
- * (a composite reflection dispatching per owning language) and is not attempted
447
- * here; the point is to turn a silent runtime misbehaviour into a boot failure
448
- * that names the language and the mistake.
482
+ * nothing can clobber, is skipped entirely. It cannot repair the situation, since
483
+ * the losing reflection is already gone; the point is to turn a silent runtime
484
+ * misbehaviour into a boot failure that names the language and the mistake. The
485
+ * repair is the adopter's: bind a `CompositeAstReflection` over every package's
486
+ * generated reflection, or generate all grammars in one `langium-cli` run.
449
487
  *
450
488
  * **Two severities, because a clobber is not always total.** Throwing only when
451
489
  * NONE of a language's types are known misses the realistic case: two grammars
@@ -486,8 +524,9 @@ export function assertReflectionCoversLanguages(shared, languages) {
486
524
  throw new Error(`[hydranium] the shared AstReflection knows NONE of the ${produced.size} types the language ` +
487
525
  `'${languageId}' can produce (e.g. ${missing.slice(0, 3).join(', ')}). ` +
488
526
  'AstReflection is a single shared slot, so composing two independently generated language ' +
489
- 'packages leaves only the last one bound. Generate all grammars in ONE langium-cli run (one ' +
490
- 'langium-config with several entry grammars) so a single combined reflection covers them all.');
527
+ "packages leaves only the last one bound. Bind a CompositeAstReflection over every package's " +
528
+ 'generated reflection, or generate all grammars in ONE langium-cli run (one langium-config with ' +
529
+ 'several entry grammars) so a single combined reflection covers them all.');
491
530
  }
492
531
  }
493
532
  /** Maximum missing type names spelled out before the message elides the rest. */
@@ -500,7 +539,8 @@ function warnPartialReflectionCoverage(logger, languageId, missing, producedCoun
500
539
  'For those types `isSubtype` answers false and `getTypeMetaData` is empty, so `IndexManager.allElements` ' +
501
540
  'finds nothing, reference routing misses, and the encoder emits nothing. Most likely two independently ' +
502
541
  'generated language packages each bound the single shared AstReflection slot and the last one won — ' +
503
- 'generate all grammars in ONE langium-cli run so a single combined reflection covers them. If instead ' +
542
+ "bind a CompositeAstReflection over every package's generated reflection, or generate all grammars in " +
543
+ 'ONE langium-cli run so a single combined reflection covers them. If instead ' +
504
544
  'these are rules your generator legitimately folded away, this warning is expected.';
505
545
  if (logger) {
506
546
  logger.warn(message);
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/langium/bootstrap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/langium/bootstrap.ts"],"names":[],"mappings":"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"}
@@ -25,7 +25,7 @@ import { type BuildPhasePass, type BuildPhasePassRegistry } from './build-phase-
25
25
  * per-language work (integrity) fans out by language *inside* its pass. This
26
26
  * also keeps one priority space per phase across framework and adopter passes,
27
27
  * which is the point — `runPasses` orders the framework's integrity and
28
- * profiler-flush passes against adopter passes deterministically.
28
+ * CST-residency passes against adopter passes deterministically.
29
29
  */
30
30
  export interface BuildPhasePassService extends BuildPhasePassRegistry {
31
31
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"build-phase-pass-service.d.ts","sourceRoot":"","sources":["../../../src/langium/build-phase-pass/build-phase-pass-service.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAAU,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAEzF;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,qBAAsB,SAAQ,sBAAsB;IAClE;;;;;;OAMG;IACH,SAAS,CAAC,SAAS,EAAE,SAAS,eAAe,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxH;AAED,qEAAqE;AACrE,MAAM,MAAM,4BAA4B,GAAG,cAAc,CAAC;AAE1D;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,4BAA6B,YAAW,qBAAqB;IACvE,SAAS,CAAC,QAAQ,CAAC,MAAM,2BAAkC;IAC3D,kHAAkH;IAClH,SAAS,CAAC,YAAY,gDAAuD;IAC7E,SAAS,CAAC,eAAe,EAAE,SAAS,cAAc,EAAE,GAAG,SAAS,CAAC;IAEjE,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEtB,QAAQ,EAAE,oBAAoB,EAAE,OAAO,GAAE,4BAAiC;IAatF,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,UAAU;IAIpC,SAAS,CAAC,SAAS,EAAE,SAAS,eAAe,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IA0B3H;;;;OAIG;IACH,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,aAAa,GAAG,SAAS,cAAc,EAAE;CAiB3E"}
1
+ {"version":3,"file":"build-phase-pass-service.d.ts","sourceRoot":"","sources":["../../../src/langium/build-phase-pass/build-phase-pass-service.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAAU,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAEzF;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,qBAAsB,SAAQ,sBAAsB;IAClE;;;;;;OAMG;IACH,SAAS,CAAC,SAAS,EAAE,SAAS,eAAe,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxH;AAED,qEAAqE;AACrE,MAAM,MAAM,4BAA4B,GAAG,cAAc,CAAC;AAE1D;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,4BAA6B,YAAW,qBAAqB;IACvE,SAAS,CAAC,QAAQ,CAAC,MAAM,2BAAkC;IAC3D,kHAAkH;IAClH,SAAS,CAAC,YAAY,gDAAuD;IAC7E,SAAS,CAAC,eAAe,EAAE,SAAS,cAAc,EAAE,GAAG,SAAS,CAAC;IAEjE,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAElC,YAAY,QAAQ,EAAE,oBAAoB,EAAE,OAAO,GAAE,4BAAiC,EAWrF;IAED,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,UAAU,CAEzC;IAEK,SAAS,CAAC,SAAS,EAAE,SAAS,eAAe,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwB1H;IAED;;;;OAIG;IACH,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,aAAa,GAAG,SAAS,cAAc,EAAE,CAgBxE;CACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"build-phase-pass-service.js","sourceRoot":"","sources":["../../../src/langium/build-phase-pass/build-phase-pass-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build-phase-pass-service.js","sourceRoot":"","sources":["../../../src/langium/build-phase-pass/build-phase-pass-service.ts"],"names":[],"mappings":"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"}
@@ -85,7 +85,7 @@ export declare function groupDocumentsByLanguage<TLanguage extends LangiumCoreSe
85
85
  * Registry handed to a {@link BuildPhasePassContribution}. Implemented by the
86
86
  * `BuildPhasePassService`; doubles
87
87
  * as the low-level imperative API the framework uses to self-register its own
88
- * passes (integrity, the Langium profiler flush).
88
+ * passes (integrity, CST residency).
89
89
  */
90
90
  export interface BuildPhasePassRegistry {
91
91
  register(pass: BuildPhasePass): Disposable;
@@ -0,0 +1,46 @@
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, type AstMetaData, type AstReflection, type PropertyMetaData, type TypeMetaData } from '@hydranium/langium';
10
+ /**
11
+ * One `AstReflection` over the reflections of separately generated language
12
+ * packages. The shared `AstReflection` slot holds a single reflection, so
13
+ * binding each package's generated shared module keeps only the last one's
14
+ * types; bind this over all of them instead.
15
+ *
16
+ * A name several reflections share is taken to be one type, reached through a
17
+ * shared imported grammar, and keeps every super type any of them gives it:
18
+ * each grammar may declare its own union over the type. Only properties that
19
+ * differ in name, reference type or default value throw; two unrelated unions,
20
+ * or same-shaped interfaces, that share a name merge silently, so keep other
21
+ * type names distinct across packages.
22
+ *
23
+ * Only each reflection's `types` is read, so behaviour a reflection overrides
24
+ * is lost. Each package's generated `isX` guards keep using that package's own
25
+ * reflection and answer false for subtypes only another package declares.
26
+ *
27
+ * Each reflection is checked with {@link assertSingleLangiumCopy}, because the
28
+ * composite itself extends the framework copy's base whichever copy they use.
29
+ *
30
+ * The protected merge methods run from the constructor, so an override cannot
31
+ * read its own class's fields.
32
+ */
33
+ export declare class CompositeAstReflection extends AbstractAstReflection {
34
+ readonly types: AstMetaData;
35
+ constructor(reflections: readonly AstReflection[]);
36
+ protected mergeTypeMetaData(known: TypeMetaData, added: TypeMetaData, knownFrom: string, addedFrom: string): TypeMetaData;
37
+ protected sameProperty(left: PropertyMetaData, right: PropertyMetaData): boolean;
38
+ /**
39
+ * Names `reflections[index]` for the composite's errors: its position and
40
+ * class name. The position is needed because minified bundles and scaffolds
41
+ * sharing a project name leave class names that do not tell reflections
42
+ * apart. An override can name the package each reflection came from.
43
+ */
44
+ protected formatReflection(reflections: readonly AstReflection[], index: number): string;
45
+ }
46
+ //# sourceMappingURL=composite-ast-reflection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"composite-ast-reflection.d.ts","sourceRoot":"","sources":["../../src/langium/composite-ast-reflection.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAAE,qBAAqB,EAAE,KAAK,WAAW,EAAE,KAAK,aAAa,EAAE,KAAK,gBAAgB,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAG3I;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,sBAAuB,SAAQ,qBAAqB;IAC9D,SAAkB,KAAK,EAAE,WAAW,CAAM;IAE1C,YAAY,WAAW,EAAE,SAAS,aAAa,EAAE,EAoBhD;IAED,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,YAAY,CAuBxH;IAED,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAE/E;IAED;;;;;OAKG;IACH,SAAS,CAAC,gBAAgB,CAAC,WAAW,EAAE,SAAS,aAAa,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAEvF;CACH"}
@@ -0,0 +1,97 @@
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
+ import { assertSingleLangiumCopy } from './single-langium-copy.js';
11
+ /**
12
+ * One `AstReflection` over the reflections of separately generated language
13
+ * packages. The shared `AstReflection` slot holds a single reflection, so
14
+ * binding each package's generated shared module keeps only the last one's
15
+ * types; bind this over all of them instead.
16
+ *
17
+ * A name several reflections share is taken to be one type, reached through a
18
+ * shared imported grammar, and keeps every super type any of them gives it:
19
+ * each grammar may declare its own union over the type. Only properties that
20
+ * differ in name, reference type or default value throw; two unrelated unions,
21
+ * or same-shaped interfaces, that share a name merge silently, so keep other
22
+ * type names distinct across packages.
23
+ *
24
+ * Only each reflection's `types` is read, so behaviour a reflection overrides
25
+ * is lost. Each package's generated `isX` guards keep using that package's own
26
+ * reflection and answer false for subtypes only another package declares.
27
+ *
28
+ * Each reflection is checked with {@link assertSingleLangiumCopy}, because the
29
+ * composite itself extends the framework copy's base whichever copy they use.
30
+ *
31
+ * The protected merge methods run from the constructor, so an override cannot
32
+ * read its own class's fields.
33
+ */
34
+ export class CompositeAstReflection extends AbstractAstReflection {
35
+ types = {};
36
+ constructor(reflections) {
37
+ super();
38
+ const firstDefinedAt = new Map();
39
+ reflections.forEach((reflection, index) => {
40
+ assertSingleLangiumCopy(reflection, () => this.formatReflection(reflections, index));
41
+ for (const [type, metaData] of Object.entries(reflection.types)) {
42
+ const ownerIndex = firstDefinedAt.get(type);
43
+ if (ownerIndex === undefined) {
44
+ this.types[type] = metaData;
45
+ firstDefinedAt.set(type, index);
46
+ }
47
+ else {
48
+ this.types[type] = this.mergeTypeMetaData(this.types[type], metaData, this.formatReflection(reflections, ownerIndex), this.formatReflection(reflections, index));
49
+ }
50
+ }
51
+ });
52
+ }
53
+ mergeTypeMetaData(known, added, knownFrom, addedFrom) {
54
+ const properties = {};
55
+ const propertyNames = new Set([...Object.keys(known.properties), ...Object.keys(added.properties)]);
56
+ for (const property of propertyNames) {
57
+ const knownProperty = known.properties[property];
58
+ const addedProperty = added.properties[property];
59
+ if (!knownProperty || !addedProperty || !this.sameProperty(knownProperty, addedProperty)) {
60
+ throw new Error(`[hydranium] ${knownFrom} and ${addedFrom} define the type ` +
61
+ `'${known.name}' differently (property '${property}'). A name the composed reflections share must ` +
62
+ 'denote one type, so rename one of them, or have every grammar take the type unchanged from one ' +
63
+ 'shared imported grammar.');
64
+ }
65
+ properties[property] = addedProperty.optional && !knownProperty.optional ? addedProperty : knownProperty;
66
+ }
67
+ // `Required` so a field Langium adds fails compilation until this merge decides on it.
68
+ const merged = {
69
+ name: known.name,
70
+ properties,
71
+ superTypes: [...new Set([...known.superTypes, ...added.superTypes])]
72
+ };
73
+ return merged;
74
+ }
75
+ sameProperty(left, right) {
76
+ return COMPARED_PROPERTY_FIELDS.every(field => JSON.stringify(left[field]) === JSON.stringify(right[field]));
77
+ }
78
+ /**
79
+ * Names `reflections[index]` for the composite's errors: its position and
80
+ * class name. The position is needed because minified bundles and scaffolds
81
+ * sharing a project name leave class names that do not tell reflections
82
+ * apart. An override can name the package each reflection came from.
83
+ */
84
+ formatReflection(reflections, index) {
85
+ return `reflections[${index}] (${reflections[index].constructor?.name ?? 'no constructor'})`;
86
+ }
87
+ }
88
+ /** How the merge treats each property field; a field Langium adds fails compilation here until decided. */
89
+ const PROPERTY_FIELDS = {
90
+ name: 'compared',
91
+ referenceType: 'compared',
92
+ defaultValue: 'compared',
93
+ // Older generators emit no `optional`, so its absence proves nothing.
94
+ optional: 'merged'
95
+ };
96
+ const COMPARED_PROPERTY_FIELDS = Object.keys(PROPERTY_FIELDS).filter(field => PROPERTY_FIELDS[field] === 'compared');
97
+ //# sourceMappingURL=composite-ast-reflection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"composite-ast-reflection.js","sourceRoot":"","sources":["../../src/langium/composite-ast-reflection.ts"],"names":[],"mappings":"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"}